51 softlist<AbstractDataProviderType>
type;
322 softlist<hash<DataProviderSignatureTypeInfo>>
args;
572 hash<string, hash<MapperRuntimeKeyInfo>>
mapper_keys = Mapper::MapperKeyInfo;
596 "desc":
"logical AND operation supporting logic short-circuiting",
602 "impl":
auto sub (hash<auto> rec, hash<DataProviderExpression>
exp) {
603 foreach auto arg in (
exp.args) {
616 "desc":
"logical OR operation supporting logic short-circuiting",
622 "impl":
auto sub (hash<auto> rec, hash<DataProviderExpression>
exp) {
623 foreach auto arg in (
exp.args) {
635 "name":
"equals (=)",
636 "desc":
"a value for equality comparisons; the type of the value should correspond to the field "
642 "impl":
auto sub (hash<auto> rec, hash<DataProviderExpression>
exp) {
655 "name":
"not equals (!=)",
656 "desc":
"a value for not-equals comparisons; the type of the value should correspond to the "
662 "impl":
auto sub (hash<auto> rec, hash<DataProviderExpression>
exp) {
671 "name":
"less than (<)",
672 "desc":
"a value for less than comparisons; if the field value is less than the argument, then "
673 "the operation returns true; the type of the value should correspond to the field type",
678 "impl":
auto sub (hash<auto> rec, hash<DataProviderExpression>
exp) {
687 "name":
"less than or equals (<=)",
688 "desc":
"a value for less than or equals comparisons; if the field value is less than or equal "
689 "to the argument, then the operation returns true; the type of the value should correspond "
695 "impl":
auto sub (hash<auto> rec, hash<DataProviderExpression>
exp) {
704 "name":
"greater than (>)",
705 "desc":
"a value for less than comparisons; if the field value is less than the argument, then "
706 "the operation returns true; the type of the value should correspond to the field type",
711 "impl":
auto sub (hash<auto> rec, hash<DataProviderExpression>
exp) {
720 "name":
"greater than or equals (>=)",
721 "desc":
"a value for greater than or equals comparisons; if the field value is greater than or "
722 "equal to the argument, then the operation returns true; the type of the value should "
723 "correspond to the field type",
728 "impl":
auto sub (hash<auto> rec, hash<DataProviderExpression>
exp) {
738 "desc":
"A list with two elements giving the lower and upper bounds of the field value; the list "
739 "element value types must be equal to the field's type",
748 "impl":
auto sub (hash<auto> rec, hash<DataProviderExpression>
exp) {
759 "desc":
"A list giving possible values of the field; if the field's value matches any of the "
760 "values in the list, then the operation returns true; element value types must be equal to "
767 "impl":
auto sub (hash<auto> rec, hash<DataProviderExpression>
exp) {
776 "name":
"logical not (!)",
777 "desc":
"This operator reverses the logcal value of the operator expression given as an argument",
782 "impl":
auto sub (hash<auto> rec, hash<DataProviderExpression>
exp) {
790 "name":
"regular expression match",
791 "desc":
"regular expression operator; the first argument will be processed with the second as a "
792 "regular expression pattern",
806 "impl":
auto sub (hash<auto> rec, hash<DataProviderExpression>
exp) {
809 arg1.pattern, arg1.options);
824 TypedHash::forName(
"DataProviderSummaryInfo").getMembers();
848 "desc":
"allows a subset of fields to be output in searches",
852 "desc":
"the maximum number of records to return",
856 "desc":
"the offset number in records to return",
927 *hash<auto>
searchFirstRecord(hash<DataProviderExpression> where_cond, *hash<auto> search_options);
979 *hash<auto> search_options) {
997 *hash<DataProviderExpression> where_cond, *hash<auto> search_options) {
999 if (block_size <= 0);
1001 search_options = validateSearchOptions(search_options);
1002 return searchRecordsBulkImpl(block_size, processSearchParameters(where_cond, search_options),
1017 *hash<auto> search_options) {
1019 if (block_size <= 0);
1021 search_options = validateSearchOptions(search_options);
1022 return searchRecordsBulkImpl(block_size,
getSearchExpression(where_cond, search_options), search_options);
1034 *hash<auto> search_options) {
1036 search_options = validateSearchOptions(search_options);
1037 return searchRecordsImpl(processSearchParameters(where_cond, search_options), search_options);
1061 *hash<auto> search_options) {
1064 return requestSearchRecordsImpl(req, processSearchParameters(where_cond, search_options), search_options);
1077 *hash<auto> search_options) {
1080 return requestSearchRecordsImpl(req,
getSearchExpression(where_cond, search_options), search_options);
1095 bool updateSingleRecord(hash<auto> set, hash<DataProviderExpression> where_cond, *hash<auto> search_options);
1124 int updateRecords(hash<auto> set, *hash<DataProviderExpression> where_cond, *hash<auto> search_options);
1138 int updateRecords(hash<auto> set, *hash<auto> where_cond, *hash<auto> search_options);
1154 int deleteRecords(*hash<DataProviderExpression> where_cond, *hash<auto> search_options);
1196 *hash<auto> child_create_options) {
1198 child_create_options = validateChildCreateOptions(child_create_options);
1201 on_error
if (1.err !=
'CREATE-CHILD-PROVIDER-ERROR');
1203 return createChildProviderImpl(name, fields, child_create_options);
1531 hash<DataProviderExpressionInfo> expinfo,
string key,
auto value) {
1534 hash<DataProviderExpression> rv;
1535 if (value.typeCode() ==
NT_HASH && value.op && value.hasKey(
'arg'));
1539 int caps = role ==
ER_Search ? info.search_logic_capabilities : 0;
1551 string key,
auto value) {
1552 if (!info.expressions.
'=');
1554 return <DataProviderExpression>{
1565 *
hash<
string, hash<DataProviderExpressionInfo>> expmap) {
1566 *hash<DataProviderExpressionInfo> expinfo = expmap{
exp};
1569 if (!(expinfo.role & role));
1588 if (val instanceof hash<DataProviderExpression>);
1597 static auto evalGenericExpression(hash<auto> rec, hash<DataProviderExpression>
exp);
1610 static bool setDynamicValueCallbacks(code value_needs_resolution, code resolve_value);
1621 static verifyExpression(
int role, *
hash<
string, hash<DataProviderExpressionInfo>> expmap,
int caps,
1622 AbstractDataProviderType expected_type, hash<DataProviderExpression>
exp) {
1623 hash<DataProviderExpressionInfo> expinfo = AbstractDataProvider::getExpression(role,
exp.exp, expmap);
1624 return AbstractDataProvider::verifyExpression(role, expinfo, caps, expected_type,
exp);
1636 static verifyExpression(
int role, hash<DataProviderExpressionInfo> expinfo,
int caps,
1637 AbstractDataProviderType expected_type, hash<DataProviderExpression>
exp) {
1639 if (
exp.args.lsize() > expinfo.args.size() && !expinfo.varargs);
1641 map AbstractDataProvider::verifyExpressionArgValue(role, caps, expinfo,
exp.args,
1642 if (
exp.args.lsize() > expinfo.args.size());
1644 if (!expected_type.isAssignableFrom(expinfo.return_type));
1655 static verifyExpressionArgValue(
int role,
int caps, hash<DataProviderExpressionInfo> expinfo,
1656 softlist<auto> values,
int pos) {
1657 hash<DataProviderSignatureTypeInfo> arginfo = expinfo.args[pos] ?? expinfo.args.last();
1658 if (arginfo.type_code == ST_Any);
1660 auto val = values[pos];
1661 bool is_exp = val instanceof hash<DataProviderExpression>;
1662 bool is_ref = is_exp ?
False : val instanceof hash<DataProviderFieldReference>;
1664 switch (arginfo.type_code);
1670 static bool checkCallbacks();
1678 *hash<auto> validateCreateOptions(*hash<auto> create_options);
1686 *hash<auto> validateUpsertOptions(*hash<auto> upsert_options);
1694 *hash<auto> validateSearchOptions(*hash<auto> search_options);
1702 *hash<auto> validateRequestOptions(*hash<auto> request_options);
1712 *hash<auto> validateChildCreateOptions(*hash<auto> child_create_options);
1722 *hash<auto> validateChildDeleteOptions(*hash<auto> child_delete_options);
1732 *hash<auto> validateFieldAddOptions(*hash<auto> field_add_options);
1742 *hash<auto> validateFieldUpdateOptions(*hash<auto> field_update_options);
1752 *hash<auto> validateFieldDeleteOptions(*hash<auto> field_delete_options);
1758 processConstructorOptions(*
hash<
string, hash<DataProviderOptionInfo>> option_desc, *hash<auto> options);
1763 private *hash<auto> checkOptions(
string err, *
hash<
string, hash<DataProviderOptionInfo>> option_desc,
1764 *hash<auto> options) {
1765 if (!option_desc && options);
1767 if (*list<string> invalid_keys = keys (options - (keys option_desc)));
1771 foreach hash<auto> i in (option_desc.pairIterator());
1782 private *hash<DataProviderExpression> processSearchParameters(*hash<DataProviderExpression>
exp,
1783 *hash<auto> search_options) {
1786 checkSearchExpressions();
1787 hash<DataProviderInfo> info = getInfo();
1788 verifyExpression(ER_Search, info.expressions, info.search_logic_capabilities,
1802 *hash<auto> processFieldValues(*hash<auto> h, *hash<auto> search_options);
1808 error(
string err,
string fmt);
1818 private *hash<auto> searchFirstRecordImpl(hash<auto> where_cond,
1819 *hash<auto> search_options) {
1821 AbstractDataProviderRecordIterator i = searchRecordsImpl(where_cond, search_options);
1834 private *hash<auto> searchSingleRecordImpl(hash<auto> where_cond,
1835 *hash<auto> search_options) {
1837 *list<*hash<auto>> records = map $1, searchRecordsImpl(where_cond, search_options);
1838 if (records.lsize() > 1);
1849 *list<string> getChildProviderNamesImpl();
1857 *AbstractDataProvider getChildProviderImpl(
string name);
1868 *hash<string, AbstractDataField> getRecordType(*hash<auto> search_options);
1872 *hash<string, AbstractDataField> getSoftRecordType(*hash<auto> search_options);
1876 *hash<string, AbstractDataField> getOrNothingRecordType(*hash<auto> search_options);
1883 *hash<string, hash<DataProviderOptionInfo>> getSearchOptions();
1890 *hash<string, hash<DataProviderOptionInfo>> getCreateOptions();
1897 *hash<string, hash<DataProviderOptionInfo>> getUpsertOptions();
1904 *hash<string, hash<DataProviderOptionInfo>> getRequestOptions();
1914 *hash<string, hash<DataProviderOptionInfo>> getChildCreateOptions();
1924 *hash<string, hash<DataProviderOptionInfo>> getChildDeleteOptions();
1934 *hash<string, hash<DataProviderOptionInfo>> getFieldAddOptions();
1944 *hash<string, hash<DataProviderOptionInfo>> getFieldUpdateOptions();
1954 *hash<string, hash<DataProviderOptionInfo>> getFieldDeleteOptions();
1960 bool supportsRead();
1966 bool supportsBulkRead();
1972 bool supportsCreate();
1978 bool supportsUpdate();
1984 bool supportsUpsert();
1990 bool supportsDelete();
1996 bool supportsNativeSearch();
2002 bool supportsBulkCreate();
2008 bool supportsBulkUpsert();
2014 bool supportsRequest();
2020 bool recordRequiresSearchOptions();
2032 bool supportsCreateChild();
2038 bool supportsDeleteChild();
2044 bool supportsAddField();
2050 bool supportsUpdateField();
2056 bool supportsDeleteField();
2062 bool supportsSchema();
2068 bool supportsSearchExpressions();
2074 *
object getSchemaType();
2083 *hash<string, AbstractDataField> getRecordTypeImpl(*hash<auto> search_options);
2095 private AbstractDataProviderBulkRecordInterface searchRecordsBulkImpl(
int block_size = 1000,
2096 *hash<auto> where_cond, *hash<auto> search_options) {
2097 return new DefaultBulkRecordIterface(block_size, searchRecordsImpl(where_cond, search_options));
2121 private AbstractDataProviderRecordIterator searchRecordsImpl(hash<auto> where_cond,
2122 *hash<auto> search_options) {
2123 throwUnimplementedException();
2147 private AbstractDataProviderRecordIterator requestSearchRecordsImpl(
auto req,
2148 *hash<auto> where_cond, *hash<auto> search_options) {
2149 throwUnimplementedException();
2178 *hash<auto> createRecordImpl(hash<auto> rec, *hash<auto> create_options);
2189 string upsertRecordImpl(hash<auto> rec, *hash<auto> upsert_options);
2198 private bool updateSingleRecordImpl(hash<auto> set, hash<auto> where_cond,
2199 *hash<auto> search_options) {
2200 throwUnimplementedException();
2221 private int updateRecordsImpl(hash<auto> set, *hash<auto> where_cond,
2222 *hash<auto> search_options) {
2223 throwUnimplementedException();
2247 int deleteRecordsImpl(*hash<auto> where_cond, *hash<auto> search_options);
2271 auto doRequestImpl(
auto req, *hash<auto> request_options);
2284 private AbstractDataProvider createChildProviderImpl(
string name, hash<string, AbstractDataField> fields,
2285 *hash<auto> child_create_options) {
2286 throwUnimplementedException();
2296 deleteChildProviderImpl(
string name, *hash<auto> child_delete_options);
2308 addFieldImpl(AbstractDataField field, *hash<auto> field_add_options);
2320 updateFieldImpl(
string name, AbstractDataField field, *hash<auto> field_update_options);
2331 deleteFieldImpl(
string name, *hash<auto> field_delete_options);
2341 object getSchemaObjectImpl();
2351 *AbstractDataProviderType getRequestTypeImpl();
2361 *AbstractDataProviderType getResponseTypeImpl();
2371 *hash<string, AbstractDataProviderType> getErrorResponseTypesImpl();
2383 AbstractDataProviderType getErrorResponseTypeImpl(
string error_code);
2391 throwUnimplementedException();
2396 abstract string getName();
2400 abstract hash<DataProviderInfo> getStaticInfoImpl();
describes a data type based on a hashdecl
Definition: AbstractDataField.qc.dox.h:47
Abstract bulk data operation class.
Definition: AbstractDataProviderBulkOperation.qc.dox.h:33
Defines the abstract class for data provider iterators; the destructor releases the iterator.
Definition: AbstractDataProviderBulkRecordInterface.qc.dox.h:33
The AbstractDataProvider class.
Definition: AbstractDataProvider.qc.dox.h:586
static code cb_resolve_value
static callback for dynamic value resolution
Definition: AbstractDataProvider.qc.dox.h:837
const GenericExpressions
Generic search operator expressions.
Definition: AbstractDataProvider.qc.dox.h:820
*hash< string, hash< MapperRuntimeKeyInfo > > getMapperRuntimeKeys()
Returns custom data mapper runtime keys.
checkDeleteChild()
Ensures that the data provider supports deleting children.
deleteChildProvider(string name, *hash< auto > child_delete_options)
Deletes a child data provider.
*list< hash< DataProviderSummaryInfo > > getChildProviderSummaryInfo()
Return data provider summary info.
beginTransaction()
Begins a transaction with a data provider.
Logger logger
Logger for logging.
Definition: AbstractDataProvider.qc.dox.h:828
const DataProviderSummaryInfoKeys
A list of members names of the DataProviderSummaryInfoKeys hashdecl.
Definition: AbstractDataProvider.qc.dox.h:823
*hash< string, AbstractDataProviderType > getErrorResponseTypes()
Returns a hash of error responses, if any.
*AbstractDataProviderType getRequestType()
Returns the description of a successful request message, if any.
checkUpdate()
Ensures that the data provider supports record upserts.
AbstractDataProviderBulkOperation getBulkUpserter()
Returns a bulk upsert operation object for the data provider.
hash< auto > getInfoAsData(*bool with_type_info)
Returns static provider information as data; no objects are returned.
const GenericExpressionImplementations
Generic expression implementations for data providers without native search functionality.
Definition: AbstractDataProvider.qc.dox.h:590
checkUpdateField()
Ensures that the data provider supports updating fields.
*AbstractDataProvider getChildProvider(string name)
Returns the given child provider or NOTHING if the given child is unknown.
hash< DataProviderInfo > getInfo()
Returns data provider info.
const GenericRecordSearchOptions
Generic record search options; see details below.
Definition: AbstractDataProvider.qc.dox.h:845
commit()
Commits data written to the data provider.
bool updateSingleRecord(hash< auto > set, hash< DataProviderExpression > where_cond, *hash< auto > search_options)
Updates a single record matching the search options.
bool requiresTransactionManagement()
Returns True if the data provider supports transaction management.
AbstractDataProviderRecordIterator getRecordIterator(*hash< auto > search_options)
Returns an iterator iterating all records.
AbstractDataProviderBulkRecordInterface searchRecordsBulk(int block_size=1000, *hash< auto > where_cond, *hash< auto > search_options)
Returns an iterator for zero or more records matching the search options.
Definition: AbstractDataProvider.qc.dox.h:1016
constructor()
Creates the data provider.
*hash< auto > createRecord(hash< auto > rec, *hash< auto > create_options)
Creates the given record in the data provider.
setLogger(Logger logger)
Sets or replaces the logger.
deleteField(string name, *hash< auto > field_delete_options)
Deletes an existing field.
int deleteRecords(*hash< DataProviderExpression > where_cond, *hash< auto > search_options)
Deletes zero or more records.
static private hash< DataProviderExpressionInfo > getExpression(int role, string exp, *hash< string, hash< DataProviderExpressionInfo >> expmap)
Returns an expression definition for an expression code or throws an exception.
Definition: AbstractDataProvider.qc.dox.h:1564
rollback()
Rolls back data written to the data provider.
int updateRecords(hash< auto > set, *hash< DataProviderExpression > where_cond, *hash< auto > search_options)
Updates zero or more records matching the search options.
static auto evalGenericExpressionValue(hash< auto > rec, auto val)
Evaluates the given expression with the generic internal implementation and returns the result.
*hash< auto > searchFirstRecord(hash< DataProviderExpression > where_cond, *hash< auto > search_options)
Returns the first record matching the search options.
*AbstractDataProviderType getResponseType()
Returns the description of a response message, if this object represents a response message.
static bool callbacks_locked
flag if callbacks are locked
Definition: AbstractDataProvider.qc.dox.h:831
AbstractDataProviderRecordIterator requestSearchRecords(auto req, *hash< auto > where_cond, *hash< auto > search_options)
Returns an iterator for zero or more records matching the search options according to an API request.
Definition: AbstractDataProvider.qc.dox.h:1076
AbstractDataProviderBulkOperation getBulkInserter()
Returns a bulk insert operation object for the data provider.
static bool setDynamicValueCallbacks()
Ensures that no callbacks can be set for dynamic URI resolution.
bool updateSingleRecord(hash< auto > set, hash< auto > where_cond, *hash< auto > search_options)
Updates a single record matching the search options.
auto doRequest(auto req, *hash< auto > request_options)
Makes a request and returns the response.
static code cb_value_needs_resolution
static callback the returns a bool if the value needs dynamic resolution
Definition: AbstractDataProvider.qc.dox.h:834
object getSchemaObject()
Returns the schema supporting this data provider.
checkCreate()
Ensures that the data provider supports record creation.
checkSchema()
Ensures that the data provider supports a schema.
checkRead()
Ensures that the data provider supports read operations.
private hash< DataProviderExpression > getSimpleArgumentIntern(int role, hash< DataProviderInfo > info, hash< DataProviderExpressionInfo > expinfo, string key, auto value)
Returns an argument for an expression.
Definition: AbstractDataProvider.qc.dox.h:1530
*string getDesc()
Returns the data provider description.
*hash< auto > searchFirstRecord(hash< auto > where_cond, *hash< auto > search_options)
Returns the first record matching the search options.
AbstractDataProviderBulkRecordInterface getBulkRecordInterface(int block_size=1000, *hash< auto > search_options)
Returns an iterator iterating all records with the bulk read API.
Definition: AbstractDataProvider.qc.dox.h:978
int updateRecords(hash< auto > set, *hash< auto > where_cond, *hash< auto > search_options)
Updates zero or more records matching the search options.
*hash< auto > searchSingleRecord(hash< auto > where_cond, *hash< auto > search_options)
Returns a single record matching the search options.
hash< DataProviderSummaryInfo > getSummaryInfo()
Return data provider summary info.
*hash< auto > getSearchExpression(*hash< auto > where_cond, *hash< auto > search_options)
Returns a search expression for a standard search hash.
*hash< auto > searchSingleRecord(hash< DataProviderExpression > where_cond, *hash< auto > search_options)
Returns a single record matching the search options.
AbstractDataProviderRecordIterator searchRecords(*hash< auto > where_cond, *hash< auto > search_options)
Returns an iterator for zero or more records matching the search options.
checkDelete()
Ensures that the data provider supports record deletion.
AbstractDataProviderType getErrorResponseType(string error_code)
Returns the type for the given error code.
AbstractDataProviderRecordIterator searchRecords(*hash< DataProviderExpression > where_cond, *hash< auto > search_options)
Returns an iterator for zero or more records matching the search options.
Definition: AbstractDataProvider.qc.dox.h:1033
checkDeleteField()
Ensures that the data provider supports deleting fields.
AbstractDataProvider getChildProviderPath(string path)
Returns the given child provider from a "/" separated path string.
constructor(Logger logger)
Creates the data provider with the given Logger.
*list< string > getChildProviderNames()
Returns a list of child data provider names, if any.
addField(AbstractDataField field, *hash< auto > field_add_options)
Creates a new field.
AbstractDataProvider createChildProvider(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.
Definition: AbstractDataProvider.qc.dox.h:1195
string upsertRecord(hash< auto > rec, *hash< auto > upsert_options)
Upserts the given record in the data provider.
updateField(string name, AbstractDataField field, *hash< auto > field_update_options)
Updates an existing field.
private hash< DataProviderExpression > getEqualityComparisonExpression(int role, hash< DataProviderInfo > info, string key, auto value)
Returns an equality comparison expression.
Definition: AbstractDataProvider.qc.dox.h:1550
checkRequest()
Ensures that the data provider supports the request API.
AbstractDataProvider getChildProviderEx(string name)
Returns the given child provider or throws an exception if the given child is unknown.
checkSearchExpressions()
Ensures that the data provider supports advanced search expressions.
AbstractDataProviderRecordIterator requestSearchRecords(auto req, *hash< DataProviderExpression > where_cond, *hash< auto > search_options)
Returns an iterator for zero or more records matching the search options according to an API request.
Definition: AbstractDataProvider.qc.dox.h:1060
checkAddField()
Ensures that the data provider supports adding fields.
checkCreateChild()
Ensures that the data provider supports creating children.
AbstractDataProviderBulkRecordInterface searchRecordsBulk(int block_size=1000, *hash< DataProviderExpression > where_cond, *hash< auto > search_options)
Returns an iterator for zero or more records matching the search options.
Definition: AbstractDataProvider.qc.dox.h:996
int deleteRecords(*hash< auto > where_cond, *hash< auto > search_options)
Deletes zero or more records.
checkUpsert()
Ensures that the data provider supports record upserts.
Defines the abstract class for data provider iterators; the destructor releases the iterator.
Definition: AbstractDataProviderRecordIterator.qc.dox.h:339
describes a data type
Definition: AbstractDataProviderType.qc.dox.h:187
static AbstractDataProviderType get(Type type, *hash< auto > options, *hash< auto > tags)
Returns an appropriate object for the given type.
describes a data type based on a hash
Definition: HashDataType.qc.dox.h:36
describes a data type based on a hashdecl
Definition: QoreDataField.qc.dox.h:34
bool regex(string str, string regex, int options=0)
hash< auto > hash(object obj)
Qore AbstractDataField class definition.
Definition: AbstractDataField.qc.dox.h:27
const UpsertResultUnchanged
Indicates that the record was left unchanged.
Definition: AbstractDataProvider.qc.dox.h:42
const UpsertResultDeleted
Indicates that the record was deleted.
Definition: AbstractDataProvider.qc.dox.h:45
const DP_SEARCH_OP_EQ
Identifies the generic data provider equals operator (=) for use in generic search criteria.
Definition: AbstractDataProviderRecordIterator.qc.dox.h:81
const ER_All
Indicates an expression that can be used in all contexts.
Definition: AbstractDataProvider.qc.dox.h:166
const UpsertResultInserted
Indicates that the record was inserted.
Definition: AbstractDataProvider.qc.dox.h:33
const DP_OP_OR
OR logic.
Definition: AbstractDataProviderRecordIterator.qc.dox.h:41
const DP_SEARCH_OP_REGEX
Identifies the regex operator for use in generic search criteria.
Definition: AbstractDataProviderRecordIterator.qc.dox.h:51
const ST_Value
Indicates any literal value of the given type; i.e. not an operator or other expression.
Definition: AbstractDataProvider.qc.dox.h:135
const DP_SEARCH_OP_GT
Identifies the generic data provider greater than operator (>) for use in generic search criteria.
Definition: AbstractDataProviderRecordIterator.qc.dox.h:66
const DataProviderSignatureOptionalIntValueType
Data provider signature *int value type.
Definition: AbstractDataProvider.qc.dox.h:241
const DataProviderSignatureStringType
Data provider signature string type.
Definition: AbstractDataProvider.qc.dox.h:265
const DataProviderSignatureDateType
Data provider signature date type.
Definition: AbstractDataProvider.qc.dox.h:271
const LC_Or
Indicates that boolean expressions can be combined with OR logic.
Definition: AbstractDataProvider.qc.dox.h:186
const DataProviderSignatureHashValueType
Data provider signature hash value type.
Definition: AbstractDataProvider.qc.dox.h:253
const ER_Search
Indicates an expression that can be used in a search operation.
Definition: AbstractDataProvider.qc.dox.h:160
const DP_SEARCH_OP_IN
Identifies the generic data provider "in" operator for use in generic search criteria.
Definition: AbstractDataProviderRecordIterator.qc.dox.h:91
const SignatureTypeDescMap
Maps signature description values to integer codes.
Definition: AbstractDataProvider.qc.dox.h:152
const SignatureTypeCodeMap
Maps signature type codes to descriptions.
Definition: AbstractDataProvider.qc.dox.h:145
const DET_Operator
Indicates an operator expression.
Definition: AbstractDataProvider.qc.dox.h:282
const DataProviderSignatureOptionalStringValueType
Data provider signature optional string value type.
Definition: AbstractDataProvider.qc.dox.h:229
const LogicDescMap
Logic map from descriptions to integer codes.
Definition: AbstractDataProvider.qc.dox.h:199
const DP_SEARCH_OP_GE
Identifies the generic data provider greater than or equals operator (>=) for use in generic search c...
Definition: AbstractDataProviderRecordIterator.qc.dox.h:71
const LC_And
Indicates that boolean expressions can be combined with AND logic.
Definition: AbstractDataProvider.qc.dox.h:183
const DET_Function
Indicates a function expression.
Definition: AbstractDataProvider.qc.dox.h:285
const DP_SEARCH_OP_BETWEEN
Identifies the generic data provider "between" operator for use in generic search criteria.
Definition: AbstractDataProviderRecordIterator.qc.dox.h:86
const DP_OP_AND
AND logic.
Definition: AbstractDataProviderRecordIterator.qc.dox.h:38
const DataProviderSignatureFieldType
Data provider signature field type.
Definition: AbstractDataProvider.qc.dox.h:211
const DP_SEARCH_OP_NE
Identifies the generic data provider not equals operator (!= or <>) for use in generic search criteri...
Definition: AbstractDataProviderRecordIterator.qc.dox.h:76
const DP_SEARCH_OP_NOT
Identifies the generic data provider "not" operator for use in generic search criteria.
Definition: AbstractDataProviderRecordIterator.qc.dox.h:96
const ExpressionTypeDescMap
Maps DataProvider expression type descriptions to integer codes.
Definition: AbstractDataProvider.qc.dox.h:295
const DataProviderSignatureBoolType
Data provider signature bool type.
Definition: AbstractDataProvider.qc.dox.h:259
const AbstractDataProviderTypeMap
Maps Qore type name constant values to AbstractDataProviderType values.
Definition: AbstractDataProviderType.qc.dox.h:121
const DataProviderSignatureListValueType
Data provider signature list value type.
Definition: AbstractDataProvider.qc.dox.h:247
const DataProviderSignatureStringValueType
Data provider signature string value type.
Definition: AbstractDataProvider.qc.dox.h:223
const DataProviderSignatureAnyType
Data provider signature any type.
Definition: AbstractDataProvider.qc.dox.h:217
const ST_Field
The signature type indicates a string field name when used as an argument, and the type is the field ...
Definition: AbstractDataProvider.qc.dox.h:141
const UpsertResultVerified
Indicates that the record was verified as already in the target state.
Definition: AbstractDataProvider.qc.dox.h:39
const DP_SEARCH_OP_LT
Identifies the generic data provider less than (<) operator for use in generic search criteria.
Definition: AbstractDataProviderRecordIterator.qc.dox.h:56
const RoleCodeMap
Role map from codes to descriptions.
Definition: AbstractDataProvider.qc.dox.h:170
const UpsertResultUpdated
Indicates that the record was updated.
Definition: AbstractDataProvider.qc.dox.h:36
const LC_All
Indicates that all logic capabilities are supported.
Definition: AbstractDataProvider.qc.dox.h:189
const ST_Any
Indicates any valid expression that returns the given type (default)
Definition: AbstractDataProvider.qc.dox.h:132
const LogicCodeMap
Logic map from codes to descriptions.
Definition: AbstractDataProvider.qc.dox.h:193
const DP_SEARCH_OP_LE
Identifies the generic data provider less than or equals (<=) operator for use in generic search crit...
Definition: AbstractDataProviderRecordIterator.qc.dox.h:61
const RoleDescMap
Role map from descriptions to codes.
Definition: AbstractDataProvider.qc.dox.h:175
const ER_Field
Indicates an expression that can be used in a field.
Definition: AbstractDataProvider.qc.dox.h:163
const ExpressionTypeCodeMap
Maps DataProvider expression type codes to descriptions.
Definition: AbstractDataProvider.qc.dox.h:289
const DataProviderSignatureIntValueType
Data provider signature int value type.
Definition: AbstractDataProvider.qc.dox.h:235
Data provider expression.
Definition: AbstractDataProvider.qc.dox.h:338
string exp
Expression name.
Definition: AbstractDataProvider.qc.dox.h:340
softlist< auto > args
Expression arguments.
Definition: AbstractDataProvider.qc.dox.h:346
Data provider signature info.
Definition: AbstractDataProvider.qc.dox.h:298
string symbol
The symbol to use when rendering expressions.
Definition: AbstractDataProvider.qc.dox.h:314
string name
The display name.
Definition: AbstractDataProvider.qc.dox.h:308
string label
The label used for the expression.
Definition: AbstractDataProvider.qc.dox.h:305
bool varargs
The last argument can be repeated indefinitely.
Definition: AbstractDataProvider.qc.dox.h:328
int role
The expression role code / bitfield.
Definition: AbstractDataProvider.qc.dox.h:319
int type
The type of expression; see DataProvider Expression Type Codes.
Definition: AbstractDataProvider.qc.dox.h:300
softlist< hash< DataProviderSignatureTypeInfo > > args
Argument types.
Definition: AbstractDataProvider.qc.dox.h:322
string desc
The description of the operation.
Definition: AbstractDataProvider.qc.dox.h:311
AbstractDataProviderType return_type
The return type.
Definition: AbstractDataProvider.qc.dox.h:325
Data provider field reference.
Definition: AbstractDataProvider.qc.dox.h:332
string field
The name of the field being referenced.
Definition: AbstractDataProvider.qc.dox.h:334
Data provider info.
Definition: AbstractDataProvider.qc.dox.h:350
bool supports_delete
Does the data provider support record deletion?
Definition: AbstractDataProvider.qc.dox.h:384
bool supports_bulk_read
Does the data provider support native / optimized bulk reads?
Definition: AbstractDataProvider.qc.dox.h:397
*hash< string, hash< DataProviderOptionInfo > > add_field_options
Add field options supported by the data provider.
Definition: AbstractDataProvider.qc.dox.h:539
bool transaction_management
Does the data provider require transaction management?
Definition: AbstractDataProvider.qc.dox.h:428
*hash< string, hash< DataProviderExpressionInfo > > expressions
Expressions (operators and functions) supported by the data provider.
Definition: AbstractDataProvider.qc.dox.h:560
bool supports_child_delete
Does the data provider support deleting new child providers?
Definition: AbstractDataProvider.qc.dox.h:452
string type
The name of the provider type.
Definition: AbstractDataProvider.qc.dox.h:359
bool supports_delete_field
Does the data provider support deleting fields?
Definition: AbstractDataProvider.qc.dox.h:473
bool supports_child_create
Does the data provider support creating new child providers?
Definition: AbstractDataProvider.qc.dox.h:445
*hash< string, hash< DataProviderOptionInfo > > child_delete_options
Child deletion options supported by the data provider.
Definition: AbstractDataProvider.qc.dox.h:532
bool supports_native_search
Does the data provider support native record searching?
Definition: AbstractDataProvider.qc.dox.h:389
*hash< string, hash< DataProviderOptionInfo > > request_options
Request options supported by the data provider.
Definition: AbstractDataProvider.qc.dox.h:518
*hash< string, hash< DataProviderOptionInfo > > search_options
Search options supported by the data provider.
Definition: AbstractDataProvider.qc.dox.h:513
string name
Data provider name.
Definition: AbstractDataProvider.qc.dox.h:354
bool supports_add_field
Does the data provider support adding new fields?
Definition: AbstractDataProvider.qc.dox.h:459
bool supports_bulk_upsert
Does the data provider support native / optimized bulk upserts?
Definition: AbstractDataProvider.qc.dox.h:413
*hash< string, hash< DataProviderOptionInfo > > child_create_options
Child creation options supported by the data provider.
Definition: AbstractDataProvider.qc.dox.h:525
hash< string, hash< MapperRuntimeKeyInfo > > mapper_keys
A hash of mapper key information.
Definition: AbstractDataProvider.qc.dox.h:572
bool supports_read
Does the data provider support reading.
Definition: AbstractDataProvider.qc.dox.h:364
bool record_requires_search_options
Do we require search options to retrieve the record type?
Definition: AbstractDataProvider.qc.dox.h:438
bool supports_update
Does the data provider support record updates?
Definition: AbstractDataProvider.qc.dox.h:374
bool supports_search_expressions
Does this data provide support advanced search experssions?
Definition: AbstractDataProvider.qc.dox.h:487
*hash< string, hash< DataProviderOptionInfo > > upsert_options
Upsert options supported by the data provider.
Definition: AbstractDataProvider.qc.dox.h:508
bool supports_update_field
Does the data provider support updating existing fields?
Definition: AbstractDataProvider.qc.dox.h:466
bool supports_request
Does the data provider support the request API?
Definition: AbstractDataProvider.qc.dox.h:418
*hash< string, hash< DataProviderOptionInfo > > constructor_options
Constructor options supported by the data provider for the constructor variant taking a hash.
Definition: AbstractDataProvider.qc.dox.h:498
*hash< string, hash< DataProviderOptionInfo > > create_options
Create options supported by the data provider.
Definition: AbstractDataProvider.qc.dox.h:503
bool supports_create
Does the data provider support record creation?
Definition: AbstractDataProvider.qc.dox.h:369
*list< string > children
A list of child data providers in this data provider.
Definition: AbstractDataProvider.qc.dox.h:582
bool supports_upsert
Does the data provider support record upserts (create or update)?
Definition: AbstractDataProvider.qc.dox.h:379
bool supports_bulk_create
Does the data provider support native / optimized bulk creation?
Definition: AbstractDataProvider.qc.dox.h:405
*hash< string, hash< DataProviderOptionInfo > > delete_field_options
Delete field options supported by the data provider.
Definition: AbstractDataProvider.qc.dox.h:553
bool supports_children
Does the data provider support children?
Definition: AbstractDataProvider.qc.dox.h:423
*hash< string, hash< DataProviderOptionInfo > > update_field_options
Update field options supported by the data provider.
Definition: AbstractDataProvider.qc.dox.h:546
*string desc
A markdown description of the data provider.
Definition: AbstractDataProvider.qc.dox.h:577
bool supports_schema
Does the data provider support a schema?
Definition: AbstractDataProvider.qc.dox.h:480
int search_logic_capabilities
Supported search logic capabilities.
Definition: AbstractDataProvider.qc.dox.h:565
*string schema_type
Returns the schema type supported by this data provider.
Definition: AbstractDataProvider.qc.dox.h:493
bool has_record
Does the data provider provide a record?
Definition: AbstractDataProvider.qc.dox.h:433
Data provider option info.
Definition: AbstractDataProvider.qc.dox.h:49
softlist< AbstractDataProviderType > type
The option value type or types.
Definition: AbstractDataProvider.qc.dox.h:51
auto default_value
Any default value.
Definition: AbstractDataProvider.qc.dox.h:60
string desc
The option description.
Definition: AbstractDataProvider.qc.dox.h:57
bool required
Required flag.
Definition: AbstractDataProvider.qc.dox.h:54
Data provider signature argument info.
Definition: AbstractDataProvider.qc.dox.h:202
int type_code
The signature type code.
Definition: AbstractDataProvider.qc.dox.h:207
AbstractDataProviderType type
Argument types.
Definition: AbstractDataProvider.qc.dox.h:204
Data provider summary info.
Definition: AbstractDataProvider.qc.dox.h:64
bool supports_bulk_upsert
Does the data provider support native / optimized bulk upserts?
Definition: AbstractDataProvider.qc.dox.h:108
bool transaction_management
Does the data provider require transaction management?
Definition: AbstractDataProvider.qc.dox.h:117
bool supports_create
Does the data provider support record creation?
Definition: AbstractDataProvider.qc.dox.h:78
string name
The name of the data provider.
Definition: AbstractDataProvider.qc.dox.h:66
bool supports_read
Does the data provider support reading.
Definition: AbstractDataProvider.qc.dox.h:75
string desc
The description of the data provider; supports markdown.
Definition: AbstractDataProvider.qc.dox.h:69
bool has_record
Does the data provider provide a record?
Definition: AbstractDataProvider.qc.dox.h:120
bool supports_upsert
Does the data provider support record upserts (create or update)?
Definition: AbstractDataProvider.qc.dox.h:84
bool supports_children
Does the data provider support children?
Definition: AbstractDataProvider.qc.dox.h:114
bool supports_bulk_create
Does the data provider support native / optimized bulk creation?
Definition: AbstractDataProvider.qc.dox.h:102
bool supports_delete
Does the data provider support record deletion?
Definition: AbstractDataProvider.qc.dox.h:87
bool supports_request
Does the data provider support the request API?
Definition: AbstractDataProvider.qc.dox.h:111
bool supports_search_expressions
Does this data provide support advanced search experssions?
Definition: AbstractDataProvider.qc.dox.h:123
bool supports_native_search
Does the data provider support native record searching?
Definition: AbstractDataProvider.qc.dox.h:90
string type
The name of the provider type.
Definition: AbstractDataProvider.qc.dox.h:72
bool supports_update
Does the data provider support record updates?
Definition: AbstractDataProvider.qc.dox.h:81
bool supports_bulk_read
Does the data provider support native / optimized bulk reads?
Definition: AbstractDataProvider.qc.dox.h:96