## org.eclipse.datatools.sqltools.parsers.sql.query
Class SQLQueryParserFactory

    java.lang.Object
      org.eclipse.datatools.sqltools.parsers.sql.query.SQLQueryParserFactory

All Implemented Interfaces:
  SQLQueryParserFactoryDataTypes, SQLParserFactory

Direct Known Subclasses:
  SQLXMLQueryParserFactory

    public class SQLQueryParserFactory

extends java.lang.Object
implements SQLParserFactory, SQLQueryParserFactoryDataTypes

This class provides methods for creating elements of the SQL query model. I wraps the factories: - RDBSchemaFactory

Field Summary
`static java.lang.String` `ALL` String constant for QuerySelect "ALL"
`static int` `COMBINED_OPERATOR_ADD` int constant for `ValueExpressionCombinedOperator.ADD` "+"
`static int` `COMBINED_OPERATOR_AND` int constant for `SearchConditionCombinedOperator.AND`
`static int` `COMBINED_OPERATOR_CONCATENATE` int constant for `ValueExpressionCombinedOperator.CONCATENATE` "||"
`static int` `COMBINED_OPERATOR_DIVIDE` int constant for `ValueExpressionCombinedOperator.DIVIDE` "/"
`static int` `COMBINED_OPERATOR_MULTIPLY` int constant for `ValueExpressionCombinedOperator.MULTIPLY` "*"
`static int` `COMBINED_OPERATOR_OR` int constant for `SearchConditionCombinedOperator.OR`
`static int` `COMBINED_OPERATOR_SUBTRACT` int constant for `ValueExpressionCombinedOperator.SUBTRACT` "-"
`static int` `COMPARISON_OPERATOR_EQ` int constant for `PredicateComparisonOperator.EQUAL` "="
`static int` `COMPARISON_OPERATOR_GE` int constant for `PredicateComparisonOperator.GREATER_THAN_OR_EQUAL` ">="
`static int` `COMPARISON_OPERATOR_GT` int constant for `PredicateComparisonOperator.GREATER_THAN` ">"
`static int` `COMPARISON_OPERATOR_LE` int constant for `PredicateComparisonOperator.LESS_THAN_OR_EQUAL` "<="
`static int` `COMPARISON_OPERATOR_LT` int constant for `PredicateComparisonOperator.LESS_THAN` "<"
`static int` `COMPARISON_OPERATOR_NE` int constant for `PredicateComparisonOperator.NOT_EQUAL` "<>"
`static java.lang.String` `DISTINCT` String constant for QuerySelect "DISTINCT"
`static int` `DURATION_TYPE_DAYS` int constant for `ValueExpressionLabeledDurationType.DAYS`
`static int` `DURATION_TYPE_HOURS` int constant for `ValueExpressionLabeledDurationType.HOURS`
`static int` `DURATION_TYPE_MICROSECONDS` int constant for `ValueExpressionLabeledDurationType.MICROSECONDS`
`static int` `DURATION_TYPE_MINUTES` int constant for `ValueExpressionLabeledDurationType.MINUTES`
`static int` `DURATION_TYPE_MONTHS` int constant for `ValueExpressionLabeledDurationType.MONTHS`
`static int` `DURATION_TYPE_SECONDS` int constant for `ValueExpressionLabeledDurationType.SECONDS`
`static int` `DURATION_TYPE_YEARS` int constant for `ValueExpressionLabeledDurationType.YEARS`
`static int` `JOIN_DEFAULT_INNER` int constant for `TableJoinedOperator.DEFAULT_INNER` "JOIN"
`static int` `JOIN_EXPLICIT_INNER` int constant for `TableJoinedOperator.EXPLICIT_INNER` "INNER JOIN"
`static int` `JOIN_FULL_OUTER` int constant for `TableJoinedOperator.FULL_OUTER` "FULL JOIN"
`static int` `JOIN_LEFT_OUTER` int constant for `TableJoinedOperator.LEFT_OUTER` "LEFT JOIN"
`static int` `JOIN_RIGHT_OUTER` int constant for `TableJoinedOperator.RIGHT_OUTER` "RIGHT JOIN"
`static int` `NULL_ORDERING_TYPE_NONE` int constant for `NullOrderingType.NONE`
`static int` `NULL_ORDERING_TYPE_NULLS_FIRST` int constant for `NullOrderingType.NULLS_FIRST`
`static int` `NULL_ORDERING_TYPE_NULLS_LAST` int constant for `NullOrderingType.NULLS_LAST`
`static java.lang.String` `ORDER_ASC` String constant for OrderBySpecification "ASC"
`static java.lang.String` `ORDER_DESC` String constant for OrderBySpecification "DESC"
`static int` `ORDERING_SPEC_TYPE_ASC` int constant for `OrderingSpecType.ASC`
`static int` `ORDERING_SPEC_TYPE_DESC` int constant for `OrderingSpecType.DESC`
`static int` `ORDERING_SPEC_TYPE_NONE` int constant for `OrderingSpecType.NONE`
`static int` `QUANTIFIER_ALL` int constant for `PredicateQuantifiedType.ALL` "ALL"
`static int` `QUANTIFIER_ANY` int constant for `PredicateQuantifiedType.ANY` "ANY"
`static int` `QUANTIFIER_SOME` int constant for `PredicateQuantifiedType.SOME` "SOME"
`static int` `QUERY_COMBINED_EXCEPT` int constant for `QueryCombinedOperator.EXCEPT` "EXCEPT"
`static int` `QUERY_COMBINED_EXCEPT_ALL` int constant for `QueryCombinedOperator.EXCEPT_ALL` "EXCEPT ALL"
`static int` `QUERY_COMBINED_INTERSECT` int constant for `QueryCombinedOperator.INTERSECT` "INTERSECT"
`static int` `QUERY_COMBINED_INTERSECT_ALL` int constant for `QueryCombinedOperator.INTERSECT_ALL` "INTERSECT ALL"
`static int` `QUERY_COMBINED_UNION` int constant for `QueryCombinedOperator.UNION` "UNION"
`static int` `QUERY_COMBINED_UNION_ALL` int constant for `QueryCombinedOperator.UNION_ALL` "UNION ALL"
`static java.lang.String` `SPECIAL_REGISTER_CURRENT_DATE` String constant for special register, value "CURRENT_DATE"
`static java.lang.String` `SPECIAL_REGISTER_CURRENT_DEFAULT_TRANSFORM_GROUP` String constant for special register, value "CURRENT_DEFAULT_TRANSFORM_GROUP"
`static java.lang.String` `SPECIAL_REGISTER_CURRENT_PATH` String constant for special register, value "CURRENT_PATH"
`static java.lang.String` `SPECIAL_REGISTER_CURRENT_ROLE` String constant for special register, value "CURRENT_ROLE"
`static java.lang.String` `SPECIAL_REGISTER_CURRENT_TIME` String constant for special register, value "CURRENT_TIME"
`static java.lang.String` `SPECIAL_REGISTER_CURRENT_TIMESTAMP` String constant for special register, value "CURRENT_TIMESTAMP"
`static java.lang.String` `SPECIAL_REGISTER_CURRENT_TRANSFORM_GROUP_FOR_TYPE` String constant for special register, value "CURRENT_TRANSFORM_GROUP_FOR_TYPE"
`static java.lang.String` `SPECIAL_REGISTER_CURRENT_USER` String constant for special register, value "CURRENT_USER"
`static java.lang.String` `SPECIAL_REGISTER_LOCALTIME` String constant for special register, value "LOCALTIME"
`static java.lang.String` `SPECIAL_REGISTER_LOCALTIMESTAMP` String constant for special register, value "LOCALTIMESTAMP"
`static java.lang.String` `SPECIAL_REGISTER_SESSION_USER` String constant for special register, value "SESSION_USER"
`static java.lang.String` `SPECIAL_REGISTER_SYSTEM_USER` String constant for special register, value "SYSTEM_USER"
`static java.lang.String` `SPECIAL_REGISTER_USER` String constant for special register, value "USER"
`static java.lang.String` `SPECIAL_REGISTER_VALUE` String constant for special register, value "VALUE"
`static int` `SUPERGROUP_TYPE_CUBE` int constant for `SuperGroupType.CUBE`
`static int` `SUPERGROUP_TYPE_GRANDTOTAL` int constant for `SuperGroupType.GRANDTOTAL`
`static int` `SUPERGROUP_TYPE_ROLLUP` int constant for `SuperGroupType.ROLLUP`
`static int` `UNARY_OPERATOR_MINUS` int constant for `ValueExpressionUnaryOperator.MINUS` "-"
`static int` `UNARY_OPERATOR_PLUS` int constant for `ValueExpressionUnaryOperator.PLUS` "+"
`static int` `UPDATABILITY_TYPE_FOR_READ_ONLY` int constant for `UpdatabilityType.READ_ONLY` "FOR READ ONLY"
`static int` `UPDATABILITY_TYPE_FOR_UPDATE` int constant for `UpdatabilityType.UPDATE` "FOR UPDATE"

Fields inherited from interface org.eclipse.datatools.sqltools.parsers.sql.query.SQLQueryParserFactoryDataTypes

`PRIMITIVE_TYPE_BIGINT, PRIMITIVE_TYPE_BINARY, PRIMITIVE_TYPE_BINARY_LARGE_OBJECT, PRIMITIVE_TYPE_BINARY_VARYING, PRIMITIVE_TYPE_BOOLEAN, PRIMITIVE_TYPE_CHARACTER, PRIMITIVE_TYPE_CHARACTER_LARGE_OBJECT, PRIMITIVE_TYPE_CHARACTER_VARYING, PRIMITIVE_TYPE_DATALINK, PRIMITIVE_TYPE_DATE, PRIMITIVE_TYPE_DECIMAL, PRIMITIVE_TYPE_DOUBLE_PRECISION, PRIMITIVE_TYPE_FLOAT, PRIMITIVE_TYPE_INTEGER, PRIMITIVE_TYPE_INTERVAL, PRIMITIVE_TYPE_NATIONAL_CHARACTER, PRIMITIVE_TYPE_NATIONAL_CHARACTER_LARGE_OBJECT, PRIMITIVE_TYPE_NATIONAL_CHARACTER_VARYING, PRIMITIVE_TYPE_NUMERIC, PRIMITIVE_TYPE_REAL, PRIMITIVE_TYPE_SMALLINT, PRIMITIVE_TYPE_TIME, PRIMITIVE_TYPE_TIMESTAMP, UNIT_INDICATOR_G, UNIT_INDICATOR_K, UNIT_INDICATOR_M`

Constructor Summary
`SQLQueryParserFactory()` Constructs an instance of this class.
`SQLQueryParserFactory(SQLQuerySourceFormat aSourceFormat)` Constructor.

