2754 hash<ColumnOperatorInfo>
make_cop(
string cop,
auto column,
auto arg);
2770 hash<ColumnOperatorInfo>
cop_as(
auto column,
string arg);
2788 hash<ColumnOperatorInfo>
cop_cast(
auto column,
string arg,
auto arg1,
auto arg2);
3061 hash<ColumnOperatorInfo>
cop_over(
auto column, *
string partitionby, *
string orderby);
3075 hash<ColumnOperatorInfo>
cop_minus(
auto column1,
auto column2);
3089 hash<ColumnOperatorInfo>
cop_plus(
auto column1,
auto column2);
3183 hash<ColumnOperatorInfo>
cop_seq(
string seq, *
string as);
3228 hash<ColumnOperatorInfo>
cop_substr(
auto column,
int start, *
int count);
3636 hash<UpdateOperatorInfo>
make_uop(
string uop,
auto arg, *hash<UpdateOperatorInfo> nest);
3650 hash<UpdateOperatorInfo>
uop_prepend(
string arg, *hash<UpdateOperatorInfo> nest);
3664 hash<UpdateOperatorInfo>
uop_append(
string arg, *hash<UpdateOperatorInfo> nest);
3677 hash<UpdateOperatorInfo>
uop_upper(*hash<UpdateOperatorInfo> nest);
3690 hash<UpdateOperatorInfo>
uop_lower(*hash<UpdateOperatorInfo> nest);
3705 hash<UpdateOperatorInfo>
uop_substr(
int start, *
int count, *hash<UpdateOperatorInfo> nest);
3719 hash<UpdateOperatorInfo>
uop_plus(
auto arg, *hash<UpdateOperatorInfo> nest);
3733 hash<UpdateOperatorInfo>
uop_minus(
auto arg, *hash<UpdateOperatorInfo> nest);
3747 hash<UpdateOperatorInfo>
uop_multiply(
auto arg, *hash<UpdateOperatorInfo> nest);
3761 hash<UpdateOperatorInfo>
uop_divide(
auto arg, *hash<UpdateOperatorInfo> nest);
3841 hash<string, hash<JoinOperatorInfo>>
make_jop(
string jop,
string table_name, *
string alias, *
hash jcols, *
hash cond, *
string ta, *hash<auto> opt);
3910 hash<string, hash<JoinOperatorInfo>>
join_inner(
string table_name, *
string alias, *
hash jcols, *
hash cond, *hash<auto> opt);
3986 hash<string, hash<JoinOperatorInfo>>
join_inner_alias(
string ta,
string table_name, *
string alias, *
hash jcols, *
hash cond, *hash<auto> opt);
4057 hash<string, hash<JoinOperatorInfo>>
join_left(
string table_name, *
string alias, *
hash jcols, *
hash cond, *hash<auto> opt);
4105 hash<string, hash<JoinOperatorInfo>>
join_left(
string ta,
Table table, *
string alias, *
hash jcols, *
hash cond, *hash<auto> opt);
4131 hash<string, hash<JoinOperatorInfo>>
join_left_alias(
string ta,
string table_name, *
string alias, *
hash jcols, *
hash cond, *hash<auto> opt);
4202 hash<string, hash<JoinOperatorInfo>>
join_right(
string table_name, *
string alias, *
hash jcols, *
hash cond, *hash<auto> opt);
4276 hash<string, hash<JoinOperatorInfo>>
join_right_alias(
string ta,
string table_name, *
string alias, *
hash jcols, *
hash cond, *hash<auto> opt);
4383 "exp": AbstractDataProvider::GenericExpressions{DP_OP_AND},
4384 "code":
string sub (reference<hash<QueryInfo>> info,
int role, list<auto> args) {
4386 + (foldl $1 +
" and " + $2,
4387 (map info.table.getExpressionArg(\info, role, $1, AbstractDataProviderTypeMap.
"bool"), args))
4392 "exp": AbstractDataProvider::GenericExpressions{DP_OP_OR},
4393 "code":
string sub (reference<hash<QueryInfo>> info,
int role, list<auto> args) {
4395 + (foldl $1 +
" or " + $2,
4396 (map info.table.getExpressionArg(\info, role, $1, AbstractDataProviderTypeMap.
"bool"), args))
4401 "exp": <DataProviderExpressionInfo>{
4402 "type": DET_Operator,
4405 "desc":
"The value to bind as the 'like' value (ex: '%some string%')",
4408 DataProviderSignatureStringType,
4409 DataProviderSignatureStringValueType,
4411 "return_type": AbstractDataProviderTypeMap.
"bool",
4413 "code":
string sub (reference<hash<QueryInfo>> info,
int role, list<auto> args) {
4415 info.table.getExpressionArg(\info, role, args[0], AbstractDataProviderTypeMap.
"string"),
4416 info.table.getExpressionArg(\info, role, args[1], AbstractDataProviderTypeMap.
"string"));
4420 "exp": AbstractDataProvider::GenericExpressions{DP_SEARCH_OP_LT},
4421 "code":
string sub (reference<hash<QueryInfo>> info,
int role, list<auto> args) {
4423 info.table.getExpressionArg(\info, role, args[0], AbstractDataProviderTypeMap.
"any"),
4424 info.table.getExpressionArg(\info, role, args[1], AbstractDataProviderTypeMap.
"any"));
4428 "exp": AbstractDataProvider::GenericExpressions{DP_SEARCH_OP_LE},
4429 "code":
string sub (reference<hash<QueryInfo>> info,
int role, list<auto> args) {
4431 info.table.getExpressionArg(\info, role, args[0], AbstractDataProviderTypeMap.
"any"),
4432 info.table.getExpressionArg(\info, role, args[1], AbstractDataProviderTypeMap.
"any"));
4436 "exp": AbstractDataProvider::GenericExpressions{DP_SEARCH_OP_GT},
4437 "code":
string sub (reference<hash<QueryInfo>> info,
int role, list<auto> args) {
4439 info.table.getExpressionArg(\info, role, args[0], AbstractDataProviderTypeMap.
"any"),
4440 info.table.getExpressionArg(\info, role, args[1], AbstractDataProviderTypeMap.
"any"));
4444 "exp": AbstractDataProvider::GenericExpressions{DP_SEARCH_OP_GE},
4445 "code":
string sub (reference<hash<QueryInfo>> info,
int role, list<auto> args) {
4447 info.table.getExpressionArg(\info, role, args[0], AbstractDataProviderTypeMap.
"any"),
4448 info.table.getExpressionArg(\info, role, args[1], AbstractDataProviderTypeMap.
"any"));
4452 "exp": AbstractDataProvider::GenericExpressions{DP_SEARCH_OP_NE},
4453 "code":
string sub (reference<hash<QueryInfo>> info,
int role, list<auto> args) {
4454 bool null0 = (args[0] ===
NULL || !
exists args[0]);
4455 bool null1 = (args[1] ===
NULL || !
exists args[1]);
4456 if (null0 && null1) {
4460 return sprintf(
"%s is not null",
4461 info.table.getExpressionArg(\info, role, args[1], AbstractDataProviderTypeMap.
"any"));
4464 return sprintf(
"%s is not null",
4465 info.table.getExpressionArg(\info, role, args[0], AbstractDataProviderTypeMap.
"any"));
4467 string exp0 = info.table.getExpressionArg(\info, role, args[0], AbstractDataProviderTypeMap.
"any");
4468 string exp1 = info.table.getExpressionArg(\info, role, args[1], AbstractDataProviderTypeMap.
"any");
4469 return sprintf(
"%s != %s", exp0, exp1);
4473 "exp": AbstractDataProvider::GenericExpressions{DP_SEARCH_OP_EQ},
4474 "code":
string sub (reference<hash<QueryInfo>> info,
int role, list<auto> args) {
4475 bool null0 = (args[0] ===
NULL || !
exists args[0]);
4476 bool null1 = (args[1] ===
NULL || !
exists args[1]);
4477 if (null0 && null1) {
4482 info.table.getExpressionArg(\info, role, args[1], AbstractDataProviderTypeMap.
"any"));
4486 info.table.getExpressionArg(\info, role, args[0], AbstractDataProviderTypeMap.
"any"));
4488 string exp0 = info.table.getExpressionArg(\info, role, args[0], AbstractDataProviderTypeMap.
"any");
4489 string exp1 = info.table.getExpressionArg(\info, role, args[1], AbstractDataProviderTypeMap.
"any");
4490 return sprintf(
"%s = %s", exp0, exp1);
4494 "exp": AbstractDataProvider::GenericExpressions{DP_SEARCH_OP_BETWEEN},
4495 "code":
string sub (reference<hash<QueryInfo>> info,
int role, list<auto> args) {
4496 return sprintf(
"%s between %s and %s",
4497 info.table.getExpressionArg(\info, role, args[0], AbstractDataProviderTypeMap.
"any"),
4498 info.table.getExpressionArg(\info, role, args[1], AbstractDataProviderTypeMap.
"any"),
4499 info.table.getExpressionArg(\info, role, args[2], AbstractDataProviderTypeMap.
"any"));
4503 "exp": AbstractDataProvider::GenericExpressions{DP_SEARCH_OP_IN},
4504 "code":
string sub (reference<hash<QueryInfo>> info,
int role, list<auto> args) {
4505 string exp0 = info.table.getExpressionArg(\info, role, shift args, AbstractDataProviderTypeMap.
"any");
4506 *
string ins = (foldl $1 +
"," + $2, (map info.table.getExpressionArg(\info, role, $1,
4507 AbstractDataProviderTypeMap.
"any"), args));
4508 return exists ins ?
sprintf(
"%s in (%s)", exp0, ins) :
"1 != 1";
4512 "exp": AbstractDataProvider::GenericExpressions{DP_SEARCH_OP_NOT},
4513 "code":
string sub (reference<hash<QueryInfo>> info,
int role, list<auto> args) {
4514 return sprintf(
"not (%s)", info.table.getExpressionArg(\info, role, args[0],
4515 AbstractDataProviderTypeMap.
"bool"));
4519 "exp": <DataProviderExpressionInfo>{
4520 "type": DET_Operator,
4523 "desc":
"returns a substring from a string; args: string, int start char, [int length]",
4526 DataProviderSignatureStringType,
4527 DataProviderSignatureIntValueType,
4528 DataProviderSignatureOptionalIntValueType,
4530 "return_type": AbstractDataProviderTypeMap.
"string",
4532 "code":
string sub (reference<hash<QueryInfo>> info,
int role, list<auto> args) {
4533 string exp0 = info.table.getExpressionArg(\info, role, args[0], AbstractDataProviderTypeMap.
"string");
4534 string exp1 = info.table.getExpressionArg(\info, role, args[1], AbstractDataProviderTypeMap.
"int");
4536 return sprintf(
"substring(%s from %s)", exp0, exp1);
4538 return sprintf(
"substring(%s from %s for %s)", exp0, exp1,
4539 info.table.getExpressionArg(\info, role, args[2], AbstractDataProviderTypeMap.
"int"));
4543 "exp": <DataProviderExpressionInfo>{
4544 "type": DET_Operator,
4545 "label":
"in_select",
4546 "name":
"in_select",
4547 "desc":
"check if a value is in a sub-select; args: value, table name for the subselect, subselect "
4549 "symbol":
"in_select",
4551 DataProviderSignatureAnyType, # any value, expression, or field reference
4552 DataProviderSignatureStringValueType, # table name
4553 DataProviderSignatureHashValueType, # query
hash
4555 "return_type": AbstractDataProviderTypeMap.
"bool",
4557 "code":
string sub (reference<hash<QueryInfo>> info,
int role, list<auto> args) {
4558 string exp0 = info.table.getExpressionArg(\info, role, args[0], AbstractDataProviderTypeMap.
"any");
4559 object subtable = info.table.getSubtableFromString(args[1], info.query_options);
4561 string subsql = subtable.getSelectSql(args[2], \subargs);
4563 return sprintf(
"%s in (%s)", exp0, subsql);
4567 "exp": <DataProviderExpressionInfo>{
4568 "type": DET_Operator,
4571 "desc":
"aliases a result; args: expression or value, string label",
4575 DataProviderSignatureAnyType,
4576 DataProviderSignatureStringValueType,
4578 "return_type": AbstractDataProviderTypeMap.
"any",
4580 "code":
string sub (reference<hash<QueryInfo>> info,
int role, list<auto> args) {
4581 string exp = info.table.getExpressionArg(\info, role, args[0], AbstractDataProviderTypeMap.
"any");
4582 string arg = args[1];
4583 info.pseudo_column_map{arg} =
exp;
4584 return sprintf(
"%s as %s",
exp, info.table.getColumnSqlName(arg));
4588 "exp": <DataProviderExpressionInfo>{
4589 "type": DET_Operator,
4592 "desc":
"prepends a string to another string; args: string to be prepended, string to prepend to the "
4596 DataProviderSignatureStringType,
4597 DataProviderSignatureStringType,
4599 "return_type": AbstractDataProviderTypeMap.
"string",
4601 "code":
string sub (reference<hash<QueryInfo>> info,
int role, list<auto> args) {
4602 string exp0 = info.table.getExpressionArg(\info, role, args[0], AbstractDataProviderTypeMap.
"string");
4603 string exp1 = info.table.getExpressionArg(\info, role, args[1], AbstractDataProviderTypeMap.
"string");
4604 return sprintf(
"%s || %s", exp1, exp0);
4608 "exp": <DataProviderExpressionInfo>{
4609 "type": DET_Operator,
4612 "desc":
"appends or catenates a string to another string; args: string to be appended, string to "
4613 "append or concatenate to the first string",
4616 DataProviderSignatureStringType,
4617 DataProviderSignatureStringType,
4619 "return_type": AbstractDataProviderTypeMap.
"string",
4621 "code":
string sub (reference<hash<QueryInfo>> info,
int role, list<auto> args) {
4622 string exp0 = info.table.getExpressionArg(\info, role, args[0], AbstractDataProviderTypeMap.
"string");
4623 string exp1 = info.table.getExpressionArg(\info, role, args[1], AbstractDataProviderTypeMap.
"string");
4624 return sprintf(
"%s || %s", exp0, exp1);
4628 "exp": <DataProviderExpressionInfo>{
4629 "type": DET_Operator,
4632 "desc":
"converts a string to all upper case; arg: string",
4635 DataProviderSignatureStringType,
4637 "return_type": AbstractDataProviderTypeMap.
"string",
4639 "code":
string sub (reference<hash<QueryInfo>> info,
int role, list<auto> args) {
4640 return sprintf(
"upper(%s)", info.table.getExpressionArg(\info, role, args[0],
4641 AbstractDataProviderTypeMap.
"string"));
4645 "exp": <DataProviderExpressionInfo>{
4646 "type": DET_Operator,
4649 "desc":
"converts a string to all lower case; arg: string",
4652 DataProviderSignatureStringType,
4654 "return_type": AbstractDataProviderTypeMap.
"string",
4656 "code":
string sub (reference<hash<QueryInfo>> info,
int role, list<auto> args) {
4657 return sprintf(
"lower(%s)", info.table.getExpressionArg(\info, role, args[0],
4658 AbstractDataProviderTypeMap.
"string"));
4662 "exp": <DataProviderExpressionInfo>{
4663 "type": DET_Operator,
4666 "desc":
"indicates that only records with distinct values of the given field should be returned",
4670 DataProviderSignatureAnyType,
4672 "return_type": AbstractDataProviderTypeMap.
"any",
4674 "code":
string sub (reference<hash<QueryInfo>> info,
int role, *list<auto> args) {
4675 return sprintf(
"distinct %s", info.table.getExpressionArg(\info, role, args[0],
4676 AbstractDataProviderTypeMap.
"any"));
4680 "exp": <DataProviderExpressionInfo>{
4681 "type": DET_Operator,
4684 "desc":
"Returns the minimum value in the group",
4688 DataProviderSignatureAnyType,
4690 "return_type": AbstractDataProviderTypeMap.
"any",
4692 "code":
string sub (reference<hash<QueryInfo>> info,
int role, *list<auto> args) {
4693 return sprintf(
"min(%s)", info.table.getExpressionArg(\info, role, args[0],
4694 AbstractDataProviderTypeMap.
"any"));
4699 "exp": <DataProviderExpressionInfo>{
4700 "type": DET_Operator,
4703 "desc":
"Returns the maximum value in the group",
4707 DataProviderSignatureAnyType,
4709 "return_type": AbstractDataProviderTypeMap.
"any",
4711 "code":
string sub (reference<hash<QueryInfo>> info,
int role, *list<auto> args) {
4712 return sprintf(
"max(%s)", info.table.getExpressionArg(\info, role, args[0],
4713 AbstractDataProviderTypeMap.
"any"));
4718 "exp": <DataProviderExpressionInfo>{
4719 "type": DET_Operator,
4722 "desc":
"Returns the average of the given values in the group",
4726 DataProviderSignatureAnyType,
4728 "return_type": AbstractDataProviderTypeMap.
"any",
4730 "code":
string sub (reference<hash<QueryInfo>> info,
int role, *list<auto> args) {
4731 return sprintf(
"avg(%s)", info.table.getExpressionArg(\info, role, args[0],
4732 AbstractDataProviderTypeMap.
"any"));
4737 "exp": <DataProviderExpressionInfo>{
4738 "type": DET_Operator,
4741 "desc":
"Returns the sum of the given values",
4745 DataProviderSignatureAnyType,
4747 "return_type": AbstractDataProviderTypeMap.
"any",
4749 "code":
string sub (reference<hash<QueryInfo>> info,
int role, *list<auto> args) {
4750 return sprintf(
"sum(%s)", info.table.getExpressionArg(\info, role, args[0],
4751 AbstractDataProviderTypeMap.
"any"));
4756 "exp": <DataProviderExpressionInfo>{
4757 "type": DET_Operator,
4760 "desc":
"Count the number of rows in the group",
4764 DataProviderSignatureAnyType,
4766 "return_type": AbstractDataProviderTypeMap.
"int",
4768 "code":
string sub (reference<hash<QueryInfo>> info,
int role, *list<auto> args) {
4770 return sprintf(
"count(%s)", info.table.getExpressionArg(\info, role, args[0],
4771 AbstractDataProviderTypeMap.
"any"));
4777 "exp": <DataProviderExpressionInfo>{
4778 "type": DET_Operator,
4781 "desc":
"Subtracts one number from another",
4784 DataProviderSignatureAnyType,
4785 DataProviderSignatureAnyType,
4787 "return_type": AbstractDataProviderTypeMap.
"any",
4789 "code":
string sub (reference<hash<QueryInfo>> info,
int role, list<auto> args) {
4790 string exp0 = info.table.getExpressionArg(\info, role, args[0], AbstractDataProviderTypeMap.
"any");
4791 string exp1 = info.table.getExpressionArg(\info, role, args[1], AbstractDataProviderTypeMap.
"any");
4792 return sprintf(
"%s - %s", exp0, exp1);
4796 "exp": <DataProviderExpressionInfo>{
4797 "type": DET_Operator,
4800 "desc":
"Adds two numbers",
4803 DataProviderSignatureAnyType,
4804 DataProviderSignatureAnyType,
4806 "return_type": AbstractDataProviderTypeMap.
"any",
4808 "code":
string sub (reference<hash<QueryInfo>> info,
int role, list<auto> args) {
4809 string exp0 = info.table.getExpressionArg(\info, role, args[0], AbstractDataProviderTypeMap.
"any");
4810 string exp1 = info.table.getExpressionArg(\info, role, args[1], AbstractDataProviderTypeMap.
"any");
4811 return sprintf(
"%s + %s", exp0, exp1);
4815 "exp": <DataProviderExpressionInfo>{
4816 "type": DET_Operator,
4819 "desc":
"Divides one number by another",
4822 DataProviderSignatureAnyType,
4823 DataProviderSignatureAnyType,
4825 "return_type": AbstractDataProviderTypeMap.
"any",
4827 "code":
string sub (reference<hash<QueryInfo>> info,
int role, list<auto> args) {
4828 string exp0 = info.table.getExpressionArg(\info, role, args[0], AbstractDataProviderTypeMap.
"any");
4829 string exp1 = info.table.getExpressionArg(\info, role, args[1], AbstractDataProviderTypeMap.
"any");
4830 return sprintf(
"%s / %s", exp0, exp1);
4834 "exp": <DataProviderExpressionInfo>{
4835 "type": DET_Operator,
4838 "desc":
"Multiplies two numbers",
4841 DataProviderSignatureAnyType,
4842 DataProviderSignatureAnyType,
4844 "return_type": AbstractDataProviderTypeMap.
"any",
4846 "code":
string sub (reference<hash<QueryInfo>> info,
int role, list<auto> args) {
4847 string exp0 = info.table.getExpressionArg(\info, role, args[0], AbstractDataProviderTypeMap.
"any");
4848 string exp1 = info.table.getExpressionArg(\info, role, args[1], AbstractDataProviderTypeMap.
"any");
4849 return sprintf(
"%s * %s", exp0, exp1);
4853 "exp": <DataProviderExpressionInfo>{
4854 "type": DET_Operator,
4857 "desc":
"Returns the value of the first expression with a value",
4860 DataProviderSignatureAnyType,
4863 "return_type": AbstractDataProviderTypeMap.
"any",
4865 "code":
string sub (reference<hash<QueryInfo>> info,
int role, list<auto> args) {
4866 return sprintf(
"coalesce(%s)", (foldl $1 +
"," + $2,
4867 (map info.table.getExpressionArg(\info, role, $1, AbstractDataProviderTypeMap.
"any"), args)));
4871 "exp": <DataProviderExpressionInfo>{
4872 "type": DET_Operator,
4875 "desc":
"Returns the length of the argument",
4878 DataProviderSignatureAnyType,
4880 "return_type": AbstractDataProviderTypeMap.
"int",
4882 "code":
string sub (reference<hash<QueryInfo>> info,
int role, list<auto> args) {
4883 return sprintf(
"length(%s)", info.table.getExpressionArg(\info, role, args[0],
4884 AbstractDataProviderTypeMap.
"any"));
4888 "exp": <DataProviderExpressionInfo>{
4889 "type": DET_Operator,
4892 "desc":
"returns the next value in the given sequence; args: sequence name",
4895 DataProviderSignatureStringValueType,
4897 "return_type": AbstractDataProviderTypeMap.
"int",
4899 "code":
string sub (reference<hash<QueryInfo>> info,
int role, list<auto> args) {
4900 throw "SEQUENCE-ERROR",
sprintf(
"cannot select sequence %y because this database does not support "
4901 "sequences", args[0]);
4905 "exp": <DataProviderExpressionInfo>{
4906 "type": DET_Operator,
4909 "desc":
"returns the current value in the given sequence; args: sequence name",
4912 DataProviderSignatureStringValueType,
4914 "return_type": AbstractDataProviderTypeMap.
"int",
4916 "code":
string sub (reference<hash<QueryInfo>> info,
int role, list<auto> args) {
4917 throw "SEQUENCE-ERROR",
sprintf(
"cannot select the current value of sequence %y because this "
4918 "database does not support sequences", args[0]);
4922 "exp": <DataProviderExpressionInfo>{
4923 "type": DET_Operator,
4926 "desc":
"returns the output of the SQL window given by the arguments; args: *string partiion by, "
4930 DataProviderSignatureFieldType,
4931 DataProviderSignatureOptionalStringValueType,
4932 DataProviderSignatureOptionalStringValueType,
4935 "return_type": AbstractDataProviderTypeMap.
"any",
4937 "code":
string sub (reference<hash<QueryInfo>> info,
int role, list<auto> args) {
4938 string column_name = args[0];
4939 *
string partitionby = args[1];
4940 *
string orderby = args[2];
4942 throw "OVER-ERROR",
"Argument 2 (partition by) must be given in case of usage of argument 3 "
4945 string sql = column_name +
" over (";
4947 if (
exists partitionby) {
4948 if (!info.pseudo_column_map{partitionby}) {
4949 cols = info.table.describe();
4950 if (!
exists cols{partitionby}) {
4951 throw "OVER-ERROR",
sprintf(
"Argument 2 (partition by) %y is not an alias or an "
4952 "accessible column", partitionby);
4955 sql +=
sprintf(
"partition by %s", partitionby);
4958 if (!info.pseudo_column_map{orderby}) {
4960 cols = info.table.describe();
4961 if (!
exists cols{orderby}) {
4962 throw "OVER-ERROR",
sprintf(
"Argument 3 (order by) %y is not an alias or an "
4963 "accessible column", orderby);
4967 sql +=
sprintf(
" order by %s", orderby);
4974 "exp": <DataProviderExpressionInfo>{
4975 "type": DET_Operator,
4978 "desc":
"Returns the rank of a row in an ordered group of rows as a number",
4982 "return_type": AbstractDataProviderTypeMap.
"any",
4984 "code":
string sub (reference<hash<QueryInfo>> info,
int role, list<auto> args) {
4985 return "dense_rank()";
4989 "exp": <DataProviderExpressionInfo>{
4990 "type": DET_Operator,
4993 "desc":
"Returns the first value in an ordered group of rows",
4996 DataProviderSignatureFieldType,
4999 "return_type": AbstractDataProviderTypeMap.
"any",
5001 "code":
string sub (reference<hash<QueryInfo>> info,
int role, list<auto> args) {
5002 return sprintf(
"first_value(%s)", args[0]);
5006 "exp": <DataProviderExpressionInfo>{
5007 "type": DET_Operator,
5010 "desc":
"Returns the last value in an ordered group of rows",
5013 DataProviderSignatureFieldType,
5016 "return_type": AbstractDataProviderTypeMap.
"any",
5018 "code":
string sub (reference<hash<QueryInfo>> info,
int role, list<auto> args) {
5019 return sprintf(
"last_value(%s)", args[0]);
5023 "exp": <DataProviderExpressionInfo>{
5024 "type": DET_Operator,
5027 "desc":
"Returns the group number of an ordered group of rows",
5030 DataProviderSignatureIntValueType,
5033 "return_type": AbstractDataProviderTypeMap.
"int",
5035 "code":
string sub (reference<hash<QueryInfo>> info,
int role, list<auto> args) {
5036 return sprintf(
"ntile(%d)", args[0]);
5040 "exp": <DataProviderExpressionInfo>{
5041 "type": DET_Operator,
5044 "desc":
"Returns the percent rank of a row in an ordered group of rows",
5048 "return_type": AbstractDataProviderTypeMap.
"int",
5050 "code":
string sub (reference<hash<QueryInfo>> info,
int role, list<auto> args) {
5051 return "percent_rank()";
5055 "exp": <DataProviderExpressionInfo>{
5056 "type": DET_Operator,
5059 "desc":
"Returns the row number of a row in an ordered group of rows",
5063 "return_type": AbstractDataProviderTypeMap.
"int",
5065 "code":
string sub (reference<hash<QueryInfo>> info,
int role, list<auto> args) {
5070 "exp": <DataProviderExpressionInfo>{
5071 "type": DET_Operator,
5074 "desc":
"Returns the row number of a result set",
5078 "return_type": AbstractDataProviderTypeMap.
"int",
5080 "code":
string sub (reference<hash<QueryInfo>> info,
int role, list<auto> args) {
5081 return "row_number()";
5089 "code":
string sub (reference<hash<QueryInfo>> info,
string cn,
auto arg) {
5091 return sprintf(
"%s like %v", cn);
5094 "args": (DataProviderSignatureStringType, DataProviderSignatureStringValueType),
5095 "return_type": AbstractDataProviderTypeMap.
"bool",
5096 "desc":
"The value to bind as the 'like' value (ex: '%some string%')",
5098 OP_LT: AbstractDataProvider::GenericExpressions{DP_SEARCH_OP_LT} + (
5099 "code":
string sub (reference<hash<QueryInfo>> info,
string cn,
auto arg) {
5101 return sprintf(
"%s < %v", cn);
5104 OP_LE: AbstractDataProvider::GenericExpressions{DP_SEARCH_OP_LE} + (
5105 "code":
string sub (reference<hash<QueryInfo>> info,
string cn,
auto arg) {
5107 return sprintf(
"%s <= %v", cn);
5110 OP_GT: AbstractDataProvider::GenericExpressions{DP_SEARCH_OP_GT} + (
5111 "code":
string sub (reference<hash<QueryInfo>> info,
string cn,
auto arg) {
5113 return sprintf(
"%s > %v", cn);
5116 OP_GE: AbstractDataProvider::GenericExpressions{DP_SEARCH_OP_GE} + (
5117 "code":
string sub (reference<hash<QueryInfo>> info,
string cn,
auto arg) {
5119 return sprintf(
"%s >= %v", cn);
5122 OP_NE: AbstractDataProvider::GenericExpressions{DP_SEARCH_OP_NE} + (
5123 "code":
string sub (reference<hash<QueryInfo>> info,
string cn,
auto arg) {
5125 return sprintf(
"%s is not null", cn);
5127 return sprintf(
"(%s != %v or %s is null)", cn, cn);
5130 OP_EQ: AbstractDataProvider::GenericExpressions{DP_SEARCH_OP_EQ} + (
5131 "code":
string sub (reference<hash<QueryInfo>> info,
string cn,
auto arg) {
5133 return sprintf(
"%s is null", cn);
5135 return sprintf(
"%s = %v", cn);
5138 OP_BETWEEN: AbstractDataProvider::GenericExpressions{DP_SEARCH_OP_BETWEEN} + (
5139 "code":
string sub (reference<hash<QueryInfo>> info,
string cn,
auto arg) {
5140 info.args += arg[0];
5141 info.args += arg[1];
5142 return sprintf(
"%s between %v and %v", cn);
5145 OP_IN: AbstractDataProvider::GenericExpressions{DP_SEARCH_OP_IN} + (
5146 "code":
string sub (reference<hash<QueryInfo>> info,
string cn,
auto arg) {
5147 *
string ins = (foldl $1 +
"," + $2, (map info.table.getSqlValue($1), arg));
5148 return exists ins ?
sprintf(
"%s in (%s)", cn, ins) :
"1 != 1";
5152 "code":
string sub (reference<hash<QueryInfo>> info,
string cn,
auto arg,
5155 if (arg.table.typeCode() ==
NT_STRING) {
5156 subtable = info.table.getSubtableFromString(arg.table, opt);
5158 subtable = arg.table;
5162 string subsql = subtable.getSelectSql(arg.select_hash, \subargs);
5163 info.args += subargs;
5164 return sprintf(
"%s in (%s)", cn, subsql);
5168 OP_NOT: AbstractDataProvider::GenericExpressions{DP_SEARCH_OP_NOT} + (
5170 "code":
string sub (reference<hash<QueryInfo>> info,
string cn,
auto arg) {
5171 return sprintf(
"not (%s)", cn);
5176 "code":
string sub (reference<hash<QueryInfo>> info,
string cn,
auto arg) {
5177 return sprintf(
"%s < %s", cn, arg);
5180 "type": AbstractDataProviderType::get(StringType),
5181 "desc":
"a column name for less than comparisons; if the field value is less than the column argument's "
5182 "value, then the operation returns true; the other column must have a compatible type",
5186 "code":
string sub (reference<hash<QueryInfo>> info,
string cn,
auto arg) {
5187 return sprintf(
"%s <= %s", cn, arg);
5189 "name":
"column <=",
5190 "type": AbstractDataProviderType::get(StringType),
5191 "desc":
"a column name for less than or equals comparisons; if the field value is less than or equal to "
5192 "the column argument's, then the operation returns true; the other column must have a compatible type",
5196 "code":
string sub (reference<hash<QueryInfo>> info,
string cn,
auto arg) {
5197 return sprintf(
"%s > %s", cn, arg);
5200 "type": AbstractDataProviderType::get(StringType),
5201 "desc":
"a column name for less than comparisons; if the field value is less than the column argument's, "
5202 "then the operation returns true; the other column must have a compatible type",
5206 "code":
string sub (reference<hash<QueryInfo>> info,
string cn,
auto arg) {
5207 return sprintf(
"%s >= %s", cn, arg);
5209 "name":
"column >=",
5210 "type": AbstractDataProviderType::get(StringType),
5211 "desc":
"a column name for greater than or equals comparisons; if the field value is greater than or "
5212 "equal to the column argument's, then the operation returns true; the other column must have a "
5217 "code":
string sub (reference<hash<QueryInfo>> info,
string cn,
auto arg) {
5218 return sprintf(
"%s != %s", cn, arg);
5220 "name":
"column !=",
5221 "type": AbstractDataProviderType::get(StringType),
5222 "desc":
"a column name for not=equals comparisons; the other column must have a compatible type",
5226 "code":
string sub (reference<hash<QueryInfo>> info,
string cn,
string arg) {
5227 return sprintf(
"%s = %s", cn, arg);
5230 "type": AbstractDataProviderType::get(StringType),
5231 "desc":
"a value for equality comparisons; the other column must have a compatible type",
5234 "code":
string sub (reference<hash<QueryInfo>> info,
string cn,
auto arg) {
5235 info.args += arg[0];
5237 info.args += arg[2]; # text
5238 return sprintf(
"substring(%s from %v) = %v", cn);
5240 info.args += arg[1]; # count
5241 info.args += arg[2]; # text
5242 return sprintf(
"substring(%s from %v for %v) = %v", cn);
5246 "code":
string sub (reference<hash<QueryInfo>> info,
string cn, list<auto> arg) {
5247 return info.table.getOrClause(\info, arg);
5461 hash<OperatorInfo>
op_in(list<auto> args);
5577 hash<OperatorInfo>
op_substr(
int start, *
int count,
string text);
5649 hash<InsertOperatorInfo>
make_iop(
string iop,
auto arg);
5698 AbstractDatasource sqlutil_get_ds(
string type,
string config);
5702 hash<auto> sqlutil_ds(AbstractDatasource ds);
6112 populate(AbstractDatasource ds, hash<auto> tables, *hash<auto> opt);
6205 tableRenamedIntern(
string old_name,
string new_name,
string oldsn);
6228 list<auto> getCreateList();
6258 getDependencies(reference<hash> tdh, reference<hash> sdh, *reference<hash> th);
6379 constructor(
string n,
string nt, *
string qt,
int sz,
bool nul, *
string dv, *
string c, *
int scale)
6482 constructor(*
hash c) ;
6608 list<auto>
getRecreateSql(AbstractDatasource ds,
string table_name, *hash<auto> opt);
6616 constructor(*
hash c) ;
6859 constructor(
string n, *hash<auto> c) ;
6867 constructor(*hash<auto> c) ;
7093 constructor(*
hash c) ;
7149 constructor(*
hash c) ;
abstract class for check constraints
Definition: SqlUtil.qm.dox.h:6717
string src
the source of the check clause
Definition: SqlUtil.qm.dox.h:6721
bool equalImpl(AbstractConstraint c)
returns True if the argument is equal to the current object, False if not
constructor(string n, string n_src)
creates the object and sets its name and the check clause source
bool setIndexBase(string ix)
returns True if the object supports an index property and is set, False if not
clearIndex()
clears any index base for the constraint
the API for a constraint with columns
Definition: SqlUtil.qm.dox.h:6743
*string index
the index supporting the constraint
Definition: SqlUtil.qm.dox.h:6748
constructor(string name, Columns cols, *string index)
creates the object from the name and a Columns object
clearIndex()
clears any index base for the constraint
constructor(string name, *hash< auto > cols, *string index)
creates the object from the name and a hash of column information
bool setIndexBase(string ix)
returns True if the object supports an index property and is set, False if not
the base class for column information
Definition: SqlUtil.qm.dox.h:6346
abstract list< auto > getAddColumnSql(AbstractTable t)
returns a list of sql strings that can be used to add the column to an existing table
abstract bool equalImpl(AbstractColumn c)
returns True if the argument is equal to the current object, False if not
abstract string getRenameSql(AbstractTable t, string new_name)
returns a string that can be used to rename the column
string native_type
the native type name of the column
Definition: SqlUtil.qm.dox.h:6350
*string comment
comment on the column
Definition: SqlUtil.qm.dox.h:6365
*string def_val
default value for column
Definition: SqlUtil.qm.dox.h:6362
list< auto > getModifySql(AbstractTable t, AbstractColumn c, *hash< auto > opt)
returns a list of sql strings that can be used to modify the column to the new definition; if the col...
constructor()
empty constructor for subclasses
hash< GenericColumnInfo > getDescriptionHash()
Returns a description hash of the column.
abstract list< auto > getModifySqlImpl(AbstractTable t, AbstractColumn c, *hash< auto > opt)
returns a list of sql strings that can be used to modify the column to the new definition
*string qore_type
the equivalent qore type name of the column if known
Definition: SqlUtil.qm.dox.h:6353
string getCreateSql(AbstractTable t)
returns an sql string that can be used to add the column to a table
bool nullable
True if the column can hold a NULL value, False if not
Definition: SqlUtil.qm.dox.h:6359
bool equal(AbstractColumn c)
returns True if the argument is equal to the current object, False if not
const DefaultVarcharSize
Default VARCHAR column size.
Definition: SqlUtil.qm.dox.h:6371
string getNativeTypeString()
returns the string describing the native type that can be used in SQL
int size
the size of the column
Definition: SqlUtil.qm.dox.h:6356
*int scale
the scale for numeric columns
Definition: SqlUtil.qm.dox.h:6368
string getDropSql(string table_name)
returns a string that can be used to drop the column from the table
the API for a constraint with columns
Definition: SqlUtil.qm.dox.h:6770
Qore::AbstractIterator getSourceConstraintIterator()
returns an iterator through all known source foreign constraints on the current table
addSourceConstraint(string tname, AbstractForeignConstraint fk)
adds a foreign constraint source to the unique constraint
*hash< string, hash< string, AbstractForeignConstraint > > sourceConstraints
a hash of ForeignConstraintSources, keyed by table name, the value is a hash of foreign constraints k...
Definition: SqlUtil.qm.dox.h:6775
constructor(string name, Columns cols, *string index)
creates the object from the name and a Columns object
renameSourceConstraintTable(string old_name, string new_name)
renames a table in a source constraint
abstract string getCreateSql(string table_name, *hash< auto > opts)
returns a string that can be used to create the constraint in the database
findMatchingIndex(*Indexes indexes)
find an index that matches the constraint and marks both objects as related
*string getIndex()
returns the name of the associated index, if any
hash< auto > getDisableReenableSql(AbstractDatasource ds, string table_name, *hash< auto > opts)
returns lists of SQL strings to disable this constraint plus any dependent constraints and another li...
removeSourceConstraint(string tname, list< auto > cols)
removes a source constraint
bool equalImpl(AbstractConstraint c)
returns True if the argument is equal to the current object, False if not
constructor(string name, *hash< auto > cols, *string index)
creates the object from the name and a hash of column information
bool hasColumn(string cname)
returns True if the constraint references the named column
abstract base class for constraints
Definition: SqlUtil.qm.dox.h:6655
abstract bool setIndexBase(string ix)
returns True if the object supports an index property and is set, False if not
string getDisableSql(string table_name)
returns a string that can be used to temporarily disable the constraint from the database; if disabli...
string getName()
returns the constraint name
constructor(string n)
creates the object and sets its name
abstract list< auto > getRenameSql(string table_name, string new_name)
returns a list of SQL strings that can be used to rename the constraint in the database
bool hasColumn(string cname)
returns True if the constraint references the named column
rename(string n)
renames the constraint
abstract clearIndex()
clears any index base for the constraint
string getDropSql(string table_name)
returns a string that can be used to drop the constraint from the database
string name
the name of the constraint
Definition: SqlUtil.qm.dox.h:6662
abstract bool equalImpl(AbstractConstraint c)
returns True if the argument is equal to the current object, False if not
bool equal(AbstractConstraint c)
returns True if the argument is equal to the current object, False if not
string getEnableSql(string table_name, *hash< auto > opt)
returns a string that can be used to enable the constraint in the database; if disabling constraints ...
abstract string getCreateSql(string table_name, *hash< auto > opt)
returns a string that can be used to create the constraint in the database
the base class for named objects
Definition: SqlUtil.qm.dox.h:6320
constructor()
empty constructor for subclasses
abstract string getDdlName(string name)
returns the column name with quoting in case the column name is a reserved word
string ddl_name
the name of the object for DDL (in case it's a reserved word)
Definition: SqlUtil.qm.dox.h:6327
string name
the name of the object
Definition: SqlUtil.qm.dox.h:6324
constructor(string name)
creates the object from the name
the base class for foreign key constraint information
Definition: SqlUtil.qm.dox.h:6930
bool equalImpl(AbstractConstraint con)
returns True if the argument is equal to the current object, False if not
ForeignConstraintTarget target
a ForeignConstraintTarget object to describe the target table and columns
Definition: SqlUtil.qm.dox.h:6934
base class for function or objects with code
Definition: SqlUtil.qm.dox.h:7019
string getNormalizedSource(string src)
returns normalized source for comparisons
string name
the name of the object
Definition: SqlUtil.qm.dox.h:7023
abstract bool equalImpl(AbstractFunctionBase t)
returns True if the argument is equal to the current object, False if not
constructor(string n, string n_type, string n_src)
creates the object from the arguments passed
string getDropSql(*hash< auto > opt)
returns a string that can be used to drop the function from the database
bool equal(AbstractFunctionBase t)
returns True if the argument is equal to the current object, False if not
string src
the source of the object
Definition: SqlUtil.qm.dox.h:7029
string type
the type of object
Definition: SqlUtil.qm.dox.h:7026
string getType()
returns the type of object
base class for functions
Definition: SqlUtil.qm.dox.h:7064
abstract softlist< auto > getRenameSql(string new_name, *hash< auto > opt)
returns a list of strings that can be used to rename the function in the database
setName(string new_name)
sets the new name of the object
abstract list< auto > getCreateSql(*hash< auto > opt)
returns a list of SQL strings that can be used to create the function in the database
constructor(string n, string n_type, string n_src)
creates the object from the arguments passed
abstract container class that throws an exception if an unknown key is accessed
Definition: SqlUtil.qm.dox.h:5706
list< auto > values()
Returns a list of values of the contained hash.
bool partialMatchKeys(hash h1)
returns True if the hash argument has at least the same keys (in any order, can have more keys),...
Qore::AbstractIterator pairIterator()
Returns a HashPairIterator object for the contained hash.
bool hasKeyValue(string k)
Returns True if the key exists in the contained hash and is assigned a value, False if not.
abstract auto take(string k)
removes the given key from the contained hash and returns the value
list< string > keys()
Returns a list of key names of the contained hash.
bool partialMatchKeys(list< auto > l)
returns True if the list<auto> argument has at least the same keys (in any order, can have more keys)...
*string firstKey()
Returns the first key name in the contained hash or NOTHING if the contained hash has no keys.
bool partialMatchKeys(AbstractHashContainer c)
returns True if the container argument has at least the same keys (in any order, can have more keys),...
Qore::AbstractIterator iterator()
Returns a HashIterator object for the contained hash.
auto memberGate(string k)
returns the value of the given key in the contained hash if it exists, otherwise throws a KEY-ERROR e...
bool hasKey(string k)
Returns True if the key exists in the contained hash (may or may not be assigned a value),...
*hash< auto > getHash()
returns the hash contained by this object
renameKey(string old_name, string new_name)
renames the given key; maintains the key order
*string lastKey()
Returns the last key name in the contained hash or NOTHING if the contained hash has no keys.
clear()
purges the contained data
bool matchKeys(hash h1)
returns True if the hash argument has the same keys (in any order), False if not
*hash h
the data to be contained
Definition: SqlUtil.qm.dox.h:5713
abstract string getElementName()
must return the name of the contained element
Qore::AbstractIterator keyIterator()
Returns a HashKeyIterator object for the contained hash.
int size()
Returns the number of keys in the contained hash.
constructor(*hash nh)
creates the object with the hash argument passed
bool matchKeys(list< auto > l)
returns True if the list<auto> argument has the same list of key strings as the keys in the object (i...
constructor(AbstractHashContainer old)
creates a copy of the object
bool empty()
returns True if the container is empty, False if not
bool matchKeys(AbstractHashContainer c)
returns True if the container argument has the same keys (in any order), False if not
bool val()
Returns False if the contained hash has no keys, True if it does.
copy(AbstractHashContainer old)
creates a "deep copy" of the object
the abstract base class for index information
Definition: SqlUtil.qm.dox.h:6525
bool equalExceptName(AbstractIndex ix)
returns True if the argument is equal to the current index with the exception of the name,...
bool hasColumn(string cname)
returns True if the constraint references the named column
*AbstractForeignConstraint foreign_constraint
Any foreign constraint that this index supports.
Definition: SqlUtil.qm.dox.h:6542
abstract bool equalImpl(AbstractIndex ix)
returns True if the argument is equal to the current index, False if not
setForeignConstraint()
clears the supporting constraint
*AbstractColumnSupportingConstraint getSupportingConstraint()
returns the supporting constraint, if any
*list< AbstractColumnConstraint > getAllSupportingConstraints()
returns all supporting constraints, if any
abstract string getCreateSql(string table_name, *hash< auto > opt)
returns a string that can be used to create the index in the database
string name
the name of the index
Definition: SqlUtil.qm.dox.h:6529
*AbstractForeignConstraint getForeignConstraint()
returns the supporting constraint, if any
constructor(string n, bool u, hash c)
creates the object from the name, a unique flag, and a hash of column information
setSupportingConstraint(AbstractForeignConstraint c)
tags the index with a column supporting constraint (unique or fk constraint, etc) that the index supp...
setSupportingConstraint(AbstractColumnSupportingConstraint c)
tags the index with a column supporting constraint (unique or fk constraint, etc) that the index supp...
bool unique
True if the index is a unique index, False if not
Definition: SqlUtil.qm.dox.h:6532
*AbstractColumnSupportingConstraint constraint
the AbstractColumnSupportingConstraint that this index supports, if any
Definition: SqlUtil.qm.dox.h:6539
string getName()
returns the index name
setSupportingConstraint()
clears the supporting constraint
bool equal(AbstractIndex ix)
returns True if the argument is equal to the current index, False if not
string getDropSql(string table_name)
returns a string that can be used to drop the index from the database
abstract string getRenameSql(string table_name, string new_name)
returns a string that can be used to rename the index in the database
list< auto > getRecreateSql(AbstractDatasource ds, string table_name, *hash< auto > opt)
returns a list of strings to drop and recreate the current index; if there are dependent constraints,...
Columns columns
an object of class Columns representing the columns in the index
Definition: SqlUtil.qm.dox.h:6535
abstract container class that throws an exception if an unknown key is accessed
Definition: SqlUtil.qm.dox.h:5987
bool empty()
returns True if the container is empty, False if not
list< auto > getList()
returns the list contained by this object
abstract auto get(softint i)
returns the value of the given element in the contained list if it exists, otherwise throws an ELEMEN...
auto take(int i)
removes the given element from the contained list and returns the value
add(auto val)
adds the given value to the list
bool val()
Returns False if the contained list is empty, True if not.
abstract string getElementName()
must return the name of the contained element
constructor(softlist nl)
creates the object with the list<auto> argument passed
Qore::ListIterator iterator()
Returns a ListIterator object for the contained list.
int size()
Returns the number of elements in the contained list.
represents a primary key
Definition: SqlUtil.qm.dox.h:6853
base class for sequences
Definition: SqlUtil.qm.dox.h:6947
*number max
the ending number
Definition: SqlUtil.qm.dox.h:6960
string name
the name of the sequence
Definition: SqlUtil.qm.dox.h:6951
string getDropSql(*hash< auto > opt)
returns a string that can be used to drop the sequence from the database
abstract softlist< auto > getRenameSql(string new_name, *hash< auto > opt)
returns a list of strings that can be used to rename the sequence in the database
abstract string getCreateSql(*hash< auto > opt)
returns a string that can be used to create the sequence in the database
number start
the starting number
Definition: SqlUtil.qm.dox.h:6954
number increment
the increment
Definition: SqlUtil.qm.dox.h:6957
constructor(string n_name, number n_start=1, number n_increment=1, *softnumber n_max)
creates the object from the arguments
the base abstract class for the table implementation
Definition: AbstractTable.qc.dox.h:30
the base class for triggers
Definition: SqlUtil.qm.dox.h:7128
constructor(string n, string n_src)
creates the object and sets its name and the trigger source
abstract list< auto > getCreateSql(string table_name, *hash< auto > opt)
returns a string that can be used to create the trigger in the database
abstract softlist< auto > getRenameSql(string table_name, string new_name)
returns a string that can be used to rename the trigger in the database
abstract list< auto > getDropSql(string table_name)
returns a string that can be used to drop the trigger in the database
represents a unique column constraint
Definition: SqlUtil.qm.dox.h:6844
constructor(string n, *hash< auto > c, *string n_index)
creates the object from the name an a hash of column information
base class for views
Definition: SqlUtil.qm.dox.h:6983
abstract softlist< auto > getRenameSql(string new_name, *hash< auto > opt)
returns a list with command(s) that can be used to rename the view in the database
bool updatable
Flag showing if is the view updatable with DML commands.
Definition: SqlUtil.qm.dox.h:6996
string name
the name of the sequence
Definition: SqlUtil.qm.dox.h:6990
constructor(string n_name, string n_src)
creates the object from the arguments
string src
the source code
Definition: SqlUtil.qm.dox.h:6993
string getDropSql(*hash< auto > opt)
returns a string that can be used to drop the view from the database
abstract string getCreateSql(*hash< auto > opt)
returns a string that can be used to create the view in the database
column container class that throws an exception if an unknown column is accessed
Definition: SqlUtil.qm.dox.h:6264
bool equal(Columns cols)
returns True if the argument has the same columns in the same order as the current object,...
add(string k, AbstractColumn val)
adds the given value to the hash with the given key name
Columns subset(softlist l)
returns a subset of the current columns according to the list<auto> argument
string getElementName()
returns "column" since this object stores column objects
AbstractIterator getSqlColumnNameIterator()
returns an iterator for column SQL names
AbstractColumn memberGate(string k)
returns the AbstractColumn object corresponding to the key given or throws a KEY-ERROR exception
AbstractColumn take(string k)
removes the given key from the contained hash and returns the value
constructor(Columns old)
creates a copy of the object
constructor(*hash c)
creates the object from the argument
constraint container class that throws an exception if an unknown constraint is accessed
Definition: SqlUtil.qm.dox.h:6613
AbstractConstraint memberGate(string k)
returns the AbstractConstraint object corresponding to the key given or throws a KEY-ERROR exception
AbstractConstraint take(string k)
removes the given key from the contained hash and returns the value
*AbstractUniqueConstraint findEqualUniqueConstraint(AbstractUniqueConstraint uk)
finds a unique constraint with the same columns as the unique constraint passed
add(string k, AbstractConstraint val)
adds the given value to the hash with the given key name
string getElementName()
must return the name of the contained element
a class describing a foreign constraint target
Definition: SqlUtil.qm.dox.h:6911
constructor(string t, Columns c)
creates the object and sets the target table name and the target columns
bool equal(ForeignConstraintTarget targ)
returns True if the argument is equal to the current object, False if not
Columns columns
columns in the target table
Definition: SqlUtil.qm.dox.h:6918
string table
the name of the target table
Definition: SqlUtil.qm.dox.h:6915
foreign constraint container class that throws an exception if an unknown constraint is accessed
Definition: SqlUtil.qm.dox.h:6864
AbstractForeignConstraint take(string k)
removes the given key from the contained hash and returns the value
*AbstractForeignConstraint findEqual(AbstractForeignConstraint fk)
find an index with columns equal to the index passed
*hash< auto > findConstraintOn(string table, softlist< auto > cols)
returns either a hash of AbstractColumn information or NOTHING if no foreign constraint can be found ...
add(string k, AbstractForeignConstraint val)
adds the given value to the hash with the given key name
string getElementName()
returns "foreign constraint" for the type of object encapsulated
AbstractForeignConstraint memberGate(string k)
returns the AbstractForeignConstraint object corresponding to the key given or throws a KEY-ERROR exc...
function container class that throws an exception if an unknown function is accessed
Definition: SqlUtil.qm.dox.h:7090
add(string k, AbstractFunction val)
adds the given value to the hash with the given key name
AbstractFunction take(string k)
removes the given key from the contained hash and returns the value
string getElementName()
must return the name of the contained element
AbstractFunction memberGate(string k)
returns the AbstractFunction object corresponding to the key given or throws a KEY-ERROR exception
index container class that throws an exception if an unknown index is accessed
Definition: SqlUtil.qm.dox.h:6479
string getElementName()
must return the name of the contained element
AbstractIndex take(string k)
removes the given key from the contained hash and returns the value
*AbstractIndex tryTake(string k)
tries to remove the given key from the contained hash and returns the value if it exists
*AbstractIndex findEqual(AbstractIndex ix)
find an index with columns equal to the index passed
add(string k, AbstractIndex val)
adds the given value to the hash with the given key name
AbstractIndex memberGate(string k)
returns the AbstractIndex object corresponding to the key given or throws a KEY-ERROR exception
represents a database table; this class embeds an AbstractTable object that is created automatically ...
Definition: Table.qc.dox.h:44
the table container class stores a collection of tables in a schema
Definition: SqlUtil.qm.dox.h:6076
AbstractTable memberGate(string k)
returns the AbstractTable object corresponding to the key given or throws a KEY-ERROR exception
Qore::AbstractIterator dropIterator()
returns an iterator for a list of cached table names in the order that can be used to drop the tables...
constructor(AbstractDatasource ds, hash tables, *hash< auto > opt)
creates and populates the object from a hash<auto> description
populate(AbstractDatasource ds, hash< auto > tables, *hash< auto > opt)
populates the object from a hash<auto> description
bool tableRenamed(string old_name, string new_name, string old_sql_name)
updates table names and internal references for renamed tables
add(AbstractTable val)
adds the given value to the hash with the given key name
list< auto > getDropList()
returns a list of cached table names in the order that can be used to drop the tables,...
add(string k, Table val)
adds the given value to the hash with the given key name
AbstractTable take(string k)
removes the given key from the contained hash and returns the value
*AbstractTable getIfExists(AbstractDatasource ds, string name)
gets a table from the database or from the cache if already cached; if the table does not exist,...
populate(AbstractDatasource ds)
populates the object from tables in the database
constructor(AbstractDatasource ds)
creates and populates the object from tables in the database
add(string k, AbstractTable val)
adds the given value to the hash with the given key name
*string getDropConstraintIfExistsSql(string tname, string cname, *hash< auto > opts)
returns an SQL string that can be used to drop an existing constraint on a table, if the table is not...
*list< auto > getDropAllForeignConstraintsOnTableSql(string name, *hash< auto > opt)
returns a list of SQL strings that can be used to drop all the foreign constraints on a particular ta...
add(Table val)
adds the given value to the hash with the given key name
*string getRenameTableIfExistsSql(string old_name, string new_name, *hash< auto > opts)
returns an SQL string that can be used to rename the given table if it exists and the target does not...
string getElementName()
returns "table" since this object stores AbstractTable objects
constructor()
creates an empty object
AbstractTable get(AbstractDatasource ds, string name)
gets a table from the database or from the cache if already cached
trigger container class that throws an exception if an unknown trigger is accessed
Definition: SqlUtil.qm.dox.h:7146
AbstractTrigger memberGate(string k)
returns the AbstractTrigger object corresponding to the key given or throws a KEY-ERROR exception
AbstractTrigger take(string k)
removes the given key from the contained hash and returns the value
add(string k, AbstractTrigger val)
adds the given value to the hash with the given key name
string getElementName()
must return the name of the contained element
string sprintf(string fmt,...)
hash< auto > hash(object obj)
number number(softnumber n)
Qore AbstractDatabase class definition.
Definition: AbstractDatabase.qc.dox.h:26
hash< string, hash< JoinOperatorInfo > > join_right_alias(string ta, string table_name, *string alias, *hash jcols, *hash cond, *hash< auto > opt)
returns a hash for right outer joins with the given arguments for use when joining with a table other...
const COP_MAX
to return the maximum value
Definition: SqlUtil.qm.dox.h:2512
const DT_YEAR
Format unit: year.
Definition: SqlUtil.qm.dox.h:3576
const COP_OVER
the SQL "over" clause
Definition: SqlUtil.qm.dox.h:2532
hash< OperatorInfo > op_ge(auto arg)
returns an OperatorInfo hash for the ">=" operator with the given argument for use in where clauses w...
const COP_SEQ_CURRVAL
to return the last value of a sequence issued in the same session
Definition: SqlUtil.qm.dox.h:2582
const COP_LENGTH
to get the length of a text field
Definition: SqlUtil.qm.dox.h:2599
const COP_RANK
Analytic (window) function: RANK.
Definition: SqlUtil.qm.dox.h:2657
const COP_VALUE
to append a constant value (SQL Literal) to use as an output column value
Definition: SqlUtil.qm.dox.h:2487
const OP_GE
the SQL greater than or equals operator (>=) for use in Where Clauses
Definition: SqlUtil.qm.dox.h:4307
const COP_COALESCE
to return the first non-null argument in the list
Definition: SqlUtil.qm.dox.h:2587
hash< ColumnOperatorInfo > cop_year_hour(auto column)
returns a ColumnOperatorInfo hash for the "year_hour" operator with the given argument
const OP_NE
the SQL not equals operator (!= or <>) for use in Where Clauses
Definition: SqlUtil.qm.dox.h:4312
sqlutil_register_ds_deserializer(*code new_ds_get)
registers a closure or call reference taking a string type and string datasource configuration that w...
const CLOB
specifies a large variable-length character column (ie CLOB or TEXT, etc)
Definition: SqlUtil.qm.dox.h:2440
hash< ColumnOperatorInfo > cop_seq_currval(string seq, *string as)
returns a ColumnOperatorInfo hash for the "seq_currval" operator with the given argument giving the s...
hash< ColumnOperatorInfo > cop_coalesce(auto col1, auto col2)
returns a ColumnOperatorInfo hash for the "coalesce" operator with the given column arguments; the fi...
hash< ColumnOperatorInfo > cop_percent_rank()
Analytic/window function: relative rank of the current row.
hash< UpdateOperatorInfo > uop_seq(string seq)
returns an UpdateOperatorInfo hash for the "seq" operator with the given argument giving the sequence...
hash< string, hash< JoinOperatorInfo > > join_left_alias(string ta, string table_name, *string alias, *hash jcols, *hash cond, *hash< auto > opt)
returns a hash for left outer joins with the given arguments for use when joining with a table other ...
hash< ColumnOperatorInfo > cop_dense_rank()
Analytic/window function: rank of the current row without gaps.
const OP_LE
the SQL less than or equals (<=) operator for use in Where Clauses
Definition: SqlUtil.qm.dox.h:4297
const SZ_NONE
the data type does not take a size parameter
Definition: SqlUtil.qm.dox.h:2448
const OP_EQ
the SQL equals operator (=) for use in Where Clauses
Definition: SqlUtil.qm.dox.h:4317
const COP_MIN
to return the minimum value
Definition: SqlUtil.qm.dox.h:2507
const DB_SYNONYMS
Feature: synonyms.
Definition: SqlUtil.qm.dox.h:2420
const DB_PACKAGES
Feature: packages.
Definition: SqlUtil.qm.dox.h:2408
const DefaultUopMap
a hash of valid update operators
Definition: SqlUtil.qm.dox.h:3602
const COP_YEAR_HOUR
to return a date value with year to hextern information
Definition: SqlUtil.qm.dox.h:2572
hash< string, hash< JoinOperatorInfo > > join_inner_alias(string ta, string table_name, *string alias, *hash jcols, *hash cond, *hash< auto > opt)
returns a hash for standard inner joins with the given arguments for use when joining with a table ot...
sqlutil_register_ds_serializer(*code new_ds_do)
registers a closure or call reference taking a string type and string datasource configuration that w...
hash< OperatorInfo > op_substr(int start, *int count, string text)
returns an OperatorInfo hash for the "substr" operator with the given arguments; for use in where cla...
const COP_DIVIDE
the SQL "divide" operator
Definition: SqlUtil.qm.dox.h:2547
const IOP_SEQ
for using the value of a sequence
Definition: SqlUtil.qm.dox.h:5625
hash< ColumnOperatorInfo > cop_prepend(auto column, string arg)
returns a ColumnOperatorInfo hash for the "prepend" operator with the given argument
hash< ColumnOperatorInfo > cop_ntile(int value)
Analytic/window function: integer ranging from 1 to the argument value, dividing the partition as equ...
const DT_MINUTE
Format unit: minute.
Definition: SqlUtil.qm.dox.h:3588
const VARCHAR
specifies a VARCHAR column (equivalent to Qore::Type::String)
Definition: SqlUtil.qm.dox.h:2428
hash< OperatorInfo > op_cle(string arg)
returns an OperatorInfo hash for the "<=" operator with the given argument for use in where clauses w...
hash< OperatorInfo > op_ne(auto arg)
returns an OperatorInfo hash for the "!=" or "<>" operator with the given argument for use in where c...
const OP_IN
the SQL "in" operator for use in Where Clauses
Definition: SqlUtil.qm.dox.h:4357
const JopMap
a hash of valid join operators
Definition: SqlUtil.qm.dox.h:3813
hash< ColumnOperatorInfo > cop_avg(auto column)
returns a ColumnOperatorInfo hash for the "avg" operator; returns average column values
hash< ColumnOperatorInfo > cop_over(auto column, *string partitionby, *string orderby)
returns a ColumnOperatorInfo hash for the "over" clause
const OP_NOT
the SQL "not" operator for use in Where Clauses
Definition: SqlUtil.qm.dox.h:4362
hash< OperatorInfo > op_eq(auto arg)
returns an OperatorInfo hash for the "=" operator with the given argument for use in where clauses wh...
hash< ColumnOperatorInfo > cop_sum(auto column)
returns a ColumnOperatorInfo hash for the "sum" operator; returns the total sum of a numeric column.
const COP_YEAR
to return a date value with year information only
Definition: SqlUtil.qm.dox.h:2557
const DefaultExpressionMap
Default expressions to be supported by all SqlUtil modules.
Definition: SqlUtil.qm.dox.h:4380
hash< string, hash< JoinOperatorInfo > > join_inner(AbstractTable table, *string alias, *hash jcols, *hash cond, *hash< auto > opt)
returns a hash for standard inner joins with the given arguments
const DefaultOpMap
a hash of valid operators for use in Where Clauses
Definition: SqlUtil.qm.dox.h:5087
hash< UpdateOperatorInfo > uop_minus(auto arg, *hash< UpdateOperatorInfo > nest)
returns an UpdateOperatorInfo hash for the "-" operator with the given arguments
hash< UpdateOperatorInfo > uop_plus(auto arg, *hash< UpdateOperatorInfo > nest)
returns an UpdateOperatorInfo hash for the "+" operator with the given arguments
const SqlUtilDrivers
known drivers
Definition: SqlUtil.qm.dox.h:5680
hash< OperatorInfo > op_ceq(string arg)
returns an OperatorInfo hash for the "=" operator with the given argument for use in where clauses wh...
hash< ColumnOperatorInfo > cop_value(auto arg)
returns a ColumnOperatorInfo hash for the "value" (literal) operator with the given argument
hash< InsertOperatorInfo > iop_seq_currval(string arg)
returns an InsertOperatorInfo hash for retrieving the current value of the given sequence in insert q...
hash< string, hash< JoinOperatorInfo > > join_left(AbstractTable table, *string alias, *hash jcols, *hash cond, *hash< auto > opt)
returns a hash for left outer joins with the given arguments
const DB_MVIEWS
Feature: materialized views / snapshots.
Definition: SqlUtil.qm.dox.h:2406
const COP_COUNT
to return the row count
Definition: SqlUtil.qm.dox.h:2527
hash< UpdateOperatorInfo > uop_seq_currval(string seq)
returns an UpdateOperatorInfo hash for the "seq" operator with the given argument giving the sequence...
const COP_MULTIPLY
the SQL "multiply" operator
Definition: SqlUtil.qm.dox.h:2552
hash< ColumnOperatorInfo > cop_rank()
Analytic/window function: rank of the current row with gaps.
const OP_SUBSTR
the SQL "substr" operator for use in Where Clauses
Definition: SqlUtil.qm.dox.h:4367
const COP_AVG
to return the average value
Definition: SqlUtil.qm.dox.h:2517
hash< ColumnOperatorInfo > cop_year_month(auto column)
returns a ColumnOperatorInfo hash for the "year_month" operator with the given argument
hash< ColumnOperatorInfo > cop_upper(auto column)
returns a ColumnOperatorInfo hash for the "upper" operator with the given argument; returns a column ...
const DT_SECOND
Format unit: hour.
Definition: SqlUtil.qm.dox.h:3591
const OP_CGE
the SQL greater than or equals operator (>=) for use in Where Clauses
Definition: SqlUtil.qm.dox.h:4337
const COP_PLUS
the SQL "plus" operator
Definition: SqlUtil.qm.dox.h:2542
const COP_CUME_DIST
Analytic (window) function: CUME_DIST.
Definition: SqlUtil.qm.dox.h:2615
hash< OperatorInfo > op_in()
returns an OperatorInfo hash for the "in" operator with all arguments passed to the function; for use...
hash< ColumnOperatorInfo > cop_trunc_date(auto column, string mask)
Truncates a date column or value regarding the given mask. The resulting value remains Qore::date (no...
const DefaultIopMap
a hash of default insert operator descriptions (currently empty, all operators are driver-dependent)
Definition: SqlUtil.qm.dox.h:5633
hash< OperatorInfo > op_like(string str)
returns an OperatorInfo hash for the "like" operator with the given argument for use in where clauses
hash< ColumnOperatorInfo > cop_plus(auto column1, auto column2)
returns a ColumnOperatorInfo hash for the "+" operator with the given arguments
const DT_MONTH
Format unit: month.
Definition: SqlUtil.qm.dox.h:3579
const SZ_NUM
the data type is numeric so takes an optional precision and scale
Definition: SqlUtil.qm.dox.h:2457
const COP_SUBSTR
to extract a substring from a column
Definition: SqlUtil.qm.dox.h:2592
const COP_SEQ
to return the next value of a sequence
Definition: SqlUtil.qm.dox.h:2577
const SZ_MAND
the data type takes a mandatory size parameter
Definition: SqlUtil.qm.dox.h:2451
hash< ColumnOperatorInfo > cop_append(auto column, string arg)
returns a ColumnOperatorInfo hash for the "append" operator with the given argument
hash< UpdateOperatorInfo > uop_divide(auto arg, *hash< UpdateOperatorInfo > nest)
returns an UpdateOperatorInfo hash for the "/" operator with the given arguments
const COP_APPEND
to append a string to a column on output
Definition: SqlUtil.qm.dox.h:2482
const BLOB
specifies a large variable-length binary column (ie BLOB or BYTEA, etc)
Definition: SqlUtil.qm.dox.h:2437
hash< OperatorInfo > op_in_select(string table, hash< auto > select_hash)
returns an OperatorInfo hash for the "in" operator with a subquery as the argument; for use in where ...
hash< string, hash< JoinOperatorInfo > > join_right(AbstractTable table, *string alias, *hash jcols, *hash cond, *hash< auto > opt)
returns a hash for right outer joins with the given arguments
hash< ColumnOperatorInfo > cop_as(auto column, string arg)
returns a ColumnOperatorInfo hash for the "as" operator with the given argument
const DB_PROCEDURES
Feature: procedures.
Definition: SqlUtil.qm.dox.h:2410
hash< OperatorInfo > make_op(string op, auto arg)
returns an OperatorInfo hash
const COP_PERCENT_RANK
Analytic (window) function: PERCENT_RANK.
Definition: SqlUtil.qm.dox.h:2650
const COP_NTILE
Analytic (window) function: NTILE.
Definition: SqlUtil.qm.dox.h:2643
hash< ColumnOperatorInfo > cop_last_value(any column)
Analytic/window function: value evaluated at the row that is the last row of the window frame.
const OP_LT
the SQL less than (<) operator for use in Where Clauses
Definition: SqlUtil.qm.dox.h:4292
const OP_CLE
the SQL less than or equals (<=) operator for use in Where Clauses
Definition: SqlUtil.qm.dox.h:4327
const COP_YEAR_MONTH
to return a date value with year to month information
Definition: SqlUtil.qm.dox.h:2562
hash< string, hash< JoinOperatorInfo > > make_jop(string jop, AbstractTable table, *string alias, *hash jcols, *hash cond, *string ta, *hash< auto > opt)
returns hash keyed with the table name assigned to a JoinOperatorInfo hash
hash< ColumnOperatorInfo > cop_lower(auto column)
returns a ColumnOperatorInfo hash for the "lower" operator with the given argument; returns a column ...
const OP_BETWEEN
the SQL "between" operator for use in Where Clauses
Definition: SqlUtil.qm.dox.h:4352
hash< ColumnOperatorInfo > cop_cume_dist()
Analytic/window function: relative rank of the current row.
const DB_TABLES
Feature: tables.
Definition: SqlUtil.qm.dox.h:2414
hash< UpdateOperatorInfo > uop_upper(*hash< UpdateOperatorInfo > nest)
returns an UpdateOperatorInfo hash for the "upper" operator with the given argument; returns a column...
hash< ColumnOperatorInfo > cop_year(auto column)
returns a ColumnOperatorInfo hash for the "year" operator with the given argument
hash< UpdateOperatorInfo > uop_prepend(string arg, *hash< UpdateOperatorInfo > nest)
returns an UpdateOperatorInfo hash for the "prepend" operator with the given argument
const COP_PREPEND
to prepend a string to a column on output
Definition: SqlUtil.qm.dox.h:2477
hash< InsertOperatorInfo > make_iop(string iop, auto arg)
returns an InsertOperatorInfo hash
hash< ColumnOperatorInfo > cop_divide(auto column1, auto column2)
returns a ColumnOperatorInfo hash for the "/" operator with the given arguments
hash< OperatorInfo > op_cne(string arg)
returns an OperatorInfo hash for the "!=" or "<>" operator with the given argument for use in where c...
const COP_LOWER
to return column value in lower case
Definition: SqlUtil.qm.dox.h:2497
hash< UpdateOperatorInfo > make_uop(string uop, auto arg, *hash< UpdateOperatorInfo > nest)
returns an UpdateOperatorInfo hash
hash< string, hash< OperatorInfo > > wop_or(hash h1, hash h2)
returns an OperatorInfo hash with a fake "_OR_" column name; the list of arguments to the function is...
hash< ColumnOperatorInfo > cop_distinct(auto column)
returns a ColumnOperatorInfo hash for the "distinct" operator with the given argument; returns distin...
hash< ColumnOperatorInfo > make_cop(string cop, auto column, auto arg)
returns a ColumnOperatorInfo hash
hash< ColumnOperatorInfo > cop_multiply(auto column1, auto column2)
returns a ColumnOperatorInfo hash for the "*" operator with the given arguments
hash< OperatorInfo > op_between(auto l, auto r)
returns an OperatorInfo hash for the "between" operator with the given arguments, neither of which ca...
const DB_VIEWS
Feature: views.
Definition: SqlUtil.qm.dox.h:2418
hash< ColumnOperatorInfo > cop_length(auto column)
returns a ColumnOperatorInfo hash for the "len" operator with the given argument; returns the length ...
hash< OperatorInfo > op_cge(string arg)
returns an OperatorInfo hash for the ">=" operator with the given argument for use in where clauses w...
const COP_AS
to rename a column on output
Definition: SqlUtil.qm.dox.h:2467
hash< UpdateOperatorInfo > uop_lower(*hash< UpdateOperatorInfo > nest)
returns an UpdateOperatorInfo hash for the "lower" operator with the given argument; returns a column...
const COP_CAST
to convert column value into another datatype
Definition: SqlUtil.qm.dox.h:2472
const JOP_INNER
for standard inner joins
Definition: SqlUtil.qm.dox.h:3800
const OP_GT
the SQL greater than operator (>) for use in Where Clauses
Definition: SqlUtil.qm.dox.h:4302
const DT_HOUR
Format unit: hour.
Definition: SqlUtil.qm.dox.h:3585
const COP_ROW_NUMBER
Analytic (window) function: ROW_NUMBER.
Definition: SqlUtil.qm.dox.h:2664
hash< ColumnOperatorInfo > cop_count(auto column='')
returns a ColumnOperatorInfo hash for the "count" operator; returns row counts
hash< OperatorInfo > op_clt(string arg)
returns an OperatorInfo hash for the "<" operator with the given argument for use in where clauses wh...
hash< ColumnOperatorInfo > cop_max(auto column)
returns a ColumnOperatorInfo hash for the "max" operator; returns maximum column values
const SZ_OPT
the data type takes an optional size parameter
Definition: SqlUtil.qm.dox.h:2454
const CHAR
specifies a CHAR column
Definition: SqlUtil.qm.dox.h:2434
const COP_YEAR_DAY
to return a date value with year to day information
Definition: SqlUtil.qm.dox.h:2567
hash< ColumnOperatorInfo > cop_substr(auto column, int start, *int count)
returns a ColumnOperatorInfo hash for the "substr" operator with the given arguments; returns a subst...
hash< UpdateOperatorInfo > uop_multiply(auto arg, *hash< UpdateOperatorInfo > nest)
returns an UpdateOperatorInfo hash for the "*" operator with the given arguments
hash< OperatorInfo > op_lt(auto arg)
returns an OperatorInfo hash for the "<" operator with the given argument for use in where clauses wh...
const OP_CNE
the SQL not equals operator (!= or <>) for use in Where Clauses
Definition: SqlUtil.qm.dox.h:4342
const NUMERIC
specifies a numeric column (equivalent to Qore::Type::Number)
Definition: SqlUtil.qm.dox.h:2431
const OP_CLT
the SQL less than (<) operator for use in Where Clauses when comparing two columns
Definition: SqlUtil.qm.dox.h:4322
const OP_OR
to combine SQL expressions with "or" for use in Where Clauses
Definition: SqlUtil.qm.dox.h:4372
const COP_UPPER
to return column value in upper case
Definition: SqlUtil.qm.dox.h:2492
const JOP_RIGHT
for right outer joins
Definition: SqlUtil.qm.dox.h:3810
hash< OperatorInfo > op_cgt(string arg)
returns an OperatorInfo hash for the ">" operator with the given argument for use in where clauses wh...
const COP_DENSE_RANK
Analytic (window) function: DENSE_RANK.
Definition: SqlUtil.qm.dox.h:2622
hash< UpdateOperatorInfo > uop_substr(int start, *int count, *hash< UpdateOperatorInfo > nest)
returns an UpdateOperatorInfo hash for the "substr" operator with the given arguments; returns a subs...
const IOP_SEQ_CURRVAL
for using the last value of a sequence issued in the current session
Definition: SqlUtil.qm.dox.h:5630
const COP_TRUNC_DATE
to return the date with truncated value
Definition: SqlUtil.qm.dox.h:2608
const COP_MINUS
the SQL "minus" operator
Definition: SqlUtil.qm.dox.h:2537
hash< OperatorInfo > op_gt(auto arg)
returns an OperatorInfo hash for the ">" operator with the given argument for use in where clauses wh...
const COP_LAST_VALUE
Analytic (window) function: LAST_VALUE.
Definition: SqlUtil.qm.dox.h:2636
const COP_FIRST_VALUE
Analytic (window) function: FIRST_VALUE.
Definition: SqlUtil.qm.dox.h:2629
hash< OperatorInfo > op_not(hash arg)
returns an OperatorInfo hash for the "not" operator; for use in where clauses
hash< ColumnOperatorInfo > cop_year_day(auto column)
returns a ColumnOperatorInfo hash for the "year_day" operator with the given argument
const DefaultCopMap
a hash of default column operator descriptions
Definition: SqlUtil.qm.dox.h:2700
const DB_FUNCTIONS
Features constants.
Definition: SqlUtil.qm.dox.h:2404
hash< OperatorInfo > op_le(auto arg)
returns an OperatorInfo hash for the "<=" operator with the given argument for use in where clauses w...
const COP_DISTINCT
to return distinct values
Definition: SqlUtil.qm.dox.h:2502
const OP_IN_SELECT
the SQL "in" operator with a select query for use in Where Clauses
Definition: SqlUtil.qm.dox.h:4377
hash< UpdateOperatorInfo > uop_append(string arg, *hash< UpdateOperatorInfo > nest)
returns an UpdateOperatorInfo hash for the "append" or concatenate operator with the given argument
const OP_CGT
the SQL greater than operator (>) for use in Where Clauses
Definition: SqlUtil.qm.dox.h:4332
hash< ColumnOperatorInfo > cop_row_number()
Analytic/window function: number of the current row within its partition, counting from 1.
const DT_DAY
Format unit: day.
Definition: SqlUtil.qm.dox.h:3582
hash< ColumnOperatorInfo > cop_seq(string seq, *string as)
returns a ColumnOperatorInfo hash for the "seq" operator with the given argument giving the sequence ...
const DB_SEQUENCES
Feature: sequences.
Definition: SqlUtil.qm.dox.h:2412
const DB_TYPES
Feature: named types.
Definition: SqlUtil.qm.dox.h:2416
const OP_CEQ
the SQL equals operator (=) for use in Where Clauses
Definition: SqlUtil.qm.dox.h:4347
const COP_SUM
to return the sum value
Definition: SqlUtil.qm.dox.h:2522
const OP_LIKE
the SQL "like" operator for use in Where Clauses
Definition: SqlUtil.qm.dox.h:4287
hash< ColumnOperatorInfo > cop_min(auto column)
returns a ColumnOperatorInfo hash for the "min" operator; returns minimum column values
hash< ColumnOperatorInfo > cop_cast(auto column, string arg, auto arg1, auto arg2)
returns a ColumnOperatorInfo hash for the "cast" operator with the given argument(s)
hash< ColumnOperatorInfo > cop_minus(auto column1, auto column2)
returns a ColumnOperatorInfo hash for the "-" operator with the given arguments
hash< ColumnOperatorInfo > cop_first_value(any column)
Analytic/window function: value evaluated at the row that is the first row of the window frame.
const JOP_LEFT
for left outer joins
Definition: SqlUtil.qm.dox.h:3805
hash< InsertOperatorInfo > iop_seq(string arg)
returns an InsertOperatorInfo hash for retrieving the value of the given sequence in insert queries
column operator info hash as returned by all column operator functions
Definition: SqlUtil.qm.dox.h:2333
string cop
the column operator string code
Definition: SqlUtil.qm.dox.h:2334
auto arg
optional argument
Definition: SqlUtil.qm.dox.h:2336
auto column
column sopecifier, may be a string or a complex hash
Definition: SqlUtil.qm.dox.h:2335
generic column description hash in schema descriptions
Definition: SqlUtil.qm.dox.h:2303
bool notnull
if the column should have a "not null" constraint on it; if missing the default value is False
Definition: SqlUtil.qm.dox.h:2319
hash< string, hash > driver
this key can optionally contain a hash keyed by driver name which contains a hash of values that will...
Definition: SqlUtil.qm.dox.h:2321
auto default_value
the default value for the column
Definition: SqlUtil.qm.dox.h:2313
softint scale
for numeric data types, this value gives the scale
Definition: SqlUtil.qm.dox.h:2311
softint size
for data types requiring a size component, the size; for numeric columns this represents the precisio...
Definition: SqlUtil.qm.dox.h:2309
bool default_value_native
a boolean flag to say if a default_value should be validated against table column type (False) or use...
Definition: SqlUtil.qm.dox.h:2315
*string comment
an optional comment for the column
Definition: SqlUtil.qm.dox.h:2317
string qore_type
a qore type string that will be converted to a native DB type with some default conversion
Definition: SqlUtil.qm.dox.h:2305
string native_type
the native database column type; if both native_type and qore_type are given then native_type is used
Definition: SqlUtil.qm.dox.h:2307
*bool auto_increment
True for DBs that support an auto-increment column
Definition: SqlUtil.qm.dox.h:2323
insert operator info hash as returned by all insert operator functions
Definition: SqlUtil.qm.dox.h:2340
string _iop
the insert operator string code
Definition: SqlUtil.qm.dox.h:2341
any arg
optional argument
Definition: SqlUtil.qm.dox.h:2342
join operator info hash as returned by all join operator functions
Definition: SqlUtil.qm.dox.h:2353
*hash cond
additional conditions for the join clause for the table argument; see Where Clauses for more informat...
Definition: SqlUtil.qm.dox.h:2358
*string alias
optional alias for table in the query
Definition: SqlUtil.qm.dox.h:2356
*string ta
optional table name or alias of the other table to join with when not joining with the primary table
Definition: SqlUtil.qm.dox.h:2359
auto table
the table to join with (either an AbstractTable object or a string table name)
Definition: SqlUtil.qm.dox.h:2355
*hash jcols
the columns to use for the join, the keys will be columns in the source table and the values are colu...
Definition: SqlUtil.qm.dox.h:2357
*hash< auto > opt
optional join options (for example, to specify a partition for the join if supported)
Definition: SqlUtil.qm.dox.h:2360
string jop
the join operator string code
Definition: SqlUtil.qm.dox.h:2354
SQL operator info hash as returned by all operator functions.
Definition: SqlUtil.qm.dox.h:2327
auto arg
optional argument
Definition: SqlUtil.qm.dox.h:2329
string op
the operator string code
Definition: SqlUtil.qm.dox.h:2328
Query information.
Definition: SqlUtil.qm.dox.h:2667
*hash< auto > expression_map
The expression map.
Definition: SqlUtil.qm.dox.h:2687
*hash< string, AbstractTable > join_map
Tables in this join; table alias -> table.
Definition: SqlUtil.qm.dox.h:2678
*hash< auto > pseudo_column_map
Any valid pseudocolumns or aliases generated in th query.
Definition: SqlUtil.qm.dox.h:2684
*hash< auto > where_operator_map
The old-style backwards-compatible "where operator" map.
Definition: SqlUtil.qm.dox.h:2690
object table
The primary table object.
Definition: SqlUtil.qm.dox.h:2669
*hash< auto > query_hash
The original query hash.
Definition: SqlUtil.qm.dox.h:2672
*hash< auto > column_operator_map
Any custom column operator map.
Definition: SqlUtil.qm.dox.h:2693
list< auto > args
arguments to bind in the query generated
Definition: SqlUtil.qm.dox.h:2696
*hash< auto > query_options
Any query options.
Definition: SqlUtil.qm.dox.h:2675
*hash< string, bool > subquery_column_map
When executing a superquery, we can only reference colums in the subquery.
Definition: SqlUtil.qm.dox.h:2681
A hash describing SQL and arguments for an SQL DML command.
Definition: SqlUtil.qm.dox.h:2389
string sql
the SQL string for the update
Definition: SqlUtil.qm.dox.h:2391
list< auto > args
the arguments for the string
Definition: SqlUtil.qm.dox.h:2394
column data type options
Definition: SqlUtil.qm.dox.h:2364
*string number_format
optional format string for converting strings to numeric / decimal / number columns
Definition: SqlUtil.qm.dox.h:2375
*TimeZone data_timezone
the timezone when converting dates from external data to the DB's date
Definition: SqlUtil.qm.dox.h:2369
*softint maxlen
optional additional limit to the maximum length of the data
Definition: SqlUtil.qm.dox.h:2383
*TimeZone db_timezone
the timezone to use when sending date/time values to the DB
Definition: SqlUtil.qm.dox.h:2372
*softbool mandatory
optional flag to overrude any nullable attribute and require data for the column
Definition: SqlUtil.qm.dox.h:2378
*string date_format
optional format string for converting strings to dates for date / timestamp columns
Definition: SqlUtil.qm.dox.h:2366
update operator info hash as returned by all update operator functions
Definition: SqlUtil.qm.dox.h:2346
*hash nest
option nested operation hash
Definition: SqlUtil.qm.dox.h:2349
auto arg
optional argument
Definition: SqlUtil.qm.dox.h:2348
string uop
the update operator string code
Definition: SqlUtil.qm.dox.h:2347