abstract class Marten::DB::Connection::Base
- Marten::DB::Connection::Base
- Reference
- Object
Overview
Abstract base class for a database connection.
A database connection provides the main interface allowing to interact with the underlying database. Subclasses must define a set of function allowing to define backend-specifics such as statements, operators, etc.
Direct Known Subclasses
Defined in:
marten/db/connection/base.crConstructors
Instance Method Summary
-
#alias : String
Returns the DB alias of the considered connection.
-
#build_sql(&)
Allows to conveniently build a SQL statement by yielding an array of nillable strings.
-
#distinct_clause_for(columns : Array(String)) : String
Returns a distinct clause to remove duplicates from a query's results.
-
#insert(table_name : String, values : Hash(String, ::DB::Any), pk_field_to_fetch : String | Nil = nil) : ::DB::Any
Allows to insert a new row in a specific table.
-
#introspector : Management::Introspector::Base
Returns a
Marten::DB::Management::Introspector::Base
subclass instance to use to introspect the DB at hand. -
#left_operand_for(id : String, predicate) : String
Returns the left operand to use for specific query predicate.
-
#limit_value(value : Int | Nil) : Int32 | Int64 | Nil | UInt32 | UInt64
Returns a compatible value to use in the context of a LIMIT statement for the database at hand.
-
#max_name_size : Int32
Returns the maximum size for table names, column names or index / constraint names.
-
#open(&)
Provides a database entrypoint to the block.
-
#operator_for(predicate) : String
Returns the operator to use for a specific query predicate.
-
#parameter_id_for_ordered_argument(number : Int) : String
Returns the parameterized identifier for an ordered argument.
-
#quote(name : String | Symbol) : String
Allows to quote a specific name (such as a table name or column ID) for the database at hand.
-
#quote_char : Char
Returns the quote character to use to quote table names, columns, etc.
-
#sanitize_like_pattern(pattern : String) : String
Escapes special characters from a pattern aimed at being used in the context of a LIKE statement.
-
#schema_editor : Management::SchemaEditor::Base
Returns a
Marten::DB::Management::SchemaEditor::Base
subclass instance to edit the schema of the DB at hand. -
#scheme : String
Returns the scheme to consider for the underlying database backend.
-
#test_database?
Returns true if the current database was explicitly configured for the test environment.
-
#transaction(&)
Open a transaction.
-
#update(table_name : String, values : Hash(String, ::DB::Any), pk_column_name : String, pk_value : ::DB::Any) : Nil
Allows to update an existing row in a specific table.
Constructor Detail
Instance Method Detail
Allows to conveniently build a SQL statement by yielding an array of nillable strings.
Returns a distinct clause to remove duplicates from a query's results.
If column names are specified, only these specific columns will be checked to identify duplicates.
Allows to insert a new row in a specific table.
Returns a Marten::DB::Management::Introspector::Base
subclass instance to use to introspect the DB at hand.
Each connection implementation should also implement a subclass of
Marten::DB::Management::Introspector::Base
.
Returns the left operand to use for specific query predicate.
Most of the time the initial ID will be left intact but depending on the connection implementation and the considered predicate type (eg. "istartswith"), specific SQL functions could be applied on the column ID.
Returns a compatible value to use in the context of a LIMIT statement for the database at hand.
Returns the maximum size for table names, column names or index / constraint names.
Provides a database entrypoint to the block.
If this method is called in an existing transaction, the connection associated with this transaction will be used instead.
Returns the operator to use for a specific query predicate.
Returns the parameterized identifier for an ordered argument.
This method takes the number of the argument which is aimed to be part of an array of ordered SQL arguments.
Allows to quote a specific name (such as a table name or column ID) for the database at hand.
Returns the quote character to use to quote table names, columns, etc.
Escapes special characters from a pattern aimed at being used in the context of a LIKE statement.
Returns a Marten::DB::Management::SchemaEditor::Base
subclass instance to edit the schema of the DB at hand.
Each connection implementation should also implement a subclass of
Marten::DB::Management::SchemaEditor::Base
.
Returns true if the current database was explicitly configured for the test environment.
The only way this method can return true is when the database name was explicitly set in a configuration targetting the test environment.
Open a transaction.
Atomicity will be ensured for the database operations performed inside the block. Note that any existing transaction will be used in case of nested calls to this method.
Allows to update an existing row in a specific table.