Class: ActiveRecord::ConnectionAdapters::IBM_DB2_ZOS
- Inherits:
-
IBM_DB2
- Object
- IBM_DataServer
- IBM_DB2
- ActiveRecord::ConnectionAdapters::IBM_DB2_ZOS
- Defined in:
- lib/active_record/connection_adapters/ibm_db_adapter.rb
Overview
module HostedDataServer
Direct Known Subclasses
Instance Method Summary collapse
- #change_column_default(table_name, column_name, default) ⇒ Object
- #change_column_null(table_name, column_name, null, default) ⇒ Object
-
#create_index_after_table(table_name, column_name) ⇒ Object
since v9 doesn’t need, suggest putting it in HostedDataServer?.
- #remove_column(table_name, column_name) ⇒ Object
-
#rename_column(table_name, column_name, new_column_name) ⇒ Object
Alter table column for renaming a column.
-
#set_binary_default(value) ⇒ Object
DB2 z/OS only allows NULL or “” (empty) string as DEFAULT value for a BLOB column.
Methods inherited from IBM_DB2
#change_column, #extract_new_default_value, #get_datetime_mapping, #get_double_mapping, #get_time_mapping, #initialize, #last_generated_id, #primary_key_definition, #set_binary_value, #set_case, #set_text_default
Methods inherited from IBM_DataServer
#check_reserved_words, #execute, #get_datetime_mapping, #get_double_mapping, #get_time_mapping, #initialize, #last_generated_id, #limit_not_supported_types, #prepare, #reorg_table, #select, #select_rows, #set_binary_value, #set_case, #set_schema, #set_text_default, #setup_for_lob_table
Constructor Details
This class inherits a constructor from ActiveRecord::ConnectionAdapters::IBM_DB2
Instance Method Details
#change_column_default(table_name, column_name, default) ⇒ Object
4047 4048 4049 4050 4051 4052 4053 4054 |
# File 'lib/active_record/connection_adapters/ibm_db_adapter.rb', line 4047 def change_column_default(table_name, column_name, default) if default super else raise NotImplementedError, 'DB2 for zOS data server version 9 does not support changing the column default to NULL' end end |
#change_column_null(table_name, column_name, null, default) ⇒ Object
4056 4057 4058 4059 |
# File 'lib/active_record/connection_adapters/ibm_db_adapter.rb', line 4056 def change_column_null(table_name, column_name, null, default) raise NotImplementedError, "DB2 for zOS data server does not support changing the column's nullability" end |
#create_index_after_table(table_name, column_name) ⇒ Object
since v9 doesn’t need, suggest putting it in HostedDataServer?
3997 3998 3999 |
# File 'lib/active_record/connection_adapters/ibm_db_adapter.rb', line 3997 def create_index_after_table(table_name, column_name) @adapter.add_index(table_name, column_name, unique: true) end |
#remove_column(table_name, column_name) ⇒ Object
4001 4002 4003 4004 |
# File 'lib/active_record/connection_adapters/ibm_db_adapter.rb', line 4001 def remove_column(table_name, column_name) raise NotImplementedError, 'remove_column is not supported by the DB2 for zOS data server' end |
#rename_column(table_name, column_name, new_column_name) ⇒ Object
Alter table column for renaming a column
4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 |
# File 'lib/active_record/connection_adapters/ibm_db_adapter.rb', line 4007 def rename_column(table_name, column_name, new_column_name) _table_name = table_name.to_s _column_name = column_name.to_s _new_column_name = new_column_name.to_s nil_condition = _table_name.nil? || _column_name.nil? || _new_column_name.nil? unless nil_condition empty_condition = _table_name.empty? || _column_name.empty? || _new_column_name.empty? end if nil_condition || empty_condition raise ArgumentError, 'One of the arguments passed to rename_column is empty or nil' end begin rename_column_sql = "ALTER TABLE #{_table_name} RENAME COLUMN #{_column_name} \ TO #{_new_column_name}" unless stmt = execute(rename_column_sql) error_msg = IBM_DB.getErrormsg(@adapter.connection, IBM_DB::DB_CONN) raise "Rename column failed : #{error_msg}" if error_msg && !error_msg.empty? raise StandardError.new('An unexpected error occurred during renaming the column') end reorg_table(_table_name) ensure IBM_DB.free_stmt(stmt) if stmt end # End of begin end |
#set_binary_default(value) ⇒ Object
DB2 z/OS only allows NULL or “” (empty) string as DEFAULT value for a BLOB column. For non-empty string and non-NULL values, the server returns error
4043 4044 4045 |
# File 'lib/active_record/connection_adapters/ibm_db_adapter.rb', line 4043 def set_binary_default(value) "#{value}" end |