Qore DbDataProvider Module Reference 2.2
Loading...
Searching...
No Matches
DbDataProvider::DbDataProvider Class Reference

The database data provider class, provides tables as children. More...

#include <DbDataProvider.qc.dox.h>

Inheritance diagram for DbDataProvider::DbDataProvider:
[legend]

Public Member Methods

 constructor (*hash< auto > options)
 Creates the object from constructor options.
 
 constructor (AbstractDatabase db)
 creates the object
 
 constructor (AbstractDatasource ds, *hash< auto > opts)
 creates the object
 
*list< hash< DataProviderSummaryInfo > > getChildProviderSummaryInfo ()
 Return data provider summary info.
 
*string getDesc ()
 Returns the data provider description.
 
string getName ()
 Returns the data provider name.
 
- Public Member Methods inherited from DbDataProvider::DbDataProviderBase
 beginTransaction ()
 Begins a transaction in the datasource.
 
 commit ()
 Commits any transaction in progress in the datasource.
 
 constructor (*LoggerInterface logger)
 Creates the object with the given logger.
 
 constructor (AbstractDatabase db, *LoggerInterface logger)
 creates the object
 
 constructor (AbstractDatasource ds, *hash< auto > opts, *LoggerInterface logger)
 creates the object
 
 constructor (hash< auto > options, *LoggerInterface logger)
 Creates the object from constructor options.
 
int doSequenceCurrvalKey (string sequence_name, hash< auto > ctx, *reference< bool > missing_input)
 Processes the sequence_currval runtime key in mappers as a mapper key handler.
 
int doSequenceKey (string sequence_name, hash< auto > ctx, *reference< bool > missing_input)
 Processes the sequence runtime key in mappers as a mapper key handler.
 
*hash< string, hash< MapperRuntimeKeyInfo > > getMapperRuntimeKeys ()
 Returns custom data mapper runtime keys.
 
hash< auto > makeTableDesc (string name, hash< string, AbstractDataField > fields, *hash< auto > opts)
 Returns a table description hash from a field description.
 
bool requiresTransactionManagement ()
 Returns True if the data provider supports transaction management.
 
 rollback ()
 Rolls back any transaction in progress in the datasource.
 

Static Public Member Methods

static *hash< string, AbstractDataField > getRecordTypeFromDescribeHash (hash< auto > describe_hash)
 Returns the record type description from a describe hash.
 
- Static Public Member Methods inherited from DbDataProvider::DbDataProviderBase
static hash< GenericColumnInfo > getColumnDesc (AbstractDatabase db, AbstractDataField field, *hash< auto > opts)
 Returns a column description hash for a field.
 
static AbstractDatasource getDatasource (AbstractDatasource ds)
 Returns the given AbstractDatasource object.
 
static AbstractDatasource getDatasource (string ds_string)
 Returns an AbstractDatasource object from the given string.
 
static AbstractTable getTable (AbstractDatasource ds, string table_string)
 Returns an AbstractTable object from the given datasource and table arguments.
 
static AbstractTable getTable (string ds_string, string table_string)
 Returns an AbstractTable object from the given datasource and table strings.
 
static setDatasourceLookup (code datasource_lookup)
 Sets the datasource lookup.
 
static setTableLookup (code table_lookup)
 Sets the table lookup.
 

Public Attributes

const ChildCreateOptions = ...
 Child provider creation options.
 
const ConstructorOptions = ...
 Constructor options.
 
const ProviderInfo = ...
 Provider info.
 
const SearchOptions = ...
 Search options.
 

Private Member Methods

AbstractDataProvider createChildProviderImpl (string name, hash< string, AbstractDataField > fields, *hash< auto > child_create_options)
 Creates a new child data provider and returns it after adding as a child.
 
 deleteChildProviderImpl (string name, *hash< auto > child_delete_options)
 Deletes a child data provider.
 
*AbstractDataProvider getChildProviderImpl (string name)
 Returns the given child provider or NOTHING if the given child is unknown.
 
*list< string > getChildProviderNamesImpl ()
 Returns a list of child data provider names, if any.
 
*hash< string, AbstractDataField > getRecordTypeImpl (*hash< auto > search_options)
 Returns the description of the record type, if any.
 
hash< DataProviderInfo > getStaticInfoImpl ()
 Returns data provider static info.
 
