diff --git a/pmd-plsql/etc/grammar/PLSQL.jjt b/pmd-plsql/etc/grammar/PLSQL.jjt index 657356bc43..e30990b3c5 100644 --- a/pmd-plsql/etc/grammar/PLSQL.jjt +++ b/pmd-plsql/etc/grammar/PLSQL.jjt @@ -3872,10 +3872,13 @@ ASTArgument Argument() : { //[LOOKAHEAD(2) UnqualifiedID() "=>"] Expression() [LOOKAHEAD(2) (simpleNode = UnqualifiedID()) ("=>" | ) ] - (Expression() [ <_DEFAULT> Expression() "ERROR" ] ) + Expression() + // e.g. TO_NUMBER allows a DEFAULT clause within an argument + // https://docs.oracle.com/en/database/oracle/oracle-database/23/sqlrf/TO_NUMBER.html#GUID-D4807212-AFD7-48A7-9AED-BEC3E8809866 + [ <_DEFAULT> Expression() KEYWORD("CONVERSION") "ERROR" ] //Allow Using CharacterSet suffix clause [ - ( ) + ( | ) ] { @@ -5022,7 +5025,6 @@ TOKEN [IGNORE_CASE]: | | | - | | | | diff --git a/pmd-plsql/src/test/java/net/sourceforge/pmd/lang/plsql/ast/PlsqlTreeDumpTest.java b/pmd-plsql/src/test/java/net/sourceforge/pmd/lang/plsql/ast/PlsqlTreeDumpTest.java index 221ade3b56..3594733782 100644 --- a/pmd-plsql/src/test/java/net/sourceforge/pmd/lang/plsql/ast/PlsqlTreeDumpTest.java +++ b/pmd-plsql/src/test/java/net/sourceforge/pmd/lang/plsql/ast/PlsqlTreeDumpTest.java @@ -66,4 +66,9 @@ class PlsqlTreeDumpTest extends BaseTreeDumpTest { void sqlMacroClause() { doTest("SqlMacroClause"); } + + @Test + void parseSelectExpression() { + doTest("SelectExpressions"); + } } diff --git a/pmd-plsql/src/test/java/net/sourceforge/pmd/lang/plsql/ast/SelectExpressionsTest.java b/pmd-plsql/src/test/java/net/sourceforge/pmd/lang/plsql/ast/SelectExpressionsTest.java index c3c811963b..3105715019 100644 --- a/pmd-plsql/src/test/java/net/sourceforge/pmd/lang/plsql/ast/SelectExpressionsTest.java +++ b/pmd-plsql/src/test/java/net/sourceforge/pmd/lang/plsql/ast/SelectExpressionsTest.java @@ -15,11 +15,6 @@ import net.sourceforge.pmd.lang.plsql.AbstractPLSQLParserTst; class SelectExpressionsTest extends AbstractPLSQLParserTst { - @Test - void parseSelectExpression() { - plsql.parseResource("SelectExpressions.pls"); - } - @Test void parseSelectSimpleExpression() { ASTInput input = plsql.parseResource("SelectSimpleExpression.pls"); diff --git a/pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/ast/SelectExpressions.txt b/pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/ast/SelectExpressions.txt new file mode 100644 index 0000000000..3c03af0d6f --- /dev/null +++ b/pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/ast/SelectExpressions.txt @@ -0,0 +1,905 @@ ++- Input[@CanonicalImage = null, @ExcludedLinesCount = 0, @ExcludedRangesCount = 0] + +- Global[@CanonicalImage = null] + | +- Block[@CanonicalImage = null] + | +- Statement[@CanonicalImage = null] + | | +- UnlabelledStatement[@CanonicalImage = null] + | | +- SelectIntoStatement[@All = false, @CanonicalImage = null, @Distinct = false, @Unique = false] + | | +- SelectList[@CanonicalImage = null] + | | | +- SqlExpression[@CanonicalImage = "AVG * 2", @Image = "AVG * 2"] + | | | +- MultiplicativeExpression[@CanonicalImage = "AVG * 2", @Image = "AVG * 2"] + | | | +- PrimaryPrefix[@CanonicalImage = "AVG", @Image = "AVG", @SelfModifier = false] + | | | | +- FunctionCall[@CanonicalImage = "AVG", @Image = "AVG"] + | | | | +- FunctionName[@CanonicalImage = "AVG", @Image = "AVG"] + | | | | | +- ID[@CanonicalImage = "AVG", @Image = "AVG"] + | | | | +- Arguments[@ArgumentCount = 1, @CanonicalImage = null] + | | | | +- ArgumentList[@CanonicalImage = null] + | | | | +- Argument[@CanonicalImage = null] + | | | | +- Expression[@CanonicalImage = "SAL", @Image = "sal"] + | | | | +- PrimaryPrefix[@CanonicalImage = "SAL", @Image = "sal", @SelfModifier = false] + | | | | +- SimpleExpression[@CanonicalImage = "SAL", @Image = "sal"] + | | | | +- Column[@CanonicalImage = "SAL", @Image = "sal"] + | | | | +- ID[@CanonicalImage = "SAL", @Image = "sal"] + | | | +- PrimaryPrefix[@CanonicalImage = "2", @Image = "2", @SelfModifier = false] + | | | +- Literal[@CanonicalImage = "2", @Image = "2"] + | | | +- NumericLiteral[@CanonicalImage = "2", @Image = "2"] + | | +- IntoClause[@CanonicalImage = null] + | | | +- VariableName[@CanonicalImage = "FOO", @Image = "foo"] + | | | +- ID[@CanonicalImage = "FOO", @Image = "foo"] + | | +- FromClause[@CanonicalImage = null] + | | +- TableReference[@CanonicalImage = null] + | | +- TableName[@CanonicalImage = "BAR", @Image = "bar"] + | | +- ID[@CanonicalImage = "BAR", @Image = "bar"] + | +- Statement[@CanonicalImage = null] + | | +- UnlabelledStatement[@CanonicalImage = null] + | | +- SelectIntoStatement[@All = false, @CanonicalImage = null, @Distinct = false, @Unique = false] + | | +- SelectList[@CanonicalImage = null] + | | | +- SqlExpression[@CanonicalImage = "AVG * 12", @Image = "AVG * 12"] + | | | | +- MultiplicativeExpression[@CanonicalImage = "AVG * 12", @Image = "AVG * 12"] + | | | | +- PrimaryPrefix[@CanonicalImage = "AVG", @Image = "AVG", @SelfModifier = false] + | | | | | +- FunctionCall[@CanonicalImage = "AVG", @Image = "AVG"] + | | | | | +- FunctionName[@CanonicalImage = "AVG", @Image = "AVG"] + | | | | | | +- ID[@CanonicalImage = "AVG", @Image = "AVG"] + | | | | | +- Arguments[@ArgumentCount = 1, @CanonicalImage = null] + | | | | | +- ArgumentList[@CanonicalImage = null] + | | | | | +- Argument[@CanonicalImage = null] + | | | | | +- Expression[@CanonicalImage = "SALARY", @Image = "salary"] + | | | | | +- PrimaryPrefix[@CanonicalImage = "SALARY", @Image = "salary", @SelfModifier = false] + | | | | | +- SimpleExpression[@CanonicalImage = "SALARY", @Image = "salary"] + | | | | | +- Column[@CanonicalImage = "SALARY", @Image = "salary"] + | | | | | +- ID[@CanonicalImage = "SALARY", @Image = "salary"] + | | | | +- PrimaryPrefix[@CanonicalImage = "12", @Image = "12", @SelfModifier = false] + | | | | +- Literal[@CanonicalImage = "12", @Image = "12"] + | | | | +- NumericLiteral[@CanonicalImage = "12", @Image = "12"] + | | | +- ColumnAlias[@CanonicalImage = "\"Average Sal\"", @Image = "\"Average Sal\""] + | | | +- ID[@CanonicalImage = "\"Average Sal\"", @Image = "\"Average Sal\""] + | | +- IntoClause[@CanonicalImage = null] + | | | +- VariableName[@CanonicalImage = "SOME_RECORD", @Image = "some_record"] + | | | +- ID[@CanonicalImage = "SOME_RECORD", @Image = "some_record"] + | | +- FromClause[@CanonicalImage = null] + | | +- TableReference[@CanonicalImage = null] + | | +- TableName[@CanonicalImage = "SOME_TABLE", @Image = "some_table"] + | | +- ID[@CanonicalImage = "SOME_TABLE", @Image = "some_table"] + | +- Statement[@CanonicalImage = null] + | | +- UnlabelledStatement[@CanonicalImage = null] + | | +- SelectIntoStatement[@All = false, @CanonicalImage = null, @Distinct = false, @Unique = false] + | | +- SelectList[@CanonicalImage = null] + | | | +- SqlExpression[@CanonicalImage = "TO_CHAR", @Image = "TO_CHAR"] + | | | | +- PrimaryPrefix[@CanonicalImage = "TO_CHAR", @Image = "TO_CHAR", @SelfModifier = false] + | | | | +- FunctionCall[@CanonicalImage = "TO_CHAR", @Image = "TO_CHAR"] + | | | | +- FunctionName[@CanonicalImage = "TO_CHAR", @Image = "TO_CHAR"] + | | | | | +- ID[@CanonicalImage = "TO_CHAR", @Image = "TO_CHAR"] + | | | | +- Arguments[@ArgumentCount = 2, @CanonicalImage = null] + | | | | +- ArgumentList[@CanonicalImage = null] + | | | | +- Argument[@CanonicalImage = null] + | | | | | +- Expression[@CanonicalImage = "SUM", @Image = "sum"] + | | | | | +- PrimaryPrefix[@CanonicalImage = "SUM", @Image = "sum", @SelfModifier = false] + | | | | | +- FunctionCall[@CanonicalImage = "SUM", @Image = "sum"] + | | | | | +- FunctionName[@CanonicalImage = "SUM", @Image = "sum"] + | | | | | | +- ID[@CanonicalImage = "SUM", @Image = "sum"] + | | | | | +- Arguments[@ArgumentCount = 1, @CanonicalImage = null] + | | | | | +- ArgumentList[@CanonicalImage = null] + | | | | | +- Argument[@CanonicalImage = null] + | | | | | +- Expression[@CanonicalImage = "AMOUNT_SOLD", @Image = "amount_sold"] + | | | | | +- PrimaryPrefix[@CanonicalImage = "AMOUNT_SOLD", @Image = "amount_sold", @SelfModifier = false] + | | | | | +- SimpleExpression[@CanonicalImage = "AMOUNT_SOLD", @Image = "amount_sold"] + | | | | | +- Column[@CanonicalImage = "AMOUNT_SOLD", @Image = "amount_sold"] + | | | | | +- ID[@CanonicalImage = "AMOUNT_SOLD", @Image = "amount_sold"] + | | | | +- Argument[@CanonicalImage = null] + | | | | +- Expression[@CanonicalImage = "\'9,999,999,999\'", @Image = "\'9,999,999,999\'"] + | | | | +- PrimaryPrefix[@CanonicalImage = "\'9,999,999,999\'", @Image = "\'9,999,999,999\'", @SelfModifier = false] + | | | | +- Literal[@CanonicalImage = "\'9,999,999,999\'", @Image = "\'9,999,999,999\'"] + | | | | +- StringLiteral[@CanonicalImage = "\'9,999,999,999\'", @Image = "\'9,999,999,999\'", @String = "9,999,999,999"] + | | | +- ColumnAlias[@CanonicalImage = "SALES$", @Image = "SALES$"] + | | | +- ID[@CanonicalImage = "SALES$", @Image = "SALES$"] + | | +- IntoClause[@CanonicalImage = null] + | | | +- VariableName[@CanonicalImage = "SOME_RECORD", @Image = "some_record"] + | | | +- ID[@CanonicalImage = "SOME_RECORD", @Image = "some_record"] + | | +- FromClause[@CanonicalImage = null] + | | +- TableReference[@CanonicalImage = null] + | | +- TableName[@CanonicalImage = "SOME_TABLE", @Image = "some_table"] + | | +- ID[@CanonicalImage = "SOME_TABLE", @Image = "some_table"] + | +- Statement[@CanonicalImage = null] + | | +- UnlabelledStatement[@CanonicalImage = null] + | | +- SelectIntoStatement[@All = false, @CanonicalImage = null, @Distinct = false, @Unique = false] + | | +- SelectList[@CanonicalImage = null] + | | | +- SqlExpression[@CanonicalImage = "MANAGER_ID", @Image = "manager_id"] + | | | | +- PrimaryPrefix[@CanonicalImage = "MANAGER_ID", @Image = "manager_id", @SelfModifier = false] + | | | | +- SimpleExpression[@CanonicalImage = "MANAGER_ID", @Image = "manager_id"] + | | | | +- Column[@CanonicalImage = "MANAGER_ID", @Image = "manager_id"] + | | | | +- ID[@CanonicalImage = "MANAGER_ID", @Image = "manager_id"] + | | | +- SqlExpression[@CanonicalImage = "LAST_NAME", @Image = "last_name"] + | | | | +- PrimaryPrefix[@CanonicalImage = "LAST_NAME", @Image = "last_name", @SelfModifier = false] + | | | | +- SimpleExpression[@CanonicalImage = "LAST_NAME", @Image = "last_name"] + | | | | +- Column[@CanonicalImage = "LAST_NAME", @Image = "last_name"] + | | | | +- ID[@CanonicalImage = "LAST_NAME", @Image = "last_name"] + | | | +- SqlExpression[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | +- PrimaryPrefix[@CanonicalImage = "HIRE_DATE", @Image = "hire_date", @SelfModifier = false] + | | | | +- SimpleExpression[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | +- Column[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | +- ID[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | +- SqlExpression[@CanonicalImage = "SALARY", @Image = "salary"] + | | | | +- PrimaryPrefix[@CanonicalImage = "SALARY", @Image = "salary", @SelfModifier = false] + | | | | +- SimpleExpression[@CanonicalImage = "SALARY", @Image = "salary"] + | | | | +- Column[@CanonicalImage = "SALARY", @Image = "salary"] + | | | | +- ID[@CanonicalImage = "SALARY", @Image = "salary"] + | | | +- SqlExpression[@CanonicalImage = "AVG", @Image = "AVG"] + | | | | +- PrimaryPrefix[@CanonicalImage = "AVG", @Image = "AVG", @SelfModifier = false] + | | | | +- FunctionCall[@CanonicalImage = "AVG", @Image = "AVG"] + | | | | | +- FunctionName[@CanonicalImage = "AVG", @Image = "AVG"] + | | | | | | +- ID[@CanonicalImage = "AVG", @Image = "AVG"] + | | | | | +- Arguments[@ArgumentCount = 1, @CanonicalImage = null] + | | | | | +- ArgumentList[@CanonicalImage = null] + | | | | | +- Argument[@CanonicalImage = null] + | | | | | +- Expression[@CanonicalImage = "SALARY", @Image = "salary"] + | | | | | +- PrimaryPrefix[@CanonicalImage = "SALARY", @Image = "salary", @SelfModifier = false] + | | | | | +- SimpleExpression[@CanonicalImage = "SALARY", @Image = "salary"] + | | | | | +- Column[@CanonicalImage = "SALARY", @Image = "salary"] + | | | | | +- ID[@CanonicalImage = "SALARY", @Image = "salary"] + | | | | +- AnalyticClause[@CanonicalImage = null] + | | | | +- QueryPartitionClause[@CanonicalImage = null] + | | | | | +- Expression[@CanonicalImage = "MANAGER_ID", @Image = "manager_id"] + | | | | | +- PrimaryPrefix[@CanonicalImage = "MANAGER_ID", @Image = "manager_id", @SelfModifier = false] + | | | | | +- SimpleExpression[@CanonicalImage = "MANAGER_ID", @Image = "manager_id"] + | | | | | +- Column[@CanonicalImage = "MANAGER_ID", @Image = "manager_id"] + | | | | | +- ID[@CanonicalImage = "MANAGER_ID", @Image = "manager_id"] + | | | | +- OrderByClause[@CanonicalImage = null] + | | | | | +- SqlExpression[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | | +- PrimaryPrefix[@CanonicalImage = "HIRE_DATE", @Image = "hire_date", @SelfModifier = false] + | | | | | +- SimpleExpression[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | | +- Column[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | | +- ID[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | +- WindowingClause[@CanonicalImage = null] + | | | | +- SqlExpression[@CanonicalImage = "1", @Image = "1"] + | | | | | +- PrimaryPrefix[@CanonicalImage = "1", @Image = "1", @SelfModifier = false] + | | | | | +- Literal[@CanonicalImage = "1", @Image = "1"] + | | | | | +- NumericLiteral[@CanonicalImage = "1", @Image = "1"] + | | | | +- SqlExpression[@CanonicalImage = "1", @Image = "1"] + | | | | +- PrimaryPrefix[@CanonicalImage = "1", @Image = "1", @SelfModifier = false] + | | | | +- Literal[@CanonicalImage = "1", @Image = "1"] + | | | | +- NumericLiteral[@CanonicalImage = "1", @Image = "1"] + | | | +- ColumnAlias[@CanonicalImage = "C_MAVG", @Image = "c_mavg"] + | | | +- ID[@CanonicalImage = "C_MAVG", @Image = "c_mavg"] + | | +- IntoClause[@CanonicalImage = null] + | | | +- VariableName[@CanonicalImage = "SOME_RECORD", @Image = "some_record"] + | | | +- ID[@CanonicalImage = "SOME_RECORD", @Image = "some_record"] + | | +- FromClause[@CanonicalImage = null] + | | | +- TableReference[@CanonicalImage = null] + | | | +- TableName[@CanonicalImage = "EMPLOYEES", @Image = "employees"] + | | | +- ID[@CanonicalImage = "EMPLOYEES", @Image = "employees"] + | | +- OrderByClause[@CanonicalImage = null] + | | +- SqlExpression[@CanonicalImage = "MANAGER_ID", @Image = "manager_id"] + | | | +- PrimaryPrefix[@CanonicalImage = "MANAGER_ID", @Image = "manager_id", @SelfModifier = false] + | | | +- SimpleExpression[@CanonicalImage = "MANAGER_ID", @Image = "manager_id"] + | | | +- Column[@CanonicalImage = "MANAGER_ID", @Image = "manager_id"] + | | | +- ID[@CanonicalImage = "MANAGER_ID", @Image = "manager_id"] + | | +- SqlExpression[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | +- PrimaryPrefix[@CanonicalImage = "HIRE_DATE", @Image = "hire_date", @SelfModifier = false] + | | | +- SimpleExpression[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | +- Column[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | +- ID[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | +- SqlExpression[@CanonicalImage = "SALARY", @Image = "salary"] + | | +- PrimaryPrefix[@CanonicalImage = "SALARY", @Image = "salary", @SelfModifier = false] + | | +- SimpleExpression[@CanonicalImage = "SALARY", @Image = "salary"] + | | +- Column[@CanonicalImage = "SALARY", @Image = "salary"] + | | +- ID[@CanonicalImage = "SALARY", @Image = "salary"] + | +- Statement[@CanonicalImage = null] + | | +- UnlabelledStatement[@CanonicalImage = null] + | | +- SelectIntoStatement[@All = false, @CanonicalImage = null, @Distinct = false, @Unique = false] + | | +- SelectList[@CanonicalImage = null] + | | | +- SqlExpression[@CanonicalImage = "LISTAGG", @Image = "LISTAGG"] + | | | | +- PrimaryPrefix[@CanonicalImage = "LISTAGG", @Image = "LISTAGG", @SelfModifier = false] + | | | | +- FunctionCall[@CanonicalImage = "LISTAGG", @Image = "LISTAGG"] + | | | | | +- FunctionName[@CanonicalImage = "LISTAGG", @Image = "LISTAGG"] + | | | | | | +- ID[@CanonicalImage = "LISTAGG", @Image = "LISTAGG"] + | | | | | +- Arguments[@ArgumentCount = 2, @CanonicalImage = null] + | | | | | +- ArgumentList[@CanonicalImage = null] + | | | | | +- Argument[@CanonicalImage = null] + | | | | | | +- Expression[@CanonicalImage = "LAST_NAME", @Image = "last_name"] + | | | | | | +- PrimaryPrefix[@CanonicalImage = "LAST_NAME", @Image = "last_name", @SelfModifier = false] + | | | | | | +- SimpleExpression[@CanonicalImage = "LAST_NAME", @Image = "last_name"] + | | | | | | +- Column[@CanonicalImage = "LAST_NAME", @Image = "last_name"] + | | | | | | +- ID[@CanonicalImage = "LAST_NAME", @Image = "last_name"] + | | | | | +- Argument[@CanonicalImage = null] + | | | | | +- Expression[@CanonicalImage = "\'; \'", @Image = "\'; \'"] + | | | | | +- PrimaryPrefix[@CanonicalImage = "\'; \'", @Image = "\'; \'", @SelfModifier = false] + | | | | | +- Literal[@CanonicalImage = "\'; \'", @Image = "\'; \'"] + | | | | | +- StringLiteral[@CanonicalImage = "\'; \'", @Image = "\'; \'", @String = "; "] + | | | | +- WithinClause[@CanonicalImage = null] + | | | | +- OrderByClause[@CanonicalImage = null] + | | | | +- SqlExpression[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | | +- PrimaryPrefix[@CanonicalImage = "HIRE_DATE", @Image = "hire_date", @SelfModifier = false] + | | | | | +- SimpleExpression[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | | +- Column[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | | +- ID[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | +- SqlExpression[@CanonicalImage = "LAST_NAME", @Image = "last_name"] + | | | | +- PrimaryPrefix[@CanonicalImage = "LAST_NAME", @Image = "last_name", @SelfModifier = false] + | | | | +- SimpleExpression[@CanonicalImage = "LAST_NAME", @Image = "last_name"] + | | | | +- Column[@CanonicalImage = "LAST_NAME", @Image = "last_name"] + | | | | +- ID[@CanonicalImage = "LAST_NAME", @Image = "last_name"] + | | | +- ColumnAlias[@CanonicalImage = "\"Emp_list\"", @Image = "\"Emp_list\""] + | | | | +- ID[@CanonicalImage = "\"Emp_list\"", @Image = "\"Emp_list\""] + | | | +- SqlExpression[@CanonicalImage = "MIN", @Image = "MIN"] + | | | | +- PrimaryPrefix[@CanonicalImage = "MIN", @Image = "MIN", @SelfModifier = false] + | | | | +- FunctionCall[@CanonicalImage = "MIN", @Image = "MIN"] + | | | | +- FunctionName[@CanonicalImage = "MIN", @Image = "MIN"] + | | | | | +- ID[@CanonicalImage = "MIN", @Image = "MIN"] + | | | | +- Arguments[@ArgumentCount = 1, @CanonicalImage = null] + | | | | +- ArgumentList[@CanonicalImage = null] + | | | | +- Argument[@CanonicalImage = null] + | | | | +- Expression[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | +- PrimaryPrefix[@CanonicalImage = "HIRE_DATE", @Image = "hire_date", @SelfModifier = false] + | | | | +- SimpleExpression[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | +- Column[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | +- ID[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | +- ColumnAlias[@CanonicalImage = "\"Earliest\"", @Image = "\"Earliest\""] + | | | +- ID[@CanonicalImage = "\"Earliest\"", @Image = "\"Earliest\""] + | | +- IntoClause[@CanonicalImage = null] + | | | +- VariableName[@CanonicalImage = "SOME_RECORD", @Image = "some_record"] + | | | +- ID[@CanonicalImage = "SOME_RECORD", @Image = "some_record"] + | | +- FromClause[@CanonicalImage = null] + | | | +- TableReference[@CanonicalImage = null] + | | | +- TableName[@CanonicalImage = "EMPLOYEES", @Image = "employees"] + | | | +- ID[@CanonicalImage = "EMPLOYEES", @Image = "employees"] + | | +- WhereClause[@CanonicalImage = null] + | | +- Condition[@CanonicalImage = null] + | | +- CompoundCondition[@CanonicalImage = null, @Type = null] + | | +- ComparisonCondition[@CanonicalImage = null, @Operator = "="] + | | +- SqlExpression[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id"] + | | | +- PrimaryPrefix[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id", @SelfModifier = false] + | | | +- SimpleExpression[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id"] + | | | +- Column[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id"] + | | | +- ID[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id"] + | | +- SqlExpression[@CanonicalImage = "30", @Image = "30"] + | | +- PrimaryPrefix[@CanonicalImage = "30", @Image = "30", @SelfModifier = false] + | | +- Literal[@CanonicalImage = "30", @Image = "30"] + | | +- NumericLiteral[@CanonicalImage = "30", @Image = "30"] + | +- Statement[@CanonicalImage = null] + | | +- UnlabelledStatement[@CanonicalImage = null] + | | +- SelectIntoStatement[@All = false, @CanonicalImage = null, @Distinct = false, @Unique = false] + | | +- SelectList[@CanonicalImage = null] + | | | +- SqlExpression[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id"] + | | | | +- PrimaryPrefix[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id", @SelfModifier = false] + | | | | +- SimpleExpression[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id"] + | | | | +- Column[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id"] + | | | | +- ID[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id"] + | | | +- ColumnAlias[@CanonicalImage = "\"Dept.\"", @Image = "\"Dept.\""] + | | | | +- ID[@CanonicalImage = "\"Dept.\"", @Image = "\"Dept.\""] + | | | +- SqlExpression[@CanonicalImage = "LISTAGG", @Image = "LISTAGG"] + | | | | +- PrimaryPrefix[@CanonicalImage = "LISTAGG", @Image = "LISTAGG", @SelfModifier = false] + | | | | +- FunctionCall[@CanonicalImage = "LISTAGG", @Image = "LISTAGG"] + | | | | | +- FunctionName[@CanonicalImage = "LISTAGG", @Image = "LISTAGG"] + | | | | | | +- ID[@CanonicalImage = "LISTAGG", @Image = "LISTAGG"] + | | | | | +- Arguments[@ArgumentCount = 2, @CanonicalImage = null] + | | | | | +- ArgumentList[@CanonicalImage = null] + | | | | | +- Argument[@CanonicalImage = null] + | | | | | | +- Expression[@CanonicalImage = "LAST_NAME", @Image = "last_name"] + | | | | | | +- PrimaryPrefix[@CanonicalImage = "LAST_NAME", @Image = "last_name", @SelfModifier = false] + | | | | | | +- SimpleExpression[@CanonicalImage = "LAST_NAME", @Image = "last_name"] + | | | | | | +- Column[@CanonicalImage = "LAST_NAME", @Image = "last_name"] + | | | | | | +- ID[@CanonicalImage = "LAST_NAME", @Image = "last_name"] + | | | | | +- Argument[@CanonicalImage = null] + | | | | | +- Expression[@CanonicalImage = "\'; \'", @Image = "\'; \'"] + | | | | | +- PrimaryPrefix[@CanonicalImage = "\'; \'", @Image = "\'; \'", @SelfModifier = false] + | | | | | +- Literal[@CanonicalImage = "\'; \'", @Image = "\'; \'"] + | | | | | +- StringLiteral[@CanonicalImage = "\'; \'", @Image = "\'; \'", @String = "; "] + | | | | +- WithinClause[@CanonicalImage = null] + | | | | +- OrderByClause[@CanonicalImage = null] + | | | | +- SqlExpression[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | +- PrimaryPrefix[@CanonicalImage = "HIRE_DATE", @Image = "hire_date", @SelfModifier = false] + | | | | +- SimpleExpression[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | +- Column[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | +- ID[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | +- ColumnAlias[@CanonicalImage = "\"Employees\"", @Image = "\"Employees\""] + | | | +- ID[@CanonicalImage = "\"Employees\"", @Image = "\"Employees\""] + | | +- IntoClause[@CanonicalImage = null] + | | | +- VariableName[@CanonicalImage = "SOME_RECORD", @Image = "some_record"] + | | | +- ID[@CanonicalImage = "SOME_RECORD", @Image = "some_record"] + | | +- FromClause[@CanonicalImage = null] + | | | +- TableReference[@CanonicalImage = null] + | | | +- TableName[@CanonicalImage = "EMPLOYEES", @Image = "employees"] + | | | +- ID[@CanonicalImage = "EMPLOYEES", @Image = "employees"] + | | +- GroupByClause[@CanonicalImage = null] + | | | +- Expression[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id"] + | | | +- PrimaryPrefix[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id", @SelfModifier = false] + | | | +- SimpleExpression[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id"] + | | | +- Column[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id"] + | | | +- ID[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id"] + | | +- OrderByClause[@CanonicalImage = null] + | | +- SqlExpression[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id"] + | | +- PrimaryPrefix[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id", @SelfModifier = false] + | | +- SimpleExpression[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id"] + | | +- Column[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id"] + | | +- ID[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id"] + | +- Statement[@CanonicalImage = null] + | | +- UnlabelledStatement[@CanonicalImage = null] + | | +- SelectIntoStatement[@All = false, @CanonicalImage = null, @Distinct = false, @Unique = false] + | | +- SelectList[@CanonicalImage = null] + | | | +- SqlExpression[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id"] + | | | | +- PrimaryPrefix[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id", @SelfModifier = false] + | | | | +- SimpleExpression[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id"] + | | | | +- Column[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id"] + | | | | +- ID[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id"] + | | | +- ColumnAlias[@CanonicalImage = "\"Dept.\"", @Image = "\"Dept.\""] + | | | | +- ID[@CanonicalImage = "\"Dept.\"", @Image = "\"Dept.\""] + | | | +- SqlExpression[@CanonicalImage = "LISTAGG", @Image = "LISTAGG"] + | | | | +- PrimaryPrefix[@CanonicalImage = "LISTAGG", @Image = "LISTAGG", @SelfModifier = false] + | | | | +- FunctionCall[@CanonicalImage = "LISTAGG", @Image = "LISTAGG"] + | | | | | +- FunctionName[@CanonicalImage = "LISTAGG", @Image = "LISTAGG"] + | | | | | | +- ID[@CanonicalImage = "LISTAGG", @Image = "LISTAGG"] + | | | | | +- Arguments[@ArgumentCount = 2, @CanonicalImage = null] + | | | | | +- ArgumentList[@CanonicalImage = null] + | | | | | | +- Argument[@CanonicalImage = null] + | | | | | | | +- Expression[@CanonicalImage = "LAST_NAME", @Image = "last_name"] + | | | | | | | +- PrimaryPrefix[@CanonicalImage = "LAST_NAME", @Image = "last_name", @SelfModifier = false] + | | | | | | | +- SimpleExpression[@CanonicalImage = "LAST_NAME", @Image = "last_name"] + | | | | | | | +- Column[@CanonicalImage = "LAST_NAME", @Image = "last_name"] + | | | | | | | +- ID[@CanonicalImage = "LAST_NAME", @Image = "last_name"] + | | | | | | +- Argument[@CanonicalImage = null] + | | | | | | +- Expression[@CanonicalImage = "\'; \'", @Image = "\'; \'"] + | | | | | | +- PrimaryPrefix[@CanonicalImage = "\'; \'", @Image = "\'; \'", @SelfModifier = false] + | | | | | | +- Literal[@CanonicalImage = "\'; \'", @Image = "\'; \'"] + | | | | | | +- StringLiteral[@CanonicalImage = "\'; \'", @Image = "\'; \'", @String = "; "] + | | | | | +- ListaggOverflowClause[@CanonicalImage = null] + | | | | | +- StringLiteral[@CanonicalImage = "\'...\'", @Image = "\'...\'", @String = "..."] + | | | | +- WithinClause[@CanonicalImage = null] + | | | | +- OrderByClause[@CanonicalImage = null] + | | | | +- SqlExpression[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | +- PrimaryPrefix[@CanonicalImage = "HIRE_DATE", @Image = "hire_date", @SelfModifier = false] + | | | | +- SimpleExpression[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | +- Column[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | +- ID[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | +- ColumnAlias[@CanonicalImage = "\"Employees\"", @Image = "\"Employees\""] + | | | +- ID[@CanonicalImage = "\"Employees\"", @Image = "\"Employees\""] + | | +- IntoClause[@CanonicalImage = null] + | | | +- VariableName[@CanonicalImage = "SOME_RECORD", @Image = "some_record"] + | | | +- ID[@CanonicalImage = "SOME_RECORD", @Image = "some_record"] + | | +- FromClause[@CanonicalImage = null] + | | | +- TableReference[@CanonicalImage = null] + | | | +- TableName[@CanonicalImage = "EMPLOYEES", @Image = "employees"] + | | | +- ID[@CanonicalImage = "EMPLOYEES", @Image = "employees"] + | | +- GroupByClause[@CanonicalImage = null] + | | | +- Expression[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id"] + | | | +- PrimaryPrefix[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id", @SelfModifier = false] + | | | +- SimpleExpression[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id"] + | | | +- Column[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id"] + | | | +- ID[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id"] + | | +- OrderByClause[@CanonicalImage = null] + | | +- SqlExpression[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id"] + | | +- PrimaryPrefix[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id", @SelfModifier = false] + | | +- SimpleExpression[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id"] + | | +- Column[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id"] + | | +- ID[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id"] + | +- Statement[@CanonicalImage = null] + | | +- UnlabelledStatement[@CanonicalImage = null] + | | +- SelectIntoStatement[@All = false, @CanonicalImage = null, @Distinct = false, @Unique = false] + | | +- SelectList[@CanonicalImage = null] + | | | +- SqlExpression[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id"] + | | | | +- PrimaryPrefix[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id", @SelfModifier = false] + | | | | +- SimpleExpression[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id"] + | | | | +- Column[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id"] + | | | | +- ID[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id"] + | | | +- ColumnAlias[@CanonicalImage = "\"Dept\"", @Image = "\"Dept\""] + | | | | +- ID[@CanonicalImage = "\"Dept\"", @Image = "\"Dept\""] + | | | +- SqlExpression[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | +- PrimaryPrefix[@CanonicalImage = "HIRE_DATE", @Image = "hire_date", @SelfModifier = false] + | | | | +- SimpleExpression[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | +- Column[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | +- ID[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | +- ColumnAlias[@CanonicalImage = "\"Date\"", @Image = "\"Date\""] + | | | | +- ID[@CanonicalImage = "\"Date\"", @Image = "\"Date\""] + | | | +- SqlExpression[@CanonicalImage = "LAST_NAME", @Image = "last_name"] + | | | | +- PrimaryPrefix[@CanonicalImage = "LAST_NAME", @Image = "last_name", @SelfModifier = false] + | | | | +- SimpleExpression[@CanonicalImage = "LAST_NAME", @Image = "last_name"] + | | | | +- Column[@CanonicalImage = "LAST_NAME", @Image = "last_name"] + | | | | +- ID[@CanonicalImage = "LAST_NAME", @Image = "last_name"] + | | | +- ColumnAlias[@CanonicalImage = "\"Name\"", @Image = "\"Name\""] + | | | | +- ID[@CanonicalImage = "\"Name\"", @Image = "\"Name\""] + | | | +- SqlExpression[@CanonicalImage = "LISTAGG", @Image = "LISTAGG"] + | | | | +- PrimaryPrefix[@CanonicalImage = "LISTAGG", @Image = "LISTAGG", @SelfModifier = false] + | | | | +- FunctionCall[@CanonicalImage = "LISTAGG", @Image = "LISTAGG"] + | | | | | +- FunctionName[@CanonicalImage = "LISTAGG", @Image = "LISTAGG"] + | | | | | | +- ID[@CanonicalImage = "LISTAGG", @Image = "LISTAGG"] + | | | | | +- Arguments[@ArgumentCount = 2, @CanonicalImage = null] + | | | | | +- ArgumentList[@CanonicalImage = null] + | | | | | +- Argument[@CanonicalImage = null] + | | | | | | +- Expression[@CanonicalImage = "LAST_NAME", @Image = "last_name"] + | | | | | | +- PrimaryPrefix[@CanonicalImage = "LAST_NAME", @Image = "last_name", @SelfModifier = false] + | | | | | | +- SimpleExpression[@CanonicalImage = "LAST_NAME", @Image = "last_name"] + | | | | | | +- Column[@CanonicalImage = "LAST_NAME", @Image = "last_name"] + | | | | | | +- ID[@CanonicalImage = "LAST_NAME", @Image = "last_name"] + | | | | | +- Argument[@CanonicalImage = null] + | | | | | +- Expression[@CanonicalImage = "\'; \'", @Image = "\'; \'"] + | | | | | +- PrimaryPrefix[@CanonicalImage = "\'; \'", @Image = "\'; \'", @SelfModifier = false] + | | | | | +- Literal[@CanonicalImage = "\'; \'", @Image = "\'; \'"] + | | | | | +- StringLiteral[@CanonicalImage = "\'; \'", @Image = "\'; \'", @String = "; "] + | | | | +- WithinClause[@CanonicalImage = null] + | | | | +- OrderByClause[@CanonicalImage = null] + | | | | | +- SqlExpression[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | | | +- PrimaryPrefix[@CanonicalImage = "HIRE_DATE", @Image = "hire_date", @SelfModifier = false] + | | | | | | +- SimpleExpression[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | | | +- Column[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | | | +- ID[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | | +- SqlExpression[@CanonicalImage = "LAST_NAME", @Image = "last_name"] + | | | | | +- PrimaryPrefix[@CanonicalImage = "LAST_NAME", @Image = "last_name", @SelfModifier = false] + | | | | | +- SimpleExpression[@CanonicalImage = "LAST_NAME", @Image = "last_name"] + | | | | | +- Column[@CanonicalImage = "LAST_NAME", @Image = "last_name"] + | | | | | +- ID[@CanonicalImage = "LAST_NAME", @Image = "last_name"] + | | | | +- QueryPartitionClause[@CanonicalImage = null] + | | | | +- Expression[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id"] + | | | | +- PrimaryPrefix[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id", @SelfModifier = false] + | | | | +- SimpleExpression[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id"] + | | | | +- Column[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id"] + | | | | +- ID[@CanonicalImage = "DEPARTMENT_ID", @Image = "department_id"] + | | | +- ColumnAlias[@CanonicalImage = "\"Emp_list\"", @Image = "\"Emp_list\""] + | | | +- ID[@CanonicalImage = "\"Emp_list\"", @Image = "\"Emp_list\""] + | | +- IntoClause[@CanonicalImage = null] + | | | +- VariableName[@CanonicalImage = "SOME_RECORD", @Image = "some_record"] + | | | +- ID[@CanonicalImage = "SOME_RECORD", @Image = "some_record"] + | | +- FromClause[@CanonicalImage = null] + | | | +- TableReference[@CanonicalImage = null] + | | | +- TableName[@CanonicalImage = "EMPLOYEES", @Image = "employees"] + | | | +- ID[@CanonicalImage = "EMPLOYEES", @Image = "employees"] + | | +- WhereClause[@CanonicalImage = null] + | | | +- Condition[@CanonicalImage = null] + | | | +- CompoundCondition[@CanonicalImage = null, @Type = "AND"] + | | | +- ComparisonCondition[@CanonicalImage = null, @Operator = "<"] + | | | | +- SqlExpression[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | | +- PrimaryPrefix[@CanonicalImage = "HIRE_DATE", @Image = "hire_date", @SelfModifier = false] + | | | | | +- SimpleExpression[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | | +- Column[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | | +- ID[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | +- SqlExpression[@CanonicalImage = "\'01-SEP-2003\'", @Image = "\'01-SEP-2003\'"] + | | | | +- PrimaryPrefix[@CanonicalImage = "\'01-SEP-2003\'", @Image = "\'01-SEP-2003\'", @SelfModifier = false] + | | | | +- Literal[@CanonicalImage = "\'01-SEP-2003\'", @Image = "\'01-SEP-2003\'"] + | | | | +- StringLiteral[@CanonicalImage = "\'01-SEP-2003\'", @Image = "\'01-SEP-2003\'", @String = "01-SEP-2003"] + | | | +- Condition[@CanonicalImage = null] + | | | +- CompoundCondition[@CanonicalImage = null, @Type = "AND"] + | | | +- ComparisonCondition[@CanonicalImage = null, @Operator = ">"] + | | | | +- SqlExpression[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | | +- PrimaryPrefix[@CanonicalImage = "HIRE_DATE", @Image = "hire_date", @SelfModifier = false] + | | | | | +- SimpleExpression[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | | +- Column[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | | +- ID[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | +- SqlExpression[@CanonicalImage = "TIMESTAMP \'2001-01-01 00:00:00\'", @Image = "TIMESTAMP \'2001-01-01 00:00:00\'"] + | | | | +- PrimaryPrefix[@CanonicalImage = "TIMESTAMP \'2001-01-01 00:00:00\'", @Image = "TIMESTAMP \'2001-01-01 00:00:00\'", @SelfModifier = false] + | | | | +- Literal[@CanonicalImage = "TIMESTAMP \'2001-01-01 00:00:00\'", @Image = "TIMESTAMP \'2001-01-01 00:00:00\'"] + | | | | +- DateTimeLiteral[@CanonicalImage = "TIMESTAMP \'2001-01-01 00:00:00\'", @Image = "TIMESTAMP \'2001-01-01 00:00:00\'"] + | | | | +- StringLiteral[@CanonicalImage = "\'2001-01-01 00:00:00\'", @Image = "\'2001-01-01 00:00:00\'", @String = "2001-01-01 00:00:00"] + | | | +- Condition[@CanonicalImage = null] + | | | +- CompoundCondition[@CanonicalImage = null, @Type = "AND"] + | | | +- ComparisonCondition[@CanonicalImage = null, @Operator = "<"] + | | | | +- SqlExpression[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | | +- PrimaryPrefix[@CanonicalImage = "HIRE_DATE", @Image = "hire_date", @SelfModifier = false] + | | | | | +- SimpleExpression[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | | +- Column[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | | +- ID[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | +- SqlExpression[@CanonicalImage = "SYSDATE - INTERVAL \'50\'", @Image = "sysdate - INTERVAL \'50\'"] + | | | | +- AdditiveExpression[@CanonicalImage = "SYSDATE - INTERVAL \'50\'", @Image = "sysdate - INTERVAL \'50\'"] + | | | | +- PrimaryPrefix[@CanonicalImage = "SYSDATE", @Image = "sysdate", @SelfModifier = false] + | | | | | +- SimpleExpression[@CanonicalImage = "SYSDATE", @Image = "sysdate"] + | | | | | +- Column[@CanonicalImage = "SYSDATE", @Image = "sysdate"] + | | | | | +- ID[@CanonicalImage = "SYSDATE", @Image = "sysdate"] + | | | | +- PrimaryPrefix[@CanonicalImage = "INTERVAL \'50\'", @Image = "INTERVAL \'50\'", @SelfModifier = false] + | | | | +- Literal[@CanonicalImage = "INTERVAL \'50\'", @Image = "INTERVAL \'50\'"] + | | | | +- DateTimeLiteral[@CanonicalImage = "INTERVAL \'50\'", @Image = "INTERVAL \'50\'"] + | | | | +- StringLiteral[@CanonicalImage = "\'50\'", @Image = "\'50\'", @String = "50"] + | | | +- Condition[@CanonicalImage = null] + | | | +- CompoundCondition[@CanonicalImage = null, @Type = "AND"] + | | | +- ComparisonCondition[@CanonicalImage = null, @Operator = "<"] + | | | | +- SqlExpression[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | | +- PrimaryPrefix[@CanonicalImage = "HIRE_DATE", @Image = "hire_date", @SelfModifier = false] + | | | | | +- SimpleExpression[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | | +- Column[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | | +- ID[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | +- SqlExpression[@CanonicalImage = "SYSDATE - INTERVAL \'5\'", @Image = "sysdate - INTERVAL \'5\'"] + | | | | +- AdditiveExpression[@CanonicalImage = "SYSDATE - INTERVAL \'5\'", @Image = "sysdate - INTERVAL \'5\'"] + | | | | +- PrimaryPrefix[@CanonicalImage = "SYSDATE", @Image = "sysdate", @SelfModifier = false] + | | | | | +- SimpleExpression[@CanonicalImage = "SYSDATE", @Image = "sysdate"] + | | | | | +- Column[@CanonicalImage = "SYSDATE", @Image = "sysdate"] + | | | | | +- ID[@CanonicalImage = "SYSDATE", @Image = "sysdate"] + | | | | +- PrimaryPrefix[@CanonicalImage = "INTERVAL \'5\'", @Image = "INTERVAL \'5\'", @SelfModifier = false] + | | | | +- Literal[@CanonicalImage = "INTERVAL \'5\'", @Image = "INTERVAL \'5\'"] + | | | | +- DateTimeLiteral[@CanonicalImage = "INTERVAL \'5\'", @Image = "INTERVAL \'5\'"] + | | | +- Condition[@CanonicalImage = null] + | | | +- CompoundCondition[@CanonicalImage = null, @Type = null] + | | | +- ComparisonCondition[@CanonicalImage = null, @Operator = "<"] + | | | +- SqlExpression[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | +- PrimaryPrefix[@CanonicalImage = "HIRE_DATE", @Image = "hire_date", @SelfModifier = false] + | | | | +- SimpleExpression[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | +- Column[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | | +- ID[@CanonicalImage = "HIRE_DATE", @Image = "hire_date"] + | | | +- SqlExpression[@CanonicalImage = "SYSDATE - INTERVAL \'3\'", @Image = "sysdate - INTERVAL \'3\'"] + | | | +- AdditiveExpression[@CanonicalImage = "SYSDATE - INTERVAL \'3\'", @Image = "sysdate - INTERVAL \'3\'"] + | | | +- PrimaryPrefix[@CanonicalImage = "SYSDATE", @Image = "sysdate", @SelfModifier = false] + | | | | +- SimpleExpression[@CanonicalImage = "SYSDATE", @Image = "sysdate"] + | | | | +- Column[@CanonicalImage = "SYSDATE", @Image = "sysdate"] + | | | | +- ID[@CanonicalImage = "SYSDATE", @Image = "sysdate"] + | | | +- PrimaryPrefix[@CanonicalImage = "INTERVAL \'3\'", @Image = "INTERVAL \'3\'", @SelfModifier = false] + | | | +- Literal[@CanonicalImage = "INTERVAL \'3\'", @Image = "INTERVAL \'3\'"] + | | | +- DateTimeLiteral[@CanonicalImage = "INTERVAL \'3\'", @Image = "INTERVAL \'3\'"] + | | +- OrderByClause[@CanonicalImage = null] + | | +- SqlExpression[@CanonicalImage = "\"Dept\"", @Image = "\"Dept\""] + | | | +- PrimaryPrefix[@CanonicalImage = "\"Dept\"", @Image = "\"Dept\"", @SelfModifier = false] + | | | +- SimpleExpression[@CanonicalImage = "\"Dept\"", @Image = "\"Dept\""] + | | | +- Column[@CanonicalImage = "\"Dept\"", @Image = "\"Dept\""] + | | | +- ID[@CanonicalImage = "\"Dept\"", @Image = "\"Dept\""] + | | +- SqlExpression[@CanonicalImage = "\"Date\"", @Image = "\"Date\""] + | | | +- PrimaryPrefix[@CanonicalImage = "\"Date\"", @Image = "\"Date\"", @SelfModifier = false] + | | | +- SimpleExpression[@CanonicalImage = "\"Date\"", @Image = "\"Date\""] + | | | +- Column[@CanonicalImage = "\"Date\"", @Image = "\"Date\""] + | | | +- ID[@CanonicalImage = "\"Date\"", @Image = "\"Date\""] + | | +- SqlExpression[@CanonicalImage = "\"Name\"", @Image = "\"Name\""] + | | +- PrimaryPrefix[@CanonicalImage = "\"Name\"", @Image = "\"Name\"", @SelfModifier = false] + | | +- SimpleExpression[@CanonicalImage = "\"Name\"", @Image = "\"Name\""] + | | +- Column[@CanonicalImage = "\"Name\"", @Image = "\"Name\""] + | | +- ID[@CanonicalImage = "\"Name\"", @Image = "\"Name\""] + | +- Statement[@CanonicalImage = null] + | | +- UnlabelledStatement[@CanonicalImage = null] + | | +- SelectIntoStatement[@All = false, @CanonicalImage = null, @Distinct = false, @Unique = false] + | | +- SelectList[@CanonicalImage = null] + | | | +- SqlExpression[@CanonicalImage = "LISTAGG", @Image = "listagg"] + | | | +- PrimaryPrefix[@CanonicalImage = "LISTAGG", @Image = "listagg", @SelfModifier = false] + | | | +- FunctionCall[@CanonicalImage = "LISTAGG", @Image = "listagg"] + | | | | +- FunctionName[@CanonicalImage = "LISTAGG", @Image = "listagg"] + | | | | | +- ID[@CanonicalImage = "LISTAGG", @Image = "listagg"] + | | | | +- Arguments[@ArgumentCount = 2, @CanonicalImage = null] + | | | | +- ArgumentList[@CanonicalImage = null] + | | | | +- Argument[@CanonicalImage = null] + | | | | | +- Expression[@CanonicalImage = "E.EMAIL", @Image = "e.email"] + | | | | | +- PrimaryPrefix[@CanonicalImage = "E.EMAIL", @Image = "e.email", @SelfModifier = false] + | | | | | +- SimpleExpression[@CanonicalImage = "E.EMAIL", @Image = "e.email"] + | | | | | +- TableName[@CanonicalImage = "E", @Image = "e"] + | | | | | | +- ID[@CanonicalImage = "E", @Image = "e"] + | | | | | +- Column[@CanonicalImage = "EMAIL", @Image = "email"] + | | | | | +- ID[@CanonicalImage = "EMAIL", @Image = "email"] + | | | | +- Argument[@CanonicalImage = null] + | | | | +- Expression[@CanonicalImage = "\',\'", @Image = "\',\'"] + | | | | +- PrimaryPrefix[@CanonicalImage = "\',\'", @Image = "\',\'", @SelfModifier = false] + | | | | +- Literal[@CanonicalImage = "\',\'", @Image = "\',\'"] + | | | +- WithinClause[@CanonicalImage = null] + | | | +- OrderByClause[@CanonicalImage = null] + | | | +- SqlExpression[@CanonicalImage = "E.EMAIL", @Image = "e.email"] + | | | +- PrimaryPrefix[@CanonicalImage = "E.EMAIL", @Image = "e.email", @SelfModifier = false] + | | | +- SimpleExpression[@CanonicalImage = "E.EMAIL", @Image = "e.email"] + | | | +- TableName[@CanonicalImage = "E", @Image = "e"] + | | | | +- ID[@CanonicalImage = "E", @Image = "e"] + | | | +- Column[@CanonicalImage = "EMAIL", @Image = "email"] + | | | +- ID[@CanonicalImage = "EMAIL", @Image = "email"] + | | +- IntoClause[@CanonicalImage = null] + | | | +- VariableName[@CanonicalImage = "V_TASK_RESP", @Image = "v_task_resp"] + | | | +- ID[@CanonicalImage = "V_TASK_RESP", @Image = "v_task_resp"] + | | +- FromClause[@CanonicalImage = null] + | | +- TableReference[@CanonicalImage = null] + | | +- TableName[@CanonicalImage = "SSO_AUTH_EMPLOYEES", @Image = "sso_auth_employees"] + | | | +- ID[@CanonicalImage = "SSO_AUTH_EMPLOYEES", @Image = "sso_auth_employees"] + | | +- TableAlias[@CanonicalImage = "E", @Image = "e"] + | | +- ID[@CanonicalImage = "E", @Image = "e"] + | +- Statement[@CanonicalImage = null] + | | +- UnlabelledStatement[@CanonicalImage = null] + | | +- SelectIntoStatement[@All = false, @CanonicalImage = null, @Distinct = false, @Unique = false] + | | +- SelectList[@CanonicalImage = null] + | | | +- SqlExpression[@CanonicalImage = "LISTAGG", @Image = "listagg"] + | | | +- PrimaryPrefix[@CanonicalImage = "LISTAGG", @Image = "listagg", @SelfModifier = false] + | | | +- FunctionCall[@CanonicalImage = "LISTAGG", @Image = "listagg"] + | | | | +- FunctionName[@CanonicalImage = "LISTAGG", @Image = "listagg"] + | | | | | +- ID[@CanonicalImage = "LISTAGG", @Image = "listagg"] + | | | | +- Arguments[@ArgumentCount = 2, @CanonicalImage = null] + | | | | +- ArgumentList[@CanonicalImage = null] + | | | | +- Argument[@CanonicalImage = null] + | | | | | +- Expression[@CanonicalImage = "ASAP_FUNC_LOC_NUMBER", @Image = "asap_func_loc_number"] + | | | | | +- PrimaryPrefix[@CanonicalImage = "ASAP_FUNC_LOC_NUMBER", @Image = "asap_func_loc_number", @SelfModifier = false] + | | | | | +- SimpleExpression[@CanonicalImage = "ASAP_FUNC_LOC_NUMBER", @Image = "asap_func_loc_number"] + | | | | | +- Column[@CanonicalImage = "ASAP_FUNC_LOC_NUMBER", @Image = "asap_func_loc_number"] + | | | | | +- ID[@CanonicalImage = "ASAP_FUNC_LOC_NUMBER", @Image = "asap_func_loc_number"] + | | | | +- Argument[@CanonicalImage = null] + | | | | +- Expression[@CanonicalImage = "\'; \'", @Image = "\'; \'"] + | | | | +- PrimaryPrefix[@CanonicalImage = "\'; \'", @Image = "\'; \'", @SelfModifier = false] + | | | | +- Literal[@CanonicalImage = "\'; \'", @Image = "\'; \'"] + | | | | +- StringLiteral[@CanonicalImage = "\'; \'", @Image = "\'; \'", @String = "; "] + | | | +- WithinClause[@CanonicalImage = null] + | | | +- OrderByClause[@CanonicalImage = null] + | | | +- SqlExpression[@CanonicalImage = "1", @Image = "1"] + | | | +- PrimaryPrefix[@CanonicalImage = "1", @Image = "1", @SelfModifier = false] + | | | +- Literal[@CanonicalImage = "1", @Image = "1"] + | | | +- NumericLiteral[@CanonicalImage = "1", @Image = "1"] + | | +- IntoClause[@CanonicalImage = null] + | | | +- VariableName[@CanonicalImage = "MY_RECORD", @Image = "my_record"] + | | | +- ID[@CanonicalImage = "MY_RECORD", @Image = "my_record"] + | | +- FromClause[@CanonicalImage = null] + | | | +- TableReference[@CanonicalImage = null] + | | | +- TableName[@CanonicalImage = "COMPANY_ASAP_FUNC_LOCS", @Image = "company_asap_func_locs"] + | | | +- ID[@CanonicalImage = "COMPANY_ASAP_FUNC_LOCS", @Image = "company_asap_func_locs"] + | | +- WhereClause[@CanonicalImage = null] + | | +- Condition[@CanonicalImage = null] + | | +- CompoundCondition[@CanonicalImage = null, @Type = null] + | | +- ComparisonCondition[@CanonicalImage = null, @Operator = "="] + | | +- SqlExpression[@CanonicalImage = "CMP_ID", @Image = "cmp_id"] + | | | +- PrimaryPrefix[@CanonicalImage = "CMP_ID", @Image = "cmp_id", @SelfModifier = false] + | | | +- SimpleExpression[@CanonicalImage = "CMP_ID", @Image = "cmp_id"] + | | | +- Column[@CanonicalImage = "CMP_ID", @Image = "cmp_id"] + | | | +- ID[@CanonicalImage = "CMP_ID", @Image = "cmp_id"] + | | +- SqlExpression[@CanonicalImage = "CMP_ID_IN", @Image = "cmp_id_in"] + | | +- PrimaryPrefix[@CanonicalImage = "CMP_ID_IN", @Image = "cmp_id_in", @SelfModifier = false] + | | +- SimpleExpression[@CanonicalImage = "CMP_ID_IN", @Image = "cmp_id_in"] + | | +- Column[@CanonicalImage = "CMP_ID_IN", @Image = "cmp_id_in"] + | | +- ID[@CanonicalImage = "CMP_ID_IN", @Image = "cmp_id_in"] + | +- Statement[@CanonicalImage = null] + | | +- UnlabelledStatement[@CanonicalImage = null] + | | +- SelectIntoStatement[@All = false, @CanonicalImage = null, @Distinct = false, @Unique = false] + | | +- SelectList[@CanonicalImage = null] + | | | +- SqlExpression[@CanonicalImage = "LISTAGG", @Image = "listagg"] + | | | +- PrimaryPrefix[@CanonicalImage = "LISTAGG", @Image = "listagg", @SelfModifier = false] + | | | +- FunctionCall[@CanonicalImage = "LISTAGG", @Image = "listagg"] + | | | | +- FunctionName[@CanonicalImage = "LISTAGG", @Image = "listagg"] + | | | | | +- ID[@CanonicalImage = "LISTAGG", @Image = "listagg"] + | | | | +- Arguments[@ArgumentCount = 2, @CanonicalImage = null] + | | | | +- ArgumentList[@CanonicalImage = null] + | | | | +- Argument[@CanonicalImage = null] + | | | | | +- Expression[@CanonicalImage = "ASAP_FUNC_LOC_NUMBER", @Image = "asap_func_loc_number"] + | | | | | +- PrimaryPrefix[@CanonicalImage = "ASAP_FUNC_LOC_NUMBER", @Image = "asap_func_loc_number", @SelfModifier = false] + | | | | | +- SimpleExpression[@CanonicalImage = "ASAP_FUNC_LOC_NUMBER", @Image = "asap_func_loc_number"] + | | | | | +- Column[@CanonicalImage = "ASAP_FUNC_LOC_NUMBER", @Image = "asap_func_loc_number"] + | | | | | +- ID[@CanonicalImage = "ASAP_FUNC_LOC_NUMBER", @Image = "asap_func_loc_number"] + | | | | +- Argument[@CanonicalImage = null] + | | | | +- Expression[@CanonicalImage = "\'; \'", @Image = "\'; \'"] + | | | | +- PrimaryPrefix[@CanonicalImage = "\'; \'", @Image = "\'; \'", @SelfModifier = false] + | | | | +- Literal[@CanonicalImage = "\'; \'", @Image = "\'; \'"] + | | | | +- StringLiteral[@CanonicalImage = "\'; \'", @Image = "\'; \'", @String = "; "] + | | | +- WithinClause[@CanonicalImage = null] + | | | +- OrderByClause[@CanonicalImage = null] + | | | +- SqlExpression[@CanonicalImage = "1", @Image = "1"] + | | | +- PrimaryPrefix[@CanonicalImage = "1", @Image = "1", @SelfModifier = false] + | | | +- Literal[@CanonicalImage = "1", @Image = "1"] + | | | +- NumericLiteral[@CanonicalImage = "1", @Image = "1"] + | | +- IntoClause[@CanonicalImage = null] + | | | +- VariableName[@CanonicalImage = "MY_RECORD", @Image = "my_record"] + | | | +- ID[@CanonicalImage = "MY_RECORD", @Image = "my_record"] + | | +- FromClause[@CanonicalImage = null] + | | | +- TableReference[@CanonicalImage = null] + | | | +- TableName[@CanonicalImage = "COMPANY_ASAP_FUNC_LOCS", @Image = "company_asap_func_locs"] + | | | +- ID[@CanonicalImage = "COMPANY_ASAP_FUNC_LOCS", @Image = "company_asap_func_locs"] + | | +- WhereClause[@CanonicalImage = null] + | | +- Condition[@CanonicalImage = null] + | | +- CompoundCondition[@CanonicalImage = null, @Type = "AND"] + | | +- ComparisonCondition[@CanonicalImage = null, @Operator = "="] + | | | +- SqlExpression[@CanonicalImage = "CMP_ID", @Image = "cmp_id"] + | | | | +- PrimaryPrefix[@CanonicalImage = "CMP_ID", @Image = "cmp_id", @SelfModifier = false] + | | | | +- SimpleExpression[@CanonicalImage = "CMP_ID", @Image = "cmp_id"] + | | | | +- Column[@CanonicalImage = "CMP_ID", @Image = "cmp_id"] + | | | | +- ID[@CanonicalImage = "CMP_ID", @Image = "cmp_id"] + | | | +- SqlExpression[@CanonicalImage = "CMP_ID_IN", @Image = "cmp_id_in"] + | | | +- PrimaryPrefix[@CanonicalImage = "CMP_ID_IN", @Image = "cmp_id_in", @SelfModifier = false] + | | | +- SimpleExpression[@CanonicalImage = "CMP_ID_IN", @Image = "cmp_id_in"] + | | | +- Column[@CanonicalImage = "CMP_ID_IN", @Image = "cmp_id_in"] + | | | +- ID[@CanonicalImage = "CMP_ID_IN", @Image = "cmp_id_in"] + | | +- Condition[@CanonicalImage = null] + | | +- CompoundCondition[@CanonicalImage = null, @Type = null] + | | +- Name[@CanonicalImage = null] + | | +- PrimaryPrefix[@CanonicalImage = "FUNCTION_CALL", @Image = "function_call", @SelfModifier = false] + | | +- FunctionCall[@CanonicalImage = "FUNCTION_CALL", @Image = "function_call"] + | | +- FunctionName[@CanonicalImage = "FUNCTION_CALL", @Image = "function_call"] + | | | +- ID[@CanonicalImage = "FUNCTION_CALL", @Image = "function_call"] + | | +- Arguments[@ArgumentCount = 0, @CanonicalImage = null] + | +- Statement[@CanonicalImage = null] + | | +- UnlabelledStatement[@CanonicalImage = null] + | | +- SelectStatement[@All = false, @CanonicalImage = null, @Distinct = false, @Unique = false] + | | +- SelectList[@CanonicalImage = null] + | | | +- SqlExpression[@CanonicalImage = "NULL", @Image = "null"] + | | | +- PrimaryPrefix[@CanonicalImage = "NULL", @Image = "null", @SelfModifier = false] + | | | +- CaseExpression[@CanonicalImage = null] + | | | +- Condition[@CanonicalImage = null] + | | | | +- CompoundCondition[@CanonicalImage = null, @Type = "AND"] + | | | | +- ComparisonCondition[@CanonicalImage = null, @Operator = "!="] + | | | | | +- SqlExpression[@CanonicalImage = "PRIV", @Image = "priv"] + | | | | | | +- PrimaryPrefix[@CanonicalImage = "PRIV", @Image = "priv", @SelfModifier = false] + | | | | | | +- SimpleExpression[@CanonicalImage = "PRIV", @Image = "priv"] + | | | | | | +- Column[@CanonicalImage = "PRIV", @Image = "priv"] + | | | | | | +- ID[@CanonicalImage = "PRIV", @Image = "priv"] + | | | | | +- SqlExpression[@CanonicalImage = "\'Y\'", @Image = "\'Y\'"] + | | | | | +- PrimaryPrefix[@CanonicalImage = "\'Y\'", @Image = "\'Y\'", @SelfModifier = false] + | | | | | +- Literal[@CanonicalImage = "\'Y\'", @Image = "\'Y\'"] + | | | | +- Condition[@CanonicalImage = null] + | | | | +- CompoundCondition[@CanonicalImage = null, @Type = null] + | | | | +- ComparisonCondition[@CanonicalImage = null, @Operator = ">="] + | | | | +- SqlExpression[@CanonicalImage = "MY_PACKAGE.MY_FUNCTION", @Image = "my_package.my_function"] + | | | | | +- PrimaryPrefix[@CanonicalImage = "MY_PACKAGE.MY_FUNCTION", @Image = "my_package.my_function", @SelfModifier = false] + | | | | | +- FunctionCall[@CanonicalImage = "MY_PACKAGE.MY_FUNCTION", @Image = "my_package.my_function"] + | | | | | +- FunctionName[@CanonicalImage = "MY_PACKAGE.MY_FUNCTION", @Image = "my_package.my_function"] + | | | | | | +- ID[@CanonicalImage = "MY_PACKAGE", @Image = "my_package"] + | | | | | | +- ID[@CanonicalImage = "MY_FUNCTION", @Image = "my_function"] + | | | | | +- Arguments[@ArgumentCount = 2, @CanonicalImage = null] + | | | | | +- ArgumentList[@CanonicalImage = null] + | | | | | +- Argument[@CanonicalImage = null] + | | | | | | +- Expression[@CanonicalImage = "PARAM1", @Image = "param1"] + | | | | | | +- PrimaryPrefix[@CanonicalImage = "PARAM1", @Image = "param1", @SelfModifier = false] + | | | | | | +- SimpleExpression[@CanonicalImage = "PARAM1", @Image = "param1"] + | | | | | | +- Column[@CanonicalImage = "PARAM1", @Image = "param1"] + | | | | | | +- ID[@CanonicalImage = "PARAM1", @Image = "param1"] + | | | | | +- Argument[@CanonicalImage = null] + | | | | | +- Expression[@CanonicalImage = "TO_NUMBER", @Image = "TO_NUMBER"] + | | | | | +- PrimaryPrefix[@CanonicalImage = "TO_NUMBER", @Image = "TO_NUMBER", @SelfModifier = false] + | | | | | +- FunctionCall[@CanonicalImage = "TO_NUMBER", @Image = "TO_NUMBER"] + | | | | | +- FunctionName[@CanonicalImage = "TO_NUMBER", @Image = "TO_NUMBER"] + | | | | | | +- ID[@CanonicalImage = "TO_NUMBER", @Image = "TO_NUMBER"] + | | | | | +- Arguments[@ArgumentCount = 1, @CanonicalImage = null] + | | | | | +- ArgumentList[@CanonicalImage = null] + | | | | | +- Argument[@CanonicalImage = null] + | | | | | +- Expression[@CanonicalImage = "TO_CHAR", @Image = "TO_CHAR"] + | | | | | +- PrimaryPrefix[@CanonicalImage = "TO_CHAR", @Image = "TO_CHAR", @SelfModifier = false] + | | | | | +- FunctionCall[@CanonicalImage = "TO_CHAR", @Image = "TO_CHAR"] + | | | | | +- FunctionName[@CanonicalImage = "TO_CHAR", @Image = "TO_CHAR"] + | | | | | | +- ID[@CanonicalImage = "TO_CHAR", @Image = "TO_CHAR"] + | | | | | +- Arguments[@ArgumentCount = 2, @CanonicalImage = null] + | | | | | +- ArgumentList[@CanonicalImage = null] + | | | | | +- Argument[@CanonicalImage = null] + | | | | | | +- Expression[@CanonicalImage = "SYSDATE", @Image = "SYSDATE"] + | | | | | | +- PrimaryPrefix[@CanonicalImage = "SYSDATE", @Image = "SYSDATE", @SelfModifier = false] + | | | | | | +- SimpleExpression[@CanonicalImage = "SYSDATE", @Image = "SYSDATE"] + | | | | | | +- Column[@CanonicalImage = "SYSDATE", @Image = "SYSDATE"] + | | | | | | +- ID[@CanonicalImage = "SYSDATE", @Image = "SYSDATE"] + | | | | | +- Argument[@CanonicalImage = null] + | | | | | +- Expression[@CanonicalImage = "\'YYYY\'", @Image = "\'yyyy\'"] + | | | | | +- PrimaryPrefix[@CanonicalImage = "\'YYYY\'", @Image = "\'yyyy\'", @SelfModifier = false] + | | | | | +- Literal[@CanonicalImage = "\'YYYY\'", @Image = "\'yyyy\'"] + | | | | | +- StringLiteral[@CanonicalImage = "\'YYYY\'", @Image = "\'yyyy\'", @String = "yyyy"] + | | | | +- SqlExpression[@CanonicalImage = "100", @Image = "100"] + | | | | +- PrimaryPrefix[@CanonicalImage = "100", @Image = "100", @SelfModifier = false] + | | | | +- Literal[@CanonicalImage = "100", @Image = "100"] + | | | | +- NumericLiteral[@CanonicalImage = "100", @Image = "100"] + | | | +- Expression[@CanonicalImage = "\'Y\'", @Image = "\'Y\'"] + | | | | +- PrimaryPrefix[@CanonicalImage = "\'Y\'", @Image = "\'Y\'", @SelfModifier = false] + | | | | +- Literal[@CanonicalImage = "\'Y\'", @Image = "\'Y\'"] + | | | +- Expression[@CanonicalImage = "\'N\'", @Image = "\'N\'"] + | | | +- PrimaryPrefix[@CanonicalImage = "\'N\'", @Image = "\'N\'", @SelfModifier = false] + | | | +- Literal[@CanonicalImage = "\'N\'", @Image = "\'N\'"] + | | +- IntoClause[@CanonicalImage = null] + | | | +- VariableName[@CanonicalImage = "MY_RESULT", @Image = "my_result"] + | | | +- ID[@CanonicalImage = "MY_RESULT", @Image = "my_result"] + | | +- FromClause[@CanonicalImage = null] + | | +- TableReference[@CanonicalImage = null] + | | +- TableName[@CanonicalImage = "DUAL", @Image = "DUAL"] + | | +- ID[@CanonicalImage = "DUAL", @Image = "DUAL"] + | +- Statement[@CanonicalImage = null] + | | +- UnlabelledStatement[@CanonicalImage = null] + | | +- SelectStatement[@All = false, @CanonicalImage = null, @Distinct = false, @Unique = false] + | | +- SelectList[@CanonicalImage = null] + | | | +- SqlExpression[@CanonicalImage = "NULL", @Image = "null"] + | | | | +- PrimaryPrefix[@CanonicalImage = "NULL", @Image = "null", @SelfModifier = false] + | | | | +- CaseExpression[@CanonicalImage = null] + | | | | +- Condition[@CanonicalImage = null] + | | | | | +- CompoundCondition[@CanonicalImage = null, @Type = null] + | | | | | +- ExistsCondition[@CanonicalImage = null] + | | | | | +- QueryBlock[@All = false, @CanonicalImage = null, @Distinct = false, @Unique = false] + | | | | | +- SelectList[@CanonicalImage = null] + | | | | | +- FromClause[@CanonicalImage = null] + | | | | | | +- TableReference[@CanonicalImage = null] + | | | | | | +- TableName[@CanonicalImage = "DUAL", @Image = "DUAL"] + | | | | | | +- ID[@CanonicalImage = "DUAL", @Image = "DUAL"] + | | | | | +- WhereClause[@CanonicalImage = null] + | | | | | +- Condition[@CanonicalImage = null] + | | | | | +- CompoundCondition[@CanonicalImage = null, @Type = null] + | | | | | +- ComparisonCondition[@CanonicalImage = null, @Operator = "="] + | | | | | +- SqlExpression[@CanonicalImage = "1", @Image = "1"] + | | | | | | +- PrimaryPrefix[@CanonicalImage = "1", @Image = "1", @SelfModifier = false] + | | | | | | +- Literal[@CanonicalImage = "1", @Image = "1"] + | | | | | | +- NumericLiteral[@CanonicalImage = "1", @Image = "1"] + | | | | | +- SqlExpression[@CanonicalImage = "1", @Image = "1"] + | | | | | +- PrimaryPrefix[@CanonicalImage = "1", @Image = "1", @SelfModifier = false] + | | | | | +- Literal[@CanonicalImage = "1", @Image = "1"] + | | | | | +- NumericLiteral[@CanonicalImage = "1", @Image = "1"] + | | | | +- Expression[@CanonicalImage = "1", @Image = "1"] + | | | | | +- PrimaryPrefix[@CanonicalImage = "1", @Image = "1", @SelfModifier = false] + | | | | | +- Literal[@CanonicalImage = "1", @Image = "1"] + | | | | | +- NumericLiteral[@CanonicalImage = "1", @Image = "1"] + | | | | +- Expression[@CanonicalImage = "0", @Image = "0"] + | | | | +- PrimaryPrefix[@CanonicalImage = "0", @Image = "0", @SelfModifier = false] + | | | | +- Literal[@CanonicalImage = "0", @Image = "0"] + | | | | +- NumericLiteral[@CanonicalImage = "0", @Image = "0"] + | | | +- ColumnAlias[@CanonicalImage = "ISEXISTS", @Image = "isExists"] + | | | +- ID[@CanonicalImage = "ISEXISTS", @Image = "isExists"] + | | +- IntoClause[@CanonicalImage = null] + | | | +- VariableName[@CanonicalImage = "VAL", @Image = "VAL"] + | | | +- ID[@CanonicalImage = "VAL", @Image = "VAL"] + | | +- FromClause[@CanonicalImage = null] + | | +- TableReference[@CanonicalImage = null] + | | +- TableName[@CanonicalImage = "DUAL", @Image = "dual"] + | | +- ID[@CanonicalImage = "DUAL", @Image = "dual"] + | +- Statement[@CanonicalImage = null] + | | +- UnlabelledStatement[@CanonicalImage = null] + | | +- SelectIntoStatement[@All = false, @CanonicalImage = null, @Distinct = false, @Unique = false] + | | +- SelectList[@CanonicalImage = null] + | | | +- SqlExpression[@CanonicalImage = "NULL", @Image = "null"] + | | | | +- PrimaryPrefix[@CanonicalImage = "NULL", @Image = "null", @SelfModifier = false] + | | | | +- CaseExpression[@CanonicalImage = null] + | | | | +- Condition[@CanonicalImage = null] + | | | | | +- CompoundCondition[@CanonicalImage = null, @Type = null] + | | | | | +- ExistsCondition[@CanonicalImage = null] + | | | | | +- QueryBlock[@All = false, @CanonicalImage = null, @Distinct = false, @Unique = false] + | | | | | +- SelectList[@CanonicalImage = null] + | | | | | +- FromClause[@CanonicalImage = null] + | | | | | +- TableReference[@CanonicalImage = null] + | | | | | +- TableName[@CanonicalImage = "DUAL", @Image = "DUAL"] + | | | | | +- ID[@CanonicalImage = "DUAL", @Image = "DUAL"] + | | | | +- Expression[@CanonicalImage = "1", @Image = "1"] + | | | | | +- PrimaryPrefix[@CanonicalImage = "1", @Image = "1", @SelfModifier = false] + | | | | | +- Literal[@CanonicalImage = "1", @Image = "1"] + | | | | | +- NumericLiteral[@CanonicalImage = "1", @Image = "1"] + | | | | +- Expression[@CanonicalImage = "0", @Image = "0"] + | | | | +- PrimaryPrefix[@CanonicalImage = "0", @Image = "0", @SelfModifier = false] + | | | | +- Literal[@CanonicalImage = "0", @Image = "0"] + | | | | +- NumericLiteral[@CanonicalImage = "0", @Image = "0"] + | | | +- ColumnAlias[@CanonicalImage = "ISEXISTS", @Image = "isExists"] + | | | +- ID[@CanonicalImage = "ISEXISTS", @Image = "isExists"] + | | +- IntoClause[@CanonicalImage = null] + | | | +- VariableName[@CanonicalImage = "VAL", @Image = "VAL"] + | | | +- ID[@CanonicalImage = "VAL", @Image = "VAL"] + | | +- FromClause[@CanonicalImage = null] + | | +- TableReference[@CanonicalImage = null] + | | +- TableName[@CanonicalImage = "DUAL", @Image = "dual"] + | | +- ID[@CanonicalImage = "DUAL", @Image = "dual"] + | +- Statement[@CanonicalImage = null] + | +- UnlabelledStatement[@CanonicalImage = null] + | +- SelectIntoStatement[@All = false, @CanonicalImage = null, @Distinct = false, @Unique = false] + | +- SelectList[@CanonicalImage = null] + | | +- SqlExpression[@CanonicalImage = "NULL", @Image = "null"] + | | | +- PrimaryPrefix[@CanonicalImage = "NULL", @Image = "null", @SelfModifier = false] + | | | +- CaseExpression[@CanonicalImage = null] + | | | +- Condition[@CanonicalImage = null] + | | | | +- CompoundCondition[@CanonicalImage = null, @Type = null] + | | | | +- Name[@CanonicalImage = null] + | | | | +- PrimaryPrefix[@CanonicalImage = "F1", @Image = "f1", @SelfModifier = false] + | | | | +- FunctionCall[@CanonicalImage = "F1", @Image = "f1"] + | | | | +- FunctionName[@CanonicalImage = "F1", @Image = "f1"] + | | | | | +- ID[@CanonicalImage = "F1", @Image = "f1"] + | | | | +- Arguments[@ArgumentCount = 1, @CanonicalImage = null] + | | | | +- ArgumentList[@CanonicalImage = null] + | | | | +- Argument[@CanonicalImage = null] + | | | | +- Expression[@CanonicalImage = "X", @Image = "x"] + | | | | +- PrimaryPrefix[@CanonicalImage = "X", @Image = "x", @SelfModifier = false] + | | | | +- SimpleExpression[@CanonicalImage = "X", @Image = "x"] + | | | | +- Column[@CanonicalImage = "X", @Image = "x"] + | | | | +- ID[@CanonicalImage = "X", @Image = "x"] + | | | +- Expression[@CanonicalImage = "1", @Image = "1"] + | | | | +- PrimaryPrefix[@CanonicalImage = "1", @Image = "1", @SelfModifier = false] + | | | | +- Literal[@CanonicalImage = "1", @Image = "1"] + | | | | +- NumericLiteral[@CanonicalImage = "1", @Image = "1"] + | | | +- Expression[@CanonicalImage = "0", @Image = "0"] + | | | +- PrimaryPrefix[@CanonicalImage = "0", @Image = "0", @SelfModifier = false] + | | | +- Literal[@CanonicalImage = "0", @Image = "0"] + | | | +- NumericLiteral[@CanonicalImage = "0", @Image = "0"] + | | +- ColumnAlias[@CanonicalImage = "ISEXISTS", @Image = "isExists"] + | | +- ID[@CanonicalImage = "ISEXISTS", @Image = "isExists"] + | +- IntoClause[@CanonicalImage = null] + | | +- VariableName[@CanonicalImage = "VAL", @Image = "VAL"] + | | +- ID[@CanonicalImage = "VAL", @Image = "VAL"] + | +- FromClause[@CanonicalImage = null] + | +- TableReference[@CanonicalImage = null] + | +- TableName[@CanonicalImage = "DUAL", @Image = "dual"] + | +- ID[@CanonicalImage = "DUAL", @Image = "dual"] + +- SelectStatement[@All = false, @CanonicalImage = null, @Distinct = false, @Unique = false] + +- SelectList[@CanonicalImage = null] + | +- SqlExpression[@CanonicalImage = "TO_NUMBER$", @Image = "TO_NUMBER$"] + | | +- PrimaryPrefix[@CanonicalImage = "TO_NUMBER$", @Image = "TO_NUMBER$", @SelfModifier = false] + | | +- FunctionCall[@CanonicalImage = "TO_NUMBER$", @Image = "TO_NUMBER$"] + | | +- FunctionName[@CanonicalImage = "TO_NUMBER$", @Image = "TO_NUMBER$"] + | | | +- ID[@CanonicalImage = "TO_NUMBER$", @Image = "TO_NUMBER$"] + | | +- Arguments[@ArgumentCount = 1, @CanonicalImage = null] + | | +- ArgumentList[@CanonicalImage = null] + | | +- Argument[@CanonicalImage = null] + | | +- Expression[@CanonicalImage = "\'XYZ\'", @Image = "\'xyz\'"] + | | | +- PrimaryPrefix[@CanonicalImage = "\'XYZ\'", @Image = "\'xyz\'", @SelfModifier = false] + | | | +- Literal[@CanonicalImage = "\'XYZ\'", @Image = "\'xyz\'"] + | | | +- StringLiteral[@CanonicalImage = "\'XYZ\'", @Image = "\'xyz\'", @String = "xyz"] + | | +- Expression[@CanonicalImage = "0", @Image = "0"] + | | +- PrimaryPrefix[@CanonicalImage = "0", @Image = "0", @SelfModifier = false] + | | +- Literal[@CanonicalImage = "0", @Image = "0"] + | | +- NumericLiteral[@CanonicalImage = "0", @Image = "0"] + | +- ColumnAlias[@CanonicalImage = "BOGUS", @Image = "BOGUS"] + | +- ID[@CanonicalImage = "BOGUS", @Image = "BOGUS"] + +- IntoClause[@CanonicalImage = null] + | +- VariableName[@CanonicalImage = "SOME_RECORD", @Image = "some_record"] + | +- ID[@CanonicalImage = "SOME_RECORD", @Image = "some_record"] + +- FromClause[@CanonicalImage = null] + +- TableReference[@CanonicalImage = null] + +- TableName[@CanonicalImage = "SOME_TABLE", @Image = "some_table"] + +- ID[@CanonicalImage = "SOME_TABLE", @Image = "some_table"]