 |
Qore SqlUtil Module Reference
1.6
|
46 "table_cache":
"Tables",
66 "table_cache":
"Tables",
74 "table_cache":
"Tables",
91 "orderby":
"softstringinthashlist",
96 "groupby":
"softstringinthashlist",
105 "foreign_constraints":
True,
114 "omit":
"softstringlist",
131 "db_table_cache":
"Tables",
155 "table_cache":
"Tables",
200 "sqlarg_callback":
"code",
215 "returning":
"stringhashlist",
226 "info_callback":
"code",
229 "omit_update":
"softstringlist",
238 "info_callback":
"code",
401 hash m_customCopMap = {};
439 doTableOptions(*
hash nopts);
658 doRenameIntern(
string new_name, *
Tables table_cache);
691 bool emptyUnlocked();
767 AbstractColumn addColumnUnlocked(
string cname, hash<auto> opt,
bool nullable =
True, *reference lsql,
bool do_exec =
True,
bool modify_table =
True);
885 validateOptionsIntern(
string err,
hash ropt, reference<hash> opt);
890 validateOptionsIntern(
string err,
hash ropt, reference<hash> opt,
string tag);
895 execSql(softlist lsql);
955 AbstractPrimaryKey addPrimaryKeyUnlocked(
string pkname, softlist cols, *hash<auto> opt, *reference<string> sql);
960 AbstractPrimaryKey addPrimaryKeyUnlockedIntern(
string pkname, softlist cols, *hash<auto> opt, *reference<string> sql);
985 list<auto> getDropAllConstraintsAndIndexesOnColumnSqlUnlocked(
string cname, *hash<auto> opt);
1084 AbstractUniqueConstraint addUniqueConstraintUnlocked(
string cname, softlist cols, *hash<auto> opt, *reference<string> sql);
1089 AbstractUniqueConstraint addUniqueConstraintUnlockedIntern(
string cname, softlist cols, *hash<auto> opt, *reference<string> sql);
1140 string getAddIndexSql(
string iname,
bool unique, softlist cols, *hash<auto> ixopt, *hash<auto> opt);
1144 AbstractIndex addIndexUnlocked(
string iname,
bool unique, softlist cols, *hash<auto> opt, *reference<string> sql);
1149 AbstractIndex addIndexUnlockedIntern(
string iname,
bool unique, softlist cols, *hash<auto> opt, *reference<string> sql);
1267 Columns getReferencedTableColumnsUnlocked(
string table, *
Tables cache,
string err =
'FOREIGN-CONSTRAINT-ERROR');
1272 AbstractForeignConstraint addForeignConstraintUnlocked(
string cname, softlist cols,
string table, *softlist tcols, *hash<auto> opt, *reference<string> sql);
1277 AbstractForeignConstraint addForeignConstraintUnlockedIntern(
string cname, softlist cols,
string table, *softlist tcols, *hash<auto> opt, *reference<string> sql);
1373 AbstractCheckConstraint addCheckConstraintUnlocked(
string cname,
string src, *hash<auto> opt, *reference<string> sql);
1378 AbstractCheckConstraint addCheckConstraintUnlockedIntern(
string cname,
string src, *hash<auto> opt, *reference<string> sql);
1522 AbstractTrigger addTriggerUnlocked(
string tname,
string src, *hash<auto> opt, *reference lsql);
1527 AbstractTrigger addTriggerUnlockedIntern(
string tname,
string src, *hash<auto> opt, *reference lsql);
1577 getAllConstraintsUnlocked(*hash<auto> opt);
1582 checkUniqueConstraintName(
string err,
string cname);
1587 checkUniqueConstraintNameValidateOptions(
string err,
string cname,
hash ropt, reference<hash> opt);
1679 *hash<auto>
insertCommit(hash<auto> row, reference<string> sql, hash<auto> opt);
1703 *hash<auto>
insert(hash<auto> row, reference<string> sql);
1711 *hash<auto>
insert(hash<auto> row, hash<auto> opt);
1720 *hash<auto>
insert(hash<auto> row, reference<string> sql, hash<auto> opt);
1724 deprecated *hash<auto>
insertNoCommit(hash<auto> row, *reference<string> sql, *hash<auto> opt);
1730 *hash<auto> insertIntern(hash<auto> row, *reference<string> sql, *hash<auto> opt);
1735 hash<auto> getPlaceholdersAndValues(hash<auto> row);
1828 int insertFromSelectIntern(
list cols,
AbstractTable source, *hash<auto> sh, *reference<string> sql, *hash<auto> opt);
2089 *hash<auto> doDeleteOthersIntern(
hash pkh, *hash<auto> opt);
2410 *hash<auto>
selectRow(*hash<auto> sh, *reference<string> sql, *hash<auto> opt);
2454 *hash<auto>
select(*hash<auto> sh, *reference<string> sql, *hash<auto> opt);
2518 *hash<auto>
select(*hash<auto> sh, *hash<auto> opt);
2546 string getSelectSqlIntern(*hash<auto> qh, reference<list<auto>> args, *hash<auto> opt);
2549 string getSelectSqlUnlocked(*hash<auto> qh, reference<list<auto>> args, *hash<auto> opt);
2553 string getSelectSqlUnlockedIntern(*hash<auto> qh,
string from, reference<list<auto>> args, *hash<auto> ch, *hash<auto> opt);
2561 string getFromIntern(
string from, *hash<auto> qh);
2566 list<auto> getGroupByListUnlocked(hash<auto> qh, *hash<auto> jch, *hash<auto> ch, *hash<auto> psch,
list coll);
2571 list<auto> getOrderByListUnlocked(hash<auto> qh, *hash<auto> jch, *hash<auto> ch, *hash<auto> psch,
list coll);
2576 list<auto> getGroupOrderByListUnlocked(
string key, hash<auto> qh, *hash<auto> jch, *hash<auto> ch, *hash<auto> psch,
list coll);
2581 doForUpdate(reference<string> sql);
2586 string getSelectSqlName(*hash<auto> qh);
2591 string getColumnExpressionIntern(
auto cvc, *hash<auto> jch,
bool join, *hash<auto> ch, *hash<auto> psch);
2596 string doColumnOperatorIntern(
hash cvc, *hash<auto> jch,
bool join, *hash<auto> ch, *hash<auto> psch, *reference psch_ref);
2601 string doColumnOperatorIntern(
auto cop,
auto arg, *
string cve,
hash cm, *hash<auto> jch,
bool join, *hash<auto> ch, *hash<auto> psch, *reference psch_ref);
2606 string getColumnNameIntern(
string cv, *hash<auto> jch,
bool join, *hash<auto> ch, *hash<auto> psch);
2617 getSelectWhereSqlUnlocked(reference<string> sql, reference<list<auto>> args, *hash<auto> qh, *hash<auto> jch,
bool join =
False, *hash<auto> ch, *hash<auto> psch);
2622 *
string getWhereClause(*
hash cond, reference<list<auto>> args, *
string cprefix, *hash<auto> jch,
bool join =
False);
2627 *
string getWhereClause(
list cond, reference<list<auto>> args, *
string cprefix, *hash<auto> jch,
bool join =
False);
2632 *
string getWhereClauseUnlocked(
list cond, reference<list<auto>> args, *
string cprefix, *hash<auto> jch,
bool join =
False, *
hash pch, *hash<auto> psch);
2637 *
string getWhereClauseUnlocked(*
hash cond, reference<list<auto>> args, *
string cprefix, *hash<auto> jch,
bool join =
False, *
hash pch, *hash<auto> psch);
2642 *list<string> getWhereClauseIntern(*
hash cond, reference<list<auto>> args, *
string cprefix, *hash<auto> jch,
bool join =
False, *hash<auto> ch, *hash<auto> psch, *hash<auto> opt);
2647 string doWhereExpressionIntern(
string cn,
auto we, reference<list<auto>> args, *hash<auto> jch,
bool join =
False, *hash<auto> ch, *hash<auto> psch, *hash<auto> opt);
2651 string getOrClause(list<auto> arglist, reference<list<auto>> args, *hash<auto> jch,
bool join =
False, *hash<auto> ch, *hash<auto> psch);
2654 string getOrClause(hash<auto> arg, reference<list<auto>> args, *hash<auto> jch,
bool join =
False, *hash<auto> ch, *hash<auto> psch);
2658 doSelectOrderBySqlUnlocked(reference<string> sql, reference<list<auto>> args, *hash<auto> qh, *hash<auto> jch, *hash<auto> ch, *hash<auto> psch,
list coll);
2713 int del(
hash cond, reference<string> sql, hash<auto> opt);
2736 int delIntern(*
hash cond, *reference<string> sql, *hash<auto> opt);
2837 int updateIntern(hash<auto> set, *hash<auto> cond, *reference<string> sql, *hash<auto> opt);
2842 string getUpdateExpression(
string col, hash<UpdateOperatorInfo> uh);
2847 bool emptyDataIntern();
2852 Columns checkUpsertRow(hash<auto> row, reference<int> upsert_strategy);
2857 code getUpsertInsertFirst(
Columns cols,
hash example_row, *hash<auto> opt);
2862 code getUpsertUpdateFirst(
Columns cols,
hash example_row, *hash<auto> opt);
2867 code getUpsertSelectFirst(
Columns cols,
hash example_row, *hash<auto> opt);
2872 code getUpsertInsertOnly(
Columns cols,
hash example_row, *hash<auto> opt);
2877 code getUpsertUpdateOnly(
Columns cols,
hash example_row, *hash<auto> opt);
2882 Columns getUpsertColumns(reference csrc);
2887 string getUpsertSelectSql(hash<auto> row,
Columns cols, reference<list<string>> updc);
2892 string getUpsertInsertSql(hash<auto> row);
2897 string getUpsertUpdateSql(hash<auto> row,
Columns cols, reference updc, *hash<auto> opt);
2902 softbool tryUpdate(
string sql, hash<auto> row,
Columns cols,
list updc);
2907 checkValue(
string cname,
string argname, reference val,
string type);
3112 *hash<string, bool> getCheckOmissionOptions(*softlist<softstring> ol,
string err);
3136 list<auto> getAlignSqlUnlocked(
AbstractTable t, *hash<auto> opt);
3294 string getPrimaryKeyColumn();
3421 AbstractDataProviderType
getColumnDataType(
string column_name, *hash<SqlUtilDataTypeOptionInfo> options);
3427 AbstractDataProviderType
getDbType(
string native_type, *
string qore_type,
bool nullable,
int max_size = -1, *hash<SqlUtilDataTypeOptionInfo> options);
3433 AbstractDataProviderType
getNumericType(
string type_name,
bool nullable, *hash<auto> options);
3678 string getCreateTableSqlUnlocked(*hash<auto> opt);
3683 *list<auto> getCreateIndexesSqlUnlocked(*hash<auto> opt,
bool cache =
True);
3688 *
string getCreatePrimaryKeySqlUnlocked(*hash<auto> opt,
bool cache =
True);
3693 *list<auto> getCreateConstraintsSqlUnlocked(*hash<auto> opt,
bool cache =
True);
3698 *list<auto> getCreateForeignConstraintsSqlUnlocked(*hash<auto> opt,
bool cache =
True);
3703 *list<auto> getCreateMiscSqlUnlocked(*hash<auto> opt,
bool cache =
True);
3708 *list<auto> getCreateTriggersSqlUnlocked(*hash<auto> opt,
bool cache =
True);
3713 list<auto> getCreateSqlUnlocked(*hash<auto> opt,
bool cache =
True);
3718 cacheUnlocked(*hash<auto> opt);
3723 auto execData(*hash<auto> opt,
string sql, *list<auto> args);
3728 execData(AbstractSQLStatement stmt, *hash<auto> opt, *list<auto> args);
3732 static AbstractTable getTable(AbstractDatasource nds,
string nname, *hash<auto>
opts);
3739 getColumnsUnlocked();
3744 getPrimaryKeyUnlocked();
3750 getIndexesUnlocked();
3755 getForeignConstraintsUnlocked(*hash<auto> opt);
3765 getConstraintsUnlocked();
3770 getTriggersUnlocked();
3781 softlist<auto> getDropSqlImpl();
3786 string getTruncateSqlImpl();
3809 preSetupTableImpl(reference desc, *hash<auto> opt);
3817 abstract AbstractDataProviderType
getNumericTypeImpl(
string type_name,
bool nullable, *hash<auto> options);
3821 abstract *hash<auto> doReturningImpl(hash<auto> opt, reference<string> sql, list<auto> args);
3825 abstract bool emptyImpl();
3857 abstract setupTableImpl(hash<auto> desc, *hash<auto> opt);
3861 abstract Columns describeImpl();
3867 abstract Indexes getIndexesImpl();
3876 abstract Triggers getTriggersImpl();
3880 abstract string getCreateTableSqlImpl(*hash<auto> opt);
3883 abstract *list<auto> getCreateMiscSqlImpl(*hash<auto> opt,
bool cache);
3886 abstract string getCreateSqlImpl(list<auto>
l);
3889 abstract string getRenameSqlImpl(
string new_name);
3892 abstract *list<auto> getAlignSqlImpl(
AbstractTable t, *hash<auto> opt);
3896 abstract AbstractColumn addColumnImpl(
string cname, hash<auto> opt,
bool nullable =
True);
3899 abstract AbstractPrimaryKey addPrimaryKeyImpl(
string cname, hash<auto> ch, *hash<auto> opt);
3902 abstract AbstractIndex addIndexImpl(
string iname,
bool enabled, hash<auto> ch, *hash<auto> opt);
3905 abstract AbstractForeignConstraint addForeignConstraintImpl(
string cname, hash<auto> ch,
string table, hash<auto> tch, *hash<auto> opt);
3915 abstract AbstractTrigger addTriggerImpl(
string tname,
string src, *hash<auto> opt);
const TableOptions
table options
Definition: AbstractTable.qc.dox.h:44
int insertFromSelectCommit(list cols, AbstractTable source, hash< auto > sh, reference< string > sql)
SqlUtil::AbstractTable::insertFromSelectCommit() variant
AbstractIndex renameIndex(string old_name, string new_name, reference< string > sql)
renames an existing index; if the table is already known to be in the database, then the changes are ...
string getSqlName()
returns the name of the table to be used in SQL (with a possible qualifier for schema,...
deprecated *hash upsertFromIteratorNoCommit(Qore::AbstractIterator i, int upsert_strategy=AbstractTable::UpsertAuto, *hash< auto > opt)
A legacy SqlUtik::AbstractTable::upsertFromIterator() wrapper.
*hash< auto > insertCommit(hash< auto > row, reference< string > sql)
SqlUtil::AbstractTable::insertCommit() variant
Constraints constraints
constraint descriptions
Definition: AbstractTable.qc.dox.h:391
auto tryExecArgs(string sql, *softlist< auto > args)
executes some SQL with optional arguments so that if an error occurs the current transaction state is...
string getCreateTableSql(*hash< auto > opt)
returns an SQL string that could be used to create the basic table structure without indexes and cons...
AbstractDataProviderType getNumericType(string type_name, bool nullable, *hash< auto > options)
returns the type for number / numeric columns for the database so that data conversions can be handle...
hash< auto > getSqlDataCallbackOptions()
returns the sql data operation callback options for this driver
create(*hash< auto > opt)
creates the table with all associated properties (indexes, constraints, etc) without any transaction ...
Qore::SQL::AbstractSQLStatement getStatementNoExec(*hash< auto > sh, *hash< auto > opt)
returns an AbstractSQLStatement object that will iterate the results of a select statement matching t...
int del(hash cond, reference< string > sql)
SqlUtil::AbstractTable::del() variant
*list selectRows(*hash< auto > sh, *hash< auto > opt)
returns a list of hashes representing the rows in the table that match the argument hash
AbstractUniqueConstraint addUniqueConstraint(string cname, softlist cols, *hash< auto > opt, *reference< string > sql)
adds a unique constraint to the table; if the table is known to be in the database already,...
bool manual
manual edits
Definition: AbstractTable.qc.dox.h:399
AbstractPrimaryKey getPrimaryKey()
returns an object of class AbstractPrimaryKey describing the primary key of the table
bool inDb
in database
Definition: AbstractTable.qc.dox.h:397
*list< auto > findAll(*hash< auto > cond)
finds all rows in the table with the given column values; a list of hashes is returned representing t...
bool asteriskRequiresPrefix()
returns True if the database requires a wildcard "*" to be prefixed with the table name when it appea...
int update(hash set, hash cond, hash< auto > opt)
A SqlUtil::AbstractTable::update() variant.
clearImpl()
clears any driver-specific table information
const UpsertSelectFirst
Upsert option: select first, if the row is unchanged, do nothing, if it doesn't exist,...
Definition: AbstractTable.qc.dox.h:280
hash< auto > getInsertOperatorMap()
returns the insert operator map for this object
hash< SqlCommandInfo > getUpdateSql(hash< auto > set, *hash< auto > cond)
Returns the SQL for the given update parameters.
code getUpsertClosure(hash< auto > row, int upsert_strategy=UpsertAuto, *hash< auto > opt)
returns a closure that can be executed given a hash argument representing a single row that will be u...
*list< auto > getCreateTriggersSql(*hash< auto > opt, bool cache=True)
returns a list of SQL strings that could be used to create triggers on the table or NOTHING if there ...
the base class for triggers
Definition: SqlUtil.qm.dox.h:6385
represents a unique column constraint
Definition: SqlUtil.qm.dox.h:6101
foreign constraint container class that throws an exception if an unknown constraint is accessed
Definition: SqlUtil.qm.dox.h:6121
Qore::SQL::SQLStatement getRowIterator(*hash< auto > sh, *hash< auto > opt)
returns an SQLStatement object that will iterate the results of a select statement matching the argum...
const UR_Verified
row was updated unconditionally (not returned with UpsertSelectFirst)
Definition: AbstractTable.qc.dox.h:336
*hash< auto > insert(hash< auto > row, hash< auto > opt)
SqlUtil::AbstractTable::insert() variant
setDatasource(AbstractDatasource nds)
changes the datasource for the table; if the inDb flag is True, then it is set to False by calling th...
AbstractPrimaryKey dropPrimaryKey(*reference lsql)
drops the primary key from the table; if the table is known to be in the database already,...
AbstractPrimaryKey primaryKey
primary key description
Definition: AbstractTable.qc.dox.h:385
string getAddIndexSql(string iname, bool unique, softlist cols, *hash< auto > ixopt, *hash< auto > opt)
returns an SQL string that can be used to add an index to the table
Triggers triggers
trigger descriptions
Definition: AbstractTable.qc.dox.h:393
abstract bool constraintsLinkedToIndexesImpl()
returns True if the database links constraints to indexes (ie dropping the constraint drops the index...
truncate()
truncates all the table data without any transaction management
*hash< auto > insertCommit(hash< auto > row, hash< auto > opt)
SqlUtil::AbstractTable::insertCommit() variant
const InsertOptions
generic SQL insert options
Definition: AbstractTable.qc.dox.h:214
abstract bool uniqueIndexCreatesConstraintImpl()
returns True if the database automatically creates a unique constraint when a unique index is created...
deprecated int updateNoCommit(hash set, *hash cond, *reference< string > sql)
A legacy SqlUtil::AbstractTable::update() wrapper.
AbstractIndex dropIndex(string iname, *reference< string > sql)
drops the given index from the table; if the table is known to be in the database already,...
int del()
SqlUtil::AbstractTable::del() variant
const TriggerOptions
default trigger options
Definition: AbstractTable.qc.dox.h:80
AbstractTable getSubtableFromString(string table, *hash< auto > opt)
Returns the given table from the argument, using any "tablecode" option if present.
rollback()
rolls back the current transaction on the underlying Qore::SQL::AbstractDatasource
const UpsertResultMap
hash mapping upsert results to a description
Definition: AbstractTable.qc.dox.h:351
string getDropConstraintSql(string cname, *hash< auto > opt)
gets the SQL that can be used to drop a constraint from the table; this can be any constraint on the ...
deprecated *hash< auto > insertNoCommit(hash< auto > row, *reference< string > sql, *hash< auto > opt)
A legacy wrapper for SqlUtil::AbstractTable::insert()
abstract copyImpl(AbstractTable old)
db-specific copy actions
AbstractPrimaryKey addPrimaryKey(string pkname, softlist cols, *hash< auto > opt, *reference< string > sql)
adds a primary key to the table; if the table is already known to be in the database,...
*hash find(auto id)
finds a row in the table with the given primary key value; if no row matches the primary key value pa...
auto tryExecRaw(string sql)
executes some SQL so that if an error occurs the current transaction state is not lost
const ColumnDescOptions
Column description options.
Definition: AbstractTable.qc.dox.h:171
int update(hash set, hash cond, reference< string > sql, hash< auto > opt)
updates rows in the table matching an optional condition and returns the count of rows updated; no tr...
Columns columns
column description object
Definition: AbstractTable.qc.dox.h:383
*list< auto > getCreateConstraintsSql(*hash< auto > opt, bool cache=True)
returns a list of SQL strings that could be used to create non-foreign constraints on the table or NO...
*hash< auto > insert(hash< auto > row, reference< string > sql)
SqlUtil::AbstractTable::insert() variant
int insertFromSelectCommit(list cols, AbstractTable source)
SqlUtil::AbstractTable::insertFromSelectCommit() variant
*hash< auto > select(*hash< auto > sh, *reference< string > sql, *hash< auto > opt)
returns a hash of lists representing the columns and rows in the table that match the argument hahs
bool inDb()
returns True if the table has been read from or created in the database, False if not
AbstractIndex addIndex(string iname, bool unique, softlist cols, *hash< auto > opt, *reference< string > sql)
adds an index to the table; if the table is already known to be in the database, then it is added in ...
deprecated int insertFromIteratorNoCommit(Qore::AbstractIterator i, *hash< auto > opt)
A legacy SqlUtil::AbstractTable::insertFromIterator() wrapper.
Qore::SQL::SQLStatement getRowIterator(*hash< auto > sh, *reference< string > sql, *hash< auto > opt)
returns an SQLStatement object that will iterate the results of a select statement matching the argum...
int insertFromSelect(list cols, AbstractTable source)
SqlUtil::AbstractTable::insertFromSelectCommit() variant
*list find(list ids)
finds rows in the table with the given primary key values; if no row matches any primary key value pa...
*AbstractUniqueConstraint findUniqueConstraint(string name)
returns the given AbstractUniqueConstraint object if defined for the table (also includes the primary...
const TableCreationOptions
table creation options
Definition: AbstractTable.qc.dox.h:113
int insertFromSelectCommit(list cols, AbstractTable source, hash< auto > sh, reference< string > sql, hash< auto > opt)
inserts rows into a table based on a select statement from another table (which must be using the sam...
const UpsertInsertFirst
Upsert option: insert first, if the insert fails, then update.
Definition: AbstractTable.qc.dox.h:263
const SqlDataCallbackOptions
generic SQL data operation callbacks
Definition: AbstractTable.qc.dox.h:199
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
abstract bool checkExistenceImpl()
returns True if the table exists in the DB, False if not
base class for abstract SqlUtil classes
Definition: AbstractSqlUtilBase.qc.dox.h:34
bool bindEmptyStringsAsNull()
returns True if the DB treats empty strings as NULL, False if not; by default this method returns Fal...
copy(AbstractTable old)
copies the object
abstract bool tryInsertImpl(string sql, hash< auto > row)
tries to insert a row, if there is a duplicate key, then it returns False, if successful,...
AbstractForeignConstraint dropForeignConstraint(string cname, *reference< string > sql)
drops a foreign constraint from the table; if the table is known to be in the database already,...
int updateCommit(hash set, hash cond, hash< auto > opt)
A SqlUtil::AbstractTable::updateCommit() variant.
int insertFromSelect(list cols, AbstractTable source, hash< auto > sh)
SqlUtil::AbstractTable::insertFromSelectCommit() variant
const UR_Inserted
row was inserted
Definition: AbstractTable.qc.dox.h:333
softint rowCount()
returns the number of rows in the table
int updateCommit(hash set, hash cond, reference< string > sql, hash< auto > opt)
updates rows in the table matching an optional condition and returns the count of rows updated; the t...
the base class for foreign key constraint information
Definition: SqlUtil.qm.dox.h:6187
*hash< auto > find(hash< auto > row)
finds a row in the table with the given primary key value given as a hash; if no row matches the prim...
*hash< auto > insert(hash< auto > row)
inserts a row into the table without any transaction management; a transaction will be in progress af...
const UR_Deleted
row was deleted (only possible with batch upsert methods such as AbstractTable::upsertFromIterator() ...
Definition: AbstractTable.qc.dox.h:345
const TableDescriptionHashOptions
Table description options.
Definition: AbstractTable.qc.dox.h:147
AbstractColumn addColumn(string cname, hash< auto > opt, bool nullable=True, *reference lsql)
adds a column to the table; if the table is already known to be in the database, then it is added in ...
Qore::SQL::AbstractSQLStatement getStatement(*hash< auto > sh, *reference< string > sql, *hash< auto > opt)
returns an AbstractSQLStatement object that will iterate the results of a select statement matching t...
*hash upsertFromSelectCommit(Table t, *hash< auto > sh, int upsert_strategy=AbstractTable::UpsertAuto, *hash< auto > opt)
SqlUtil::AbstractTable::upsertFromSelectCommit() variant
const ConstraintOptions
default constraint options
Definition: AbstractTable.qc.dox.h:62
const IndexOptions
default index options
Definition: AbstractTable.qc.dox.h:54
setupTable(hash< auto > desc, *hash< auto > opt)
creates the object from a table description hash
*hash< string, AbstractDataField > getRecordType()
returns a record description for the table
deprecated createNoCommit(*hash< auto > opt)
A legacy wrapper for create()
deprecated *hash upsertFromSelectNoCommit(Table t, *hash< auto > sh, int upsert_strategy=AbstractTable::UpsertAuto, *hash< auto > opt)
A legacy SqlUtil::AbstractTable::upsertFromSelect() wrapper.
represents a database table; this class embeds an AbstractTable object that is created automatically ...
Definition: Table.qc.dox.h:50
string getSqlFromList(list< auto > l)
returns an SQL string corresponding to the list of commands in the argument
*hash< auto > selectRow(*hash< auto > sh, *reference< string > sql, *hash< auto > opt)
returns a hash representing the row in the table that matches the argument hash; if more than one row...
AbstractForeignConstraint removeForeignConstraint(string cname)
removes the named foreign constraint from the table; no SQL is executed in any case,...
int delCommit(hash cond, reference< string > sql)
SqlUtil::AbstractTable::delCommit() variant
list< auto > getDropTriggerSql(string tname, *hash< auto > opt)
returns SQL that can be used to drop the given trigger from the table
hash< auto > getCacheOptions()
returns the cache options for this driver
const UpsertStrategyMap
hash mapping upsert strategy codes to a text description
Definition: AbstractTable.qc.dox.h:306
string getAddUniqueConstraintSql(string cname, softlist cols, *hash ukopt, *hash< auto > opt)
returns an SQL string that can be used to add a unique constraint to the table
*hash< auto > findSingle(*hash< auto > cond)
finds a single row in the table that match the row condition passed; multiple rows may match,...
hash< auto > getForeignConstraintOptions()
return the foreign constraint options for this driver
int update(hash set, hash cond)
A SqlUtil::AbstractTable::update() variant.
const UpsertAuto
Upsert option: if the target table is empty, use UpsertInsertFirst, otherwise use UpsertUpdateFirst.
Definition: AbstractTable.qc.dox.h:287
cache(*hash< auto > opts)
reads in all attributes of the table from the database
hash< auto > getIndexOptions()
returns the index options for this driver
const UR_Unchanged
row was unchanged (only possible with UpsertSelectFirst, UpsertInsertOnly, and UpsertUpdateOnly)
Definition: AbstractTable.qc.dox.h:342
abstract doSelectLimitOnlyUnlockedImpl(reference< string > sql, reference< list< auto >> args, *hash< auto > qh)
processes a string for use in SQL select statements when there is a "limit" argument,...
AbstractColumn renameColumn(string old_name, string new_name, reference< string > sql)
renames an existing column; if the table is already known to be in the database, then the changes are...
Indexes getIndexes()
returns an object of class Indexes describing the indexes on the table
int update(hash set, hash cond, reference< string > sql)
A SqlUtil::AbstractTable::update() variant.
string getName()
returns the name of the table
hash< auto > getInsertFromIteratorOptions()
returns the insert from iterator options for this driver
bool hasReturning()
returns True if the current database driver supports the "returning" clause in insert statements,...
abstract bool supportsTablespacesImpl()
returns True if the database support tablespaces
const AdditionalColumnDescOptions
additional column description keys valid when describing columns in a table description hash
Definition: AbstractTable.qc.dox.h:187
deprecated *hash upsertFromSelect(Table t, *hash< auto > sh, int upsert_strategy=AbstractTable::UpsertAuto, *hash< auto > opt)
SqlUtil::AbstractTable::upsertFromSelect() variant
*hash< auto > opts
option hash
Definition: AbstractSqlUtilBase.qc.dox.h:41
deprecated *hash upsertFromSelectNoCommit(AbstractTable t, *hash< auto > sh, int upsert_strategy=AbstractTable::UpsertAuto, *hash< auto > opt)
A legacy SqlUtil::AbstractTable::upsertFromSelect() wrapper.
*hash< auto > selectRow(*hash< auto > sh, *hash< auto > opt)
returns a hash representing the row in the table that matches the argument hash; if more than one row...
the base class for column information
Definition: SqlUtil.qm.dox.h:5642
hash< auto > getUpsertOptions()
returns the upsert options for this driver
const UpsertResultLetterMap
maps upsert result codes to single letter symbols
Definition: AbstractTable.qc.dox.h:371
the abstract base class for index information
Definition: SqlUtil.qm.dox.h:5817
deprecated int upsertNoCommit(hash< auto > row, int upsert_strategy=UpsertAuto)
A legacy SqlUtil::AbstractTable::upsert() wrapper.
hash< auto > getTableDescriptionHashOptions()
returns the table description hash<auto> options for this driver
list< auto > getDropColumnSql(string cname, *hash< auto > opt)
returns the SQL that can be used to drop a column from the table
int insertFromSelectCommit(list cols, AbstractTable source, hash< auto > sh, hash< auto > opt)
SqlUtil::AbstractTable::insertFromSelectCommit() variant
*hash upsertFromIteratorCommit(Qore::AbstractIterator i, int upsert_strategy=AbstractTable::UpsertAuto, *hash< auto > opt)
this method upserts or merges data from the given iterator argument (whose getValue() method must ret...
Abstract base class for savepoint helpers for epheremal transaction support.
Definition: AbstractSavepointHelper.qc.dox.h:33
const TableOmissionOptions
alignment omission options
Definition: AbstractTable.qc.dox.h:103
string getTruncateSql(*hash< auto > opt)
gets the SQL that can be used to truncate the table
const UpsertStrategyDescriptionMap
hash mapping upsert strategy descriptions to upsert strategy codes
Definition: AbstractTable.qc.dox.h:318
*string getDropConstraintIfExistsSql(string cname, *hash< auto > opt, *reference< AbstractConstraint > cref)
gets the SQL that can be used to drop a constraint from the table if it exists, otherwise returns NOT...
deprecated int delNoCommit(*hash cond, *reference< string > sql)
A legacy SqlUtil::AbstractTable::del() wrapper.
int upsertCommit(hash< auto > row, int upsert_strategy=UpsertAuto, *hash< auto > opt)
update or insert the data in the table according to the hash argument; the table must have a unique k...
const UR_Updated
row was updated because it was different (only possible with UpsertSelectFirst)
Definition: AbstractTable.qc.dox.h:339
AbstractDataField getColumnDataField(string column_name, *hash< auto > options, *string append_desc)
returns a field object for the given column
rename(string new_name, *reference< string > sql, *Tables table_cache)
renames the table; if the table is already known to be in the database in the database,...
const UpsertInsertOnly
Upsert option: insert if the row does not exist, otherwise ignore.
Definition: AbstractTable.qc.dox.h:294
int del(hash cond, reference< string > sql, hash< auto > opt)
deletes rows in the table matching the condition and returns the count of rows deleted; no transactio...
hash< auto > getTableOptions()
returns the table options for this driver
list< auto > getDropPrimaryKeySql(*hash< auto > opt)
gets a list of SQL strings that can be used to drop the primary key from the table
hash< auto > getWhereOperatorMap()
returns the "where" operator map for this object
*hash< auto > getPseudoColumnHash()
returns a hash of valid pseudocolumns
bool checkExistence()
returns True if the table exists in the database, False if not
int updateCommit(hash set, hash cond)
A SqlUtil::AbstractTable::updateCommit() variant.
hash< auto > getColumnOptions()
returns the column options for this driver
abstract class for check constraints
Definition: SqlUtil.qm.dox.h:5990
createCommit(*hash< auto > opt)
creates the table in the database; releases the transaction lock after creating the table
const ColumnOptions
Column options; this is currently empty and can be extended in database-specific modules.
Definition: AbstractTable.qc.dox.h:192
commit()
commits the current transaction on the underlying Qore::SQL::AbstractDatasource
hash< auto > getTableColumnDescOptions()
returns the table column description options for this driver
string getSelectSql(*hash< auto > sh, *reference< list< auto >> args)
returns the SQL string to be executed corresponding to the argument hash with an output parameter for...
*hash< auto > insertCommit(hash< auto > row, reference< string > sql, hash< auto > opt)
SqlUtil::AbstractTable::insertCommit() variant
hash< auto > getTableCreationOptions()
returns the table creation options for this driver
const SelectOptions
default possible select options; can be extended by driver-specific modules
Definition: AbstractTable.qc.dox.h:85
int insertFromSelect(list cols, AbstractTable source, hash< auto > sh, reference< string > sql)
SqlUtil::AbstractTable::insertFromSelectCommit() variant
int delCommit(hash cond, hash< auto > opt)
SqlUtil::AbstractTable::delCommit() variant
int del(hash cond)
SqlUtil::AbstractTable::del() variant
deprecated dropNoCommit(*hash< auto > opt)
A legacy wrapper for drop()
*hash upsertFromIterator(Qore::AbstractIterator i, int upsert_strategy=AbstractTable::UpsertAuto, *hash< auto > opt)
this method upserts or merges data from the given iterator argument (whose getValue() method must ret...
list< auto > getDropAllConstraintsAndIndexesOnColumnSql(string cname, *hash< auto > opt)
gets a list of SQL strings to drop all constraints and indexes with the given column name; if the col...
string getSqlValue(auto v)
returns a string for use in SQL queries representing the DB-specific value of the argument
int updateCommit(hash set, hash cond, reference< string > sql)
A SqlUtil::AbstractTable::updateCommit() variant.
column container class that throws an exception if an unknown column is accessed
Definition: SqlUtil.qm.dox.h:5560
deprecated truncateNoCommit()
A legacy warpper for truncate()
int delCommit(hash cond, reference< string > sql, hash< auto > opt)
deletes rows in the table matching the condition and returns the count of rows deleted; the transacti...
index container class that throws an exception if an unknown index is accessed
Definition: SqlUtil.qm.dox.h:5771
AbstractDataProviderType getDbType(string native_type, *string qore_type, bool nullable, int max_size=-1, *hash< SqlUtilDataTypeOptionInfo > options)
returns the DB type for the given column type
the base abstract class for the table implementation
Definition: AbstractTable.qc.dox.h:36
int delCommit()
SqlUtil::AbstractTable::delCommit() variant
dropCommit(*hash< auto > opt)
drops the table from the database; releases the transaction lock after dropping the table
const UpsertResultDescriptionMap
hash mapping upsert descriptions to codes
Definition: AbstractTable.qc.dox.h:362
AbstractDataField getColumnDataField(AbstractColumn column, *hash< SqlUtilDataTypeOptionInfo > options, *string append_desc)
returns a field object for the given column
abstract AbstractSavepointHelper getSavepointHelperImpl(*string savepoint)
get DB-specific savepoint helper
int insertFromSelect(list cols, AbstractTable source, hash< auto > sh, reference< string > sql, hash< auto > opt)
inserts rows into a table based on a select statement from another table (which must be using the sam...
abstract hash< auto > getTypeMapImpl()
returns the type name -> type description hash
*hash< auto > insert(hash< auto > row, reference< string > sql, hash< auto > opt)
SqlUtil::AbstractTable::insert() variant
hash< auto > getInsertOptions()
returns the insert options for this driver
hash< auto > getRawUpdateOperatorMap()
returns the raw (default) update operator map for this object
list< auto > getAddColumnSql(string cname, hash copt, bool nullable=True, *hash< auto > opt)
returns a list of SQL strings that can be use to add a column to the table
string getAddPrimaryKeySql(string pkname, softlist cols, *hash pkopt, *hash< auto > opt)
returns the SQL that can be used to add a primary key to the table
Qore::AbstractIterator getUniqueConstraintIterator()
returns an iterator for all unique constraints on the table (including the primary key if any)
hash< auto > hash(object obj)
AbstractColumn dropColumn(string cname, *reference lsql)
drops a column from the table
int insertFromSelect(list cols, AbstractTable source, hash< auto > sh, hash< auto > opt)
SqlUtil::AbstractTable::insertFromSelectCommit() variant
the API for a constraint with columns
Definition: SqlUtil.qm.dox.h:6016
bool native_case
native case option
Definition: AbstractTable.qc.dox.h:395
list< auto > getCreateSql(*hash< auto > opt)
returns a list of SQL strings that could be used to create the table and all known properties of the ...
list< auto > getModifyColumnSql(string cname, hash copt, bool nullable=True, *hash< auto > opt)
gets a list of SQL strings that can be used to modify an existing column in the table
trigger container class that throws an exception if an unknown trigger is accessed
Definition: SqlUtil.qm.dox.h:6403
int update(hash set)
A SqlUtil::AbstractTable::update() variant.
int insertFromIteratorCommit(Qore::AbstractIterator i, *hash< auto > opt)
this method inserts data from the given iterator argument (whose getValue() method must return a hash...
hash< auto > getColumnOperatorMap()
returns the column operator map for this object
deprecated int updateNoCommit(hash set, *hash cond, *hash< auto > opt)
A legacy SqlUtil::AbstractTable::update() wrapper.
Constraints getConstraints()
returns a Constraints object describing the non-foreign constraints on the table
list< auto > getColumnSqlNames(softlist cols)
returns a list of column names for use in SQL strings; subclasses can process the argument list in ca...
hash< auto > getColumnDescOptions()
returns the column description options for this driver
code getBulkUpsertClosure(hash example_row, int upsert_strategy=AbstractTable::UpsertAuto, *hash< auto > opt)
returns a closure that can be executed given a hash argument representing either a single row or a se...
code getUpsertClosureWithValidation(hash example_row, int upsert_strategy=UpsertAuto, *hash< auto > opt)
returns a closure that can be executed given a hash argument representing a single row that will be u...
string join(string str,...)
auto tryExec(string sql)
executes some SQL with optional arguments so that if an error occurs the current transaction state is...
AbstractDataProviderType getColumnDataType(string column_name, *hash< SqlUtilDataTypeOptionInfo > options)
returns the data type for the given column
const InsertFromIteratorOptions
default insert option keys
Definition: AbstractTable.qc.dox.h:237
bool hasReturningImpl()
returns True if the current database driver supports the "returning" clause in insert statements,...
*hash< auto > getColumnOperatorMapImpl()
Reimplement in subclasses to provide driver specific column operators.
const ForeignConstraintOptions
default foreign constraint options
Definition: AbstractTable.qc.dox.h:73
string getDropIndexSql(string iname, *hash< auto > opt)
gets the SQL that can be used to drop an index from the table
hash< auto > getConstraintOptions()
returns the constraint options for this driver
*hash upsertFromSelect(AbstractTable t, *hash< auto > sh, int upsert_strategy=AbstractTable::UpsertAuto, *hash< auto > opt)
this method upserts or merges data from the given foreign table and select option hash into the curre...
*hash< auto > insertCommit(hash< auto > row)
inserts a row into the table; the transaction is committed if successful, if an error occurs,...
int updateCommit(hash set)
A SqlUtil::AbstractTable::updateCommit() variant.
represents a primary key
Definition: SqlUtil.qm.dox.h:6110
const CreationOptions
default generic creation options
Definition: AbstractDatabase.qc.dox.h:165
deprecated int insertFromSelectNoCommit(list cols, AbstractTable source, *hash< auto > sh, *reference< string > sql, *hash< auto > opt)
A legacy SqlUtil::AbstractTable::insertFromSelect() wrapper.
drop(*hash< auto > opt)
drops the table from the database without any transaction management
addCustomCopOperator(string name, hash< auto > operator)
register custom user column operator for this table object
bool empty()
returns True if the table has no definitions, False if not
Qore::SQL::AbstractSQLStatement getStatement(*hash< auto > sh, *hash< auto > opt)
returns an AbstractSQLStatement object that will iterate the results of a select statement matching t...
validateColumnOptions(string cname, reference< hash > opt, bool nullable)
validates column options
Qore::SQL::SQLStatement getRowIteratorNoExec(*hash< auto > sh, *reference< string > sql, *hash< auto > opt)
returns an SQLStatement object that will iterate the results of a select statement matching the argum...
*list< auto > getCreateMiscSql(*hash< auto > opt, bool cache=True)
returns a list of SQL strings that could be used to create other table attributes (such as comments,...
abstract hash< auto > getQoreTypeMapImpl()
returns the qore type -> column type map
const UpsertUpdateFirst
Upsert option: update first, if the update fails, then insert.
Definition: AbstractTable.qc.dox.h:271
truncateCommit()
truncates all the table data; releases the transaction lock after executing
int insertFromSelectCommit(list cols, AbstractTable source, hash< auto > sh)
SqlUtil::AbstractTable::insertFromSelectCommit() variant
hash< auto > getAlignTableOptions()
returns the align table options for this driver
AbstractTrigger addTrigger(string tname, string src, *hash< auto > opt, *reference lsql)
adds a trigger to the table; if the table is already known to be in the database, then it is added in...
list< auto > getAlignSql(AbstractTable t, *hash< auto > opt)
accepts an AbstractTable argument and returns a list of SQL strings required to align the structure a...
AbstractForeignConstraint addForeignConstraint(string cname, softlist cols, string table, *softlist tcols, *hash< auto > opt, *reference< string > sql)
adds a foreign constraint to the table; if the table is already known to be in the database,...
constraint container class that throws an exception if an unknown constraint is accessed
Definition: SqlUtil.qm.dox.h:5886
string getColumnSqlName(string col)
returns the column name for use in SQL strings; subclasses can return a special string in case the co...
*list< auto > getCreateIndexesSql(*hash< auto > opt, bool cache=True)
returns a list of SQL strings that could be used to create indexes on the table or NOTHING if there a...
Qore AbstractDatabase class definition.
Definition: AbstractDatabase.qc.dox.h:32
Triggers getTriggers()
returns an object of class Triggers describing the triggers on the table
int delCommit(hash cond)
SqlUtil::AbstractTable::delCommit() variant
*string getCreatePrimaryKeySql(*hash< auto > opt, bool cache=True)
returns an SQL string that could be used to create the primary key on the table
the table container class stores a collection of tables in a schema
Definition: SqlUtil.qm.dox.h:5374
Columns describe()
returns an object of class Columns describing the table
string getRenameSql(string new_name, *hash< auto > opt)
returns an SQL string that could be used to rename the table in the database
int upsert(hash< auto > row, int upsert_strategy=UpsertAuto, *hash< auto > opt)
update or insert the data in the table according to the hash argument; the table must have a unique k...
int del(hash cond, hash< auto > opt)
SqlUtil::AbstractTable::del() variant
constructor(AbstractDatasource nds, string nname, *hash nopts)
creates the object; private constructor
string name
the table's name
Definition: AbstractTable.qc.dox.h:381
const UpsertOptions
default upsert option keys
Definition: AbstractTable.qc.dox.h:225
const AlignTableOptions
table alignment options
Definition: AbstractTable.qc.dox.h:126
Qore::SQL::AbstractSQLStatement getStatementNoExec(*hash< auto > sh, *reference< string > sql, *hash< auto > opt)
returns an AbstractSQLStatement object that will iterate the results of a select statement matching t...
abstract *string getSqlValueImpl(auto v)
returns a string for use in SQL queries representing the DB-specific value of the argument; returns N...
AbstractConstraint renameConstraint(string old_name, string new_name, reference lsql)
renames an existing constraint; this can be any constraint on the table, a primary key,...
AbstractColumn modifyColumn(string cname, hash< auto > opt, bool nullable=True, *reference lsql)
modifies an existing column in the table; if the table is already known to be in the database,...
string getDesc()
returns a descriptive string of the datasource (without the password) and the table name (with a poss...
hash< auto > getTriggerOptions()
returns the trigger options for this driver
auto tryExecRawImpl(string sql)
tries to execute a command so that if an error occurs the current transaction status is not lost
const UpsertUpdateOnly
Upsert option: update if the row exists, otherwise ignore.
Definition: AbstractTable.qc.dox.h:301
*hash upsertFromSelectCommit(AbstractTable t, *hash< auto > sh, int upsert_strategy=AbstractTable::UpsertAuto, *hash< auto > opt)
this method upserts or merges data from the given foreign table and select option hash into the curre...
ForeignConstraints getForeignConstraints(*hash< auto > opt)
returns a ForeignConstraints object describing the foreign constraints that the table has on other ta...
transient Mutex l()
mutex for atomic actions
AbstractSavepointHelper getSavepointHelper(*string savepoint)
get DB-specific savepoint helper
hash< auto > getUpdateOperatorMap()
returns the update operator map for this object
int insertFromIterator(Qore::AbstractIterator i, *hash< auto > opt)
this method inserts data from the given iterator argument (whose getValue() method must return a hash...
hash< auto > getSelectOptions()
returns the select options for this driver
string getAddCheckConstraintSql(string cname, string src, *hash copt, *hash< auto > opt)
returns an SQL string that can be used to add a check constraint to the table
abstract base class for constraints
Definition: SqlUtil.qm.dox.h:5928
const CacheOptions
default cache options
Definition: AbstractTable.qc.dox.h:65
ForeignConstraints foreignConstraints
foreign constraints description
Definition: AbstractTable.qc.dox.h:389
string getAddForeignConstraintSql(string cname, softlist cols, string table, *softlist tcols, *hash fkopt, *hash< auto > opt)
returns an SQL string that can be used to add a foreign constraint to the table
abstract doSelectOrderByWithOffsetSqlUnlockedImpl(reference< string > sql, reference< list< auto >> args, *hash< auto > qh, *hash< auto > jch, *hash< auto > ch, *hash< auto > psch, list coll)
processes a string for use in SQL select statements when there is an "order by" and "offset" argument
AbstractConstraint dropConstraint(string cname, *reference< string > sql)
drops a constraint from the table; this can be any constraint on the table, a primary key,...
string getCreateSqlString(*hash< auto > opt)
returns an SQL string that could be used to create the table and all known properties of the table
AbstractCheckConstraint addCheckConstraint(string cname, string src, *hash< auto > opt, *reference< string > sql)
adds a check constraint to the table; if the table is already known to be in the database,...
*list selectRows(*hash< auto > sh, *reference< string > sql, *hash< auto > opt)
returns a list of hashes representing the rows in the table that match the argument hash
AbstractTrigger dropTrigger(string tname, *reference< string > sql)
drops the given trigger from the table; if the table is known to be in the database already,...
*list< auto > getCreateForeignConstraintsSql(*hash< auto > opt, bool cache=True)
returns a list of SQL strings that could be used to create foreign constraints on the table or NOTHIN...
string getAlignSqlString(AbstractTable t, *hash< auto > opt)
accepts an AbstractTable argument and returns an SQL string that could be executed to align the struc...
softlist< auto > getDropSql(*hash< auto > opt)
returns the sql required to drop the table; reimplement in subclasses if necessary
abstract AbstractDataProviderType getNumericTypeImpl(string type_name, bool nullable, *hash< auto > options)
returns the type for number / numeric columns for the database so that data conversions can be handle...
bool emptyData()
returns True if the table has no data rows, False if not
string getBaseType()
returns the base type of the underlying object (normally "table", some DB-specific implementations ma...
list< auto > getAddTriggerSql(string tname, string src, *hash topt, *hash< auto > opt)
returns a list of SQL strings that can be used to add a trigger to the table
abstract bool hasArrayBind()
returns True if the underlying DB driver supports bulk DML operations
Indexes indexes
index descriptions
Definition: AbstractTable.qc.dox.h:387
deprecated *hash< auto > insertNoCommit(hash< auto > row, hash< auto > opt)
A legacy wrapper for SqlUtil::AbstractTable::insert()
string getRenameColumnSql(string old_name, string new_name, *hash< auto > opt)
gets an SQL string that can be used to rename an existing column in the table
clear()
purges the current table definition
*hash< auto > select(*hash< auto > sh, *hash< auto > opt)
returns a hash of lists representing the columns and rows in the table that match the argument hahs