-
Notifications
You must be signed in to change notification settings - Fork 77
Expand file tree
/
Copy pathtestCreateFunction.java
More file actions
34 lines (27 loc) · 1.5 KB
/
Copy pathtestCreateFunction.java
File metadata and controls
34 lines (27 loc) · 1.5 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
package bigquery;
import gudusoft.gsqlparser.EDataType;
import gudusoft.gsqlparser.EDbVendor;
import gudusoft.gsqlparser.ESqlStatementType;
import gudusoft.gsqlparser.TGSqlParser;
import gudusoft.gsqlparser.stmt.TCreateFunctionStmt;
import junit.framework.TestCase;
public class testCreateFunction extends TestCase {
public void test1(){
TGSqlParser sqlparser = new TGSqlParser(EDbVendor.dbvbigquery);
sqlparser.sqltext = "CREATE TEMP FUNCTION mydataset.multiplyInputs(x FLOAT64, y FLOAT64)\n" +
"RETURNS FLOAT64\n" +
"LANGUAGE js\n" +
"AS \"\"\"\n" +
" return x*y;\n" +
"\"\"\";";
assertTrue(sqlparser.parse() == 0);
assertTrue(sqlparser.sqlstatements.get(0).sqlstatementtype == ESqlStatementType.sstcreatefunction);
TCreateFunctionStmt functionStmt = (TCreateFunctionStmt)sqlparser.sqlstatements.get(0);
assertTrue(functionStmt.getFunctionDefinition().toString().equalsIgnoreCase("\"\"\"\n" +
" return x*y;\n" +
"\"\"\""));
assertTrue(functionStmt.getFunctionName().toString().equalsIgnoreCase("mydataset.multiplyInputs"));
assertTrue(functionStmt.getParameterDeclarations().getParameterDeclarationItem(0).getParameterName().toString().equalsIgnoreCase("x"));
assertTrue(functionStmt.getParameterDeclarations().getParameterDeclarationItem(0).getDataType().getDataType() == EDataType.float64_t);
}
}