Method Summary
`TableExpression` `addTableCorrelationToTableExpression(TableExpression tableExpr, TableCorrelation tableCorrelation)` Adds the given `tableCorrelation` to the given `tableExpr`.
`CallStatement` `createCallStatement(ProcedureReference procRef, java.util.List argList)`
`ValueExpressionCaseElse` `createCaseElse(QueryValueExpression expr)`
`ValueExpressionCaseSearchContent` `createCaseSearchContent(QuerySearchCondition aWhenCond, QueryValueExpression aExpr)`
`ValueExpressionCaseSearch` `createCaseSearchExpression(java.util.List aCaseSearchWhenList, ValueExpressionCaseElse aCaseElse)`
`java.util.List` `createCaseSearchList(java.util.List aCaseSearchList, ValueExpressionCaseSearchContent aCaseSearchContent)`
`ValueExpressionCaseSimpleContent` `createCaseSimpleContent(QueryValueExpression aWhenExpr, QueryValueExpression aResultExpr)`
`ValueExpressionCaseSimple` `createCaseSimpleExpression(QueryValueExpression aCaseValue, java.util.List aCaseSimpleWhenList, ValueExpressionCaseElse aCaseElse)`
`java.util.List` `createCaseSimpleList(java.util.List aCaseSimpleList, ValueExpressionCaseSimpleContent aCaseSimpleContent)`
`ValueExpressionCast` `createCastExpression(QueryValueExpression aExpr, DataType aCastType)`
`ValueExpressionCast` `createCastExpression(QueryValueExpression aExpr, java.lang.String aCastType)`
`ValueExpressionColumn` `createColumnExpression(java.lang.String aColumnName)`
`ValueExpressionColumn` `createColumnExpression(java.lang.String aColumnName, java.lang.String aQualifier)`
`ValueExpressionColumn` `createColumnExpression(java.lang.String aColumnName, java.lang.String aTableName, java.lang.String aSchemaName)` if the same table name and same column name is referenced in two different schemas and the tables in the FROM-clause are not given an alias name e.g.
`java.util.List` `createColumnList(java.util.List aColumnNameList, ValueExpressionColumn aColumnExpr)`
`ColumnName` `createColumnName(java.lang.String aColumnName)`
`java.util.List` `createColumnNameList(java.util.List aColumnNameList, ColumnName aColumnName)`
`SearchConditionCombined` `createCombinedCondition(QuerySearchCondition aLeftCond, QuerySearchCondition aRightCond, int aCondOper)`
`ValueExpressionCombined` `createCombinedExpression(QueryValueExpression aLeftExpr, int aExprOper, QueryValueExpression aRightExpr)`
`DataType` `createDataType(java.lang.String aTypeName)`
`ArrayDataType` `createDataTypeArray(DataType dataType)` Factory method to construct a `ArrayDataType` with the element data type `elementDataType`.
`ArrayDataType` `createDataTypeArray(DataType dataType, int maxCardinality)` Factory method to construct a `ArrayDataType` with the element data type `elementDataType` and with maximum cardinality specified by `maxCardinality`.
`ArrayDataType` `createDataTypeArray(DataType dataType, int maxCardinality, java.lang.String typeName)`
`BinaryStringDataType` `createDataTypeBinaryString(int primitiveType, int length, java.lang.String optionalUnitsIndicator)` Factory method to construct a `BinaryStringDataType` with its `primitiveType` and `length`.
`BinaryStringDataType` `createDataTypeBinaryString(int primitiveType, int length, java.lang.String optionalUnitsIndicator, java.lang.String typeName)`
`BooleanDataType` `createDataTypeBoolean()` Factory method to construct a `BooleanDataType` with `primitiveType` `PrimitiveType.BOOLEAN_LITERAL`.
`BooleanDataType` `createDataTypeBoolean(java.lang.String typeName)`
`CharacterStringDataType` `createDataTypeCharacterString(int primitiveType, int length, java.lang.String optionalUnitsIndicator)` Factory method to construct a `CharacterStringDataType` with its `primitiveType` and `length`.
`CharacterStringDataType` `createDataTypeCharacterString(int primitiveType, int length, java.lang.String optionalUnitsIndicator, java.lang.String typeName)`
`DataLinkDataType` `createDataTypeDataLink(int length)` TODO: finish method signature and doc properly!
`DataLinkDataType` `createDataTypeDataLink(int length, java.lang.String typeName)`
`DateDataType` `createDataTypeDate()` Factory method to construct a `DateDataType` with `primitiveType` `PrimitiveType.DATE_LITERAL`.
`DateDataType` `createDataTypeDate(java.lang.String typeName)`
`DistinctUserDefinedType` `createDataTypeDistinctUserDefinedType(java.lang.String aTypeName)`
`IntervalDataType` `createDataTypeInterval(IntervalQualifierType leadingQualifier, IntervalQualifierType trailingQualifier, int leadingFieldPrecision, int trailingFieldPrecision, int fractionalSecondsPrecision)` Factory method to construct a `IntervalDataType` with `primitiveType` `PrimitiveType.INTERVAL`.
`IntervalDataType` `createDataTypeInterval(IntervalQualifierType leadingQualifier, IntervalQualifierType trailingQualifier, int leadingFieldPrecision, int trailingFieldPrecision, int fractionalSecondsPrecision, java.lang.String typeName)`
`MultisetDataType` `createDataTypeMultiset(DataType dataType)` Factory method to construct a `MultisetDataType` with the element data type `elementDataType`.
`MultisetDataType` `createDataTypeMultiset(DataType dataType, java.lang.String typeName)`
`ApproximateNumericDataType` `createDataTypeNumericApproximate(int primitiveType, int precision)` Factory method to construct a `ApproximateNumericDataType` with its `primitiveType` and `precision`.
`ApproximateNumericDataType` `createDataTypeNumericApproximate(int primitiveType, int precision, java.lang.String typeName)`
`FixedPrecisionDataType` `createDataTypeNumericFixedPrecision(int primitiveType, int precision, int scale)` Factory method to construct a `FixedPrecisionDataType` with its `primitiveType`, `precision` and `scale`.
`FixedPrecisionDataType` `createDataTypeNumericFixedPrecision(int primitiveType, int precision, int scale, java.lang.String typeName)`
`IntegerDataType` `createDataTypeNumericInteger(int primitiveType, int precision)` Factory method to construct a `IntegerDataType` with its `primitiveType`.
`IntegerDataType` `createDataTypeNumericInteger(int primitiveType, int precision, java.lang.String typeName)`
`PredefinedDataType` `createDataTypePredefinedDataType(java.lang.String typeName)`
`TimeDataType` `createDataTypeTime(int primitiveType, int precision)` Factory method to construct a `TimeDataType` with its `primitiveType` and `length`.
`TimeDataType` `createDataTypeTime(int primitiveType, int precision, java.lang.String typeName)`
`UserDefinedType` `createDataTypeUserDefinedType(java.lang.String aSchemaName, java.lang.String aTypeName)`
`ValueExpressionDefaultValue` `createDefaultExpression()`
`QueryDeleteStatement` `createDeleteStatement_deprecated(TableInDatabase aTargetTable, java.lang.String aAsTable, QuerySearchCondition aWhereClause)` Deprecated. use `#createDeleteStatement(SQLTableExpression, SQLTableCorrelation, SQLSearchCondition)`
`QueryDeleteStatement` `createDeleteStatement(TableInDatabase aTargetTable, TableCorrelation aAsTable, QuerySearchCondition aWhereClause)` [New Model]
`DistinctUserDefinedType` `createDistinctUserDefinedType(java.lang.String aTypeName)`
`java.util.List` `createExpressionList(java.util.List aExprList, QueryValueExpression aValExpr)`
`java.util.List` `createFromClause(java.util.List aTableRefList, TableReference aTableRef)`
`ValueExpressionFunction` `createFunctionExpression(java.lang.String aFuncName, java.lang.String distinct, java.util.List aFuncParmList, java.lang.String aSchemaName)`
`GroupingExpression` `createGroupingExpression(QueryValueExpression aExpr)`
`GroupingSets` `createGroupingSets(java.util.List aGroupingSetsElementList)`
`GroupingSetsElementExpression` `createGroupingSetsElementExpression(Grouping aGrouping)`
`java.util.List` `createGroupingSetsElementExprList(java.util.List aGroupingSetsElementExprList, GroupingSetsElementExpression aGroupingSetsElementExpr)`
`java.util.List` `createGroupingSetsElementList(java.util.List aGroupingSetsElementList, GroupingSetsElement aGroupingSetsElement)`
`GroupingSetsElementSublist` `createGroupingSetsElementSublist(java.util.List aGroupingSetsElementExprList)`
`java.util.List` `createGroupingSpecificationList(java.util.List aGroupingSpecList, GroupingSpecification aGroupingSpec)`
`java.util.List` `createInsertRow(java.util.List aInsertExprList, ValuesRow aInsertExpr)`
`QueryInsertStatement` `createInsertStatement(TableInDatabase aTargetTable, java.util.List aTargetColumnList, java.util.List aSrcValuesRowList)` Started to change right here! has either a list of source values aSrcValuesRowList rather than a SrcQuery
`QueryInsertStatement` `createInsertStatement(TableInDatabase aTargetTable, java.util.List aColumnList, QueryExpressionRoot aSrcQuery)` has SrcQuery rather than a list of source values aSrcValuesRowList
`ValuesRow` `createInsertValuesRow(java.util.List aExprList)`
`ValuesRow` `createInsertValuesRow(QueryValueExpression aValueExpr)`
`TableJoined` `createJoinedTable(TableReference aLeftTable, int aJoinType, TableReference aRightTable, QuerySearchCondition aJoinCond)`
`ValueExpressionLabeledDuration` `createLabeledDurationExpression(QueryValueExpression aExpr, int aDurationType)`
`MergeInsertSpecification` `createMergeInsertSpecification(java.util.List aTargetColList, ValuesRow aValuesRow)`
`MergeOnCondition` `createMergeOnCondition(QuerySearchCondition aSearchCond)`
`java.util.List` `createMergeOperatationSpecificationList(java.util.List aMergeSpecList, MergeOperationSpecification aMergeSpec)` This is for as syntax hack in the parser.
`MergeSourceTable` `createMergeSourceTable(TableReference aTableRef)`
`QueryMergeStatement` `createMergeStatement(MergeTargetTable aTargetTable, MergeSourceTable aSourceTable, MergeOnCondition aOnCondition, java.util.List aOperSpecList)`
`MergeTargetTable` `createMergeTargetTable(TableExpression aTableExpr, java.lang.String aTableAliasName)`
`MergeUpdateSpecification` `createMergeUpdateSpecification(java.util.List aAssignmentExprList)`
`SearchConditionNested` `createNestedCondition(QuerySearchCondition aCondition)`
`SearchConditionNested` `createNestedConditionNegated(QuerySearchCondition aCondition)`
`ValueExpressionNested` `createNestedExpression(QueryValueExpression aNestedExpr)`
`TableNested` `createNestedTable(TableReference aNestedTable)`
`ValueExpressionNullValue` `createNullExpression()`
`java.util.List` `createOrderByClause(java.util.List aOrderByList, OrderBySpecification aOrderByExpr)`
`OrderBySpecification` `createOrderByExpression(QueryValueExpression aOrderByExpr, int orderingSpec, int nullOrdering)` creates an `OrderBySpecification`.
`OrderBySpecification` `createOrderByExpression(QueryValueExpression aOrderByExpr, java.lang.String optAscDesc)` Deprecated. use `createOrderByExpression(QueryValueExpression, int, int)`
`PredefinedDataType` `createPredefinedDataType(java.lang.String aTypeName)`
`PredicateBasic` `createPredicateBasic(QueryValueExpression aLeftExpr, int aRelOper, QueryValueExpression aRightExpr)`
`PredicateBetween` `createPredicateBetween(QueryValueExpression aLeftExpr, boolean isNotBetween, QueryValueExpression aRightExpr1, QueryValueExpression aRightExpr2)`
`PredicateExists` `createPredicateExists(QueryExpressionBody aQueryExpr)`
`PredicateInValueList` `createPredicateInValueList(QueryValueExpression aLeftExpr, boolean isNotIn, java.util.List aValuesList)`
`PredicateInValueRowSelect` `createPredicateInValueRowSelect(java.util.List aValuesList, boolean isNotIn, QueryExpressionRoot aQueryExpr)`
`PredicateInValueSelect` `createPredicateInValueSelect(QueryValueExpression aLeftExpr, boolean isNotIn, QueryExpressionRoot aQueryExpr)`
`PredicateLike` `createPredicateLike(QueryValueExpression aMatchingExpr, boolean isNotLike, QueryValueExpression aPatternExpr, QueryValueExpression aEscapeExpr)`
`PredicateIsNull` `createPredicateNull(QueryValueExpression aValueExpr, boolean isNotNull)`
`PredicateQuantifiedRowSelect` `createPredicateQuantifiedRowSelect(java.util.List aValueExprList, int aQuantType, QueryExpressionRoot aQueryExpr)`
`PredicateQuantifiedValueSelect` `createPredicateQuantifiedValueSelect(QueryValueExpression aValueExpr, int aRelOper, int aQuantType, QueryExpressionRoot aQueryExpr)`
`ProcedureReference` `createProcedureReference(java.lang.String aSchemaName, java.lang.String aProcName)`
`QueryCombined` `createQueryCombined(QueryExpressionBody aLeftQuery, int combinedOperator, QueryExpressionBody aRightQuery)`
`QueryCombined` `createQueryCombined(QueryExpressionBody aLeftQuery, int combinedOperator, QueryExpressionBody aRightQuery, java.util.List aSortSpecList, int aRowFetchLimit)`
`QueryExpressionRoot` `createQueryExpressionRoot(QueryExpressionBody aQuery, java.util.List aWithTableSpecList)`
`QueryNested` `createQueryNested(QueryExpressionBody queryExprBody)`
`QueryNested` `createQueryNested(QueryExpressionBody queryExprBody, java.util.List aSortSpecList, int aRowFetchLimit)`
`QuerySelect` `createQuerySelect(java.lang.String optAllOrDistinct, java.util.List aResultColList, java.util.List aTableRefList, QuerySearchCondition aWhereClause, java.util.List aGroupByList, QuerySearchCondition aHavingClause)`
`QuerySelect` `createQuerySelect(java.lang.String optAllOrDistinct, java.util.List aResultColList, java.util.List aTableRefList, QuerySearchCondition aWhereClaus, java.util.List aGroupByList, QuerySearchCondition aHavingClaus, java.util.List aSortSpecList, int aRowFetchLimit)`
`QueryValues` `createQueryValues(java.util.List aValuesRowList)`
`QueryValues` `createQueryValues(java.util.List aValuesRowList, java.util.List aSortSpecList, int aRowFetchLimit)`
`TableExpression` `createReferenceTable(java.lang.String aSchemaName, java.lang.String aTableName, java.lang.String aCorrName)` Deprecated. use `createReferenceTable(String, String, TableCorrelation)`
`TableExpression` `createReferenceTable(java.lang.String aSchemaName, java.lang.String aTableName, TableCorrelation aTableCorr)`
`ResultColumn` `createResultColumn(QueryValueExpression aResultColExpr, java.lang.String aAsName)`
`ResultTableAllColumns` `createResultTableAllColumns(java.lang.String aTableName)`
`ResultTableAllColumns` `createResultTableAllColumns(java.lang.String aTableName, java.lang.String aSchemaName)`
`ValueExpressionScalarSelect` `createScalarSelectExpression(QueryExpressionRoot aQueryExpr)`
`Schema` `createSchema(java.lang.String aSchemaName)`
`java.util.List` `createSelectClause(java.util.List aResultSpecList, QueryResultSpecification aResultCol)`
`QuerySelectStatement` `createSelectStatement(QueryExpressionRoot aQryExpr, java.util.List aOrderByList)`
`QuerySelectStatement` `createSelectStatement(QueryExpressionRoot aQryExpr, java.util.List aOrderByList, UpdatabilityExpression aUpdatabilityExpr)`
`QuerySelectStatement` `createSelectStatement(QuerySelect aQrySel, java.util.List aOrderByList)`
`ValueExpressionSimple` `createSimpleExpression(java.lang.String aExpr)`
`TableInDatabase` `createSimpleTable(java.lang.String aSchemaName, java.lang.String aTableName)`
`ValueExpressionFunction` `createSpecialRegisterExpression(java.lang.String aSpecialReg)` Creates a `ValueExpressionFunction` with name `aSpecialReg` and field ``ValueExpressionFunction.isSpecialRegister()`==true`
`ValueExpressionFunction` `createSpecialRegisterExpression(java.lang.String aSpecialReg, java.lang.String value)` Deprecated. use createSpecialRegisterExpression(String, UserDefinedType) instead
`ValueExpressionFunction` `createSpecialRegisterExpression(java.lang.String aRegName, UserDefinedType aDataType)` Creates a function expression object for the special register with the name and user-defined data type.
`SuperGroup` `createSuperGroups(java.util.List aSuperGroupsElementList, int aSuperGroupType)`
`SuperGroupElementExpression` `createSuperGroupsElementExpression(GroupingExpression aGroupingExpr)`
`java.util.List` `createSuperGroupsElementExprList(java.util.List aSuperGroupsElementExprList, SuperGroupElementExpression aSuperGroupsElementExpr)`
`java.util.List` `createSuperGroupsElementList(java.util.List aSuperGroupsElementList, SuperGroupElement aSuperGroupsElement)`
`SuperGroupElementSublist` `createSuperGroupsElementSublist(java.util.List aSuperGroupsElementExprList)`
`TableCorrelation` `createTableCorrelation(java.lang.String aCorrName)`
`TableCorrelation` `createTableCorrelation(java.lang.String aCorrName, java.util.List aColNameList)`
`TableExpression` `createTableExpressionQuery(QueryExpressionBody aSubquery, java.lang.String aCorrName)` Deprecated. use `createTableExpressionQuery(QueryExpressionBody, TableCorrelation)`
`TableExpression` `createTableExpressionQuery(QueryExpressionBody aSubquery, TableCorrelation aTableCorr)`
`TableFunction` `createTableFunction(java.lang.String aFuncName, java.util.List aFuncParmList, java.lang.String aSchemaName, TableCorrelation aTableCorr)`
`UpdatabilityExpression` `createUpdatabilityExpression(int aUpdatabilityType, java.util.List aUpdateOfColList)`
`java.util.List` `createUpdateAssignmentClause(java.util.List aExprList, UpdateAssignmentExpression aExpr)`
`UpdateAssignmentExpression` `createUpdateAssignmentExpression(java.util.List aTargetColList, java.util.List aExprList)`
`UpdateAssignmentExpression` `createUpdateAssignmentExpression(java.util.List aTargetColList, QueryExpressionBody aUpdateQuery)`
`UpdateAssignmentExpression` `createUpdateAssignmentExpression(ValueExpressionColumn aTargetCol, QueryValueExpression aExpr)`
`QueryUpdateStatement` `createUpdateStatement(TableInDatabase aTargetTable, TableCorrelation aAsTable, java.util.List aAssignmentList, QuerySearchCondition aWhereCond)`
`DataType` `createUserDefinedTypeFromDomainName(java.lang.String domainName)` Deprecated.
`ValueExpressionRow` `createValueExpressionRow(java.util.List aExprList)`
`ValuesRow` `createValuesRow(java.util.List aValueExprList)`
`ValuesRow` `createValuesRow(QueryValueExpression aValueExpr)`
`java.util.List` `createValuesRowList(java.util.List aValuesRowList, ValuesRow aValuesRow)`
`ValueExpressionVariable` `createVariableExpression(java.lang.String aVarName)`
`WithTableSpecification` `createWithTableSpecification(java.lang.String aTableIdentifier, java.util.List aColumnNameList, QueryExpressionBody aWithSource)`
`java.util.List` `createWithTableSpecificationList(java.util.List aTableWithSpecList, WithTableSpecification aTableWithSpec)`
`SQLQuerySourceFormat` `getSQLSourceFormat()`
`static boolean` `isColumnFunction(java.lang.String aFuncName)` Returns whether or not the given function name is a column (summary) function.
`static boolean` `isDistinctColumnFunction(java.lang.String aFuncName)` Returns whether or not the given function name is a column (summary) function that allows the DISTINCT keyword in the parameter list.
`java.util.List` `listConcat(java.util.List p_list, java.lang.Object p_rhs)` Utility used to append elements to an List at the end.
`java.util.List` `listConcat(java.lang.Object p_lhs, java.util.List p_list)` Utility used to append elements to an List in the beginning.
`QuerySearchCondition` `negateCondition(QuerySearchCondition aSearchCond, boolean negate)`
`Predicate` `negatePredicate(Predicate aPredicate, boolean negate)`
`void` `setSQLSourceFormat(SQLQuerySourceFormat sourceFormat)`
`QueryValueExpression` `setUnaryOperator(QueryValueExpression expr, int op)`

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### COMPARISON_OPERATOR_EQ

    public static final int COMPARISON_OPERATOR_EQ

  int constant for `PredicateComparisonOperator.EQUAL` "="

  See Also:
    `PredicateComparisonOperator.EQUAL`, Constant Field Values

