-
Notifications
You must be signed in to change notification settings - Fork 77
Expand file tree
/
Copy pathtestExprWithAlias.java
More file actions
56 lines (51 loc) · 2.87 KB
/
Copy pathtestExprWithAlias.java
File metadata and controls
56 lines (51 loc) · 2.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package teradata;
import gudusoft.gsqlparser.EDbVendor;
import gudusoft.gsqlparser.EExpressionType;
import gudusoft.gsqlparser.TGSqlParser;
import gudusoft.gsqlparser.nodes.TExpression;
import gudusoft.gsqlparser.stmt.TSelectSqlStatement;
import junit.framework.TestCase;
public class testExprWithAlias extends TestCase {
public void test1(){
TGSqlParser sqlparser = new TGSqlParser(EDbVendor.dbvteradata);
sqlparser.sqltext = " SELECT *\n" +
" FROM test\n" +
" where (\n" +
"COALESCE(SOR_SECR_POOL_ID,'UNKNOWN') AS SOR_SECR_POOL_ID ,\n" +
"COALESCE(SOR_SYS_ID,-999) AS SOR_SYS_ID ,\n" +
"COALESCE(SECR_CNDT_RCV_CO_NO,'UNKNO') AS SECR_CNDT_RCV_CO_NO ,\n" +
"COALESCE(SECR_CNDT_RCV_CC_NO,'UNKNOWN') AS SECR_CNDT_RCV_CC_NO ,\n" +
"COALESCE(SECR_CNDT_RCV_DE,'UNKNOWN') AS SECR_CNDT_RCV_DE ,\n" +
"COALESCE(SECR_PGM_ID,-999) AS SECR_PGM_ID ,\n" +
"COALESCE(SECR_POOL_SEQ_NO,-999) AS SECR_POOL_SEQ_NO\n" +
")\n" +
"NOT IN\n" +
"(\n" +
"SELECT\n" +
"COALESCE(SOR_SECR_POOL_ID,'UNKNOWN') AS SOR_SECR_POOL_ID ,\n" +
"COALESCE(SOR_SYS_ID,-999) AS SOR_SYS_ID ,\n" +
"COALESCE(SECR_CNDT_RCV_CO_NO,'UNKNO') AS SECR_CNDT_RCV_CO_NO ,\n" +
"COALESCE(SECR_CNDT_RCV_CC_NO,'UNKNOWN') AS SECR_CNDT_RCV_CC_NO ,\n" +
"COALESCE(SECR_CNDT_RCV_DE,'UNKNOWN') AS SECR_CNDT_RCV_DE ,\n" +
"COALESCE(SECR_PGM_ID,-999) AS SECR_PGM_ID ,\n" +
"COALESCE(SECR_POOL_SEQ_NO,-999) AS SECR_POOL_SEQ_NO\n" +
"FROM ENTR.SECR_PGM_POOL_CTL\n" +
"WHERE\n" +
"UPDT_LOAD_BTCH_ID IS NULL\n" +
"AND SSFA_CLTRL_AS_OF_DT IS NOT NULL\n" +
"AND (QUAL_MTG_AMT IS NULL AND UNQUAL_MTG_AMT IS NULL AND NON_MTG_AMT IS NULL)\n" +
")";
assertTrue(sqlparser.parse() == 0);
TSelectSqlStatement select = (TSelectSqlStatement)sqlparser.sqlstatements.get(0);
TExpression expr1 = select.getWhereClause().getCondition();
//System.out.print(expr1.getExpressionType());
assertTrue(expr1.getExpressionType() == EExpressionType.in_t);
TExpression leftexpr = expr1.getLeftOperand();
assertTrue(leftexpr.getExpressionType() == EExpressionType.list_t);
assertTrue(leftexpr.getExprList().size() == 7);
TExpression expr2 = leftexpr.getExprList().getExpression(0);
assertTrue(expr2.getExprAlias().toString().endsWith("SOR_SECR_POOL_ID"));
assertTrue(expr2.getExpressionType() == EExpressionType.function_t);
assertTrue(expr2.getFunctionCall().toString().endsWith("COALESCE(SOR_SECR_POOL_ID,'UNKNOWN')"));
}
}