create view中语法问题
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 1/5
- Geschätzter Aufwand
- Unter einer Stunde
- Anfängerfreundlichkeit
- 45/100
- Issue-Typ
- Bug
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Veraltet
- Bereich
- databases, stream-processing
Rechercherichtung
Beginnen Sie in CreateTmpTableParser beim EMPTY_STR-Muster und verfolgen Sie dann, wie SqlParser die bereitgestellte CREATE VIEW-Anweisung verarbeitet. Reproduzieren Sie das SQL-Beispiel und verifizieren Sie, dass führender Leerraum vor CREATE VIEW akzeptiert wird und dass die nachfolgenden INSERT-Anweisungen erfolgreich geparst werden.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
用
CREATE VIEW viewName [ (columnName[ , columnName]*) ];
INSERT INTO viewName queryStatement;
的语法使用临时表,会报错。
我的sql用例如下:
CREATE TABLE MyTable(
name varchar,
channel varchar,
pv INT,
xctime bigint,
CHARACTER_LENGTH(channel) AS timeLeng
)WITH(
type ='kafka10',
bootstrapServers ='hw-bd-01:9092',
zookeeperQuorum ='hw-bd-01:2181/kafka',
offsetReset ='earliest',
topic ='zxh_test',
parallelism ='1',
topicIsPattern='false'
);
create view MyView1 (
name varchar,
pv INT,
channel varchar
);
insert into MyView1 select name,pv+100 as pv,channel from MyTable;
CREATE TABLE MyResult(
name VARCHAR,
channel varchar,
cnt INT
)WITH(
type ='console',
parallelism ='1'
);
insert
into
MyResult
select
name,
channel,
pv+2000 as cnt
from
MyView1 where name='zhou';
报错的内容为:
Exception in thread "main" java.lang.RuntimeException: create view MyView1 ( name varchar, pv INT, channel varchar ):Syntax does not support,the format of SQL like insert into tb1 select * from tb2.
at com.dtstack.flink.sql.parser.SqlParser.parseSql(SqlParser.java:95)
at com.dtstack.flink.sql.exec.ExecuteProcessHelper.getStreamExecution(ExecuteProcessHelper.java:153)
at com.dtstack.flink.sql.Main.main(Main.java:42)
at com.dtstack.flink.sql.launcher.LauncherMain.main(LauncherMain.java:138)
修改方法:
将CreateTmpTableParser类中的
private static final String EMPTY_STR = "(?i)^\\screate\\s+view\\s+(\\S+)\\s*\\((.+)\\)$";
改为
private static final String EMPTY_STR = "(?i)^\\s*create\\s+view\\s+(\\S+)\\s*\\((.+)\\)$";
即可
- Vorherrschende Sprache
- Java
- Sterne
- 2k
- Forks
- 913
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus DTStack/flinkStreamSQL
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 20/100
DTStack/flinkStreamSQL#467 · 1 Kommentar ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 25/100
DTStack/flinkStreamSQL#437 · 3 Kommentare ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 38/100
DTStack/flinkStreamSQL#432 · 1 Kommentar ·
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 15/100
DTStack/flinkStreamSQL#431 ·
-
有无对sql 语法校验的方法 Offen
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 15/100
DTStack/flinkStreamSQL#430 · 1 Kommentar ·
Alle Issues in DTStack/flinkStreamSQL
Ähnliche Issues
-
documentation
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
inu-appcenter/memorIN-backend#288 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
-
frontend maui-pilot pilot-ask question
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
-
executions.Query — startDate and timeRange filters are sent with inverted comparison operators Offenarea/plugin
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
kestra-io/plugin-kestra#190 ·