You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Ruben Q L (Jira)" <ji...@apache.org> on 2020/05/05 08:07:00 UTC
[jira] [Commented] (CALCITE-3951) Support different string
comparison based on SqlCollation
[ https://issues.apache.org/jira/browse/CALCITE-3951?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17099634#comment-17099634 ]
Ruben Q L commented on CALCITE-3951:
------------------------------------
Thanks for you feedback [~zabetak].
bq. I am not sure if SqlCollation is the place to keep the comparison logic.
Then, what could be the alternative?
As I see it, SqlCollation already represents a (simplified) notion of what is described in "4.2.2 Comparison of character strings":
- It stores a character set, and we do not allow the comparison of strings whose SqlCollation's charset are not the same (see SqlTypeUtil#isCharTypeComparable)
- It stores the "Coercibility" value (EXPLICIT, IMPLICIT, COERCIBLE, NONE), which reflects the "collation derivation" rules in the standard (see SqCollation#getCoercibilityDyadic* methods).
One thing that is missing is the actual string comparison process (the goal of the current ticket). I think that the easiest way to implement it with (hopefully) the minimum impact of the rest of Calcite classes and full backwards compatibility, was adding this information as a Collator in SqlCollation (as I mentioned in the PR, I would agree to annotate the feature as "Experimental" if we feel that this design might be reviewed in future versions). As you know ;) this is a quite urgent requirement for us, so it would be nice to have a functional implementation for this (even Experimental) in the next release.
> Support different string comparison based on SqlCollation
> ---------------------------------------------------------
>
> Key: CALCITE-3951
> URL: https://issues.apache.org/jira/browse/CALCITE-3951
> Project: Calcite
> Issue Type: Improvement
> Components: core
> Reporter: Ruben Q L
> Assignee: Ruben Q L
> Priority: Major
> Time Spent: 3h
> Remaining Estimate: 0h
>
> Currently SqlCollation defines concepts like Coercibility, Charset, Locale, etc. However, we cannot specify on a certain collation that e.g. a string field should use case insensitive comparison. The goal of this ticket is to evolve SqlCollation to support that, and adapt the corresponding classes to use that (optional) "non-standard" comparison.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)