### COMPARISON_OPERATOR_NE

    public static final int COMPARISON_OPERATOR_NE

  int constant for `PredicateComparisonOperator.NOT_EQUAL` "<>"

  See Also:
    `PredicateComparisonOperator.NOT_EQUAL`, Constant Field Values

### COMPARISON_OPERATOR_LT

    public static final int COMPARISON_OPERATOR_LT

  int constant for `PredicateComparisonOperator.LESS_THAN` "<"

  See Also:
    `PredicateComparisonOperator.LESS_THAN`, Constant Field Values

### COMPARISON_OPERATOR_GT

    public static final int COMPARISON_OPERATOR_GT

  int constant for `PredicateComparisonOperator.GREATER_THAN` ">"

  See Also:
    `PredicateComparisonOperator.GREATER_THAN`, Constant Field Values

### COMPARISON_OPERATOR_LE

    public static final int COMPARISON_OPERATOR_LE

  int constant for `PredicateComparisonOperator.LESS_THAN_OR_EQUAL` "<="

  See Also:
    `PredicateComparisonOperator.LESS_THAN_OR_EQUAL`, Constant Field Values

### COMPARISON_OPERATOR_GE

    public static final int COMPARISON_OPERATOR_GE

  int constant for `PredicateComparisonOperator.GREATER_THAN_OR_EQUAL` ">="

  See Also:
    `PredicateComparisonOperator.GREATER_THAN_OR_EQUAL`, Constant Field Values

### COMBINED_OPERATOR_AND

    public static final int COMBINED_OPERATOR_AND

  int constant for `SearchConditionCombinedOperator.AND`

  See Also:
    `SearchConditionCombinedOperator.AND`, Constant Field Values

### COMBINED_OPERATOR_OR

    public static final int COMBINED_OPERATOR_OR

  int constant for `SearchConditionCombinedOperator.OR`

  See Also:
    `SearchConditionCombinedOperator.OR`, Constant Field Values

