Skip to content

Commit df3d92a

Browse files
committed
调整结构和删除非必要依赖
1 parent 2ec9ad5 commit df3d92a

File tree

15 files changed

+1660
-1440
lines changed

15 files changed

+1660
-1440
lines changed
File renamed without changes.

parser-doris/pom.xml

Lines changed: 27 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
<properties>
1515
<maven.compiler.source>8</maven.compiler.source>
1616
<maven.compiler.target>8</maven.compiler.target>
17-
<doris.home>${basedir}/../../</doris.home>
1817
</properties>
1918

2019
<dependencies>
@@ -35,24 +34,6 @@
3534
<artifactId>guava</artifactId>
3635
</dependency>
3736

38-
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api -->
39-
<dependency>
40-
<groupId>org.apache.logging.log4j</groupId>
41-
<artifactId>log4j-api</artifactId>
42-
</dependency>
43-
44-
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
45-
<dependency>
46-
<groupId>org.apache.logging.log4j</groupId>
47-
<artifactId>log4j-core</artifactId>
48-
</dependency>
49-
50-
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-slf4j-impl -->
51-
<dependency>
52-
<groupId>org.apache.logging.log4j</groupId>
53-
<artifactId>log4j-slf4j-impl</artifactId>
54-
</dependency>
55-
5637
<dependency>
5738
<groupId>com.google.code.gson</groupId>
5839
<artifactId>gson</artifactId>
@@ -66,13 +47,31 @@
6647
<dependency>
6748
<groupId>junit</groupId>
6849
<artifactId>junit</artifactId>
69-
<scope>compile</scope>
7050
</dependency>
7151
</dependencies>
7252

7353

