Module: ActiveRecord::Schemas::ConnectionAdapters::SqlserverAdapter
- Included in:
- ConnectionAdapters::SQLServerAdapter
- Defined in:
- lib/active_record/schemas/connection_adapters/sqlserver_adapter.rb
Instance Attribute Summary collapse
Class Method Summary collapse
-
.included(base) ⇒ Object
When this module is included, the following methods are chained in order to strip off the schema names if the schema is the default schema.
Instance Method Summary collapse
- #columns_with_default_schema_check(table_name, column_name = nil) ⇒ Object
-
#index_name(table_name, options) ⇒ Object
override index name so that if there is a schema, rename it schema_table instead of schema.table.
- #table_exists_with_default_schema_check?(table_name) ⇒ Boolean
- #table_name_or_views_table_name_with_default_schema_check(table_name) ⇒ Object
- #unqualify_schema_name(table_name) ⇒ Object
- #unqualify_table_name_if_default_schema(table_name) ⇒ Object
Instance Attribute Details
#default_schema ⇒ Object
15 16 17 18 19 20 |
# File 'lib/active_record/schemas/connection_adapters/sqlserver_adapter.rb', line 15 def default_schema unless sqlserver_2000? @default_schema ||= select_values("SELECT default_schema_name FROM sys.database_principals WHERE type = 'S' and name = '#{self.quote_string(@connection_options[:username])}'").first end @default_schema ||= 'dbo' end |
Class Method Details
.included(base) ⇒ Object
When this module is included, the following methods are chained in order to strip off the schema names if the schema is the default schema
9 10 11 12 13 |
# File 'lib/active_record/schemas/connection_adapters/sqlserver_adapter.rb', line 9 def self.included(base) base.alias_method_chain :columns, :default_schema_check base.alias_method_chain :table_exists?, :default_schema_check base.alias_method_chain :table_name_or_views_table_name, :default_schema_check end |
Instance Method Details
#columns_with_default_schema_check(table_name, column_name = nil) ⇒ Object
33 34 35 36 |
# File 'lib/active_record/schemas/connection_adapters/sqlserver_adapter.rb', line 33 def columns_with_default_schema_check(table_name, column_name = nil) table_name = unqualify_table_name_if_default_schema(table_name) if table_name columns_without_default_schema_check(table_name, column_name) end |
#index_name(table_name, options) ⇒ Object
override index name so that if there is a schema, rename it schema_table instead of schema.table
49 50 51 |
# File 'lib/active_record/schemas/connection_adapters/sqlserver_adapter.rb', line 49 def index_name(table_name, ) #:nodoc: super table_name.tr('.', '_'), end |
#table_exists_with_default_schema_check?(table_name) ⇒ Boolean
28 29 30 31 |
# File 'lib/active_record/schemas/connection_adapters/sqlserver_adapter.rb', line 28 def table_exists_with_default_schema_check?(table_name) table_name = unqualify_table_name_if_default_schema(table_name) table_exists_without_default_schema_check?(table_name) end |
#table_name_or_views_table_name_with_default_schema_check(table_name) ⇒ Object
23 24 25 26 |
# File 'lib/active_record/schemas/connection_adapters/sqlserver_adapter.rb', line 23 def table_name_or_views_table_name_with_default_schema_check(table_name) table_name = unqualify_table_name_if_default_schema(table_name) table_name_or_views_table_name_without_default_schema_check(table_name) end |
#unqualify_schema_name(table_name) ⇒ Object
38 39 40 41 |
# File 'lib/active_record/schemas/connection_adapters/sqlserver_adapter.rb', line 38 def unqualify_schema_name(table_name) parts = table_name.to_s.split('.') parts.length == 1 ? default_schema : parts[parts.length - 2].gsub(/[\[\]]/,'') end |
#unqualify_table_name_if_default_schema(table_name) ⇒ Object
43 44 45 46 |
# File 'lib/active_record/schemas/connection_adapters/sqlserver_adapter.rb', line 43 def unqualify_table_name_if_default_schema(table_name) schema = unqualify_schema_name(table_name) schema == default_schema ? unqualify_table_name(table_name) : table_name end |