Class: ODBCAdapter::DatabaseMetadata

Inherits:
Object
  • Object
show all
Defined in:
lib/odbc_adapter/database_metadata.rb

Overview

Caches SQLGetInfo output

Constant Summary collapse

FIELDS =
%i[
  SQL_DBMS_NAME
  SQL_DBMS_VER
  SQL_IDENTIFIER_CASE
  SQL_QUOTED_IDENTIFIER_CASE
  SQL_IDENTIFIER_QUOTE_CHAR
  SQL_MAX_IDENTIFIER_LEN
  SQL_MAX_TABLE_NAME_LEN
  SQL_USER_NAME
  SQL_DATABASE_NAME
]

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(connection) ⇒ DatabaseMetadata

Returns a new instance of DatabaseMetadata.



18
19
20
# File 'lib/odbc_adapter/database_metadata.rb', line 18

def initialize(connection)
  @values = Hash[FIELDS.map { |field| [field, connection.get_info(ODBC.const_get(field))] }]
end

Instance Attribute Details

#valuesObject (readonly)

Returns the value of attribute values.



16
17
18
# File 'lib/odbc_adapter/database_metadata.rb', line 16

def values
  @values
end

Instance Method Details

#adapter_classObject



22
23
24
# File 'lib/odbc_adapter/database_metadata.rb', line 22

def adapter_class
  ODBCAdapter.adapter_for(dbms_name)
end

#upcase_identifiers?Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/odbc_adapter/database_metadata.rb', line 26

def upcase_identifiers?
  @upcase_identifiers ||= (identifier_case == ODBC::SQL_IC_UPPER)
end