7454
<build>
7555
<finalName>parser-dors</finalName>
56+
<resources>
57+
<resource>
58+
<directory>src/main/java</directory>
59+
<includes>
60+
<include>**/*.dat</include>
61+
<include>**/*.interp</include>
62+
<include>**/*.tokens</include>
63+
</includes>
64+
<filtering>false</filtering>
65+
</resource>
66+
<resource>
67+
<directory>src/main/resources</directory>
68+
<includes>
69+
<include>**/*.yml</include>
70+
<include>**/*.xml</include>
71+
</includes>
72+
<filtering>false</filtering>
73+
</resource>
74+
</resources>
7675
<plugins>
7776
<!--jcup-->
7877
<plugin>
@@ -93,7 +92,7 @@
9392
<className>SqlParser</className>
9493
<symbolsName>SqlParserSymbols</symbolsName>
9594
<expectedConflicts>0</expectedConflicts>
96-
<outputDirectory>${doris.home}/src/main/java</outputDirectory>
95+
<outputDirectory>${basedir}/src/main/java</outputDirectory>
9796
</configuration>
9897
</plugin>
9998

@@ -109,15 +108,15 @@
109108
<goals>
110109
<goal>generate</goal>
111110
</goals>
112-
<configuration>
113-
<!-- lexDefinitions -->
114-
<!--<lexDefinition>${doris.home}/gensrc/parser/sql_scanner.flex</lexDefinition>-->
115-
<!-- /lexDefinitions -->
116-
<outputDirectory>${doris.home}/src/main/java</outputDirectory>
117-
<backup>false</backup>
118-
</configuration>
119111
</execution>
120112
</executions>
113+
<configuration>
114+
<!-- lexDefinitions -->
115+
<!--<lexDefinition>${doris.home}/gensrc/parser/sql_scanner.flex</lexDefinition>-->
116+
<!-- /lexDefinitions -->
117+
<outputDirectory>${basedir}/src/main/java</outputDirectory>
118+
<backup>false</backup>
119+
</configuration>
121120
</plugin>
122121
</plugins>
123122
</build>

parser-doris/readme.md

Lines changed: 167 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,167 @@
1+
### 1、parser-dorse版本对照
2+
3+
| parser-dorse版本 | doris版本 | 备注 |
4+
| ---------------- | -------------- | ---- |
5+
| master | 0.14.0-release | |
6+
7+
8+
9+
### 2、单独编译
10+
11+
```shell
12+
mvn clean package -Dmvn.skip.test=true
13+
```
14+
15+
16+
17+
### 3、使用
18+
19+
编译后上传到私服就可以通过mvn来引用了
20+
21+
```xml
22+
<dependency>
23+
<groupId>com.lfsenior.sql.parser</groupId>
24+
<artifactId>parser-doris</artifactId>
25+
<version>1.0-SNAPSHOT</version>
26+
</dependency>
27+
28+
<dependency>
29+
<groupId>net.sourceforge.czt.dev</groupId>
30+
<artifactId>java-cup</artifactId>
31+
<version>0.11-a-czt02-cdh</version>
32+
</dependency>
33+
34+
<dependency>
35+
<groupId>net.sourceforge.czt.dev</groupId>
36+
<artifactId>java-cup-runtime</artifactId>
37+
<version>0.11-a-czt01-cdh</version>
38+
</dependency>
39+
40+
<dependency>
41+
<groupId>com.google.guava</groupId>
42+
<artifactId>guava</artifactId>
43+
<version>29.0-jre</version>
44+
</dependency>
45+
<dependency>
46+
<groupId>com.google.code.gson</groupId>
47+
<artifactId>gson</artifactId>
48+
<version>2.8.6</version>
49+
</dependency>
50+
51+
<dependency>
52+
<groupId>org.projectlombok</groupId>
53+
<artifactId>lombok</artifactId>
54+
<version>1.18.16</version>
55+
</dependency>
56+
```
57+
58+
demo
59+
60+
```java
61+
package com.lfsenior.parser;
62+
63+
import com.lfsenior.sql.parser.doris.analysis.SqlParser;
64+
import com.lfsenior.sql.parser.doris.analysis.SqlScanner;
65+
import com.lfsenior.sql.parser.doris.analysis.StatementBase;
66+
import com.lfsenior.sql.parser.doris.common.util.SqlParserUtils;
67+
import org.junit.Test;
68+
69+
import java.io.StringReader;
70+
import java.util.List;
71+
72+
/**
73+
* @program: Antlr4ForClickHouse
74+
* @package: com.lfsenior.parser
75+
* @description:
76+
* @author: DingLuPan
77+
* @create: 2021/11/1 16:42
78+
**/
79+
public class DorisSqlParser {
80+
@Test
81+
public void createTableTest() throws Exception {
82+
String sql = "CREATE TABLE `doris_example` ( \n" +
83+
"`project_id` bigint DEFAULT NULL COMMENT '销售项目id', \n" +
84+
"`project_code` string DEFAULT NULL COMMENT '销售项目编码', \n" +
85+
"`project_way` int DEFAULT NULL COMMENT '项目方式[crm_fresh_project_way](10按寄件公司运作,20按付款公司运作,30按寄件和付款公司运作)', \n" +
86+
"`project_status` int DEFAULT NULL COMMENT '项目状态 [crm_market_project_status] 10-待审核,20-审核中,30-被驳回,40-已生效,50-已放弃,60-已结束]', \n" +
87+
"`etl_date` datetime DEFAULT NULL COMMENT '跑批时间', \n" +
88+
"`project_type` int sum DEFAULT NULL COMMENT '项目类型:10生鲜项目,20展会项目,30服装城项目,40其他', \n" +
89+
"`main_responsible_person_id` bigint sum DEFAULT NULL COMMENT '总负责人id', \n" +
90+
"`project_type_detail` int max DEFAULT NULL COMMENT '项目细项,根据项目类型联动,crm_market_project_detail_fresh,crm_market_project_detail_exhibition,...', \n" +
91+
"`customer_short_name` string max DEFAULT NULL COMMENT '客户简称', \n" +
92+
"`customer_id` bigint min DEFAULT NULL COMMENT '客户ID', \n" +
93+
"`customer_code` string max DEFAULT NULL COMMENT '客户编码', \n" +
94+
"`market_id` bigint sum DEFAULT NULL COMMENT '销售经理id', \n" +
95+
"`market_name` string max DEFAULT NULL COMMENT '销售经理', \n" +
96+
"`assistant_id` bigint sum DEFAULT NULL COMMENT '销售助理ID', \n" +
97+
"`assistant_name` string min DEFAULT NULL COMMENT '销售助理', \n" +
98+
"`calculation_id` bigint sum DEFAULT NULL COMMENT '销售总监id', \n" +
99+
"`calculation_name` string max DEFAULT NULL COMMENT '销售总监', \n" +
100+
"`senior_manager_id` bigint max DEFAULT NULL COMMENT '销售高监id', \n" +
101+
"`senior_manager_name` string replace DEFAULT NULL COMMENT '销售高监', \n" +
102+
"`target_amount` decimal(13,2) sum DEFAULT NULL COMMENT '目标额度', \n" +
103+
"`create_time` datetime max NOT NULL COMMENT '创建时间', \n" +
104+
"`_version` bigint replace DEFAULT NULL COMMENT '版本号' \n" +
105+
") \n" +
106+
"AGGREGATE KEY(project_id,project_code,project_way,project_status,etl_date) \n" +
107+
"COMMENT \"doris测试复合分区\" \n" +
108+
"PARTITION BY RANGE (etl_date) \n" +
109+
"( \n" +
110+
"PARTITION P1 VALUES [('2021-08-07 00:00:00'), ('2021-08-15 00:00:00')), \n" +
111+
"PARTITION P2 VALUES [('2021-08-16 00:00:00'), ('2021-08-31 00:00:00')) \n" +
112+
") \n" +
113+
"DISTRIBUTED BY HASH(project_id,project_code) BUCKETS 3 \n" +
114+
"rollup (\n" +
115+
" r1(project_code,project_id,project_type_detail)\n" +
116+
" ) \n" +
117+
"PROPERTIES ( \n" +
118+
"\"replication_num\" = \"2\",\n" +
119+
"\"dynamic_partition.time_unit\" = \"DAY\",\n" +
120+
"\"dynamic_partition.buckets\" = \"3\",\n" +
121+
"\"dynamic_partition.end\" = \"2\",\n" +
122+
"\"dynamic_partition.prefix\" = \"P\" \n" +
123+
") \n" +
124+
";\n" +
125+
"\n" +
126+
"\n";
127+
SqlScanner sqlScanner = new SqlScanner(new StringReader(sql), 0l);
128+
SqlParser sqlParser = new SqlParser(sqlScanner);
129+
List<StatementBase> multiStmts = SqlParserUtils.getMultiStmts(sqlParser);
130+
System.out.println(multiStmts.toString());
131+
}
132+
133+
@Test
134+
public void alterTableAddColumnTest() throws Exception {
135+
String sql = "ALTER TABLE doris_example ADD COLUMN (user_name varchar(400) NULL COMMENT \"用户名称\")";
136+
SqlScanner sqlScanner = new SqlScanner(new StringReader(sql), 0L);
137+
SqlParser sqlParser = new SqlParser(sqlScanner);
138+
List<StatementBase> multiStmts = SqlParserUtils.getMultiStmts(sqlParser);
139+
System.out.println(multiStmts.toString());
140+
}
141+
142+
@Test
143+
public void alterTableModifyColumnTest() throws Exception {
144+
String sql = "ALTER TABLE doris_example MODIFY COLUMN supplier_name varchar(500) NULL COMMENT \"供应商名称\"";
145+
SqlScanner sqlScanner = new SqlScanner(new StringReader(sql), 0l);
146+
SqlParser sqlParser = new SqlParser(sqlScanner);
147+
List<StatementBase> multiStmts = SqlParserUtils.getMultiStmts(sqlParser);
148+
System.out.println(multiStmts.toString());
149+
}
150+
151+
@Test
152+
public void alterTableRenameTest() throws Exception {
153+
String sql = "alter table doris_example rename doris_new_example;";
154+
SqlScanner sqlScanner = new SqlScanner(new StringReader(sql), 0l);
155+
SqlParser sqlParser = new SqlParser(sqlScanner);
156+
List<StatementBase> multiStmts = SqlParserUtils.getMultiStmts(sqlParser);
157+
System.out.println(multiStmts.toString());
158+
}
159+
}
160+
161+
```
162+
163+
164+
165+
4、相关
166+
167+
[实现](./doc/1、accomplish.md)

parser-doris/src/main/cup/sql_parser.cup

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,12 @@ import java.util.List;
2525
import java.util.Map;
2626

2727

28-
import com.lfsenior.sqlparser.doris.catalog.AggregateType;
29-
import com.lfsenior.sqlparser.doris.catalog.KeysType;
30-
import com.lfsenior.sqlparser.doris.catalog.ScalarType;
31-
import com.lfsenior.sqlparser.doris.catalog.Type;
32-
import com.lfsenior.sqlparser.doris.common.AnalysisException;
33-
import com.lfsenior.sqlparser.doris.common.Version;
28+
import com.lfsenior.sql.parser.doris.catalog.AggregateType;
29+
import com.lfsenior.sql.parser.doris.catalog.KeysType;
30+
import com.lfsenior.sql.parser.doris.catalog.ScalarType;
31+
import com.lfsenior.sql.parser.doris.catalog.Type;
32+
import com.lfsenior.sql.parser.doris.common.AnalysisException;
33+
import com.lfsenior.sql.parser.doris.common.Version;
3434

3535

3636
import com.google.common.collect.Lists;

parser-doris/src/main/java/com/lfsenior/sql/parser/doris/analysis/AddColumnClause.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,13 @@
1919

2020
import lombok.Getter;
2121
import lombok.Setter;
22-
import org.apache.logging.log4j.LogManager;
23-
import org.apache.logging.log4j.Logger;
2422

2523
import java.util.Map;
2624

2725
// clause which is used to add one column to
2826
@Getter
2927
@Setter
3028
public class AddColumnClause extends AlterTableClause {
31-
private static final Logger LOG = LogManager.getLogger(AddColumnClause.class);
3229
private ColumnDef columnDef;
3330
// Column position
3431
private ColumnPosition colPos;

parser-doris/src/main/java/com/lfsenior/sql/parser/doris/analysis/CreateTableLikeStmt.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,12 @@
1717

1818
package com.lfsenior.sql.parser.doris.analysis;
1919

20-
import org.apache.logging.log4j.LogManager;
21-
import org.apache.logging.log4j.Logger;
22-
2320
/**
2421
* @author wangcong
2522
* @version 1.0
2623
* @date 2020/10/7 10:32 上午
2724
*/
2825
public class CreateTableLikeStmt extends DdlStmt {
29-
private static final Logger LOG = LogManager.getLogger(CreateTableLikeStmt.class);
3026

3127
private final boolean ifNotExists;
3228
private final TableName tableName;

parser-doris/src/main/java/com/lfsenior/sql/parser/doris/analysis/CreateTableStmt.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,13 @@
2020
import com.google.common.base.Strings;
2121
import com.google.common.collect.Lists;
2222
import lombok.Data;
23-
import org.apache.logging.log4j.LogManager;
24-
import org.apache.logging.log4j.Logger;
2523

2624
import java.util.ArrayList;
2725
import java.util.List;
2826
import java.util.Map;
2927

3028
@Data
3129
public class CreateTableStmt extends DdlStmt {
32-
private static final Logger LOG = LogManager.getLogger(CreateTableStmt.class);
3330

3431
private static final String DEFAULT_ENGINE_NAME = "olap";
3532

0 commit comments

Comments
 (0)