Class: ActiveRecord::ConnectionAdapters::CrateAdapter
- Inherits:
-
AbstractAdapter
- Object
- AbstractAdapter
- ActiveRecord::ConnectionAdapters::CrateAdapter
- Defined in:
- lib/active_record/connection_adapters/crate_adapter.rb
Defined Under Namespace
Classes: BindSubstitution, ColumnDefinition, CrateColumn, TableDefinition
Constant Summary collapse
- ADAPTER_NAME =
'Crate'.freeze
- NATIVE_DATABASE_TYPES =
{ boolean: {name: "boolean"}, string: {name: "string"}, integer: {name: "integer"}, float: {name: "float"}, binary: {name: "byte"}, datetime: {name: "timestamp"}, timestamp: {name: "timestamp"}, object: {name: "object"}, array: {name: "array"} }
Instance Method Summary collapse
-
#active? ⇒ Boolean
TODO check what call to use for active.
- #adapter_name ⇒ Object
-
#clear_cache! ⇒ Object
TODO.
-
#columns(table_name) ⇒ Object
:nodoc:.
- #connect ⇒ Object
- #create_table_definition(name, temporary, options, as = nil) ⇒ Object
-
#initialize(connection, logger, pool, config) ⇒ CrateAdapter
constructor
A new instance of CrateAdapter.
-
#migration_keys ⇒ Object
Adds ‘:array` as a valid migration key.
- #native_database_types ⇒ Object
-
#prepare_column_options(column, types) ⇒ Object
Adds ‘:array` option to the default set provided by the AbstractAdapter.
-
#reset! ⇒ Object
TODO.
-
#schema_creation ⇒ Object
:nodoc:.
- #supports_migrations? ⇒ Boolean
- #tables ⇒ Object
Methods included from DatabaseStatements
#do_exec_query, #exec_query, #execute, #sql_key
Methods included from ActiveRecord::ConnectionAdapters::Crate::SchemaStatements
#add_index, #initialize_schema_migrations_table, #primary_key, #remove_index
Constructor Details
#initialize(connection, logger, pool, config) ⇒ CrateAdapter
Returns a new instance of CrateAdapter.
83 84 85 86 87 88 89 90 91 |
# File 'lib/active_record/connection_adapters/crate_adapter.rb', line 83 def initialize(connection, logger, pool, config) @port = config[:port] @host = config[:host] super(connection, logger, pool) @schema_cache = SchemaCache.new self @visitor = Arel::Visitors::Crate.new self @quoted_column_names = {} connect end |
Instance Method Details
#active? ⇒ Boolean
TODO check what call to use for active
112 113 114 |
# File 'lib/active_record/connection_adapters/crate_adapter.rb', line 112 def active? true end |
#adapter_name ⇒ Object
93 94 95 |
# File 'lib/active_record/connection_adapters/crate_adapter.rb', line 93 def adapter_name ADAPTER_NAME end |
#clear_cache! ⇒ Object
TODO
117 118 |
# File 'lib/active_record/connection_adapters/crate_adapter.rb', line 117 def clear_cache! end |
#columns(table_name) ⇒ Object
:nodoc:
132 133 134 135 136 137 |
# File 'lib/active_record/connection_adapters/crate_adapter.rb', line 132 def columns(table_name) #:nodoc: cols = @connection.table_structure(table_name).map do |field| CrateColumn.new(field[2], nil, field[4], nil) end cols end |
#connect ⇒ Object
128 129 130 |
# File 'lib/active_record/connection_adapters/crate_adapter.rb', line 128 def connect @connection = CrateRuby::Client.new(["#{@host}:#{@port}"]) end |
#create_table_definition(name, temporary, options, as = nil) ⇒ Object
218 219 220 |
# File 'lib/active_record/connection_adapters/crate_adapter.rb', line 218 def create_table_definition(name, temporary, , as = nil) TableDefinition.new native_database_types, name, temporary, , as end |
#migration_keys ⇒ Object
Adds ‘:array` as a valid migration key
106 107 108 |
# File 'lib/active_record/connection_adapters/crate_adapter.rb', line 106 def migration_keys super + [:array, :object_schema_behaviour, :object_schema] end |
#native_database_types ⇒ Object
222 223 224 |
# File 'lib/active_record/connection_adapters/crate_adapter.rb', line 222 def native_database_types NATIVE_DATABASE_TYPES end |
#prepare_column_options(column, types) ⇒ Object
Adds ‘:array` option to the default set provided by the AbstractAdapter
99 100 101 102 103 |
# File 'lib/active_record/connection_adapters/crate_adapter.rb', line 99 def (column, types) spec = super spec[:array] = 'true' if column.respond_to?(:array) && column.array spec end |
#reset! ⇒ Object
TODO
121 122 |
# File 'lib/active_record/connection_adapters/crate_adapter.rb', line 121 def reset! end |
#schema_creation ⇒ Object
:nodoc:
63 64 65 |
# File 'lib/active_record/connection_adapters/crate_adapter.rb', line 63 def schema_creation # :nodoc: Crate::SchemaCreation.new self end |
#supports_migrations? ⇒ Boolean
124 125 126 |
# File 'lib/active_record/connection_adapters/crate_adapter.rb', line 124 def supports_migrations? true end |
#tables ⇒ Object
139 140 141 |
# File 'lib/active_record/connection_adapters/crate_adapter.rb', line 139 def tables @connection.tables end |