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/statement_pool.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 Classes: StatementPool

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, #fts_match, #fts_score, #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, #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

#build_statement_poolObject



46
47
48
# File 'lib/active_record/connection_adapters/turso_adapter.rb', line 46

def build_statement_pool
  StatementPool.new(self.class.type_cast_config_to_integer(@config[:statement_limit]))
end

#check_versionObject



61
62
63
# File 'lib/active_record/connection_adapters/turso_adapter.rb', line 61

def check_version
  true
end

#connectObject



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

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)


50
51
52
# File 'lib/active_record/connection_adapters/turso_adapter.rb', line 50

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

#encodingObject



65
66
67
# File 'lib/active_record/connection_adapters/turso_adapter.rb', line 65

def encoding
  "UTF-8"
end

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



40
41
42
43
44
# File 'lib/active_record/connection_adapters/turso_adapter.rb', line 40

def explain(arel, binds = [], _options = [])
  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)


32
33
34
# File 'lib/active_record/connection_adapters/turso_adapter.rb', line 32

def supports_check_constraint?
  true
end

#supports_ddl_transactions?Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/active_record/connection_adapters/turso_adapter.rb', line 20

def supports_ddl_transactions?
  true
end

#supports_explain?Boolean

Returns:

  • (Boolean)


36
37
38
# File 'lib/active_record/connection_adapters/turso_adapter.rb', line 36

def supports_explain?
  true
end

#supports_insert_returning?Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/active_record/connection_adapters/turso_adapter.rb', line 24

def supports_insert_returning?
  false
end

#supports_transaction_isolation?Boolean

Returns:

  • (Boolean)


28
29
30
# File 'lib/active_record/connection_adapters/turso_adapter.rb', line 28

def supports_transaction_isolation?
  false
end