AbstractDataProviderBulkRecordInterface searchRecordsBulkImpl (int block_size=1000, *hash< auto > where_cond, *hash< auto > search_options)
 Returns an iterator for zero or more records matching the search options.
 
AbstractDataProviderRecordIterator searchRecordsImpl (*hash< auto > where_cond, *hash< auto > search_options)
 Returns an iterator for zero or more records matching the search options.
 

Private Attributes

const ChildMap = ...
 Child map.
 
- Private Attributes inherited from DbDataProvider::DbDataProviderBase
const ConstructorOptions = ...
 Constructor options.
 
AbstractDatabase db
 the database object, if required
 
const MapperKeyInfo = ...
 Mapper runtime key info; see details below.
 

Additional Inherited Members

- Static Private Attributes inherited from DbDataProvider::DbDataProviderBase
static *code datasource_lookup
 Lookup to get an abstract datasource from a name.
 
static *code table_lookup
 Lookup to get an abstract table from a datasource and a name.
 

Detailed Description

The database data provider class, provides tables as children.

Generic post-SQL search is provided just for completeness sake, but record filtering should be done in the sql search option and not in the generic post-SQL generic data provider search for performance reasons.

Member Function Documentation

◆ createChildProviderImpl()

AbstractDataProvider DbDataProvider::DbDataProvider::createChildProviderImpl ( string  name,
hash< string, AbstractDataField >  fields,
*hash< auto >  child_create_options 
)
private

Creates a new child data provider and returns it after adding as a child.

Parameters
namethe name of the new child data provider
fieldsthe fields for the new child data provider
child_create_optionsthe options for creating the new child data provider
Returns
the new child data provider
Since
DataProvider 2.0

◆ deleteChildProviderImpl()

DbDataProvider::DbDataProvider::deleteChildProviderImpl ( string  name,
*hash< auto >  child_delete_options 
)
private

Deletes a child data provider.

Parameters
namethe name of the new child data provider
child_delete_optionsthe options for deleting a child data provider
Exceptions
DELETE-CHILD-PROVIDER-ERRORerror dropping the child data provider
Since
DataProvider 2.0

◆ getChildProviderImpl()

*AbstractDataProvider DbDataProvider::DbDataProvider::getChildProviderImpl ( string  name)
private

Returns the given child provider or NOTHING if the given child is unknown.

Returns
the given child provider or NOTHING if the given child is unknown
Exceptions
CHILD-PROVIDER-ERRORerror acquiring child provider
See also
getChildProviderEx()

◆ getChildProviderNamesImpl()

*list< string > DbDataProvider::DbDataProvider::getChildProviderNamesImpl ( )
private

Returns a list of child data provider names, if any.

Returns
a list of child data provider names, if any

◆ getRecordTypeFromDescribeHash()

static *hash< string, AbstractDataField > DbDataProvider::DbDataProvider::getRecordTypeFromDescribeHash ( hash< auto >  describe_hash)
static

Returns the record type description from a describe hash.

Parameters
describe_hasha hash as returned by AbstractSQLStatement::describe()
Returns
the record type of the query results

◆ getRecordTypeImpl()

*hash< string, AbstractDataField > DbDataProvider::DbDataProvider::getRecordTypeImpl ( *hash< auto >  search_options)
private

Returns the description of the record type, if any.

Parameters
search_optionsto be included and processed by validateSearchOptions() if recordRequiresSearchOptions() is True for this provider, otherwise any value provided in this argument is ignored

◆ searchRecordsBulkImpl()

AbstractDataProviderBulkRecordInterface DbDataProvider::DbDataProvider::searchRecordsBulkImpl ( int  block_size = 1000,
*hash< auto >  where_cond,
*hash< auto >  search_options 
)
private

Returns an iterator for zero or more records matching the search options.

Parameters
block_sizethe number of records in a read block; must be a positive number
where_condthe search criteria after processing by processFieldValues()
search_optionsthe search options after processing by validateSearchOptions()
Exceptions
INVALID-BLOCK-SIZEthe block size must be a positive number
INVALID-OPERATIONthe data provider does not support reading

◆ searchRecordsImpl()

AbstractDataProviderRecordIterator DbDataProvider::DbDataProvider::searchRecordsImpl ( *hash< auto >  where_cond,
*hash< auto >  search_options 
)
private

Returns an iterator for zero or more records matching the search options.

Parameters
where_condthe search criteria
search_optionsthe search options after processing by validateSearchOptions()
See also
requestSearchRecordsImpl()