create view中语法问题
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 1/5
- Tempo estimado
- Menos de uma hora
- Facilidade para iniciantes
- 45/100
- Tipo de issue
- Bug
- Clareza
- Claramente especificada
- Status de atividade
- Estagnada
- Domínio
- databases, stream-processing
Direção de pesquisa
Comece em CreateTmpTableParser, no padrão EMPTY_STR, e então acompanhe como SqlParser lida com a instrução CREATE VIEW fornecida. Reproduza o exemplo de SQL e verifique se os espaços em branco iniciais antes de CREATE VIEW são aceitos e se as instruções INSERT subsequentes são analisadas com sucesso.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
用
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*\\((.+)\\)$";
即可
- Linguagem predominante
- Java
- Estrelas
- 2k
- Forks
- 913
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Guia de contribuição
Nenhum guia de contribuição indexado para este repositório
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de DTStack/flinkStreamSQL
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 20/100
DTStack/flinkStreamSQL#467 · 1 comentário ·
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 25/100
DTStack/flinkStreamSQL#437 · 3 comentários ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 38/100
DTStack/flinkStreamSQL#432 · 1 comentário ·
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 15/100
DTStack/flinkStreamSQL#431 ·
-
有无对sql 语法校验的方法 Aberta
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 15/100
DTStack/flinkStreamSQL#430 · 1 comentário ·
Todas as issues de DTStack/flinkStreamSQL
Issues semelhantes
-
documentation
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
inu-appcenter/memorIN-backend#288 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
-
frontend maui-pilot pilot-ask question
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
-
executions.Query — startDate and timeRange filters are sent with inverted comparison operators Abertaarea/plugin
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
kestra-io/plugin-kestra#190 ·