Qore SqlUtil Module Reference 1.9
|
the base abstract class for the database implementation More...
#include <AbstractDatabase.qc.dox.h>
Public Member Methods | |
computeStatistics (*hash< auto > options) | |
Compute database statistics. More... | |
bool | dropFunctionIfExists (string name, *hash< auto > opt) |
drops the given function if it exists; returns True if the function was dropped, False if not More... | |
bool | dropProcedureIfExists (string name, *hash< auto > opt) |
drops the given procedure if it exists; returns True if the procedure was dropped, False if not More... | |
bool | dropSequenceIfExists (string name, *hash< auto > opt) |
drops the given sequence if it exists; returns True if the sequence was dropped, False if not More... | |
bool | dropTableIfExists (string name, *hash< auto > opt) |
drops the given table if it exists; returns True if the table was dropped, False if not More... | |
bool | dropViewIfExists (string name, *hash< auto > opt) |
drops the given view if it exists; returns True if the view was dropped, False if not More... | |
list | features () |
See DB Features Constants. | |
Qore::ListIterator | functionIterator () |
returns an iterator listing the string function names in the database | |
list< auto > | getAlignFunctionSql (AbstractFunction f, *hash< auto > opt) |
returns a list of SQL strings that can be used to update a function in the database to the function definition passed as an argument More... | |
list< auto > | getAlignProcedureSql (AbstractFunction f, *hash< auto > opt) |
returns a list of SQL strings that can be used to update a stored procedure in the database to the stored procedure definition passed as an argument More... | |
list< auto > | getAlignSql (hash schema_hash, *hash< auto > opt, *Tables table_cache) |
accepts a hash argument describing a database schema and returns a list of SQL strings that can be used to align the structure and configuration of the current schema with that of the argument; if the objects described are identical then an empty list is returned More... | |
int | getCurrentSequenceValue (string name) |
returns the last value issued for the given sequence in the current session More... | |
*string | getDropFunctionSqlIfExists (string name, *hash< auto > opt) |
returns the SQL require to drop the given function if it exists or NOTHING if the named function does not exist More... | |
*string | getDropProcedureSqlIfExists (string name, *hash< auto > opt) |
returns the SQL require to drop the given procedure if it exists or NOTHING if the named procedure does not exist More... | |
list< auto > | getDropSchemaSql (hash schema_hash, *hash< auto > opt) |
accepts a hash argument describing a database schema and returns a list of SQL strings that can be used to drop any existing objects described in the schema; if none of the described objects exist, then an empty list is returned More... | |
*string | getDropSequenceSqlIfExists (string name, *hash< auto > opt) |
returns the SQL require to drop the given sequence if it exists or NOTHING if the named sequence does not exist More... | |
*list< auto > | getDropTableSqlIfExists (string name, *hash< auto > opt) |
returns the SQL require to drop the given table if it exists or NOTHING if the named table does not exist More... | |
*AbstractFunction | getFunction (string name) |
returns an AbstractFunction argument for the given function name or NOTHING if the function cannot be found More... | |
int | getMaximumPrecision () |
Returns the maximum precision for numeric or decimal columns. More... | |
int | getNextSequenceValue (string name) |
returns the next value in the given sequence More... | |
int | getPhysicalSize () |
Get the current database physical size in bytes. More... | |
*AbstractFunction | getProcedure (string name) |
returns an AbstractFunction argument for the given stored procedure name or NOTHING if the stored procedure cannot be found More... | |
*AbstractSequence | getSequence (string name) |
returns an AbstractSequence argument for the given sequence name or NOTHING if the sequence cannot be found More... | |
string | getSqlFromList (list l) |
returns an SQL string corresponding to the list of commands in the argument More... | |
*AbstractTable | getTable (string name) |
returns an AbstractTable argument for the given table name or NOTHING if the table cannot be found More... | |
*AbstractView | getView (string name) |
returns an AbstractView argument for the given view name or NOTHING if the view cannot be found More... | |
list< string > | listFunctions () |
returns a list of string function names in the database | |
list< string > | listProcedures () |
returns a list of string procedure names in the database | |
list< string > | listSequences () |
returns a list of string sequence names in the database | |
list< string > | listTables () |
returns a list of string table names in the database | |
list< string > | listViews () |
returns a list of string view names in the database | |
AbstractFunction | makeFunction (string name, string src, *hash< auto > opts) |
creates a database-specific AbstractFunction object corresponding to the arguments More... | |
AbstractFunction | makeProcedure (string name, string src, *hash< auto > opt) |
creates a database-specific AbstractFunction object for a stored procedure corresponding to the arguments More... | |
AbstractSequence | makeSequence (string name, number start=1, number increment=1, *softnumber end, *hash< auto > opts) |
creates a database-specific AbstractSequence object corresponding to the arguments More... | |
AbstractTable | makeTable (string name, hash< auto > desc, *hash< auto > opts) |
creates a database-specific AbstractTable object corresponding to the arguments More... | |
Qore::ListIterator | procedureIterator () |
returns an iterator listing the string procedure names in the database | |
bool | rebuildIndex (AbstractIndex index, *hash< auto > options) |
Rebuild an index in the DB. More... | |
bool | rebuildIndex (string name, *hash< auto > options) |
Rebuild an index in the DB. More... | |
reclaimSpace (*hash< auto > options) | |
Reclaim taken but unused space in the DB. More... | |
bool | requiresScale () |
Returns True if the driver requires a scale to support decimal values in numeric or decimal columns. More... | |
Qore::ListIterator | sequenceIterator () |
returns an iterator listing the string sequence names in the database | |
bool | supportsPackages () |
returns True if the database supports packages | |
bool | supportsSequences () |
returns True if the database supports sequences | |
bool | supportsTypes () |
returns True if the database supports named types | |
Qore::ListIterator | tableIterator () |
returns an iterator listing the string table names in the database | |
auto | tryExec (string sql) |
executes some SQL with optional arguments so that if an error occurs the current transaction state is not lost More... | |
auto | tryExecArgs (string sql, *softlist< auto > args) |
executes some SQL with optional arguments so that if an error occurs the current transaction state is not lost More... | |
auto | tryExecRaw (string sql) |
executes some SQL so that if an error occurs the current transaction state is not lost More... | |
Qore::ListIterator | viewIterator () |
returns an iterator listing the string view names in the database | |
Public Member Methods inherited from SqlUtil::AbstractSqlUtilBase | |
Qore::SQL::AbstractDatasource | getDatasource () |
gets the underlying AbstractDatasource | |
string | getDatasourceDesc () |
returns a descriptive string for the datasource | |
string | getDriverName () |
returns the database driver name | |
Public Attributes | |
const | AC_Add = 6 |
used when an element is added to an existing object | |
const | AC_Create = 1 |
used when a new object is created | |
const | AC_Delete = 10 |
used when data is deleted in a table | |
const | AC_Drop = 2 |
used when an object is dropped | |
const | AC_Insert = 8 |
used when data is inserted in a table | |
const | AC_Modify = 4 |
used when an object is modified in place | |
const | AC_NotFound = 11 |
used when dropping object but the object is not present | |
const | AC_Recreate = 7 |
used when an object is recreated (usually dropped and recreated in place) | |
const | AC_Rename = 3 |
used when an object is renamed | |
const | AC_Truncate = 5 |
used when a table is truncated | |
const | AC_Unchanged = 0 |
const | AC_Update = 9 |
used when data is updated in a table | |
const | ActionDescMap = ... |
maps from action descriptions to action codes | |
const | ActionLetterMap = ... |
maps from action codes to action letter codes | |
const | ActionMap = ... |
maps from action codes to action descriptions | |
const | AlignSchemaOptions = ... |
default generic schema description / alignment options More... | |
const | CacheOptions = ... |
generic cache options More... | |
const | CallbackOptions = ... |
generic callback options More... | |
const | ComputeStatisticsOptions = ... |
Options for computeStatistics() | |
const | CreationOptions = ... |
default generic creation options More... | |
const | DatabaseOptions = ... |
database options More... | |
const | DropSchemaOptions = ... |
default generic drop schema options More... | |
const | ReclaimSpaceOptions = ... |
Options for reclaimSpace() | |
const | SchemaDescriptionOptions = ... |
default generic schema description keys More... | |
const | SequenceDescriptionOptions = ... |
default generic sequence description keys More... | |
Private Member Methods | |
constructor (AbstractDatasource nds, *hash nopts) | |
creates the object; private constructor More... | |
hash< auto > | getAlignSchemaOptions () |
override in subclasses to return driver-specific options | |
hash< auto > | getCacheOptions () |
override in subclasses to return driver-specific options | |
hash< auto > | getCallbackOptions () |
override in subclasses to return driver-specific options | |
hash< auto > | getComputeStatisticsOptions () |
override in subclasses to return driver-specific options | |
hash< auto > | getCreationOptions () |
override in subclasses to return driver-specific options | |
abstract int | getCurrentSequenceValueImpl (string name) |
returns the last value issued for the given sequence in the current session | |
hash< auto > | getDatabaseOptions () |
override in subclasses to return driver-specific options | |
hash< auto > | getDropSchemaOptions () |
override in subclasses to return driver-specific options | |
abstract int | getNextSequenceValueImpl (string name) |
returns the next value in the given sequence | |
hash< auto > | getRebuildIndexOptions () |
override in subclasses to return driver-specific options | |
hash< auto > | getReclaimSpaceOptions () |
override in subclasses to return driver-specific options | |
hash< auto > | getSchemaDescriptionOptions () |
override in subclasses to return driver-specific options | |
hash< auto > | getSequenceDescriptionOptions () |
override in subclasses to return driver-specific options | |
abstract bool | supportsSequencesImpl () |
returns True if the database supports sequences | |
auto | tryExecArgsImpl (string sql, *softlist< auto > args) |
tries to execute a command so that if an error occurs the current transaction status is not lost | |
auto | tryExecRawImpl (string sql) |
tries to execute a command so that if an error occurs the current transaction status is not lost | |
Private Member Methods inherited from SqlUtil::AbstractSqlUtilBase | |
constructor (AbstractDatasource nds, *hash nopts) | |
creates the object; private constructor More... | |
transient Mutex | l () |
mutex for atomic actions | |
validateHashKeysForWhitespaces (auto node) | |
Check input node for all hash keys - if it contains a key with whitespace in the beginning or at the end -> error. | |
Private Attributes | |
bool | native_case = False |
native case option | |
Private Attributes inherited from SqlUtil::AbstractSqlUtilBase | |
transient AbstractDatasource | ds |
the connection to the database server | |
string | dsdesc |
datasource description | |
*hash< auto > | opts |
option hash | |
the base abstract class for the database implementation
SqlUtil::AbstractDatabase::computeStatistics | ( | *hash< auto > | options | ) |
Compute database statistics.
options | an optional database-specific option hash |
COMPUTE-STATISTICS-ERROR | in case of wrong options given |
|
private |
creates the object; private constructor
nds | the AbstractDatasource for the connection to the database |
nopts | a hash of options for the function creation string; see AbstractDatabase::DatabaseOptions for common options; each driver can support additional driver-specific options |
OPTION-ERROR | invalid or unsupported option passed |
bool SqlUtil::AbstractDatabase::dropFunctionIfExists | ( | string | name, |
*hash< auto > | opt | ||
) |
drops the given function if it exists; returns True if the function was dropped, False if not
name | the name of the function |
opt | optional callback options; see AbstractDatabase::CallbackOptions for more info |
OPTION-ERROR | invalid or unknown callback option |
bool SqlUtil::AbstractDatabase::dropProcedureIfExists | ( | string | name, |
*hash< auto > | opt | ||
) |
drops the given procedure if it exists; returns True if the procedure was dropped, False if not
name | the name of the procedure |
opt | optional callback options; see AbstractDatabase::CallbackOptions for more info |
OPTION-ERROR | invalid or unknown callback option |
bool SqlUtil::AbstractDatabase::dropSequenceIfExists | ( | string | name, |
*hash< auto > | opt | ||
) |
drops the given sequence if it exists; returns True if the sequence was dropped, False if not
name | the name of the sequence |
opt | optional callback options; see AbstractDatabase::CallbackOptions for more info |
OPTION-ERROR | invalid or unknown callback option |
bool SqlUtil::AbstractDatabase::dropTableIfExists | ( | string | name, |
*hash< auto > | opt | ||
) |
drops the given table if it exists; returns True if the table was dropped, False if not
name | the name of the table |
opt | optional callback options; see AbstractDatabase::CallbackOptions for more info |
OPTION-ERROR | invalid or unknown callback option |
bool SqlUtil::AbstractDatabase::dropViewIfExists | ( | string | name, |
*hash< auto > | opt | ||
) |
drops the given view if it exists; returns True if the view was dropped, False if not
name | the name of the view |
opt | optional callback options; see AbstractDatabase::CallbackOptions for more info |
OPTION-ERROR | invalid or unknown callback option |
list< auto > SqlUtil::AbstractDatabase::getAlignFunctionSql | ( | AbstractFunction | f, |
*hash< auto > | opt | ||
) |
returns a list of SQL strings that can be used to update a function in the database to the function definition passed as an argument
f | the template or target version of the function to compare to the database version |
opt | an optional hash of options for the generation of the SQL strings; see AbstractDatabase::CreationOptions for common options; each driver can support additional driver-specific options |
OPTION-ERROR | invalid or unsupported option passed |
list< auto > SqlUtil::AbstractDatabase::getAlignProcedureSql | ( | AbstractFunction | f, |
*hash< auto > | opt | ||
) |
returns a list of SQL strings that can be used to update a stored procedure in the database to the stored procedure definition passed as an argument
f | the template or target version of the stored procedure to compare to the database version |
opt | an optional hash of options for the generation of the SQL strings; see AbstractDatabase::CreationOptions for common options; each driver can support additional driver-specific options |
OPTION-ERROR | invalid or unsupported option passed |
list< auto > SqlUtil::AbstractDatabase::getAlignSql | ( | hash | schema_hash, |
*hash< auto > | opt, | ||
*Tables | table_cache | ||
) |
accepts a hash argument describing a database schema and returns a list of SQL strings that can be used to align the structure and configuration of the current schema with that of the argument; if the objects described are identical then an empty list is returned
schema_hash | the schema description hash that decribes the target state of the schema |
opt | a hash of options for the SQL creation strings; see AbstractDatabase::AlignSchemaOptions for common options; each driver can support additional driver-specific options |
table_cache | an optional object of class Tables to return the cache of AbstractTable objects keyed by table name for the schema template (ie target table definitions) |
SCHEMA-DESCRIPTION-ERROR | the schema description hash has an error or a required object does not exist |
OPTION-ERROR | invalid or unsupported option passed |
int SqlUtil::AbstractDatabase::getCurrentSequenceValue | ( | string | name | ) |
returns the last value issued for the given sequence in the current session
name | the name of the sequence |
*string SqlUtil::AbstractDatabase::getDropFunctionSqlIfExists | ( | string | name, |
*hash< auto > | opt | ||
) |
returns the SQL require to drop the given function if it exists or NOTHING if the named function does not exist
name | the name of the function |
opt | optional callback options; see AbstractDatabase::CallbackOptions for more info |
OPTION-ERROR | invalid or unknown callback option |
*string SqlUtil::AbstractDatabase::getDropProcedureSqlIfExists | ( | string | name, |
*hash< auto > | opt | ||
) |
returns the SQL require to drop the given procedure if it exists or NOTHING if the named procedure does not exist
name | the name of the procedure |
opt | optional callback options; see AbstractDatabase::CallbackOptions for more info |
OPTION-ERROR | invalid or unknown callback option |
list< auto > SqlUtil::AbstractDatabase::getDropSchemaSql | ( | hash | schema_hash, |
*hash< auto > | opt | ||
) |
accepts a hash argument describing a database schema and returns a list of SQL strings that can be used to drop any existing objects described in the schema; if none of the described objects exist, then an empty list is returned
schema_hash | the schema description hash that decribes the state of the schema |
opt | a hash of options for the SQL creation strings; see AbstractDatabase::DropSchemaOptions for common options; each driver can support additional driver-specific options |
SCHEMA-DESCRIPTION-ERROR | the schema description hash has an error |
OPTION-ERROR | invalid or unsupported option passed |
*string SqlUtil::AbstractDatabase::getDropSequenceSqlIfExists | ( | string | name, |
*hash< auto > | opt | ||
) |
returns the SQL require to drop the given sequence if it exists or NOTHING if the named sequence does not exist
name | the name of the sequence |
opt | optional callback options; see AbstractDatabase::CallbackOptions for more info |
OPTION-ERROR | invalid or unknown callback option |
*list< auto > SqlUtil::AbstractDatabase::getDropTableSqlIfExists | ( | string | name, |
*hash< auto > | opt | ||
) |
returns the SQL require to drop the given table if it exists or NOTHING if the named table does not exist
name | the name of the table |
opt | optional callback options; see AbstractDatabase::CallbackOptions for more info |
OPTION-ERROR | invalid or unknown callback option |
*AbstractFunction SqlUtil::AbstractDatabase::getFunction | ( | string | name | ) |
returns an AbstractFunction argument for the given function name or NOTHING if the function cannot be found
name | the uniquely-identifying name of the function to retrieve |
int SqlUtil::AbstractDatabase::getMaximumPrecision | ( | ) |
Returns the maximum precision for numeric or decimal columns.
int SqlUtil::AbstractDatabase::getNextSequenceValue | ( | string | name | ) |
returns the next value in the given sequence
name | the name of the sequence |
int SqlUtil::AbstractDatabase::getPhysicalSize | ( | ) |
Get the current database physical size in bytes.
*AbstractFunction SqlUtil::AbstractDatabase::getProcedure | ( | string | name | ) |
returns an AbstractFunction argument for the given stored procedure name or NOTHING if the stored procedure cannot be found
name | the uniquely-identifying name of the stored procedure to retrieve |
*AbstractSequence SqlUtil::AbstractDatabase::getSequence | ( | string | name | ) |
returns an AbstractSequence argument for the given sequence name or NOTHING if the sequence cannot be found
name | the uniquely-identifying name of the sequence to retrieve |
string SqlUtil::AbstractDatabase::getSqlFromList | ( | list | l | ) |
returns an SQL string corresponding to the list of commands in the argument
l | a list of SQL commands |
*AbstractTable SqlUtil::AbstractDatabase::getTable | ( | string | name | ) |
returns an AbstractTable argument for the given table name or NOTHING if the table cannot be found
name | the uniquely-identifying name of the table to retrieve |
*AbstractView SqlUtil::AbstractDatabase::getView | ( | string | name | ) |
returns an AbstractView argument for the given view name or NOTHING if the view cannot be found
name | the uniquely-identifying name of the view to retrieve |
AbstractFunction SqlUtil::AbstractDatabase::makeFunction | ( | string | name, |
string | src, | ||
*hash< auto > | opts | ||
) |
creates a database-specific AbstractFunction object corresponding to the arguments
name | the name of the function |
src | the database-specific source code of the function (see the database-specific documentation for information about the format of this parameter; generally it's simply the normal source code for the function required by the database) |
opts | an optional hash of options for the creation of the function; see AbstractDatabase::CreationOptions for common options; each driver can support additional driver-specific options |
OPTION-ERROR | invalid or unsupported option passed |
AbstractFunction SqlUtil::AbstractDatabase::makeProcedure | ( | string | name, |
string | src, | ||
*hash< auto > | opt | ||
) |
creates a database-specific AbstractFunction object for a stored procedure corresponding to the arguments
name | the name of the stored procedure |
src | the database-specific source code of the stored procedure (see the database-specific documentation for information about the format of this parameter; generally it's simply the normal source code for the stored procedure required by the database) |
opt | an optional hash of options for the creation of the stored procedure; see AbstractDatabase::CreationOptions for common options; each driver can support additional driver-specific options |
OPTION-ERROR | invalid or unsupported option passed |
|
inline |
creates a database-specific AbstractSequence object corresponding to the arguments
name | the name of the sequence |
start | the starting value of the sequence |
increment | the increment value of the sequence |
end | the endinf value of the sequence, omit for no ending value |
opts | an optional hash of options for the creation of the sequence; see AbstractDatabase::CreationOptions for common options; each driver can support additional driver-specific options |
OPTION-ERROR | invalid or unsupported option passed |
SEQUENCE-ERROR | end not compatible with start and increment, increment is zero |
AbstractTable SqlUtil::AbstractDatabase::makeTable | ( | string | name, |
hash< auto > | desc, | ||
*hash< auto > | opts | ||
) |
creates a database-specific AbstractTable object corresponding to the arguments
name | the name of the table |
desc | a table description hash describing the table |
opts | an optional hash of options for the table creation string; see SqlUtil::AbstractTable::TableOptions for common options; each driver can support additional driver-specific options |
OPTION-ERROR | invalid or unsupported option passed |
bool SqlUtil::AbstractDatabase::rebuildIndex | ( | AbstractIndex | index, |
*hash< auto > | options | ||
) |
Rebuild an index in the DB.
See Index Management
index | an AbstractIndex object |
options | an optional database-specific option hash |
REBUILD-INDEX-ERROR | in case of MySQL or in case of wrong options given |
bool SqlUtil::AbstractDatabase::rebuildIndex | ( | string | name, |
*hash< auto > | options | ||
) |
Rebuild an index in the DB.
See Index Management
name | an index name |
options | an optional database-specific option hash |
REBUILD-INDEX-ERROR | in case of MySQL or in case of wrong options given |
SqlUtil::AbstractDatabase::reclaimSpace | ( | *hash< auto > | options | ) |
Reclaim taken but unused space in the DB.
See Space Management
options | an optional database-specific option hash |
RECLAIM-SPACE-ERROR | in case of wrong options given |
bool SqlUtil::AbstractDatabase::requiresScale | ( | ) |
auto SqlUtil::AbstractDatabase::tryExec | ( | string | sql | ) |
executes some SQL with optional arguments so that if an error occurs the current transaction state is not lost
Include any arguments in the parameter list after the sql argument
sql | the SQL to execute |
auto SqlUtil::AbstractDatabase::tryExecArgs | ( | string | sql, |
*softlist< auto > | args | ||
) |
executes some SQL with optional arguments so that if an error occurs the current transaction state is not lost
sql | the SQL to execute |
args | the bind / placeholder or other arguments corresponding to the SQL string |
auto SqlUtil::AbstractDatabase::tryExecRaw | ( | string | sql | ) |
executes some SQL so that if an error occurs the current transaction state is not lost
Include any arguments in the parameter list after the sql argument
sql | the SQL to execute |
const SqlUtil::AbstractDatabase::AlignSchemaOptions = ... |
default generic schema description / alignment options
Currently this option is identical to AbstractDatabase::CreationOptions plus the following keys:
const SqlUtil::AbstractDatabase::CacheOptions = ... |
generic cache options
The following keys can be set for this option:
table_cache:
(Tables) an optional table cache for maintaining cached tables and foreign key relationships between tables const SqlUtil::AbstractDatabase::CallbackOptions = ... |
generic callback options
The following keys can be set for this option:
info_callback:
see SQL Info CallBack Closure or Call Ceferencesql_callback:
see SQL Raw/DDL CallBack Closure or Call Ceferencesql_callback_executed:
see SQL CallBack Executed Flag const SqlUtil::AbstractDatabase::CreationOptions = ... |
default generic creation options
This option is comprised of AbstractDatabase::CallbackOptions plus the following keys:
replace:
(bool) if True and supported by the underlying db driver, "create or replace"
text is used when creating objectstable_cache:
(Tables) an optional table cache for maintaining cached tables and foreign key relationships between tablesdata_tablespace:
(string) a string giving the data tablespace to use for tablesindex_tablespace:
(string) a string giving the index tablespace to use for indexes const SqlUtil::AbstractDatabase::DatabaseOptions = ... |
const SqlUtil::AbstractDatabase::DropSchemaOptions = ... |
default generic drop schema options
Currently this option is identical to AbstractDatabase::CallbackOptions plus the following keys:
const SqlUtil::AbstractDatabase::SchemaDescriptionOptions = ... |
default generic schema description keys
The following keys can be set in schema description hashes:
tables:
a hash keyed by table name set to table description hash valuestable_map:
a hash for automatically renaming tables; if the source name (key) exists and the target name (value) does not exist, then the source table is automatically renamedsequences:
a hash keyed by sequence name set to sequence hash<auto> description valuessequence_map:
a hash for automatically renaming sequences; if the source name (key) exists and the target name (value) does not exist, then the source sequence is automatically renamedfunctions:
a hash keyed by function name set to function source string valuesfunction_map:
a hash for automatically renaming functions; if the source name (key) exists and the target name (value) does not exist, then the source function is automatically renamedprocedures:
a hash keyed by procedure name set to procedure source string valuesprocedure_map:
a hash for automatically renaming procedures; if the source name (key) exists and the target name (value) does not exist, then the source procedure is automatically renamedconst SqlUtil::AbstractDatabase::SequenceDescriptionOptions = ... |