Re: Using row_to_json with %ROWTYPE ?

Поиск
Список
Период
Сортировка
От David Johnston
Тема Re: Using row_to_json with %ROWTYPE ?
Дата
Msg-id CAKFQuwbmpqgY7B7S+XsChxa7B2zKocf2JFtuB2w=ZQ1PwaJFUQ@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Using row_to_json with %ROWTYPE ?  (Tim Smith <randomdev4+postgres@gmail.com>)
Ответы Re: Using row_to_json with %ROWTYPE ?  (Tim Smith <randomdev4+postgres@gmail.com>)
Re: Using row_to_json with %ROWTYPE ?  (Tim Smith <randomdev4+postgres@gmail.com>)
Список pgsql-general
On Thu, Feb 5, 2015 at 4:01 PM, Tim Smith <randomdev4+postgres@gmail.com> wrote:
 > returning more than one row? v_row can only hold one row at a time.

Absolutley not.  (a) My where clause is a primary key (b) I have
checked it manually, it only returns one row

>You really need to provide error messages

Yes, well PostgreSQL is being incredibly unhelpful in that respect, it
says "(SQLSTATE: 42702  - SQLERRM: column reference "session_id" is
ambiguous)" ... but that is an utter lie.   There is only one column
called session_id in my view (in both the view output and the
underlying view query, there is only one reference to "session_id")

​PostgreSQL doesn't lie - it just doesn't always give all of the information you need
to understand what it is seeing.​

​You have a view definition problem since nowhere in the code you provide should
session_id be resolved.

A simple:

SELECT * FROM my_​view;

would prove out that theory.

If that works then most probably the my_view view that the function sees is different 
than the one that you think it is seeing.
 
On 5 February 2015 at 21:57, Adrian Klaver <adrian.klaver@aklaver.com> wrote:
> On 02/05/2015 01:38 PM, Tim Smith wrote:
>>
>> Hi,
>>
>> I have a function that broadly looks like this :
>>
>> create function doStuff() returns json as $$
>> DECLARE
>> v_row my_view%ROWTYPE;
>> BEGIN
>> select * into strict v_row from my_view where foo=bar;
>> select row_to_json(v_row) from v_row;


​A third problem you will hit, when you fix the syntax, is that the 
SELECT row_to_json(...) command has no target and thus needs 
to use PERFORM, not SELECT.
David J.

В списке pgsql-general по дате отправления:

Предыдущее
От: Adrian Klaver
Дата:
Сообщение: Re: Using row_to_json with %ROWTYPE ?
Следующее
От: Tim Smith
Дата:
Сообщение: Re: Using row_to_json with %ROWTYPE ?