### UNARY_OPERATOR_PLUS

    public static final int UNARY_OPERATOR_PLUS

  int constant for `ValueExpressionUnaryOperator.PLUS` "+"

  See Also:
    `ValueExpressionUnaryOperator.PLUS`, Constant Field Values

### UNARY_OPERATOR_MINUS

    public static final int UNARY_OPERATOR_MINUS

  int constant for `ValueExpressionUnaryOperator.MINUS` "-"

  See Also:
    `ValueExpressionUnaryOperator.MINUS`, Constant Field Values

### COMBINED_OPERATOR_ADD

    public static final int COMBINED_OPERATOR_ADD

  int constant for `ValueExpressionCombinedOperator.ADD` "+"

  See Also:
    `ValueExpressionCombinedOperator.ADD`, Constant Field Values

### COMBINED_OPERATOR_SUBTRACT

    public static final int COMBINED_OPERATOR_SUBTRACT

  int constant for `ValueExpressionCombinedOperator.SUBTRACT` "-"

  See Also:
    `ValueExpressionCombinedOperator.SUBTRACT`, Constant Field Values

### COMBINED_OPERATOR_MULTIPLY

    public static final int COMBINED_OPERATOR_MULTIPLY

  int constant for `ValueExpressionCombinedOperator.MULTIPLY` "*"

  See Also:
    `ValueExpressionCombinedOperator.MULTIPLY`, Constant Field Values

### COMBINED_OPERATOR_DIVIDE

    public static final int COMBINED_OPERATOR_DIVIDE

  int constant for `ValueExpressionCombinedOperator.DIVIDE` "/"

  See Also:
    `ValueExpressionCombinedOperator.DIVIDE`, Constant Field Values

### COMBINED_OPERATOR_CONCATENATE

    public static final int COMBINED_OPERATOR_CONCATENATE

  int constant for `ValueExpressionCombinedOperator.CONCATENATE` "||"

  See Also:
    `ValueExpressionCombinedOperator.CONCATENATE`, Constant Field Values

### DURATION_TYPE_DAYS

    public static final int DURATION_TYPE_DAYS

  int constant for `ValueExpressionLabeledDurationType.DAYS`

  See Also:
    `ValueExpressionLabeledDurationType.DAYS`, Constant Field Values

### DURATION_TYPE_HOURS

    public static final int DURATION_TYPE_HOURS

  int constant for `ValueExpressionLabeledDurationType.HOURS`

  See Also:
    `ValueExpressionLabeledDurationType.HOURS`, Constant Field Values

### DURATION_TYPE_MICROSECONDS

    public static final int DURATION_TYPE_MICROSECONDS

  int constant for `ValueExpressionLabeledDurationType.MICROSECONDS`

  See Also:
    `ValueExpressionLabeledDurationType.MICROSECONDS`, Constant Field Values

### DURATION_TYPE_MINUTES

    public static final int DURATION_TYPE_MINUTES

  int constant for `ValueExpressionLabeledDurationType.MINUTES`

  See Also:
    `ValueExpressionLabeledDurationType.MINUTES`, Constant Field Values

### DURATION_TYPE_MONTHS

    public static final int DURATION_TYPE_MONTHS

  int constant for `ValueExpressionLabeledDurationType.MONTHS`

  See Also:
    `ValueExpressionLabeledDurationType.MONTHS`, Constant Field Values

### DURATION_TYPE_SECONDS

    public static final int DURATION_TYPE_SECONDS

  int constant for `ValueExpressionLabeledDurationType.SECONDS`

  See Also:
    `ValueExpressionLabeledDurationType.SECONDS`, Constant Field Values

### DURATION_TYPE_YEARS

    public static final int DURATION_TYPE_YEARS

  int constant for `ValueExpressionLabeledDurationType.YEARS`

  See Also:
    `ValueExpressionLabeledDurationType.YEARS`, Constant Field Values

### NULL_ORDERING_TYPE_NONE

    public static final int NULL_ORDERING_TYPE_NONE

  int constant for `NullOrderingType.NONE`

  See Also:
    `NullOrderingType.NONE`, Constant Field Values

### NULL_ORDERING_TYPE_NULLS_FIRST

    public static final int NULL_ORDERING_TYPE_NULLS_FIRST

  int constant for `NullOrderingType.NULLS_FIRST`

  See Also:
    `NullOrderingType.NULLS_FIRST`, Constant Field Values

### NULL_ORDERING_TYPE_NULLS_LAST

    public static final int NULL_ORDERING_TYPE_NULLS_LAST

  int constant for `NullOrderingType.NULLS_LAST`

  See Also:
    `NullOrderingType.NULLS_LAST`, Constant Field Values

### ORDERING_SPEC_TYPE_NONE

    public static final int ORDERING_SPEC_TYPE_NONE

  int constant for `OrderingSpecType.NONE`

  See Also:
    `OrderingSpecType.NONE`, Constant Field Values

### ORDERING_SPEC_TYPE_ASC

    public static final int ORDERING_SPEC_TYPE_ASC

  int constant for `OrderingSpecType.ASC`

  See Also:
    `OrderingSpecType.ASC`, Constant Field Values

### ORDERING_SPEC_TYPE_DESC

    public static final int ORDERING_SPEC_TYPE_DESC

  int constant for `OrderingSpecType.DESC`

  See Also:
    `OrderingSpecType.DESC`, Constant Field Values

### SUPERGROUP_TYPE_CUBE

    public static final int SUPERGROUP_TYPE_CUBE

  int constant for `SuperGroupType.CUBE`

  See Also:
    `SuperGroupType.CUBE`, Constant Field Values

### SUPERGROUP_TYPE_ROLLUP

    public static final int SUPERGROUP_TYPE_ROLLUP

  int constant for `SuperGroupType.ROLLUP`

  See Also:
    `SuperGroupType.ROLLUP`, Constant Field Values

### SUPERGROUP_TYPE_GRANDTOTAL

    public static final int SUPERGROUP_TYPE_GRANDTOTAL

  int constant for `SuperGroupType.GRANDTOTAL`

  See Also:
    `SuperGroupType.GRANDTOTAL`, Constant Field Values

### QUANTIFIER_ALL

    public static final int QUANTIFIER_ALL

  int constant for `PredicateQuantifiedType.ALL` "ALL"

  See Also:
    `PredicateQuantifiedType.ALL`, Constant Field Values

### QUANTIFIER_ANY

    public static final int QUANTIFIER_ANY

  int constant for `PredicateQuantifiedType.ANY` "ANY"

  See Also:
    `PredicateQuantifiedType.ANY`, Constant Field Values

### QUANTIFIER_SOME

    public static final int QUANTIFIER_SOME

  int constant for `PredicateQuantifiedType.SOME` "SOME"

  See Also:
    `PredicateQuantifiedType.SOME`, Constant Field Values

### JOIN_DEFAULT_INNER

    public static final int JOIN_DEFAULT_INNER

  int constant for `TableJoinedOperator.DEFAULT_INNER` "JOIN"

  See Also:
    `TableJoinedOperator.DEFAULT_INNER`, Constant Field Values

### JOIN_EXPLICIT_INNER

    public static final int JOIN_EXPLICIT_INNER

  int constant for `TableJoinedOperator.EXPLICIT_INNER` "INNER JOIN"

  See Also:
    `TableJoinedOperator.EXPLICIT_INNER`, Constant Field Values

### JOIN_LEFT_OUTER

    public static final int JOIN_LEFT_OUTER

  int constant for `TableJoinedOperator.LEFT_OUTER` "LEFT JOIN"

  See Also:
    `TableJoinedOperator.LEFT_OUTER`, Constant Field Values

### JOIN_RIGHT_OUTER

    public static final int JOIN_RIGHT_OUTER

  int constant for `TableJoinedOperator.RIGHT_OUTER` "RIGHT JOIN"

  See Also:
    `TableJoinedOperator.RIGHT_OUTER`, Constant Field Values

### JOIN_FULL_OUTER

    public static final int JOIN_FULL_OUTER

  int constant for `TableJoinedOperator.FULL_OUTER` "FULL JOIN"

  See Also:
    `TableJoinedOperator.FULL_OUTER`, Constant Field Values

### QUERY_COMBINED_UNION

    public static final int QUERY_COMBINED_UNION

  int constant for `QueryCombinedOperator.UNION` "UNION"

  See Also:
    `QueryCombinedOperator.UNION`, Constant Field Values

### QUERY_COMBINED_UNION_ALL

    public static final int QUERY_COMBINED_UNION_ALL

  int constant for `QueryCombinedOperator.UNION_ALL` "UNION ALL"

  See Also:
    `QueryCombinedOperator.UNION_ALL`, Constant Field Values

### QUERY_COMBINED_INTERSECT

    public static final int QUERY_COMBINED_INTERSECT

  int constant for `QueryCombinedOperator.INTERSECT` "INTERSECT"

  See Also:
    `QueryCombinedOperator.INTERSECT`, Constant Field Values

### QUERY_COMBINED_INTERSECT_ALL

    public static final int QUERY_COMBINED_INTERSECT_ALL

  int constant for `QueryCombinedOperator.INTERSECT_ALL` "INTERSECT ALL"

  See Also:
    `QueryCombinedOperator.INTERSECT_ALL`, Constant Field Values

### QUERY_COMBINED_EXCEPT

    public static final int QUERY_COMBINED_EXCEPT

  int constant for `QueryCombinedOperator.EXCEPT` "EXCEPT"

  See Also:
    `QueryCombinedOperator.EXCEPT`, Constant Field Values

### QUERY_COMBINED_EXCEPT_ALL

    public static final int QUERY_COMBINED_EXCEPT_ALL

  int constant for `QueryCombinedOperator.EXCEPT_ALL` "EXCEPT ALL"

  See Also:
    `QueryCombinedOperator.EXCEPT_ALL`, Constant Field Values

### UPDATABILITY_TYPE_FOR_READ_ONLY

    public static final int UPDATABILITY_TYPE_FOR_READ_ONLY

  int constant for `UpdatabilityType.READ_ONLY` "FOR READ ONLY"

  See Also:
    `UpdatabilityType.READ_ONLY`, Constant Field Values

### UPDATABILITY_TYPE_FOR_UPDATE

    public static final int UPDATABILITY_TYPE_FOR_UPDATE

  int constant for `UpdatabilityType.UPDATE` "FOR UPDATE"

  See Also:
    `UpdatabilityType.UPDATE`, Constant Field Values

### SPECIAL_REGISTER_CURRENT_DATE

    public static final java.lang.String SPECIAL_REGISTER_CURRENT_DATE

  String constant for special register, value "CURRENT_DATE"

  See Also:
    Constant Field Values

### SPECIAL_REGISTER_CURRENT_TIME

    public static final java.lang.String SPECIAL_REGISTER_CURRENT_TIME

  String constant for special register, value "CURRENT_TIME"

  See Also:
    Constant Field Values

### SPECIAL_REGISTER_CURRENT_TIMESTAMP

    public static final java.lang.String SPECIAL_REGISTER_CURRENT_TIMESTAMP

  String constant for special register, value "CURRENT_TIMESTAMP"

  See Also:
    Constant Field Values

### SPECIAL_REGISTER_LOCALTIME

    public static final java.lang.String SPECIAL_REGISTER_LOCALTIME

  String constant for special register, value "LOCALTIME"

  See Also:
    Constant Field Values

