Module: ArJdbc::AS400

Includes:
DB2
Defined in:
lib/arjdbc/db2/as400.rb

Constant Summary collapse

ADAPTER_NAME =
'AS400'.freeze
DRIVER_NAME =
'com.ibm.as400.access.AS400JDBCDriver'.freeze

Constants included from DB2

DB2::HAVE_LIMIT, DB2::HAVE_PRECISION, DB2::HAVE_SCALE, DB2::NATIVE_DATABASE_TYPES

Class Method Summary collapse

Instance Method Summary collapse

Methods included from DB2

#add_column, #add_column_options!, #add_index, #add_limit_offset!, arel2_visitors, #change_column, #change_column_default, #change_column_null, #columns, #configure_connection, #create_table, #drop_database, #empty_insert_statement_value, emulate_booleans?, #indexes, #jdbc_column_class, #last_insert_id, #modify_types, #native_database_types, #next_sequence_value, #pk_and_sequence_for, #quote, #quote_column_name, #quote_time, #quoted_date, #recreate_database, #remove_column, #remove_index!, #rename_table, #runstats_for_table, #schema, #schema=, #select, #supports_views?, #table_definition, #tables, #truncate, #type_to_sql, #update_lob_value?, update_lob_values=, update_lob_values?

Class Method Details

.arel_visitor_type(config = nil) ⇒ Object



17
# File 'lib/arjdbc/db2/as400.rb', line 17

def self.arel_visitor_type(config = nil); DB2.arel_visitor_type(config); end

.column_selectorObject



19
20
21
# File 'lib/arjdbc/db2/as400.rb', line 19

def self.column_selector
  [ /as400/i, lambda { |config, column| column.extend(Column) } ]
end

.emulate_booleansObject

Boolean emulation can be disabled using :

ArJdbc::AS400.emulate_booleans = false



27
# File 'lib/arjdbc/db2/as400.rb', line 27

def self.emulate_booleans; DB2.emulate_booleans; end

.emulate_booleans=(emulate) ⇒ Object



28
# File 'lib/arjdbc/db2/as400.rb', line 28

def self.emulate_booleans=(emulate); DB2.emulate_booleans = emulate; end

.jdbc_connection_classObject



14
# File 'lib/arjdbc/db2/as400.rb', line 14

def self.jdbc_connection_class; DB2.jdbc_connection_class; end

Instance Method Details

#adapter_nameObject



32
33
34
# File 'lib/arjdbc/db2/as400.rb', line 32

def adapter_name
  ADAPTER_NAME
end

#execute_table_change(sql, table_name, name = nil) ⇒ Object



52
53
54
# File 'lib/arjdbc/db2/as400.rb', line 52

def execute_table_change(sql, table_name, name = nil)
  execute_and_auto_confirm(sql, name)
end

#prefetch_primary_key?(table_name = nil) ⇒ Boolean

Returns:

  • (Boolean)


37
38
39
40
41
42
43
44
# File 'lib/arjdbc/db2/as400.rb', line 37

def prefetch_primary_key?(table_name = nil)
  # TRUE if the table has no identity column
  names = table_name.upcase.split(".")
  sql = "SELECT 1 FROM SYSIBM.SQLPRIMARYKEYS WHERE "
  sql << "TABLE_SCHEM = '#{names.first}' AND " if names.size == 2
  sql << "TABLE_NAME = '#{names.last}'"
  select_one(sql).nil?
end

#rename_column(table_name, column_name, new_column_name) ⇒ Object

Raises:

  • (NotImplementedError)


47
48
49
# File 'lib/arjdbc/db2/as400.rb', line 47

def rename_column(table_name, column_name, new_column_name)
  raise NotImplementedError, "rename_column is not supported on IBM iSeries"
end

#table_exists?(name) ⇒ Boolean

disable all schemas browsing when default schema is specified

Returns:

  • (Boolean)


90
91
92
93
# File 'lib/arjdbc/db2/as400.rb', line 90

def table_exists?(name)
  return false unless name
  schema ? @connection.table_exists?(name, schema) : @connection.table_exists?(name)
end