66import gudusoft .gsqlparser .EDbVendor ;
77import gudusoft .gsqlparser .ESqlStatementType ;
88import gudusoft .gsqlparser .TGSqlParser ;
9+ import gudusoft .gsqlparser .nodes .teradata .TTeradataLockClause ;
910import gudusoft .gsqlparser .stmt .TSelectSqlStatement ;
1011import gudusoft .gsqlparser .stmt .teradata .TTeradataLock ;
1112import junit .framework .TestCase ;
@@ -25,9 +26,10 @@ public void test1(){
2526 assertTrue (sqlparser .parse () == 0 );
2627 assertTrue (sqlparser .sqlstatements .get (0 ).sqlstatementtype == ESqlStatementType .sstteradatalock );
2728 TTeradataLock lock = (TTeradataLock )sqlparser .sqlstatements .get (0 );
28- assertTrue (lock .getDatabase_table_view ().toString ().equalsIgnoreCase ("TABLE" ));
29- assertTrue (lock .getObjectName ().toString ().equalsIgnoreCase ("dbc.TDWMExceptionLog" ));
30- assertTrue (lock .getLockMode ().toString ().equalsIgnoreCase ("ACCESS" ));
29+ TTeradataLockClause lockClause = lock .getLockClauses ().get (0 );
30+ assertTrue (lockClause .getDatabase_table_view ().toString ().equalsIgnoreCase ("TABLE" ));
31+ assertTrue (lockClause .getObjectName ().toString ().equalsIgnoreCase ("dbc.TDWMExceptionLog" ));
32+ assertTrue (lockClause .getLockMode ().toString ().equalsIgnoreCase ("ACCESS" ));
3133 assertTrue (lock .getSqlRequest ().sqlstatementtype == ESqlStatementType .sstselect );
3234 TSelectSqlStatement select = (TSelectSqlStatement )lock .getSqlRequest ();
3335 assertTrue (select .getResultColumnList ().size () == 24 );
@@ -42,14 +44,37 @@ public void test2(){
4244 assertTrue (sqlparser .parse () == 0 );
4345 assertTrue (sqlparser .sqlstatements .get (0 ).sqlstatementtype == ESqlStatementType .sstteradatalock );
4446 TTeradataLock lock = (TTeradataLock )sqlparser .sqlstatements .get (0 );
45- assertTrue (lock .getDatabase_table_view ().toString ().equalsIgnoreCase ("TABLE" ));
46- assertTrue (lock .getObjectName ().toString ().equalsIgnoreCase ("t1" ));
47- assertTrue (lock .getLockMode ().toString ().equalsIgnoreCase ("ACCESS" ));
47+ TTeradataLockClause lockClause = lock .getLockClauses ().get (0 );
48+ assertTrue (lockClause .getDatabase_table_view ().toString ().equalsIgnoreCase ("TABLE" ));
49+ assertTrue (lockClause .getObjectName ().toString ().equalsIgnoreCase ("t1" ));
50+ assertTrue (lockClause .getLockMode ().toString ().equalsIgnoreCase ("ACCESS" ));
4851 assertTrue (lock .getSqlRequest ().sqlstatementtype == ESqlStatementType .sstselect );
4952 TSelectSqlStatement select = (TSelectSqlStatement )lock .getSqlRequest ();
5053 assertTrue (select .getResultColumnList ().size () == 1 );
5154 assertTrue (select .tables .getTable (0 ).toString ().equalsIgnoreCase ("t1" ));
5255
5356 }
5457
58+ public void test3 (){
59+
60+ TGSqlParser sqlparser = new TGSqlParser (EDbVendor .dbvteradata );
61+ sqlparser .sqltext = " LOCKING TABLE schema1.table1 FOR READ\n " +
62+ "LOCKING TABLE schema1.table1 FOR READ\n " +
63+ "LOCKING TABLE schema1.table2 FOR READ\n " +
64+ "LOCKING TABLE schema1.table3 FOR READ\n " +
65+ "Select * from schema1.table1, schema1.table2;" ;
66+ assertTrue (sqlparser .parse () == 0 );
67+ assertTrue (sqlparser .sqlstatements .get (0 ).sqlstatementtype == ESqlStatementType .sstteradatalock );
68+ TTeradataLock lock = (TTeradataLock )sqlparser .sqlstatements .get (0 );
69+ TTeradataLockClause lockClause = lock .getLockClauses ().get (0 );
70+ assertTrue (lockClause .getDatabase_table_view ().toString ().equalsIgnoreCase ("TABLE" ));
71+ assertTrue (lockClause .getObjectName ().toString ().equalsIgnoreCase ("schema1.table1" ));
72+ assertTrue (lockClause .getLockMode ().toString ().equalsIgnoreCase ("READ" ));
73+ assertTrue (lock .getSqlRequest ().sqlstatementtype == ESqlStatementType .sstselect );
74+ TSelectSqlStatement select = (TSelectSqlStatement )lock .getSqlRequest ();
75+ assertTrue (select .getResultColumnList ().size () == 1 );
76+ assertTrue (select .tables .getTable (0 ).toString ().equalsIgnoreCase ("schema1.table1" ));
77+
78+ }
79+
5580}
0 commit comments