### SPECIAL_REGISTER_LOCALTIMESTAMP

    public static final java.lang.String SPECIAL_REGISTER_LOCALTIMESTAMP

  String constant for special register, value "LOCALTIMESTAMP"

  See Also:
    Constant Field Values

### SPECIAL_REGISTER_CURRENT_DEFAULT_TRANSFORM_GROUP

    public static final java.lang.String SPECIAL_REGISTER_CURRENT_DEFAULT_TRANSFORM_GROUP

  String constant for special register, value "CURRENT_DEFAULT_TRANSFORM_GROUP"

  See Also:
    Constant Field Values

### SPECIAL_REGISTER_CURRENT_TRANSFORM_GROUP_FOR_TYPE

    public static final java.lang.String SPECIAL_REGISTER_CURRENT_TRANSFORM_GROUP_FOR_TYPE

  String constant for special register, value "CURRENT_TRANSFORM_GROUP_FOR_TYPE"

  See Also:
    Constant Field Values

### SPECIAL_REGISTER_CURRENT_PATH

    public static final java.lang.String SPECIAL_REGISTER_CURRENT_PATH

  String constant for special register, value "CURRENT_PATH"

  See Also:
    Constant Field Values

### SPECIAL_REGISTER_CURRENT_ROLE

    public static final java.lang.String SPECIAL_REGISTER_CURRENT_ROLE

  String constant for special register, value "CURRENT_ROLE"

  See Also:
    Constant Field Values

### SPECIAL_REGISTER_CURRENT_USER

    public static final java.lang.String SPECIAL_REGISTER_CURRENT_USER

  String constant for special register, value "CURRENT_USER"

  See Also:
    Constant Field Values

### SPECIAL_REGISTER_SESSION_USER

    public static final java.lang.String SPECIAL_REGISTER_SESSION_USER

  String constant for special register, value "SESSION_USER"

  See Also:
    Constant Field Values

### SPECIAL_REGISTER_SYSTEM_USER

    public static final java.lang.String SPECIAL_REGISTER_SYSTEM_USER

  String constant for special register, value "SYSTEM_USER"

  See Also:
    Constant Field Values

### SPECIAL_REGISTER_USER

    public static final java.lang.String SPECIAL_REGISTER_USER

  String constant for special register, value "USER"

  See Also:
    Constant Field Values

### SPECIAL_REGISTER_VALUE

    public static final java.lang.String SPECIAL_REGISTER_VALUE

  String constant for special register, value "VALUE"

  See Also:
    Constant Field Values

### ORDER_ASC

    public static final java.lang.String ORDER_ASC

  String constant for OrderBySpecification "ASC"

  See Also:
    `OrderBySpecification.isDescending()`, Constant Field Values

### ORDER_DESC

    public static final java.lang.String ORDER_DESC

  String constant for OrderBySpecification "DESC"

  See Also:
    `OrderBySpecification.isDescending()`, Constant Field Values

### ALL

    public static final java.lang.String ALL

  String constant for QuerySelect "ALL"

  See Also:
    `QuerySelect.isDistinct()`, Constant Field Values

### DISTINCT

    public static final java.lang.String DISTINCT

  String constant for QuerySelect "DISTINCT"

  See Also:
    `QuerySelect.isDistinct()`, Constant Field Values

Constructor Detail

### SQLQueryParserFactory

    public SQLQueryParserFactory()

  Constructs an instance of this class. This is the default constructor. Resulting `SQLQueryParserFactory` is equal to the resulting `SQLQueryParserFactory` of `SQLQueryParserFactory(SQLQuerySourceFormat)` with `SQLQuerySourceFormat = SQLQuerySourceFormat.SQL_SOURCE_FORMAT_DEFAULT`

  See Also:
    `SQLQuerySourceFormat.SQL_SOURCE_FORMAT_DEFAULT`

### SQLQueryParserFactory

    public SQLQueryParserFactory(SQLQuerySourceFormat aSourceFormat)

  Constructor.

  Parameters:
    `aSourceFormat` -

Method Detail

### getSQLSourceFormat

    public SQLQuerySourceFormat getSQLSourceFormat()

  Specified by:
    `getSQLSourceFormat` in interface `SQLParserFactory`

### setSQLSourceFormat

    public void setSQLSourceFormat(SQLQuerySourceFormat sourceFormat)

  Specified by:
    `setSQLSourceFormat` in interface `SQLParserFactory`

### listConcat

    public java.util.List listConcat(java.util.List p_list,
                                     java.lang.Object p_rhs)

  Utility used to append elements to an List at the end.

### listConcat

    public java.util.List listConcat(java.lang.Object p_lhs,
                                     java.util.List p_list)

  Utility used to append elements to an List in the beginning.

### addTableCorrelationToTableExpression

    public TableExpression addTableCorrelationToTableExpression(TableExpression tableExpr,
                                                                TableCorrelation tableCorrelation)

  Adds the given `tableCorrelation` to the given `tableExpr`.

  Parameters:
    `tableExpr` -
    `tableCorrelation` -
  Returns:
    the given `tableExpr`

### createCaseElse

    public ValueExpressionCaseElse createCaseElse(QueryValueExpression expr)

### createCaseSearchContent

    public ValueExpressionCaseSearchContent createCaseSearchContent(QuerySearchCondition aWhenCond,
                                                                    QueryValueExpression aExpr)

### createCaseSearchExpression

    public ValueExpressionCaseSearch createCaseSearchExpression(java.util.List aCaseSearchWhenList,
                                                                ValueExpressionCaseElse aCaseElse)

### createCaseSearchList

    public java.util.List createCaseSearchList(java.util.List aCaseSearchList,
                                               ValueExpressionCaseSearchContent aCaseSearchContent)

### createCaseSimpleContent

    public ValueExpressionCaseSimpleContent createCaseSimpleContent(QueryValueExpression aWhenExpr,
                                                                    QueryValueExpression aResultExpr)

### createCaseSimpleExpression

    public ValueExpressionCaseSimple createCaseSimpleExpression(QueryValueExpression aCaseValue,
                                                                java.util.List aCaseSimpleWhenList,
                                                                ValueExpressionCaseElse aCaseElse)

### createCaseSimpleList

    public java.util.List createCaseSimpleList(java.util.List aCaseSimpleList,
                                               ValueExpressionCaseSimpleContent aCaseSimpleContent)

### createCastExpression

    public ValueExpressionCast createCastExpression(QueryValueExpression aExpr,
                                                    java.lang.String aCastType)

### createCastExpression

    public ValueExpressionCast createCastExpression(QueryValueExpression aExpr,
                                                    DataType aCastType)

### createColumnExpression

    public ValueExpressionColumn createColumnExpression(java.lang.String aColumnName,
                                                        java.lang.String aTableName,
                                                        java.lang.String aSchemaName)

  if the same table name and same column name is referenced in two different schemas and the tables in the FROM-clause are not given an alias name e.g. select s1.t1.col1, s2.t1.col1 from s1.t1, s2.t1;

### createColumnExpression

    public ValueExpressionColumn createColumnExpression(java.lang.String aColumnName,
                                                        java.lang.String aQualifier)

### createColumnExpression

    public ValueExpressionColumn createColumnExpression(java.lang.String aColumnName)

### createColumnList

    public java.util.List createColumnList(java.util.List aColumnNameList,
                                           ValueExpressionColumn aColumnExpr)

### createColumnNameList

    public java.util.List createColumnNameList(java.util.List aColumnNameList,
                                               ColumnName aColumnName)

### createColumnName

    public ColumnName createColumnName(java.lang.String aColumnName)

### createCombinedCondition

    public SearchConditionCombined createCombinedCondition(QuerySearchCondition aLeftCond,
                                                           QuerySearchCondition aRightCond,
                                                           int aCondOper)

### createCombinedExpression

    public ValueExpressionCombined createCombinedExpression(QueryValueExpression aLeftExpr,
                                                            int aExprOper,
                                                            QueryValueExpression aRightExpr)

### createDataType

    public DataType createDataType(java.lang.String aTypeName)

### createDataTypeArray

    public ArrayDataType createDataTypeArray(DataType dataType)

  Description copied from interface: `SQLQueryParserFactoryDataTypes`
  Factory method to construct a `ArrayDataType` with the element data type `elementDataType`.

  Specified by:
    `createDataTypeArray` in interface `SQLQueryParserFactoryDataTypes`
  Returns:
    the newly constructed `ArrayDataType`
  See Also:
    `SQLQueryParserFactoryDataTypes.createDataTypeArray(DataType)`

### createDataTypeArray

    public ArrayDataType createDataTypeArray(DataType dataType,
                                             int maxCardinality)

  Description copied from interface: `SQLQueryParserFactoryDataTypes`
  Factory method to construct a `ArrayDataType` with the element data type `elementDataType` and with maximum cardinality specified by `maxCardinality`.

  Specified by:
    `createDataTypeArray` in interface `SQLQueryParserFactoryDataTypes`
  Returns:
    the newly constructed `ArrayDataType`
  See Also:
    `SQLQueryParserFactoryDataTypes.createDataTypeArray(DataType, int)`

### createDataTypeArray

    public ArrayDataType createDataTypeArray(DataType dataType,
                                             int maxCardinality,
                                             java.lang.String typeName)

  See Also:
    `SQLQueryParserFactoryDataTypes.createDataTypeArray(DataType, int)`

### createDataTypeBinaryString

    public BinaryStringDataType createDataTypeBinaryString(int primitiveType,
                                                           int length,
                                                           java.lang.String optionalUnitsIndicator)

  Description copied from interface: `SQLQueryParserFactoryDataTypes`
  Factory method to construct a `BinaryStringDataType` with its `primitiveType` and `length`.

  Note: The optional parameter `optionalUnitsIndicator` may only be specified with the given `primitiveType` `SQLQueryParserFactoryDataTypes.PRIMITIVE_TYPE_BINARY_LARGE_OBJECT`, where `SQLQueryParserFactoryDataTypes.UNIT_INDICATOR_K` measures the given `length` in Kilobyte (for the given `length` <= 2097152), `SQLQueryParserFactoryDataTypes.UNIT_INDICATOR_M` measures the given `length` in Megabyte (for the given `length` <= 2048), `SQLQueryParserFactoryDataTypes.UNIT_INDICATOR_G` measures the given `length` in Gigabyte (for the given `length` <= 2).

  Note: The given `primitiveType` must be one of the constants for the primitve types in this interface/class correlated to the `BinaryStringDataType`.

  Specified by:
    `createDataTypeBinaryString` in interface `SQLQueryParserFactoryDataTypes`
  Parameters:
    `primitiveType` - one of the correlated the primitive types for the BinaryStringDataType
    `length` - the length of this BinaryStringDataType
    `optionalUnitsIndicator` - optional parameter indicating the given `length` is measured in Kilobyte (use `SQLQueryParserFactoryDataTypes.UNIT_INDICATOR_K`), Megabyte (use `SQLQueryParserFactoryDataTypes.UNIT_INDICATOR_M`) or Gigabyte (use `SQLQueryParserFactoryDataTypes.UNIT_INDICATOR_G`)
  Returns:
    the newly constructed BinaryStringDataType
  See Also:
    `SQLQueryParserFactoryDataTypes.PRIMITIVE_TYPE_BINARY`, `SQLQueryParserFactoryDataTypes.PRIMITIVE_TYPE_BINARY_VARYING`, `SQLQueryParserFactoryDataTypes.PRIMITIVE_TYPE_BINARY_LARGE_OBJECT`

