| 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: | Whole Thread | Raw Message | 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
| 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)? |