[ https://issues.apache.org/jira/browse/CALCITE-4362?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17431445#comment-17431445 ]
Stamatis Zampetakis commented on CALCITE-4362: ---------------------------------------------- I completely agree with [~julianhyde]. I might have done something like that in a previous project I was working on. Vaguely I remember I drew inspiration from the way rolled up columns are handled in [SqlValidatorImpl.expandStar|https://github.com/apache/calcite/blob/bf962b86d9c27ca429ae71bf75a2acdca06eee91/core/src/main/java/org/apache/calcite/sql/validate/SqlValidatorImpl.java#L635]. The trick is to find the table to which the column belongs and the latter should implement an appropriate interface (such as [Table.isRolledUp|https://github.com/apache/calcite/blob/bf962b86d9c27ca429ae71bf75a2acdca06eee91/core/src/main/java/org/apache/calcite/schema/Table.java#L71] ) to be able to tell if a column is a system column or not. For that use-case, I think I ended up sub-classing {{SqlValidatorImpl}} and overloading [SqlValidatorImpl.addToSelectList|https://github.com/apache/calcite/blob/bf962b86d9c27ca429ae71bf75a2acdca06eee91/core/src/main/java/org/apache/calcite/sql/validate/SqlValidatorImpl.java#L2067] as an attempt to not modify Calcite. I guess if want to make this part of the core it will be easier. > Unable to parse queries that use BigQuery pseudo columns > _PARTITIONDATE/_PARTITIONTIME > -------------------------------------------------------------------------------------- > > Key: CALCITE-4362 > URL: https://issues.apache.org/jira/browse/CALCITE-4362 > Project: Calcite > Issue Type: Bug > Components: babel > Reporter: Justin Swett > Assignee: Julian Hyde > Priority: Major > > BigQuery supports partitioned tables using pseudo columns "_PARTITIONDATE" > e.g. The following table has two columns you can select from but also > partitions the data by creation date > {code:java} > CREATE or REPLACE TABLE #{table} ( > transaction_id STRING, > order_date DATE ) > PARTITION BY _PARTITIONDATE > {code} > > The following queries cannot be validated > {code:java} > select * from #{table} where _PARTITIONDATE = '2020-11-03' ; > -- OR > select * from #{table} where _PARTITIONTIME = '2020-11-03' ;{code} -- This message was sent by Atlassian Jira (v8.3.4#803005)