Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
5.4.3
-
None
-
2021-1
Description
DROP TABLE IF EXISTS t1; |
CREATE TABLE t1 (a VARCHAR(32) CHARACTER SET latin1) ENGINE=InnoDB; |
INSERT INTO t1 VALUES ('A'),('A '); |
SELECT QUOTE(a) FROM t1 ORDER BY a, BINARY(a) DESC; |
+----------+
|
| QUOTE(a) |
|
+----------+
|
| 'A ' |
|
| 'A' |
|
+----------+
|
DROP TABLE IF EXISTS t1; |
CREATE TABLE t1 (a VARCHAR(32) CHARACTER SET latin1) ENGINE=ColumnStore; |
INSERT INTO t1 VALUES ('A'),('A '); |
SELECT QUOTE(a) FROM t1 ORDER BY a, BINARY(a) DESC; |
+----------+
|
| QUOTE(a) |
|
+----------+
|
| 'A' |
|
| 'A ' |
|
+----------+
|
Notice, ColumnStore returns the two records in reverse order.
Attachments
Activity
Field | Original Value | New Value |
---|---|---|
Description |
{code:sql}
DROP TABLE IF EXISTS t1; CREATE TABLE t1 (a VARCHAR(32) CHARACTER SET latin1) ENGINE=InnoDB; INSERT INTO t1 VALUES ('A'),('A '); SELECT QUOTE(a) FROM t1 ORDER BY a, BINARY(a) DESC; {code} {noformat} +----------+ | QUOTE(a) | +----------+ | 'A ' | | 'A' | +----------+ {noformat} {code:sql} DROP TABLE IF EXISTS t1; CREATE TABLE t1 (a VARCHAR(32) CHARACTER SET latin1) ENGINE=ColumnStore; INSERT INTO t1 VALUES ('A'),('A '); SELECT QUOTE(a) FROM t1 ORDER BY a, BINARY(a) DESC; {code} {noformat} +----------+ | QUOTE(a) | +----------+ | 'A ' | | 'A' | +----------+ {noformat} |
{code:sql}
DROP TABLE IF EXISTS t1; CREATE TABLE t1 (a VARCHAR(32) CHARACTER SET latin1) ENGINE=InnoDB; INSERT INTO t1 VALUES ('A'),('A '); SELECT QUOTE(a) FROM t1 ORDER BY a, BINARY(a) DESC; {code} {noformat} +----------+ | QUOTE(a) | +----------+ | 'A ' | | 'A' | +----------+ {noformat} {code:sql} DROP TABLE IF EXISTS t1; CREATE TABLE t1 (a VARCHAR(32) CHARACTER SET latin1) ENGINE=ColumnStore; INSERT INTO t1 VALUES ('A'),('A '); SELECT QUOTE(a) FROM t1 ORDER BY a, BINARY(a) DESC; {code} {noformat} +----------+ | QUOTE(a) | +----------+ | 'A' | | 'A ' | +----------+ {noformat} |
Description |
{code:sql}
DROP TABLE IF EXISTS t1; CREATE TABLE t1 (a VARCHAR(32) CHARACTER SET latin1) ENGINE=InnoDB; INSERT INTO t1 VALUES ('A'),('A '); SELECT QUOTE(a) FROM t1 ORDER BY a, BINARY(a) DESC; {code} {noformat} +----------+ | QUOTE(a) | +----------+ | 'A ' | | 'A' | +----------+ {noformat} {code:sql} DROP TABLE IF EXISTS t1; CREATE TABLE t1 (a VARCHAR(32) CHARACTER SET latin1) ENGINE=ColumnStore; INSERT INTO t1 VALUES ('A'),('A '); SELECT QUOTE(a) FROM t1 ORDER BY a, BINARY(a) DESC; {code} {noformat} +----------+ | QUOTE(a) | +----------+ | 'A' | | 'A ' | +----------+ {noformat} |
{code:sql}
DROP TABLE IF EXISTS t1; CREATE TABLE t1 (a VARCHAR(32) CHARACTER SET latin1) ENGINE=InnoDB; INSERT INTO t1 VALUES ('A'),('A '); SELECT QUOTE(a) FROM t1 ORDER BY a, BINARY(a) DESC; {code} {noformat} +----------+ | QUOTE(a) | +----------+ | 'A ' | | 'A' | +----------+ {noformat} {code:sql} DROP TABLE IF EXISTS t1; CREATE TABLE t1 (a VARCHAR(32) CHARACTER SET latin1) ENGINE=ColumnStore; INSERT INTO t1 VALUES ('A'),('A '); SELECT QUOTE(a) FROM t1 ORDER BY a, BINARY(a) DESC; {code} {noformat} +----------+ | QUOTE(a) | +----------+ | 'A' | | 'A ' | +----------+ {noformat} Notice, ColumnStore returns the two records in reverse order. |
Rank | Ranked higher |
Rank | Ranked higher |
Rank | Ranked higher |
Rank | Ranked higher |
Fix Version/s | 5.6.1 [ 25031 ] | |
Fix Version/s | 5.5.1 [ 25030 ] |
Assignee | Alexander Barkov [ bar ] |
Sprint | 2021-1 [ 480 ] |
Rank | Ranked higher |
Rank | Ranked higher |
Component/s | PrimProc [ 13700 ] | |
Resolution | Fixed [ 1 ] | |
Status | Open [ 1 ] | Closed [ 6 ] |
Fix Version/s | 5.5.2 [ 25601 ] |
Fix Version/s | 5.6.1 [ 25031 ] |
The same problem is repeatable with HEX() instead of BINARY():
+----------+
| QUOTE(a) |
+----------+
| 'A ' |
| 'A' |
+----------+
+----------+
| QUOTE(a) |
+----------+
| 'A' |
| 'A ' |
+----------+