### createDataTypeBinaryString

    public BinaryStringDataType createDataTypeBinaryString(int primitiveType,
                                                           int length,
                                                           java.lang.String optionalUnitsIndicator,
                                                           java.lang.String typeName)

### createDataTypeBoolean

    public BooleanDataType createDataTypeBoolean()

  Description copied from interface: `SQLQueryParserFactoryDataTypes`
  Factory method to construct a `BooleanDataType` with `primitiveType` `PrimitiveType.BOOLEAN_LITERAL`.

  Specified by:
    `createDataTypeBoolean` in interface `SQLQueryParserFactoryDataTypes`
  Returns:
    the newly constructed BooleanDataType

### createDataTypeBoolean

    public BooleanDataType createDataTypeBoolean(java.lang.String typeName)

### createDataTypeCharacterString

    public CharacterStringDataType createDataTypeCharacterString(int primitiveType,
                                                                 int length,
                                                                 java.lang.String optionalUnitsIndicator)

  Description copied from interface: `SQLQueryParserFactoryDataTypes`
  Factory method to construct a `CharacterStringDataType` with its `primitiveType` and `length`.

  Note: The optional parameter `optionalUnitsIndicator` may only be specified with the given `primitiveType` `SQLQueryParserFactoryDataTypes.PRIMITIVE_TYPE_CHARACTER_LARGE_OBJECT`or `SQLQueryParserFactoryDataTypes.PRIMITIVE_TYPE_NATIONAL_CHARACTER_LARGE_OBJECT`, where `SQLQueryParserFactoryDataTypes.UNIT_INDICATOR_K`measures the given `length` in Kilobyte (for the given `length`<= 2097152), `SQLQueryParserFactoryDataTypes.UNIT_INDICATOR_M`measures the given `length` in Megabyte (for the given `length`<= 2048), `SQLQueryParserFactoryDataTypes.UNIT_INDICATOR_G`measures the given `length` in Gigabyte (for the given `length`<= 2).

  Note: The given `primitiveType` must be one of the constants for the primitve types in this interface/class correlated to the `CharacterStringDataType`.

  Specified by:
    `createDataTypeCharacterString` in interface `SQLQueryParserFactoryDataTypes`
  Parameters:
    `primitiveType` - one of the correlated the primitive types for the CharacterStringDataType
    `length` - the length of this CharacterStringDataType
    `optionalUnitsIndicator` - optional parameter indicating the given `length` is measured in Kilobyte (use `SQLQueryParserFactoryDataTypes.UNIT_INDICATOR_K`), Megabyte (use `SQLQueryParserFactoryDataTypes.UNIT_INDICATOR_M`) or Gigabyte (use `SQLQueryParserFactoryDataTypes.UNIT_INDICATOR_G`)
  Returns:
    the newly constructed CharacterStringDataType
  See Also:
    `SQLQueryParserFactoryDataTypes.PRIMITIVE_TYPE_CHARACTER`, `SQLQueryParserFactoryDataTypes.PRIMITIVE_TYPE_CHARACTER_VARYING`, `SQLQueryParserFactoryDataTypes.PRIMITIVE_TYPE_CHARACTER_LARGE_OBJECT`, `SQLQueryParserFactoryDataTypes.PRIMITIVE_TYPE_NATIONAL_CHARACTER`, `SQLQueryParserFactoryDataTypes.PRIMITIVE_TYPE_NATIONAL_CHARACTER_VARYING`, `SQLQueryParserFactoryDataTypes.PRIMITIVE_TYPE_NATIONAL_CHARACTER_LARGE_OBJECT`

### createDataTypeCharacterString

    public CharacterStringDataType createDataTypeCharacterString(int primitiveType,
                                                                 int length,
                                                                 java.lang.String optionalUnitsIndicator,
                                                                 java.lang.String typeName)

### createDataTypeDataLink

    public DataLinkDataType createDataTypeDataLink(int length)

  Description copied from interface: `SQLQueryParserFactoryDataTypes`
  TODO: finish method signature and doc properly!

  Specified by:
    `createDataTypeDataLink` in interface `SQLQueryParserFactoryDataTypes`
  Returns:

### createDataTypeDataLink

    public DataLinkDataType createDataTypeDataLink(int length,
                                                   java.lang.String typeName)

### createDataTypeDate

    public DateDataType createDataTypeDate()

  Description copied from interface: `SQLQueryParserFactoryDataTypes`
  Factory method to construct a `DateDataType` with `primitiveType` `PrimitiveType.DATE_LITERAL`.

  Specified by:
    `createDataTypeDate` in interface `SQLQueryParserFactoryDataTypes`
  Returns:
    the newly constructed DateDataType
  See Also:
    `SQLDataTypesFactory.createDateDataType()`

### createDataTypeDate

    public DateDataType createDataTypeDate(java.lang.String typeName)

  See Also:
    `SQLDataTypesFactory.createDateDataType()`

### createDataTypeDistinctUserDefinedType

    public DistinctUserDefinedType createDataTypeDistinctUserDefinedType(java.lang.String aTypeName)

### createDataTypeInterval

    public IntervalDataType createDataTypeInterval(IntervalQualifierType leadingQualifier,
                                                   IntervalQualifierType trailingQualifier,
                                                   int leadingFieldPrecision,
                                                   int trailingFieldPrecision,
                                                   int fractionalSecondsPrecision)

  Description copied from interface: `SQLQueryParserFactoryDataTypes`
  Factory method to construct a `IntervalDataType` with `primitiveType` `PrimitiveType.INTERVAL`.

  Specified by:
    `createDataTypeInterval` in interface `SQLQueryParserFactoryDataTypes`
  Returns:

### createDataTypeInterval

    public IntervalDataType createDataTypeInterval(IntervalQualifierType leadingQualifier,
                                                   IntervalQualifierType trailingQualifier,
                                                   int leadingFieldPrecision,
                                                   int trailingFieldPrecision,
                                                   int fractionalSecondsPrecision,
                                                   java.lang.String typeName)

### createDataTypeMultiset

    public MultisetDataType createDataTypeMultiset(DataType dataType)

  Description copied from interface: `SQLQueryParserFactoryDataTypes`
  Factory method to construct a `MultisetDataType` with the element data type `elementDataType`.

  Specified by:
    `createDataTypeMultiset` in interface `SQLQueryParserFactoryDataTypes`
  Returns:
    the newly constructed `MultisetDataType`
  See Also:
    `SQLQueryParserFactoryDataTypes.createDataTypeMultiset(DataType)`

### createDataTypeMultiset

    public MultisetDataType createDataTypeMultiset(DataType dataType,
                                                   java.lang.String typeName)

  See Also:
    `SQLQueryParserFactoryDataTypes.createDataTypeMultiset(DataType)`

### createDataTypeNumericApproximate

    public ApproximateNumericDataType createDataTypeNumericApproximate(int primitiveType,
                                                                       int precision)

  Description copied from interface: `SQLQueryParserFactoryDataTypes`
  Factory method to construct a `ApproximateNumericDataType` with its `primitiveType` and `precision`. Note: The given `primitiveType` must be one of the constants for the primitve types in this interface/class correlated to the `ApproximateNumericDataType`.

  Specified by:
    `createDataTypeNumericApproximate` in interface `SQLQueryParserFactoryDataTypes`
  Parameters:
    `primitiveType` - one of the correlated the primitive types for the FixedPrecisionDataType `SQLQueryParserFactoryDataTypes.PRIMITIVE_TYPE_FLOAT`, `SQLQueryParserFactoryDataTypes.PRIMITIVE_TYPE_REAL`, `SQLQueryParserFactoryDataTypes.PRIMITIVE_TYPE_DOUBLE_PRECISION`
    `precision` - the total number of digits `org.eclipse.wst.rdb.internal.models.sql.datatypes.NumericalDataType#setPrecision(int)` ranges between 1 and 31
  Returns:
    the newly constructed ApproximateNumericDataType
  See Also:
    `SQLQueryParserFactoryDataTypes.PRIMITIVE_TYPE_FLOAT`, `SQLQueryParserFactoryDataTypes.PRIMITIVE_TYPE_REAL`, `SQLQueryParserFactoryDataTypes.PRIMITIVE_TYPE_DOUBLE_PRECISION`

### createDataTypeNumericApproximate

    public ApproximateNumericDataType createDataTypeNumericApproximate(int primitiveType,
                                                                       int precision,
                                                                       java.lang.String typeName)

### createDataTypeNumericFixedPrecision

    public FixedPrecisionDataType createDataTypeNumericFixedPrecision(int primitiveType,
                                                                      int precision,
                                                                      int scale)

  Description copied from interface: `SQLQueryParserFactoryDataTypes`
  Factory method to construct a `FixedPrecisionDataType` with its `primitiveType`, `precision` and `scale`. Note: The given `primitiveType` must be one of the constants for the primitve types in this interface/class correlated to the `FixedPrecisionDataType`.

  Specified by:
    `createDataTypeNumericFixedPrecision` in interface `SQLQueryParserFactoryDataTypes`
  Parameters:
    `primitiveType` - one of the correlated the primitive types for the FixedPrecisionDataType `SQLQueryParserFactoryDataTypes.PRIMITIVE_TYPE_NUMERIC`, `SQLQueryParserFactoryDataTypes.PRIMITIVE_TYPE_DECIMAL`
    `precision` - the total number of digits `org.eclipse.wst.rdb.internal.models.sql.datatypes.NumericalDataType#setPrecision(int)` ranges between 1 and 31
    `scale` - the number of digits to the right of the decimal point, ranges between 0 and precision `org.eclipse.wst.rdb.internal.models.sql.datatypes.ExactNumericDataType#setScale(int)`
  Returns:
    the newly constructed FixedPrecisionDataType
  See Also:
    `SQLQueryParserFactoryDataTypes.PRIMITIVE_TYPE_NUMERIC`, `SQLQueryParserFactoryDataTypes.PRIMITIVE_TYPE_DECIMAL`

### createDataTypeNumericFixedPrecision

    public FixedPrecisionDataType createDataTypeNumericFixedPrecision(int primitiveType,
                                                                      int precision,
                                                                      int scale,
                                                                      java.lang.String typeName)

### createDataTypeNumericInteger

    public IntegerDataType createDataTypeNumericInteger(int primitiveType,
                                                        int precision)

  Description copied from interface: `SQLQueryParserFactoryDataTypes`
  Factory method to construct a `IntegerDataType` with its `primitiveType`. The `precision` is implicitly given for the `primitiveType`s `SQLQueryParserFactoryDataTypes.PRIMITIVE_TYPE_SMALLINT` (5) and `SQLQueryParserFactoryDataTypes.PRIMITIVE_TYPE_INTEGER` (10). The `precision` has to be explicitely specified for the `primitiveType` `SQLQueryParserFactoryDataTypes.PRIMITIVE_TYPE_BIGINT` or will be set to 10 by default. Note: The given `primitiveType` must be one of the constants for the primitve types in this interface/class correlated to the `intDataType`.

  Specified by:
    `createDataTypeNumericInteger` in interface `SQLQueryParserFactoryDataTypes`
  Parameters:
    `primitiveType` - one of the correlated the primitive types for the intDataType `SQLQueryParserFactoryDataTypes.PRIMITIVE_TYPE_SMALLINT` precision is 5, `SQLQueryParserFactoryDataTypes.PRIMITIVE_TYPE_INTEGER` precision is 10, `SQLQueryParserFactoryDataTypes.PRIMITIVE_TYPE_BIGINT` precision has to be given, default is 10
    `precision` - the total number of digits for given `primitiveType` `SQLQueryParserFactoryDataTypes.PRIMITIVE_TYPE_BIGINT`, default is 10 `org.eclipse.wst.rdb.internal.models.sql.datatypes.NumericalDataType#setPrecision(int)` ranges between 1 and 31
  Returns:
    the newly constructed intDataType
  See Also:
    `SQLQueryParserFactoryDataTypes.PRIMITIVE_TYPE_SMALLINT`, `SQLQueryParserFactoryDataTypes.PRIMITIVE_TYPE_INTEGER`, `SQLQueryParserFactoryDataTypes.PRIMITIVE_TYPE_BIGINT`

