Redshift игнорирует пробелы при выборе различных значений из текстового столбца - PullRequest
0 голосов
/ 16 февраля 2019

Redshift, кажется, игнорирует конечные пробелы в text столбцах (на самом деле varchar(256)) в таблице, когда я пытаюсь запустить select distinct для данного столбца.

Используя CTE, я получаю ожидаемоеПоведение:

dataeng=# with x as (select 'asdf'::text as y union all select 'asdf '::text as y) select distinct y from x;
   y
-------
 asdf
 asdf
(2 rows)

Но как только данные вставлены в таблицу, красное смещение не может определить разницу между двумя значениями:

dataeng=# create table whitespace_test (y text);
CREATE TABLE
dataeng=# insert into whitespace_test values ('asdf'), ('asdf ');
INSERT 0 2
dataeng=# select distinct y from whitespace_test;
  y
------
 asdf
(1 row)

Даже если оно не потерялоконечный пробел:

dataeng=# select distinct '"' || y || '"' from whitespace_test;
 ?column?
----------
 "asdf"
 "asdf "
(2 rows)

Я бы, конечно, оценил активное сглаживание входных данных с помощью красного смещения, но я хотел бы знать об этом и иметь контроль над ним.

PostgreSQL 10 ведет себя как ожидалось и не работаетпокажите эту ошибку.

Это ожидаемое поведение, или я обнаружил ошибку в красном смещении?

...