Class: ActiveRecord::ConnectionAdapters::TursoAdapter

Inherits:
SQLite3Adapter
  • Object
show all
Includes:
ConnectionManagement, DatabaseStatements, ErrorTranslation, SchemaStatements, TransactionManagement
Defined in:
lib/active_record/connection_adapters/turso_adapter.rb,
lib/active_record/connection_adapters/turso_adapter/error_translation.rb,
lib/active_record/connection_adapters/turso_adapter/schema_statements.rb,
lib/active_record/connection_adapters/turso_adapter/database_statements.rb,
lib/active_record/connection_adapters/turso_adapter/connection_management.rb,
lib/active_record/connection_adapters/turso_adapter/transaction_management.rb

Defined Under Namespace

Modules: ConnectionManagement, DatabaseStatements, ErrorTranslation, SchemaStatements, TransactionManagement

Constant Summary collapse

ADAPTER_NAME =
"Turso"

Instance Method Summary collapse

Methods included from ErrorTranslation

#translate_exception

Methods included from SchemaStatements

#add_fts_index, #create_virtual_table, #drop_virtual_table, #fts_indexes, #indexes, #remove_fts_index, #supports_virtual_tables?, #tables, #views, #virtual_tables

Methods included from TransactionManagement

#begin_db_transaction, #commit_db_transaction, #create_savepoint, #release_savepoint, #rollback_db_transaction, #rollback_to_savepoint, #supports_savepoints?, #transaction

Methods included from DatabaseStatements

#combine_named_bind_params, #default_timezone, #disable_referential_integrity, #exec_insert, #exec_query, #execute, #last_inserted_id, #perform_query, #returning_column_values, #select_rows

Methods included from ConnectionManagement

#active?, #configure_connection, #disconnect!, included, #jdbc?, #raw_connection, #reconnect!

Instance Method Details

#check_versionObject



59
60
61
# File 'lib/active_record/connection_adapters/turso_adapter.rb', line 59

def check_version
  true
end

#connectObject



52
53
54
55
56
57
# File 'lib/active_record/connection_adapters/turso_adapter.rb', line 52

def connect
  @raw_connection = self.class.new_client(@connection_parameters)
  configure_connection
rescue ::Turso::Error => e
  raise ActiveRecord::ConnectionNotEstablished, e.message
end

#database_file_exists?Boolean

Returns:

  • (Boolean)


48
49
50
# File 'lib/active_record/connection_adapters/turso_adapter.rb', line 48

def database_file_exists?
  File.exist?(@config[:database])
end

#default_prepared_statementsObject



44
45
46
# File 'lib/active_record/connection_adapters/turso_adapter.rb', line 44

def default_prepared_statements
  false
end

#encodingObject



63
64
65
# File 'lib/active_record/connection_adapters/turso_adapter.rb', line 63

def encoding
  "UTF-8"
end

#explain(arel, binds = []) ⇒ Object



38
39
40
41
42
# File 'lib/active_record/connection_adapters/turso_adapter.rb', line 38

def explain(arel, binds = [])
  sql = "EXPLAIN QUERY PLAN " + to_sql(arel, binds)
  result = exec_query(sql, "EXPLAIN", binds)
  SQLite3::ExplainPrettyPrinter.new.pp(result)
end

#supports_check_constraint?Boolean

Returns:

  • (Boolean)


30
31
32
# File 'lib/active_record/connection_adapters/turso_adapter.rb', line 30

def supports_check_constraint?
  true
end

#supports_ddl_transactions?Boolean

Returns:

  • (Boolean)


18
19
20
# File 'lib/active_record/connection_adapters/turso_adapter.rb', line 18

def supports_ddl_transactions?
  true
end

#supports_explain?Boolean

Returns:

  • (Boolean)


34
35
36
# File 'lib/active_record/connection_adapters/turso_adapter.rb', line 34

def supports_explain?
  true
end

#supports_insert_returning?Boolean

Returns:

  • (Boolean)


22
23
24
# File 'lib/active_record/connection_adapters/turso_adapter.rb', line 22

def supports_insert_returning?
  false
end

#supports_transaction_isolation?Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/active_record/connection_adapters/turso_adapter.rb', line 26

def supports_transaction_isolation?
  false
end