### createDataTypeNumericInteger

    public IntegerDataType createDataTypeNumericInteger(int primitiveType,
                                                        int precision,
                                                        java.lang.String typeName)

### createDataTypePredefinedDataType

    public PredefinedDataType createDataTypePredefinedDataType(java.lang.String typeName)

### createDataTypeTime

    public TimeDataType createDataTypeTime(int primitiveType,
                                           int precision)

  Description copied from interface: `SQLQueryParserFactoryDataTypes`
  Factory method to construct a `TimeDataType` with its `primitiveType` and `length`.

  Note: The given `primitiveType` must be one of the constants for the primitve types in this interface/class correlated to the `TimeDataType`.

  Specified by:
    `createDataTypeTime` in interface `SQLQueryParserFactoryDataTypes`
  Parameters:
    `primitiveType` - one of the correlated the primitive types for the TimeDataType `SQLQueryParserFactoryDataTypes.PRIMITIVE_TYPE_TIME`, `SQLQueryParserFactoryDataTypes.PRIMITIVE_TYPE_TIMESTAMP`
    `precision` - optional precision in fractional seconds of this TimeDataType (`TimeDataType.setFractionalSecondsPrecision(int)`), if not specified default value for given `primitiveType` `SQLQueryParserFactoryDataTypes.PRIMITIVE_TYPE_TIME` is 0 and for `SQLQueryParserFactoryDataTypes.PRIMITIVE_TYPE_TIMESTAMP` is 6
  Returns:
    the newly constructed TimeDataType
  See Also:
    `SQLQueryParserFactoryDataTypes.PRIMITIVE_TYPE_TIME`, `

    Note: If the optional parameter `fractionalSecondsPrecision` is not specified, the default value for the given `primitiveType` {@link #PRIMITIVE_TYPE_TIME} is 0 and for `primitiveType` {@link #PRIMITIVE_TYPE_TIMESTAMP} is 6.

    `

### createDataTypeTime

    public TimeDataType createDataTypeTime(int primitiveType,
                                           int precision,
                                           java.lang.String typeName)

### createDataTypeUserDefinedType

    public UserDefinedType createDataTypeUserDefinedType(java.lang.String aSchemaName,
                                                         java.lang.String aTypeName)

### createDefaultExpression

    public ValueExpressionDefaultValue createDefaultExpression()

### createDeleteStatement_deprecated

    public QueryDeleteStatement createDeleteStatement_deprecated(TableInDatabase aTargetTable,
                                                                 java.lang.String aAsTable,
                                                                 QuerySearchCondition aWhereClause)

  Deprecated. use `#createDeleteStatement(SQLTableExpression, SQLTableCorrelation, SQLSearchCondition)`

### createDeleteStatement

    public QueryDeleteStatement createDeleteStatement(TableInDatabase aTargetTable,
                                                      TableCorrelation aAsTable,
                                                      QuerySearchCondition aWhereClause)

  [New Model]

### createDistinctUserDefinedType

    public DistinctUserDefinedType createDistinctUserDefinedType(java.lang.String aTypeName)

### createExpressionList

    public java.util.List createExpressionList(java.util.List aExprList,
                                               QueryValueExpression aValExpr)

### createFromClause

    public java.util.List createFromClause(java.util.List aTableRefList,
                                           TableReference aTableRef)

### createFunctionExpression

    public ValueExpressionFunction createFunctionExpression(java.lang.String aFuncName,
                                                            java.lang.String distinct,
                                                            java.util.List aFuncParmList,
                                                            java.lang.String aSchemaName)

### createGroupingExpression

    public GroupingExpression createGroupingExpression(QueryValueExpression aExpr)

### createGroupingSets

    public GroupingSets createGroupingSets(java.util.List aGroupingSetsElementList)

### createGroupingSetsElementList

    public java.util.List createGroupingSetsElementList(java.util.List aGroupingSetsElementList,
                                                        GroupingSetsElement aGroupingSetsElement)

### createGroupingSetsElementExpression

    public GroupingSetsElementExpression createGroupingSetsElementExpression(Grouping aGrouping)

### createGroupingSetsElementExprList

    public java.util.List createGroupingSetsElementExprList(java.util.List aGroupingSetsElementExprList,
                                                            GroupingSetsElementExpression aGroupingSetsElementExpr)

### createGroupingSetsElementSublist

    public GroupingSetsElementSublist createGroupingSetsElementSublist(java.util.List aGroupingSetsElementExprList)

### createGroupingSpecificationList

    public java.util.List createGroupingSpecificationList(java.util.List aGroupingSpecList,
                                                          GroupingSpecification aGroupingSpec)

### createInsertRow

    public java.util.List createInsertRow(java.util.List aInsertExprList,
                                          ValuesRow aInsertExpr)

### createInsertStatement

    public QueryInsertStatement createInsertStatement(TableInDatabase aTargetTable,
                                                      java.util.List aTargetColumnList,
                                                      java.util.List aSrcValuesRowList)

  Started to change right here! has either a list of source values aSrcValuesRowList rather than a SrcQuery

  Parameters:
    `aTargetTable` -
    `aTargetColumnList` -
    `aSrcValuesRowList` -
  Returns:

### createInsertStatement

    public QueryInsertStatement createInsertStatement(TableInDatabase aTargetTable,
                                                      java.util.List aColumnList,
                                                      QueryExpressionRoot aSrcQuery)

  has SrcQuery rather than a list of source values aSrcValuesRowList

  Parameters:
    `aTargetTable` -
    `aColumnList` -
    `aSrcQuery` -
  Returns:

### createInsertValuesRow

    public ValuesRow createInsertValuesRow(java.util.List aExprList)

### createInsertValuesRow

    public ValuesRow createInsertValuesRow(QueryValueExpression aValueExpr)

### createJoinedTable

    public TableJoined createJoinedTable(TableReference aLeftTable,
                                         int aJoinType,
                                         TableReference aRightTable,
                                         QuerySearchCondition aJoinCond)

### createLabeledDurationExpression

    public ValueExpressionLabeledDuration createLabeledDurationExpression(QueryValueExpression aExpr,
                                                                          int aDurationType)

### createMergeStatement

    public QueryMergeStatement createMergeStatement(MergeTargetTable aTargetTable,
                                                    MergeSourceTable aSourceTable,
                                                    MergeOnCondition aOnCondition,
                                                    java.util.List aOperSpecList)

### createMergeTargetTable

    public MergeTargetTable createMergeTargetTable(TableExpression aTableExpr,
                                                   java.lang.String aTableAliasName)

### createMergeSourceTable

    public MergeSourceTable createMergeSourceTable(TableReference aTableRef)

### createMergeOnCondition

    public MergeOnCondition createMergeOnCondition(QuerySearchCondition aSearchCond)

### createMergeInsertSpecification

    public MergeInsertSpecification createMergeInsertSpecification(java.util.List aTargetColList,
                                                                   ValuesRow aValuesRow)

### createMergeUpdateSpecification

    public MergeUpdateSpecification createMergeUpdateSpecification(java.util.List aAssignmentExprList)

### createMergeOperatationSpecificationList

    public java.util.List createMergeOperatationSpecificationList(java.util.List aMergeSpecList,
                                                                  MergeOperationSpecification aMergeSpec)

  This is for as syntax hack in the parser. The Merge statement can have an update operation spec, or an insert operation spec or both, in either order. The simple way to handle this in the grammar is to treat them as a list of merge operation specs.

### createNullExpression

    public ValueExpressionNullValue createNullExpression()

### createNestedCondition

    public SearchConditionNested createNestedCondition(QuerySearchCondition aCondition)

### createNestedConditionNegated

    public SearchConditionNested createNestedConditionNegated(QuerySearchCondition aCondition)

### createNestedExpression

    public ValueExpressionNested createNestedExpression(QueryValueExpression aNestedExpr)

### createNestedTable

    public TableNested createNestedTable(TableReference aNestedTable)

### createOrderByClause

    public java.util.List createOrderByClause(java.util.List aOrderByList,
                                              OrderBySpecification aOrderByExpr)

### createOrderByExpression

    public OrderBySpecification createOrderByExpression(QueryValueExpression aOrderByExpr,
                                                        int orderingSpec,
                                                        int nullOrdering)

  creates an `OrderBySpecification`.

  Parameters:
    `aOrderByExpr` - `QueryValueExpression` to order by
    `orderingSpec` - one of the constants `ORDERING_SPEC_TYPE_ASC`, `ORDERING_SPEC_TYPE_DESC` or `ORDERING_SPEC_TYPE_NONE`
    `nullOrdering` - one of the constants `NULL_ORDERING_TYPE_NULLS_FIRST`, `NULL_ORDERING_TYPE_NULLS_LAST` or `NULL_ORDERING_TYPE_NONE`
  Returns:
    `OrderBySpecification`

### createOrderByExpression

    public OrderBySpecification createOrderByExpression(QueryValueExpression aOrderByExpr,
                                                        java.lang.String optAscDesc)

  Deprecated. use `createOrderByExpression(QueryValueExpression, int, int)`

  creates an `OrderBySpecification`

  Parameters:
    `aOrderByExpr` - `QueryValueExpression` to order by
    `optAscDesc` - one of the following constants `ORDER_ASC` or `ORDER_DESC`

### createPredefinedDataType

    public PredefinedDataType createPredefinedDataType(java.lang.String aTypeName)

### createPredicateBasic

    public PredicateBasic createPredicateBasic(QueryValueExpression aLeftExpr,
                                               int aRelOper,
                                               QueryValueExpression aRightExpr)

### createPredicateBetween

    public PredicateBetween createPredicateBetween(QueryValueExpression aLeftExpr,
                                                   boolean isNotBetween,
                                                   QueryValueExpression aRightExpr1,
                                                   QueryValueExpression aRightExpr2)

### createPredicateExists

    public PredicateExists createPredicateExists(QueryExpressionBody aQueryExpr)

### createPredicateInValueList

    public PredicateInValueList createPredicateInValueList(QueryValueExpression aLeftExpr,
                                                           boolean isNotIn,
                                                           java.util.List aValuesList)

### createPredicateInValueRowSelect

    public PredicateInValueRowSelect createPredicateInValueRowSelect(java.util.List aValuesList,
                                                                     boolean isNotIn,
                                                                     QueryExpressionRoot aQueryExpr)

### createPredicateInValueSelect

    public PredicateInValueSelect createPredicateInValueSelect(QueryValueExpression aLeftExpr,
                                                               boolean isNotIn,
                                                               QueryExpressionRoot aQueryExpr)

