Skip to content

Commit 7dbb257

Browse files
committed
2.5.8.0
1 parent 0697493 commit 7dbb257

File tree

1 file changed

+178
-0
lines changed

1 file changed

+178
-0
lines changed
Lines changed: 178 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,178 @@
1+
package common;
2+
3+
import gudusoft.gsqlparser.EDbVendor;
4+
import gudusoft.gsqlparser.TGSqlParser;
5+
import junit.framework.TestCase;
6+
7+
public class testStmtDelimiter extends TestCase {
8+
9+
public void test3() {
10+
TGSqlParser sqlparser = new TGSqlParser(EDbVendor.dbvmysql);
11+
sqlparser.sqltext = "CREATE FUNCTION PAC4_USER.\"PS_FIRST_ERROR_BEGIN\"(\n" +
12+
"\n" +
13+
" PI_KAISHA_CD VARCHAR(16383),\n" +
14+
"\n" +
15+
" PI_SESSION_ID VARCHAR(16383),\n" +
16+
"\n" +
17+
" PO_REPLACE_STRING VARCHAR(16383)\n" +
18+
"\n" +
19+
")\n" +
20+
"\n" +
21+
"RETURNS VARCHAR(16383)\n" +
22+
"\n" +
23+
"BEGIN\n" +
24+
"\n" +
25+
" DECLARE W_LOOP_COUNT DECIMAL(4,0) DEFAULT 1;\n" +
26+
"\n" +
27+
" DECLARE PO_DEN_NO VARCHAR(30) DEFAULT NULL;\n" +
28+
"\n" +
29+
" DECLARE EXIT HANDLER FOR NOT FOUND,SQLEXCEPTION\n" +
30+
"\n" +
31+
" BEGIN\n" +
32+
"\n" +
33+
" SET PO_DEN_NO = PI_KAISHA_CD;\n" +
34+
"\n" +
35+
" RETURN PO_DEN_NO;\n" +
36+
"\n" +
37+
" END;\n" +
38+
"\n" +
39+
" SET W_LOOP_COUNT = W_LOOP_COUNT + 1;\n" +
40+
"\n" +
41+
" RETURN PO_DEN_NO;\n" +
42+
"\n" +
43+
"END;\n" +
44+
"\n" +
45+
"-- sqlflow-delimiter\n" +
46+
"\n" +
47+
"create function func_26093_b(x int, y int) returns int\n" +
48+
"begin\n" +
49+
"set @invoked := @invoked + 1;\n" +
50+
"return x;\n" +
51+
"end\n" +
52+
"\n" +
53+
"\n" +
54+
"-- sqlflow-delimiter\n" +
55+
"\n" +
56+
"create aggregate function encsum returns string soname 'udf_example.so';\n" +
57+
"\n" +
58+
"-- sqlflow-delimiter\n" +
59+
"\n" +
60+
"\n" +
61+
"create function encmul returns string soname 'udf_example.so'";
62+
63+
assertTrue(sqlparser.parse() == 0);
64+
assertTrue(sqlparser.sqlstatements.size() ==4);
65+
66+
}
67+
68+
public void test1() {
69+
TGSqlParser sqlparser = new TGSqlParser(EDbVendor.dbvpostgresql);
70+
sqlparser.sqltext = "CREATE FUNCTION check_password(uname TEXT, pass TEXT)\n" +
71+
"RETURNS BOOLEAN AS $$\n" +
72+
"DECLARE passed BOOLEAN;\n" +
73+
"BEGIN\n" +
74+
" SELECT (pwd = $2) INTO passed\n" +
75+
" FROM pwds\n" +
76+
" WHERE username = $1;\n" +
77+
"\n" +
78+
" RETURN passed;\n" +
79+
"END;\n" +
80+
"$$ LANGUAGE plpgsql\n" +
81+
" SECURITY DEFINER\n" +
82+
"\n" +
83+
"-- sqlflow-delimiter\n" +
84+
"\n" +
85+
"SELECT (pwd = $2) INTO passed\n" +
86+
"FROM pwds\n" +
87+
"WHERE username = $1;\n" +
88+
"\t\n" +
89+
"-- sqlflow-delimiter\n" +
90+
"\t\n" +
91+
"CREATE FUNCTION dup(int) RETURNS TABLE(f1 int, f2 text)\n" +
92+
" AS $$ SELECT $1, CAST($1 AS text) || ' is text' $$\n" +
93+
" LANGUAGE SQL;\n" +
94+
"\t\n" +
95+
"-- sqlflow_delimiter\n" +
96+
"\n" +
97+
"CREATE OR REPLACE FUNCTION test_data_it.function3(double precision, double precision)\n" +
98+
" RETURNS double precision\n" +
99+
" LANGUAGE sql\n" +
100+
" STABLE\n" +
101+
"AS $function$\n" +
102+
" select case when $1 > $2 then $1\n" +
103+
" else $2\n" +
104+
" end\n" +
105+
"$function$\t\n" +
106+
"\n" +
107+
"-- sqlflow_delimiter";
108+
109+
assertTrue(sqlparser.parse() == 0);
110+
assertTrue(sqlparser.sqlstatements.size() ==4);
111+
}
112+
public void test0(){
113+
TGSqlParser sqlparser = new TGSqlParser(EDbVendor.dbvteradata);
114+
sqlparser.sqltext = "REPLACE PROCEDURE S1.IF_CHECK(IN RUN_ID DECIMAL(12,0))\n" +
115+
" BEGIN\n" +
116+
"\t DECLARE EXIT HANDLER FOR incorrectStep,incorrectInput\n" +
117+
"\t BEGIN\n" +
118+
"\t\t INSERT INTO PROD_INT_SL_META.Error_Log(ERRORTIME,SQL_CODE,SQL_STATE) VALUES(CURRENT_TIMESTAMP(0),:SQLCODE,:SQLSTATE);\n" +
119+
"\t\t CALL PROD_INT_SL_SHARED_META.DETAIL_LOG_ENTRY_EE (CURRENT_TIMESTAMP(0));\n" +
120+
"\t\t END;\n" +
121+
"\t\t DECLARE EXIT HANDLER FOR inValidOperation\n" +
122+
"\t\t BEGIN\n" +
123+
"\t\t INSERT INTO PROD_INT_SL_META.Error_Log(ERRORTIME,SQL_CODE,SQL_STATE) VALUES(CURRENT_TIMESTAMP(0),:SQLCODE,:SQLSTATE);\n" +
124+
"\t\t CALL PROD_INT_SL_SHARED_META.DETAIL_LOG_ENTRY_EE (CURRENT_TIMESTAMP(0));\n" +
125+
"\t END;\n" +
126+
"\n" +
127+
"\t DECLARE EXIT HANDLER FOR SQLEXCEPTION\n" +
128+
"\t\tCALL PROD_INT_SL_SHARED_META.DETAIL_LOG_ENTRY_EE (CURRENT_TIMESTAMP(0));\n" +
129+
"\t \n" +
130+
"\t CALL PROD_INT_SL_SHARED_META.DETAIL_LOG_ENTRY_FF (CURRENT_TIMESTAMP(6));\n" +
131+
" END;\n" +
132+
" \n" +
133+
"-- sqlflow-delimiter\n" +
134+
"\n" +
135+
"REPLACE PROCEDURE foodmart.delStmtCur()\n" +
136+
"BEGIN\n" +
137+
"INSERT INTO foodmart.tem_dep\n" +
138+
" (\n" +
139+
" department_id, department_name\n" +
140+
")\n" +
141+
"\n" +
142+
"SELECT\n" +
143+
" CAST ( ((10 * foodmart.employee.salary)\n" +
144+
"/foodmart.employee.employee_id)\n" +
145+
"AS DECIMAL (18,2)) AS department_id\n" +
146+
",first_name AS department_name\n" +
147+
"FROM foodmart.employee where employee_id < 10;\n" +
148+
"END;\n" +
149+
"\n" +
150+
"-- sqlflow-delimiter\n" +
151+
"\n" +
152+
"\tCreate PROCEDURE S1.FOR_CURSOR()\n" +
153+
" BEGIN\n" +
154+
" DECLARE id integer;\n" +
155+
" \n" +
156+
" FOR for_loop_var AS cur CURSOR FOR\n" +
157+
" SELECT department_id000, department_description111 FROM foodmart.department\n" +
158+
" DO\n" +
159+
" SET id = for_loop_var.department_id;\n" +
160+
" if(id < 10) then\n" +
161+
" REWIND cur;\n" +
162+
" End if;\n" +
163+
" END FOR;\n" +
164+
" END;\n" +
165+
"\n" +
166+
"\n" +
167+
"-- sqlflow-delimiter\n" +
168+
"\n" +
169+
"INSERT INTO PROD_INT_SL_META.Error_Log(ERRORTIME,SQL_CODE,SQL_STATE) VALUES(CURRENT_TIMESTAMP(0),:SQLCODE,:SQLSTATE); \n" +
170+
"\n" +
171+
"\n" +
172+
"-- sqlflow-delimiter\n";
173+
assertTrue(sqlparser.parse() == 0);
174+
175+
assertTrue(sqlparser.sqlstatements.size() ==4);
176+
177+
}
178+
}

0 commit comments

Comments
 (0)