-
Notifications
You must be signed in to change notification settings - Fork 77
Expand file tree
/
Copy pathtestCTE.java
More file actions
44 lines (38 loc) · 2.07 KB
/
Copy pathtestCTE.java
File metadata and controls
44 lines (38 loc) · 2.07 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
package formatsql;
/*
* Date: 11-3-22
*/
import gudusoft.gsqlparser.EDbVendor;
import gudusoft.gsqlparser.TGSqlParser;
import gudusoft.gsqlparser.pp.para.GFmtOpt;
import gudusoft.gsqlparser.pp.para.GFmtOptFactory;
import gudusoft.gsqlparser.pp.stmtformatter.FormatterFactory;
import junit.framework.TestCase;
public class testCTE extends TestCase {
public static void testCTE_NewlineBeforeAs(){
GFmtOpt option = GFmtOptFactory.newInstance(new Exception().getStackTrace()[0].getClassName() + "." + new Exception().getStackTrace()[0].getMethodName());
TGSqlParser sqlparser = new TGSqlParser(EDbVendor.dbvmssql);
sqlparser.sqltext = "WITH mycte(x) AS (SELECT x = Convert( VARCHAR(1000), 'hello' ) UNION ALL \n" +
" SELECT Convert( VARCHAR(1000), x + 'a' ) FROM mycte \n" +
" WHERE Len( x ) < 10 UNION ALL SELECT Convert( VARCHAR(1000), x + 'b' ) \n" +
" FROM mycte WHERE Len( x ) < 10)\n" +
"SELECT x FROM mycte ORDER BY Len( x ), x; ";
sqlparser.parse();
option.cteNewlineBeforeAs = false;
String result = FormatterFactory.pp(sqlparser, option);
assertTrue(result.trim().equalsIgnoreCase("WITH mycte(x) AS (SELECT x = Convert(VARCHAR(1000), 'hello')\n" +
" UNION ALL\n" +
" SELECT Convert(VARCHAR(1000), x + 'a')\n" +
" FROM mycte\n" +
" WHERE Len(x) < 10\n" +
" UNION ALL\n" +
" SELECT Convert(VARCHAR(1000), x + 'b')\n" +
" FROM mycte\n" +
" WHERE Len(x) < 10) \n" +
" SELECT x\n" +
" FROM mycte\n" +
" ORDER BY Len(x),\n" +
" x;"));
// System.out.println(result.trim());
}
}