[ https://issues.apache.org/jira/browse/CALCITE-2674?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16786824#comment-16786824 ]
Kevin Risden commented on CALCITE-2674: --------------------------------------- [~julianhyde] - planning to review in the next day or so? > SqlIdentifier same name with built-in function but with escape character > should be still resolved as an identifier > ------------------------------------------------------------------------------------------------------------------ > > Key: CALCITE-2674 > URL: https://issues.apache.org/jira/browse/CALCITE-2674 > Project: Calcite > Issue Type: Bug > Components: core > Affects Versions: 1.18.0 > Reporter: Danny Chan > Priority: Major > Labels: pull-request-available > Fix For: 1.19.0 > > Time Spent: 2h 10m > Remaining Estimate: 0h > > Now If user defines table as schema below: > {code:java} > create table tt( > `current_time` int, > b int); > {code} > Then start a query: > {code:java} > select `current_time` from tt; > {code} > Calcite parser will parse the *current_time* as a normal *SqlIdentifier*, > then the SqlValidator will recognize it as a builtin function with below code > snippet: > {code:java} > public static SqlCall makeCall( > SqlOperatorTable opTab, > SqlIdentifier id) { > if (id.names.size() == 1) { > final List<SqlOperator> list = new ArrayList<>(); > opTab.lookupOperatorOverloads(id, null, SqlSyntax.FUNCTION, list); > for (SqlOperator operator : list) { > if (operator.getSyntax() == SqlSyntax.FUNCTION_ID) { > // Even though this looks like an identifier, it is a > // actually a call to a function. Construct a fake > // call to this function, so we can use the regular > // operator validation. > return new SqlBasicCall( > operator, > SqlNode.EMPTY_ARRAY, > id.getParserPosition(), > true, > null); > } > } > } > return null; > }{code} > While i tried MYSQL and such query can work properly, so is this a bug ? > Cause if the matched function's return type is same with the column, then the > query will output wrong results. > -- This message was sent by Atlassian JIRA (v7.6.3#76005)