multi recordset and data type check was: Re: PL/pgSQL stored procedure returning multiple result sets (SELECTs)?

From: Vladimir Dzhuvinov <vd(at)valan(dot)net>
To: pgsql-general(at)postgresql(dot)org
Subject: multi recordset and data type check was: Re: PL/pgSQL stored procedure returning multiple result sets (SELECTs)?
Date: 2008-10-13 12:19:33
Message-ID: 48F33CD5.7070402@valan.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

>> CREATE PROCEDURE list_user_accounts(IN user_id INT)
>>
>> BEGIN
>>
>> -- Return first result set (single row)
>> SELECT * FROM users WHERE id = user_id;
>>
>> -- Return second result set (zero or more rows)
>> SELECT * FROM accounts WHERE account_holder = user_id;
>>
>> END;
>
> I'd say returning multiple recordset is useful to save connections
> and transferred data.
> You can't get the same with a left join (users fields will be
> repeated over and over) and you can't get the same with 2 separated
> statements since they will need 2 connections.
>
> But from the client side, suppose it PHP... if the first
> statement return no record and the second one return 3 records, how
> can I know?

Well, (in MySQL at least) in that case you're still going to get a
result set, it's just going to be an empty one (result with no rows).

So, no matter how many rows the SELECT statements resolve to, you're
always going to get two result sets :)

Vladimir
--
Vladimir Dzhuvinov * www.valan.net * PGP key ID AC9A5C6C

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2008-10-13 12:26:19 Re: what are those 3 passwords for ?
Previous Message Vladimir Dzhuvinov 2008-10-13 12:09:26 Re: PL/pgSQL stored procedure returning multiple result sets (SELECTs)?