Dann, it is a very good suggestion! How does OLEDB implement the bookmarks? Is there a specific Postgres feature that is used for the bookmarks?
Thank you! Konstantin On Tue, Nov 30, 2010 at 11:13 PM, Dann Corbit <dcor...@connx.com> wrote: > Is your application by chance using OLEDB? > > If that is the case, then just get a PostgreSQL OLEDB provider that > supports bookmarks. > > > > *From:* pgsql-general-ow...@postgresql.org [mailto: > pgsql-general-ow...@postgresql.org] *On Behalf Of *Konstantin Izmailov > *Sent:* Tuesday, November 30, 2010 9:50 PM > *To:* pgsql-general@postgresql.org > *Subject:* [GENERAL] Does Postgres support bookmarks (tuples ids)? > > > > Dear experts, > > I've noticed that commercial databases (e.g. SQLServer) and some open > source databases (e.g. Cubrid) support so called "bookmarks". > As far as I understood, a bookmark allows quickly jump to a row for > retrieval or modification. > > Here is scenario that I'm trying to deal with: > A BI/ETL application is querying the Postgres database. The queries return > lots of rows (36 mil), each is about 1KB or larger. > So I'm using DECLARE CURSOR/FETCH to read the rows into a buffer (size is > 10000 rows, and I'm freeing memory for oldest rows). > The application may alter or re-read some previously read rows by the row > index. > Problem is: if a row is not in the buffer (freed) the application cannot > resolve row index into row itself. > I considered using a unique key to located the row, but unfortunately some > queries do no allows determining the most unique key. > > I'm thinking, is it possible to retrieve/alter row by its index after a > Postgres Cursor have read the row? > > The application allows a customer to define DB Schema as well as the > queries, so my code does not have a prior knowledge about DB and queries. > It is supposed to provide a certain API with functions based on row > indexes. The API was initially designed for SQLServer, so the goal is to > migrate the application from SQLServer to Postgres. > > Would you recommend a solution? > > Thank you > Konstantin >