172 похожих чатов

Привет. Может кто-нибудь подскажет почему нулы в результате функции добавляются

в массив, а чистый нулл нет?
sql
SELECT ARRAY[1, 2] || NULL --> {1,2}
SELECT ARRAY[1, 2] || NULLIF(1,1) --> {1,2,null}

14 ответов

11 просмотров

postgres=# select array[1,2] || NULL::int; ?column? ------------ {1,2,NULL} (1 row)

Ivan-Bragin Автор вопроса
Роман Жарков
postgres=# select array[1,2] || NULL::int; ?colu...

Прикольно. Чет до этого не додумался. А есть вариант как его превратить в самый нуловый нул без типа?)

Ivan Bragin
Прикольно. Чет до этого не додумался. А есть вариа...

а что такое null без типа? у вас же операция соединения и надо к типу приводить

Ivan Bragin
Прикольно. Чет до этого не додумался. А есть вариа...

Типа, массив длины 0. Длина массива, к которому он присоединяется -- увеличивается на 0. А null::integer -- присоединяет один элемент длины 1 и увеличивает длину на 1.

Ivan-Bragin Автор вопроса
Alexey Bulgakov
а что такое null без типа? у вас же операция соеди...

Ну вот поведение разное, когда null уже прикастован, и пока еще нет. При этом в мануале сказано что если нужно добавлять нуллы - то используйте array_append(...). Сейчас вообщем-то в конце работы функции делаю просто array_remove(x, null). Просто если есть вариант упростить)

Ivan Bragin
Ну вот поведение разное, когда null уже прикастова...

где разное поведение? функция уже дала ответ типа int, а вы литерал не привели к типу

Ivan-Bragin Автор вопроса
Alexey Bulgakov
где разное поведение? функция уже дала ответ типа ...

Вот в первом примере, когда || null - выходит оно не приводит тип к int, и null не попадает в результат

Ivan-Bragin Автор вопроса
Alexey Bulgakov
ну и? разное с чем?

Хорошо, не разное. Немного неожиданное, сходу ожидаешь что null::int не будет попадать

Ivan Bragin
Хорошо, не разное. Немного неожиданное, сходу ожид...

это оракл делает неявное преобразование сам. постгрис нет, всегда нужно делать самому явное преобразование типов

Alexey Bulgakov
это оракл делает неявное преобразование сам. постг...

а еще оракл умеет делать неявное преобразования явным образом ) индийский код +0 )

Id
а еще оракл умеет делать неявное преобразования яв...

иногда из-за этого неявного преобразования бывает жопа. в постгрис решили в это не лезть

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Карта сайта