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
3976 3977 3978 3979 3980 3981 3982 3983 |
# File 'lib/active_record/connection_adapters/ibm_db_adapter.rb', line 3976 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
3985 3986 3987 3988 |
# File 'lib/active_record/connection_adapters/ibm_db_adapter.rb', line 3985 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?
3926 3927 3928 |
# File 'lib/active_record/connection_adapters/ibm_db_adapter.rb', line 3926 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
3930 3931 3932 3933 |
# File 'lib/active_record/connection_adapters/ibm_db_adapter.rb', line 3930 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
3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 |
# File 'lib/active_record/connection_adapters/ibm_db_adapter.rb', line 3936 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
3972 3973 3974 |
# File 'lib/active_record/connection_adapters/ibm_db_adapter.rb', line 3972 def set_binary_default(value) "#{value}" end |