Class: ActiveRecord::ConnectionAdapters::SQLite3Adapter

Inherits:
AbstractAdapter
  • Object
show all
Includes:
ArJdbc::Abstract::Core, ArJdbc::Abstract::DatabaseStatements, ArJdbc::Abstract::StatementCache, ArJdbc::Abstract::TransactionSupport, ArJdbc::SQLite3
Defined in:
lib/arjdbc/sqlite3/adapter.rb

Overview

Currently our adapter is named the same as what AR5 names its adapter. We will need to get this changed at some point so this can be a unique name and we can extend activerecord ActiveRecord::ConnectionAdapters::SQLite3Adapter. Once we can do that we can remove the module SQLite3 above and remove a majority of this file.

Constant Summary

Constants included from ArJdbc::Abstract::DatabaseStatements

ArJdbc::Abstract::DatabaseStatements::NO_BINDS

Constants included from ArJdbc::SQLite3

ArJdbc::SQLite3::ADAPTER_NAME, ArJdbc::SQLite3::ConnectionAdapters, ArJdbc::SQLite3::IndexDefinition, ArJdbc::SQLite3::NATIVE_DATABASE_TYPES, ArJdbc::SQLite3::Quoting, ArJdbc::SQLite3::RecordNotUnique, ArJdbc::SQLite3::SQLite3Adapter, ArJdbc::SQLite3::SchemaCreation

Instance Attribute Summary

Attributes included from ArJdbc::Abstract::Core

#config

Class Method Summary collapse

Instance Method Summary collapse

Methods included from ArJdbc::Abstract::TransactionSupport

#begin_db_transaction, #commit_db_transaction, #create_savepoint, #exec_rollback_db_transaction, #exec_rollback_to_savepoint, #release_savepoint, #supports_savepoints?

Methods included from ArJdbc::Abstract::StatementCache

#clear_cache!, #delete_cached_statement, #fetch_cached_statement, #initialize, #supports_statement_cache?

Methods included from ArJdbc::Abstract::DatabaseStatements

#exec_query, #exec_update, #execute, #select_all

Methods included from ArJdbc::SQLite3

#active?, #add_column, #add_reference, #allowed_index_name_length, #arel_visitor, #begin_db_transaction, #change_column, #change_column_default, #change_column_null, #clear_cache!, #commit_db_transaction, #disable_referential_integrity, #disconnect!, #encoding, #exec_delete, #exec_query, #exec_rollback_db_transaction, #execute, #explain, #foreign_keys, #indexes, #initialize, #last_inserted_id, #native_database_types, #new_column_from_field, #primary_keys, #remove_column, #remove_index, #rename_column, #rename_table, #requires_reloading?, #schema_creation, #supports_datetime_with_precision?, #supports_ddl_transactions?, #supports_explain?, #supports_foreign_keys_in_create?, #supports_index_sort_order?, #supports_multi_insert?, #supports_partial_index?, #supports_savepoints?, #supports_statement_cache?, #supports_views?, #update_table_definition, #valid_alter_table_type?

Methods included from ArJdbc::Abstract::Core

#extract_raw_bind_values, #initialize, #jdbc_connection, #log, #translate_exception, #translate_exception_class

Class Method Details

.jdbc_connection_classObject



704
705
706
# File 'lib/arjdbc/sqlite3/adapter.rb', line 704

def self.jdbc_connection_class
  ::ActiveRecord::ConnectionAdapters::SQLite3JdbcConnection
end

Instance Method Details

#begin_isolated_db_transaction(isolation) ⇒ Object

Raises:

  • (ActiveRecord::TransactionIsolationError)


684
685
686
# File 'lib/arjdbc/sqlite3/adapter.rb', line 684

def begin_isolated_db_transaction(isolation)
  raise ActiveRecord::TransactionIsolationError, 'adapter does not support setting transaction isolation'
end

#exec_insert(sql, name = nil, binds = [], pk = nil, sequence_name = nil) ⇒ Object

SQLite driver doesn't support all types of insert statements with executeUpdate so make it act like a regular query and the ids will be returned from #last_inserted_id example: INSERT INTO "aircraft" DEFAULT VALUES



691
692
693
# File 'lib/arjdbc/sqlite3/adapter.rb', line 691

def exec_insert(sql, name = nil, binds = [], pk = nil, sequence_name = nil)
  exec_query(sql, name, binds)
end

#jdbc_column_classObject



695
696
697
# File 'lib/arjdbc/sqlite3/adapter.rb', line 695

def jdbc_column_class
  ::ActiveRecord::ConnectionAdapters::SQLite3Column
end

#jdbc_connection_class(spec) ⇒ Object



699
700
701
# File 'lib/arjdbc/sqlite3/adapter.rb', line 699

def jdbc_connection_class(spec)
  self.class.jdbc_connection_class
end

#supports_transaction_isolation?Boolean

Returns:

  • (Boolean)


680
681
682
# File 'lib/arjdbc/sqlite3/adapter.rb', line 680

def supports_transaction_isolation?
  false
end