### createPredicateLike

    public PredicateLike createPredicateLike(QueryValueExpression aMatchingExpr,
                                             boolean isNotLike,
                                             QueryValueExpression aPatternExpr,
                                             QueryValueExpression aEscapeExpr)

### createPredicateNull

    public PredicateIsNull createPredicateNull(QueryValueExpression aValueExpr,
                                               boolean isNotNull)

### createPredicateQuantifiedValueSelect

    public PredicateQuantifiedValueSelect createPredicateQuantifiedValueSelect(QueryValueExpression aValueExpr,
                                                                               int aRelOper,
                                                                               int aQuantType,
                                                                               QueryExpressionRoot aQueryExpr)

### createPredicateQuantifiedRowSelect

    public PredicateQuantifiedRowSelect createPredicateQuantifiedRowSelect(java.util.List aValueExprList,
                                                                           int aQuantType,
                                                                           QueryExpressionRoot aQueryExpr)

### createProcedureReference

    public ProcedureReference createProcedureReference(java.lang.String aSchemaName,
                                                       java.lang.String aProcName)

### createQueryCombined

    public QueryCombined createQueryCombined(QueryExpressionBody aLeftQuery,
                                             int combinedOperator,
                                             QueryExpressionBody aRightQuery)

### createQueryCombined

    public QueryCombined createQueryCombined(QueryExpressionBody aLeftQuery,
                                             int combinedOperator,
                                             QueryExpressionBody aRightQuery,
                                             java.util.List aSortSpecList,
                                             int aRowFetchLimit)

### createQueryNested

    public QueryNested createQueryNested(QueryExpressionBody queryExprBody)

### createQueryNested

    public QueryNested createQueryNested(QueryExpressionBody queryExprBody,
                                         java.util.List aSortSpecList,
                                         int aRowFetchLimit)

### createQuerySelect

    public QuerySelect createQuerySelect(java.lang.String optAllOrDistinct,
                                         java.util.List aResultColList,
                                         java.util.List aTableRefList,
                                         QuerySearchCondition aWhereClause,
                                         java.util.List aGroupByList,
                                         QuerySearchCondition aHavingClause)

### createQuerySelect

    public QuerySelect createQuerySelect(java.lang.String optAllOrDistinct,
                                         java.util.List aResultColList,
                                         java.util.List aTableRefList,
                                         QuerySearchCondition aWhereClaus,
                                         java.util.List aGroupByList,
                                         QuerySearchCondition aHavingClaus,
                                         java.util.List aSortSpecList,
                                         int aRowFetchLimit)

### createQueryValues

    public QueryValues createQueryValues(java.util.List aValuesRowList)

### createQueryValues

    public QueryValues createQueryValues(java.util.List aValuesRowList,
                                         java.util.List aSortSpecList,
                                         int aRowFetchLimit)

### createQueryExpressionRoot

    public QueryExpressionRoot createQueryExpressionRoot(QueryExpressionBody aQuery,
                                                         java.util.List aWithTableSpecList)

### createReferenceTable

    public TableExpression createReferenceTable(java.lang.String aSchemaName,
                                                java.lang.String aTableName,
                                                java.lang.String aCorrName)

  Deprecated. use `createReferenceTable(String, String, TableCorrelation)`

  use `createReferenceTable(aSchemaName, aTableName, createTableCorrelation(aCorrName))`

### createReferenceTable

    public TableExpression createReferenceTable(java.lang.String aSchemaName,
                                                java.lang.String aTableName,
                                                TableCorrelation aTableCorr)

### createResultColumn

    public ResultColumn createResultColumn(QueryValueExpression aResultColExpr,
                                           java.lang.String aAsName)

### createResultTableAllColumns

    public ResultTableAllColumns createResultTableAllColumns(java.lang.String aTableName)

### createResultTableAllColumns

    public ResultTableAllColumns createResultTableAllColumns(java.lang.String aTableName,
                                                             java.lang.String aSchemaName)

### createScalarSelectExpression

    public ValueExpressionScalarSelect createScalarSelectExpression(QueryExpressionRoot aQueryExpr)

### createSchema

    public Schema createSchema(java.lang.String aSchemaName)

### createSelectClause

    public java.util.List createSelectClause(java.util.List aResultSpecList,
                                             QueryResultSpecification aResultCol)

### createSelectStatement

    public QuerySelectStatement createSelectStatement(QuerySelect aQrySel,
                                                      java.util.List aOrderByList)

### createSelectStatement

    public QuerySelectStatement createSelectStatement(QueryExpressionRoot aQryExpr,
                                                      java.util.List aOrderByList)

### createSelectStatement

    public QuerySelectStatement createSelectStatement(QueryExpressionRoot aQryExpr,
                                                      java.util.List aOrderByList,
                                                      UpdatabilityExpression aUpdatabilityExpr)

### createSimpleExpression

    public ValueExpressionSimple createSimpleExpression(java.lang.String aExpr)

### createSimpleTable

    public TableInDatabase createSimpleTable(java.lang.String aSchemaName,
                                             java.lang.String aTableName)

### createSpecialRegisterExpression

    public ValueExpressionFunction createSpecialRegisterExpression(java.lang.String aSpecialReg)

  Creates a `ValueExpressionFunction` with name `aSpecialReg` and field ``ValueExpressionFunction.isSpecialRegister()`==true`

  Parameters:
    `aSpecialReg` - the register name, e.g. `SPECIAL_REGISTER_CURRENT_DATE`.
  Returns:
    a `ValueExpressionFunction`

### createSpecialRegisterExpression

    public ValueExpressionFunction createSpecialRegisterExpression(java.lang.String aRegName,
                                                                   UserDefinedType aDataType)

  Creates a function expression object for the special register with the name and user-defined data type. This is for the special register CURRENT_TRANSFORM_GROUP_FOR_TYPE.

### createSpecialRegisterExpression

    public ValueExpressionFunction createSpecialRegisterExpression(java.lang.String aSpecialReg,
                                                                   java.lang.String value)

  Deprecated. use createSpecialRegisterExpression(String, UserDefinedType) instead

  Creates a function expression object for the special register with the name and user-defined type name. This is for the special register CURRENT_TRANSFORM_GROUP_FOR_TYPE.

  Returns:
    a `ValueExpressionFunction`

### createSuperGroups

    public SuperGroup createSuperGroups(java.util.List aSuperGroupsElementList,
                                        int aSuperGroupType)

### createSuperGroupsElementList

    public java.util.List createSuperGroupsElementList(java.util.List aSuperGroupsElementList,
                                                       SuperGroupElement aSuperGroupsElement)

### createSuperGroupsElementExpression

    public SuperGroupElementExpression createSuperGroupsElementExpression(GroupingExpression aGroupingExpr)

### createSuperGroupsElementExprList

    public java.util.List createSuperGroupsElementExprList(java.util.List aSuperGroupsElementExprList,
                                                           SuperGroupElementExpression aSuperGroupsElementExpr)

### createSuperGroupsElementSublist

    public SuperGroupElementSublist createSuperGroupsElementSublist(java.util.List aSuperGroupsElementExprList)

### createTableCorrelation

    public TableCorrelation createTableCorrelation(java.lang.String aCorrName)

  Parameters:
    `aCorrName` - correlation name
  Returns:
    SQLTableCorrelation or null if given correlation name is null

### createTableCorrelation

    public TableCorrelation createTableCorrelation(java.lang.String aCorrName,
                                                   java.util.List aColNameList)

### createTableExpressionQuery

    public TableExpression createTableExpressionQuery(QueryExpressionBody aSubquery,
                                                      java.lang.String aCorrName)

  Deprecated. use `createTableExpressionQuery(QueryExpressionBody, TableCorrelation)`

  use `createTableExpressionQuery(aSubquery, createTableCorrelation(aCorrName))`

  Parameters:
    `aSubquery` -
    `aCorrName` -
  Returns:

### createTableExpressionQuery

    public TableExpression createTableExpressionQuery(QueryExpressionBody aSubquery,
                                                      TableCorrelation aTableCorr)

### createTableFunction

    public TableFunction createTableFunction(java.lang.String aFuncName,
                                             java.util.List aFuncParmList,
                                             java.lang.String aSchemaName,
                                             TableCorrelation aTableCorr)

### createUpdatabilityExpression

    public UpdatabilityExpression createUpdatabilityExpression(int aUpdatabilityType,
                                                               java.util.List aUpdateOfColList)

### createUpdateAssignmentClause

    public java.util.List createUpdateAssignmentClause(java.util.List aExprList,
                                                       UpdateAssignmentExpression aExpr)

### createUpdateAssignmentExpression

    public UpdateAssignmentExpression createUpdateAssignmentExpression(ValueExpressionColumn aTargetCol,
                                                                       QueryValueExpression aExpr)

### createUpdateAssignmentExpression

    public UpdateAssignmentExpression createUpdateAssignmentExpression(java.util.List aTargetColList,
                                                                       java.util.List aExprList)

### createUpdateAssignmentExpression

    public UpdateAssignmentExpression createUpdateAssignmentExpression(java.util.List aTargetColList,
                                                                       QueryExpressionBody aUpdateQuery)

### createUpdateStatement

    public QueryUpdateStatement createUpdateStatement(TableInDatabase aTargetTable,
                                                      TableCorrelation aAsTable,
                                                      java.util.List aAssignmentList,
                                                      QuerySearchCondition aWhereCond)

### createCallStatement

    public CallStatement createCallStatement(ProcedureReference procRef,
                                             java.util.List argList)

### createUserDefinedTypeFromDomainName

    public DataType createUserDefinedTypeFromDomainName(java.lang.String domainName)

  Deprecated.

### createVariableExpression

    public ValueExpressionVariable createVariableExpression(java.lang.String aVarName)

### createValueExpressionRow

    public ValueExpressionRow createValueExpressionRow(java.util.List aExprList)

### createValuesRow

    public ValuesRow createValuesRow(java.util.List aValueExprList)

### createValuesRow

    public ValuesRow createValuesRow(QueryValueExpression aValueExpr)

### createValuesRowList

    public java.util.List createValuesRowList(java.util.List aValuesRowList,
                                              ValuesRow aValuesRow)

### createWithTableSpecification

    public WithTableSpecification createWithTableSpecification(java.lang.String aTableIdentifier,
                                                               java.util.List aColumnNameList,
                                                               QueryExpressionBody aWithSource)

### createWithTableSpecificationList

    public java.util.List createWithTableSpecificationList(java.util.List aTableWithSpecList,
                                                           WithTableSpecification aTableWithSpec)

### isColumnFunction

    public static boolean isColumnFunction(java.lang.String aFuncName)

  Returns whether or not the given function name is a column (summary) function.

  Parameters:
    `name` - the function name to check
  Returns:
    true when the given function is a column function, otherwise false

### isDistinctColumnFunction

    public static boolean isDistinctColumnFunction(java.lang.String aFuncName)

  Returns whether or not the given function name is a column (summary) function that allows the DISTINCT keyword in the parameter list.

  Parameters:
    `name` - the function name to check
  Returns:
    true when the given function is a column function with distinct, otherwise false

### negateCondition

    public QuerySearchCondition negateCondition(QuerySearchCondition aSearchCond,
                                                boolean negate)

### negatePredicate

    public Predicate negatePredicate(Predicate aPredicate,
                                     boolean negate)

### setUnaryOperator

    public QueryValueExpression setUnaryOperator(QueryValueExpression expr,
                                                 int op)