Использование Amazon Redshift.У меня есть логическое поле, которое имеет 3 различных значения - true, false и null.
Когда я пытаюсь оценить (x is true)
, я получаю сообщение об ошибке Not implemented
.Попытка оценить (x = true)
работает просто отлично.
dataeng=# with bool_vals as (select distinct val::boolean as x from my_table) select * from bool_vals;
x
---
f
t
(3 rows)
dataeng=# with bool_vals as (select distinct val::boolean as x from my_table) select *, (x is null) from bool_vals;
x | ?column?
---+----------
f | f
t | f
| t
(3 rows)
dataeng=# with bool_vals as (select distinct val::boolean as x from my_table) select *, (x is true) from bool_vals;
ERROR: Not implemented
DETAIL:
-----------------------------------------------
error: Not implemented
code: 1001
context: 'false' - project naming - 330
query: 114596
location: cg_main.cpp:1265
process: padbmaster [pid=7556]
-----------------------------------------------
dataeng=# with bool_vals as (select distinct val::boolean as x from my_table) select *, (x = true) from bool_vals;
x | ?column?
---+----------
t | t
f | f
|
(3 rows)
Как ни странно, я не могу воспроизвести его, используя тривиальный пример:
dataeng=# with bools as (select true as x union select false union select null) select *, (x is true) from bools;
x | ?column?
---+----------
f | f
t | t
| f
(3 rows)
Я в порядке с использованием=
как оператор для оценки булевой логики, но кажется странным, что это поведение противоречиво, и хотелось бы прояснить, что здесь происходит.