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

Всем привет. мы тут стукнулись в 12.2 об странное поведение в

select ... into ... from у plpgsql.

postgres=# create table test
postgres-# (field1 numeric, field2 text, field3 text);
CREATE TABLE

postgres=# insert into test values
postgres-# (1, 'field2val1', 'field3val1'),
postgres-# (2, 'field2val2', 'field3val2');
INSERT 0 2

postgres=# create function test_f() returns text as $$
postgres$# DECLARE
postgres$# f1 numeric;
postgres$# f2 text;
postgres$# f3 text;
postgres$# begin
postgres$# select field1, field2, field3
postgres$# into f1, f2 f3
postgres$# from test where field1 = 1;
postgres$#
postgres$# return f3;
postgres$# end;
postgres$# $$ LANGUAGE plpgsql;
CREATE FUNCTION

postgres=# select test_f();
test_f
--------

(1 row)
здесь в into пропущена запятая и число переменных меньше, чем число возвращаемых значений в select.
но если верить доке, это не должно работать, т.к. > If a row or a variable list is used as target, the query's result columns must exactly match the structure of the target as to number and data types, or else a run-time error occurs.

(c) https://www.postgresql.org/docs/12/plpgsql-statements.html#PLPGSQL-STATEMENTS-SQL-ONEROW
может кто-то проверить - воспроизводится у них или нет?
потому что выглядит багом в слонике.

6 ответов

23 просмотра

Да, воспроизводится (повыбирайте там другие версии, если интересно): https://dbfiddle.uk/?rdbms=postgres_13&fiddle=dde4d309b37908d24f37e4ec37b3950b

Igelko [R15] Izh
т.е. таки бага?

Получается, так. Я тут быстро спросил в IRC, и: <johto> I think I reported the documentation bug years ago. BUG #8870. I sent a patch 7 years ago which was ignored :) Так что, можете найти этот thread, и пожаловаться там. ;)

Igelko [R15] Izh
спасибо.

Да не за что! ;)

Yaroslav Schekin
Получается, так. Я тут быстро спросил в IRC, и: <j...

На эту ошибку даже plpgsql_check не ругается

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
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
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
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
Карта сайта