[
https://issues.apache.org/jira/browse/CALCITE-6293?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17867043#comment-17867043
]
Tim Grein commented on CALCITE-6293:
------------------------------------
Hi,
I've started to look into supporting OR and I'm making fairly good progress and
things seem to work. One question I've is, if I can make _any_ assumptions
around the sql query, especially when it comes to predicates in the _where_
clause. Will those always be in DNF (Disjunctive Normal Form)? I'm fairly new
to the database internals world, but looking at other adapter implementations
it looks like the first step is to always decompose on disjunctions, which in
my head implies DNF.
Thank you!
> Support OR condition in Arrow adapter
> -------------------------------------
>
> Key: CALCITE-6293
> URL: https://issues.apache.org/jira/browse/CALCITE-6293
> Project: Calcite
> Issue Type: Sub-task
> Components: arrow-adapter
> Reporter: hongyu guo
> Assignee: Tim Grein
> Priority: Major
>
> For example
> {code:java}
> String sql = "select \"intField\", \"stringField\"\n"
> + "from arrowdata\n"
> + "where \"intField\"=12 or \"stringField\"='12'"; {code}
> will throw an exception:
> {code:java}
> java.lang.AssertionError: cannot translate OR(=($0, 12), =($1, '12'))
> at
> org.apache.calcite.adapter.arrow.ArrowTranslator.translateMatch(ArrowTranslator.java:70)
> at
> org.apache.calcite.adapter.arrow.ArrowFilter.<init>(ArrowFilter.java:43)
> at
> org.apache.calcite.adapter.arrow.ArrowRules$ArrowFilterRule.convert(ArrowRules.java:97)
> at
> org.apache.calcite.adapter.arrow.ArrowRules$ArrowFilterRule.onMatch(ArrowRules.java:87)
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)