Hi Julian

I am really sorry for the late reply.


I did some research, most sql engines support bitwise operator, and there
are some differences.

Please see the JIRA(https://issues.apache.org/jira/browse/CALCITE-5087)


And, it's dependent on previous related issues.[1][2][3][4][5]


1. https://issues.apache.org/jira/browse/CALCITE-3782

2. https://issues.apache.org/jira/browse/CALCITE-3732

3. https://issues.apache.org/jira/browse/CALCITE-3779

4. https://issues.apache.org/jira/browse/CALCITE-3592

5. https://issues.apache.org/jira/browse/CALCITE-3697

Julian Hyde <[email protected]> 于2022年4月2日周六 03:42写道:

> In my opinion we should support the ‘|’ operator but not in the core SQL
> parser by default. Either support it in babel or enable it with flags in
> the core parser.
>
> Rationale: MySQL in its early days seemed to have a wacky mission to make
> SQL look like C. 0 and 1 for true and false, the |, ^, &&, || operators,
> etc. The ‘||’ operator is particularly damaging, because it prevents them
> from using it for string concatenation as practically everyone else does. I
> strongly believe that we should not let this wackiness leak into Calcite’s
> core SQL.
>
> 徐仁和, please log a JIRA case to support ‘|’ and post the URL to this thread.
>
> We should definitely add functions for bitwise operations. Because they
> have function syntax they don’t require parser changes, and are therefore
> easier to turn on and off.
>
> Someone should review the PRs for the cases listed. It’s embarrassing that
> we let these languish.
>
> Julian
>
>
>
> > On Apr 1, 2022, at 5:50 AM, 徐仁和 <[email protected]> wrote:
> >
> > Hi all
> > I am using CALCITE as a mysql-proxy in my project.
> > Some user want use mysql's bit functions[1], but I found CALCITE didn't
> > support to parse these token.
> > For example:
> >
> >> select 1 | 2 as c1;
> >
> >
> > Exception:
> > Caused by: java.lang.RuntimeException:
> > org.apache.calcite.sql.parser.SqlParseException: Encountered "|" at line
> 1,
> > column 10.
> > Was expecting one of:
> >    <EOF>
> >    "ORDER" ...
> >    "LIMIT" ...
> >    "OFFSET" ...
> >    "FETCH" ...
> >    "UNION" ...
> >    "INTERSECT" ...
> >
> > ------------------
> >
> > I remember that some jiras[2][3][4][5][6] have been about this problem,
> and
> > how are they doing?
> >
> >   1. https://dev.mysql.com/doc/refman/8.0/en/bit-functions.html
> >   2. https://issues.apache.org/jira/browse/CALCITE-3782
> >   3. https://issues.apache.org/jira/browse/CALCITE-3732
> >   4. https://issues.apache.org/jira/browse/CALCITE-3779
> >   5. https://issues.apache.org/jira/browse/CALCITE-3592
> >   6. https://issues.apache.org/jira/browse/CALCITE-3697
> >
> >
> > Thanks & Regards
>
>

Reply via email to