-
Notifications
You must be signed in to change notification settings - Fork 77
Expand file tree
/
Copy pathtestInsert.java
More file actions
65 lines (53 loc) · 3.05 KB
/
Copy pathtestInsert.java
File metadata and controls
65 lines (53 loc) · 3.05 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
57
58
59
60
61
62
63
64
65
package test.couchbase;
import gudusoft.gsqlparser.EDbVendor;
import gudusoft.gsqlparser.EExpressionType;
import gudusoft.gsqlparser.TGSqlParser;
import gudusoft.gsqlparser.nodes.TExpression;
import gudusoft.gsqlparser.nodes.TMultiTarget;
import gudusoft.gsqlparser.nodes.TResultColumn;
import gudusoft.gsqlparser.stmt.TInsertSqlStatement;
import gudusoft.gsqlparser.stmt.TSelectSqlStatement;
import junit.framework.TestCase;
public class testInsert extends TestCase {
public void test1(){
TGSqlParser sqlparser = new TGSqlParser(EDbVendor.dbvcouchbase);
sqlparser.sqltext = "INSERT INTO `travel-sample` (KEY UUID()) \n" +
" SELECT x.name, x.city, \"landmark_hotels\" AS type \n" +
" FROM `travel-sample` x \n" +
" WHERE x.type = \"hotel\" and x.city WITHIN \n" +
" ( SELECT DISTINCT t.city \n" +
" FROM `travel-sample` t \n" +
" WHERE t.type = \"landmark\" ) \n" +
" LIMIT 4 \n" +
"RETURNING *;";
assertTrue(sqlparser.parse() == 0);
TInsertSqlStatement insertSqlStatement = (TInsertSqlStatement)sqlparser.sqlstatements.get(0);
assertTrue(insertSqlStatement.getTargetTable().toString().equalsIgnoreCase("`travel-sample`"));
TSelectSqlStatement selectSqlStatement = insertSqlStatement.getSubQuery();
//System.out.println(selectSqlStatement.tables.getTable(0).getTableName());
assertTrue(selectSqlStatement.tables.getTable(0).getTableName().toString().equalsIgnoreCase("`travel-sample`"));
}
public void test2(){
TGSqlParser sqlparser = new TGSqlParser(EDbVendor.dbvcouchbase);
sqlparser.sqltext = "INSERT INTO `travel-sample` (KEY,VALUE) \n" +
" VALUES ( \"1025\", \n" +
" { \"callsign\": \"MY-AIR\",\n" +
" \"country\": \"United States\",\n" +
" \"iata\": \"Z1\",\n" +
" \"icao\": \"AQZ\",\n" +
" \"id\": \"1011\",\n" +
" \"name\": \"80-My Air\",\n" +
" \"type\": \"airline\" \n" +
" } ) \n" +
"RETURNING *;";
assertTrue(sqlparser.parse() == 0);
TInsertSqlStatement insertSqlStatement = (TInsertSqlStatement)sqlparser.sqlstatements.get(0);
assertTrue(insertSqlStatement.getTargetTable().toString().equalsIgnoreCase("`travel-sample`"));
TMultiTarget multiTarget = insertSqlStatement.getValues().getMultiTarget(0);
TResultColumn resultColumn0 = multiTarget.getColumnList().getResultColumn(0);
TResultColumn resultColumn1 = multiTarget.getColumnList().getResultColumn(1);
assertTrue(resultColumn0.getExpr().toString().equalsIgnoreCase("\"1025\""));
TExpression expression = resultColumn1.getExpr();
assertTrue(expression.getExpressionType() == EExpressionType.objectConstruct_t);
}
}