flink-user-zh mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Benchao Li <libenc...@gmail.com>
Subject Re: Re: sql关键字问题
Date Wed, 18 Mar 2020 12:02:04 GMT
Hi lucas,

你说的问题应该在https://issues.apache.org/jira/browse/FLINK-16068里面修复了。

lucas.wu <lucas.wu@xiaoying.com> 于2020年3月18日周三 下午5:27写道:

> 原始邮件
> 发件人:lucas.wulucas.wu@xiaoying.com
> 收件人:imjark@gmail.com
> 发送时间:2020年3月18日(周三) 17:21
> 主题:Re: sql关键字问题
>
>
> Hi,jark
> 看到了你修复的这个jirahttps://issues.apache.org/jira/browse/FLINK-16526
> 但是看了你的代码和描述,你只是针对SqlBasicCall这种node的字段名加了``
> ,也就是说只会对有computed_column_expression的字段加上,但是对于普通的字段并没有覆盖到,请问我理解的正确吗?
>
>
> 原始邮件
> 发件人:Kurt Youngykt836@gmail.com
> 收件人:user-zhuser-zh@flink.apache.org
> 抄送:Yuzhao Chenyuzhao.cyz@gmail.com
> 发送时间:2020年3月18日(周三) 16:41
> 主题:Re: sql关键字问题
>
>
> 好像已经有了,应该是这个jira: https://issues.apache.org/jira/browse/FLINK-16526
Best,
> Kurt On Wed, Mar 18, 2020 at 4:19 PM Jingsong Li jingsonglee0@gmail.com
> wrote:  Hi lucas,   赞专业的分析,看起来是Flink的bug,你可以建个Jira来跟踪。
 CC: @Yuzhao Chen
> yuzhao.cyz@gmail.com   Best,  Jingsong Lee   On Wed, Mar 18, 2020 at 4:15
> PM lucas.wu lucas.wu@xiaoying.com wrote:    初步找到了原因
>  原来我的建表语句用了computed_column_expression 这种语义。   然后flink内部在使用的时候其实是把它转成了select
> 语句   ...   if (columnExprs.nonEmpty) {   val fieldExprs = fieldNames   .map
> { name =   if (columnExprs.contains(name)) {   columnExprs(name)   } else
> {   name   }   }.toArray   val rexNodes =
>  toRexFactory.create(newRelTable.getRowType).convertToRexNodes(fieldExprs)
>  …..       然后我们看看convertToRexNodes方法       public RexNode[]
> convertToRexNodes(String[] exprs) {   ….   String query =
> String.format(QUERY_FORMAT, String.join(",", exprs));   SqlNode parsed =
> planner.parser().parse(query);   }       重点就在这个QUERY_FORMAT   private
> static final String QUERY_FORMAT = "SELECT %s FROM " +
>  TEMPORARY_TABLE_NAME;
>  这样写是有问题的,当我的字段本身是有``的时候,就被去掉了,导致后面valid的时候就报错。
      所以这个是算flink的bug吗?
>  原始邮件   发件人:lucas.wulucas.wu@xiaoying.com   收件人:
> user-zhuser-zh@flink.apache.org   发送时间:2020年3月18日(周三) 15:36
>  主题:sql关键字问题       create table `source_table`( `SeqNo` varchar, `Type`
> varchar, `Table`   varchar, `ServerId` varchar, `Database` varchar,
> `OldData` varchar,  `GTID`   varchar, `Offset` varchar, `event_ts` as
>  to_timestamp(from_unixtime(Data.`FuiUpdateTime`),'yyyy-MM-ddHH:mm:ss'),
>  WATERMARK FOR event_ts AS event_ts - interval '60' second ) with(…) 查询语句
>  Select * from source_table; 这是我的建表和查询语句,发现即使用了``
查询的时候还是会报Table是关键字的问题。
> SQL   parse failed. Encountered "Table" at line 1,column 19. 但是一旦我把
> `event_ts`  as
>  to_timestamp(from_unixtime(Data.`FuiUpdateTime`),'yyyy-MM-ddHH:mm:ss'),
>  WATERMARK FOR event_ts AS event_ts - interval '60’ second 这两行去掉
>  ,就正常了。是我的使用方法有问题吗?     --  Best, Jingsong Lee



-- 

Benchao Li
School of Electronics Engineering and Computer Science, Peking University
Tel:+86-15650713730
Email: libenchao@gmail.com; libenchao@pku.edu.cn
Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message