| From: | Mathieu De Zutter <mathieu(at)dezutter(dot)org> |
|---|---|
| To: | Marti Raudsepp <marti(at)juffo(dot)org> |
| Cc: | pgsql-performance(at)postgresql(dot)org |
| Subject: | Re: Slow query to get last created row using CURRVAL |
| Date: | 2010-12-04 12:49:38 |
| Message-ID: | AANLkTimJKHJo7pwmLcWJoQM36C56i1x=geVG_RAR2AAj@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-performance |
On Sat, Dec 4, 2010 at 1:35 PM, Marti Raudsepp <marti(at)juffo(dot)org> wrote:
> On Sat, Dec 4, 2010 at 13:56, Mathieu De Zutter <mathieu(at)dezutter(dot)org> wrote:
>> I have no idea why in some cases the index scan is not considered.
>> Does anyone have an idea?
>
> I guess that it's because the currval() function is volatile -- its
> value has to be tested for again each row.
>
> Try this instead:
> SELECT user_id FROM log_event WHERE id = (SELECT CURRVAL('log_event_id_seq'));
>
> This will assure that there's only one call to currval().
OK, that makes a lot of sense. Your suggestion solves my problem.
Thanks!
Mathieu
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Kevin Grittner | 2010-12-04 15:29:06 | Re: problem with from_collapse_limit and joined views |
| Previous Message | Marti Raudsepp | 2010-12-04 12:35:33 | Re: Slow query to get last created row using CURRVAL |