class
Prostore::Adapter::SQLite::Adapter
- Prostore::Adapter::SQLite::Adapter
- Prostore::Adapter::Base
- Reference
- Object
Overview
The SQLite implementation of Prostore::Adapter::Base.
Defined in:
prostore/adapter/sqlite/adapter.crConstant Summary
-
PRAGMA_KEYS =
["journal_mode", "synchronous", "cache_size", "temp_store"] of ::String -
Pragma names whose values may be extracted from the connection URL query string and applied per-connection via session_setup.
Constructors
Instance Method Summary
-
#backup(dest : String) : Nil
Write a point-in-time backup to
dest(an absolute file path). -
#bookkeeping_id_column_def : String
Column DDL fragment for an auto-incrementing BIGINT primary key on the bookkeeping tables.
-
#insert_returning_id(executor : Executor, sql : String, args : Array) : Int64
Array-args overload for callers that build their argument list dynamically (e.g., the record-layer INSERT helper).
-
#insert_returning_id(executor : Executor, sql : String, *args) : Int64
INSERT a row and return its newly-assigned ID.
- #introspect_table(name : String, executor : Executor = @db) : LiveTable
- #introspect_table_names(executor : Executor = @db) : Array(String)
-
#like_operator : String
The operator for a case-insensitive substring match in a WHERE clause.
-
#placeholder(n : Int32) : String
The n-th positional parameter placeholder in the adapter's SQL syntax.
- #quote_ident(name : String) : String
- #quote_string(s : String) : String
- #render_create_index(table : String, index : Schema::Index) : String
- #render_create_table(definition : Schema::Definition, pk_lookup : Hash(String, Array(String))) : String
- #render_create_table(definition : Schema::Definition) : String
-
#session_setup(conn : DB::Connection) : Nil
Connection-establishment hook.
Instance methods inherited from class Prostore::Adapter::Base
backup(dest : String) : Nil
backup,
bookkeeping_id_column_def : String
bookkeeping_id_column_def,
db : DB::Database
db,
insert_returning_id(executor : Executor, sql : String, args : Array) : Int64insert_returning_id(executor : Executor, sql : String, *args) : Int64 insert_returning_id, introspect_all(executor : Executor = @db) : Array(LiveTable) introspect_all, introspect_table(name : String, executor : Executor = @db) : LiveTable introspect_table, introspect_table_names(executor : Executor = @db) : Array(String) introspect_table_names, like_operator : String like_operator, placeholder(n : Int32) : String placeholder, placeholders(count : Int32) : String placeholders, quote_ident(name : String) : String quote_ident, quote_string(s : String) : String quote_string, render_create_index(table : String, index : Schema::Index) : String render_create_index, render_create_table(definition : Schema::Definition) : String render_create_table, session_setup(conn : DB::Connection) : Nil session_setup, supports_add_constraint_not_valid? : Bool supports_add_constraint_not_valid?, supports_alter_drop_column? : Bool supports_alter_drop_column?, supports_alter_set_not_null? : Bool supports_alter_set_not_null?, supports_concurrent_index? : Bool supports_concurrent_index?
Constructor methods inherited from class Prostore::Adapter::Base
new(db : DB::Database)
new
Constructor Detail
Instance Method Detail
Write a point-in-time backup to dest (an absolute file path).
SQLite uses VACUUM INTO; PostgreSQL shells out to pg_dump.
Column DDL fragment for an auto-incrementing BIGINT primary key on
the bookkeeping tables. SQLite emits INTEGER PRIMARY KEY AUTOINCREMENT
while Postgres emits BIGSERIAL PRIMARY KEY (or identity). Each
adapter overrides.
Array-args overload for callers that build their argument list dynamically (e.g., the record-layer INSERT helper).
INSERT a row and return its newly-assigned ID. SQLite uses
last_insert_rowid(); Postgres uses RETURNING id. The adapter
encapsulates the difference.
The operator for a case-insensitive substring match in a WHERE
clause. SQLite's LIKE is case-insensitive for ASCII by default;
PostgreSQL exposes ILIKE for the same purpose.
The n-th positional parameter placeholder in the adapter's SQL
syntax. SQLite uses ? (position-implicit). PostgreSQL uses
$1, $2, … (position-explicit). crystal-db does NOT translate
between them, so SQL strings shared by both adapters must build
placeholders via this method.
Connection-establishment hook. Adapters override to set per-connection
session state (SQLite's PRAGMA foreign_keys = ON).