[
https://issues.apache.org/jira/browse/IGNITE-22472?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Maksim Zhuravkov updated IGNITE-22472:
--------------------------------------
Summary: Sql. Char. Inconsistent handling of comparison operation (was:
Sql. Char. Inconsistent handling of comparison operation.)
> Sql. Char. Inconsistent handling of comparison operation
> --------------------------------------------------------
>
> Key: IGNITE-22472
> URL: https://issues.apache.org/jira/browse/IGNITE-22472
> Project: Ignite
> Issue Type: Bug
> Components: sql
> Reporter: Maksim Zhuravkov
> Priority: Major
> Labels: ignite-3
>
> Consider the following example (all test cases pass):
> {noformat}
> query T
> SELECT 'a'::char(1) < 'a'::char(2)
> ----
> true
> query T
> SELECT 'a'::char(1) > 'a'::char(2)
> ----
> false
> query T
> SELECT 'a'::char(1) = 'a'::char(2)
> ----
> true
> {noformat}
> A closer look:
> {noformat}
> query TT
> SELECT 'a'::char(1) < 'a'::char(2), 'a'::char(2) > 'a'::char(1)
> ----
> true true
> Plan:
> Project(EXPR$0=[<(_UTF-8'a', _UTF-8'a ')], EXPR$1=[>(_UTF-8'a ', _UTF-8'a')])
> Values(tuples=[[{ 0 }]])
> query TT
> SELECT 'a'::char(1) = 'a'::char(2), 'a'::char(1) != 'a'::char(2)
> ----
> true false
> Plan:
> Values(tuples=[[{ true, false }]])
> {noformat}
> If we consider CHAR (n) to be an alias for VARCHAR (n) then the behaviour
> should be the same as
> {noformat}
> query T
> SELECT 'a':: varchar(1) < 'a':: varchar(2)
> ----
> false
> query T
> SELECT 'a':: varchar(1) > 'a':: varchar(2)
> ----
> false
> query T
> SELECT 'a'::varchar(1) = 'a':: varchar(2)
> ----
> true
> {noformat}
> {noformat}
> query TT
> SELECT 'a'::varchar(1) < 'a'::varchar(2), 'a'::varchar(2) > 'a'::varchar(1)
> ----
> false false
> query TT
> SELECT 'a'::varchar(1) <= 'a'::varchar(2), 'a'::varchar(2) >= 'a'::varchar(1)
> ----
> true true
> {noformat}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)