Queue in SQL

From: "Gyorgy Molnar" <gyorgy(dot)molnar(at)home(dot)com>
To: <pgsql-sql(at)postgresql(dot)org>
Subject: Queue in SQL
Date: 2001-11-27 14:11:18
Message-ID: 001601c1774d$66bb1b90$3201a8c0@Athlon
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Hi!

Question:
I need to store some incoming data and retrieve them one by one (LIFO).
Different processes will manage the storage and the retrieval.
How can I retrieve only the first row from a table?
==================

Explanation
I intend to use libpq and C. as far as I know to retrieve the result from a
query I need to do the following:

BEGIN A TRANSACTION
DECLARE CURSOR cursor FOR SELECT
FETCH one row from cursor
Process
CLOSE cursor
DELETE row
COMMIT

Let say I have 100,000 records in my table, I have to pick up only the first
row. I do not have any special criteria to execute a query, and I only need
the oldest added row (let say the first row if the table is indexed).
How can I narrow the search criteria, not to receive all of the 100,000
record in the result?
Unfortunately, I do not know the internal working of the SELECT. I think it
should create a temporary object to store the result. This object size may
depend on the number of the rows in the result and the size of the stored
data per row. I can fetch the rows one by one using this temporary object.

Kind Regards,
Gyorgy Molnar

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Richard Poole 2001-11-27 14:25:30 Re: count(*) - join question
Previous Message Josh Berkus 2001-11-27 01:23:13 Re: PL/pgSQL examples NOT involving functions