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



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

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

#check_versionObject



71
72
73
# File 'lib/active_record/connection_adapters/turso_adapter.rb', line 71

def check_version
  true
end

#connectObject



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

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)


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

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

#encodingObject



75
76
77
# File 'lib/active_record/connection_adapters/turso_adapter.rb', line 75

def encoding
  "UTF-8"
end

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



48
49
50
51
52
53
54
# File 'lib/active_record/connection_adapters/turso_adapter.rb', line 48

def explain(arel, binds = [], _options = [])
  sql = "EXPLAIN QUERY PLAN " + to_sql(arel, binds)
  result = exec_query(sql, "EXPLAIN", binds)
  result.rows.map do |row|
    row.join(" | ")
  end.join("\n")
end

#quote_string(s) ⇒ Object



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

def quote_string(s)
  s.gsub("'", "''")
end

#sqlite_versionObject



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

def sqlite_version
  @sqlite_version ||= Gem::Version.new(query_value("SELECT sqlite_version()"))
end

#supports_check_constraint?Boolean

Returns:

  • (Boolean)


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

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)


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

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)


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

def supports_transaction_isolation?
  false
end