Re: [HACKERS] [GENERAL] Using Cursor in PostgreSQL 7.2 - Mailing list pgsql-patches
From | Joe Conway |
---|---|
Subject | Re: [HACKERS] [GENERAL] Using Cursor in PostgreSQL 7.2 |
Date | |
Msg-id | 3C1829B6.4060301@home.com Whole thread Raw |
Responses |
Re: [HACKERS] [GENERAL] Using Cursor in PostgreSQL 7.2
|
List | pgsql-patches |
Tom Lane wrote: > Joe Conway <joseph.conway@home.com> writes: > >>I confirmed the UNION hack is no longer required. Thanks! Is it too late >>to change the README in contrib/dblink? >> > > No, I don't think that's a problem. Send a patch. > Here's a (documentation only) patch for the contrib/dblink README. Thanks, Joe *** README.dblink.orig Mon Jun 18 12:09:50 2001 --- README.dblink Wed Dec 12 19:57:34 2001 *************** *** 82,88 **** Example usage ! select dblink('hostaddr=127.0.0.1 port=5432 dbname=mydb user=postgres password=mypasswd','select f1, f2 from mytable'); ================================================================== --- 82,89 ---- Example usage ! select dblink('hostaddr=127.0.0.1 port=5432 dbname=mydb user=postgres password=mypasswd' ! ,'select f1, f2 from mytable'); ================================================================== *************** *** 118,161 **** ================================================================== ! NOTE: If you need to provide selection criteria in a WHERE clause, it is necessary ! to 'fake' a UNION, e.g. ! select ! dblink_tok(t1.dblink_p,0) as f1 ! ,dblink_tok(t1.dblink_p,1) as f2 ! from ! ( ! select dblink( ! 'hostaddr=127.0.0.1 port=5432 dbname=mydb user=postgres password=mypasswd' ! ,'select f1, f2 from mytable' ! ) as dblink_p ! union all ! select null where false ! ) as t1 ! where ! dblink_tok(t1.dblink_p,0) = 'mycriteria'; ! ! in order to work around an issue with the query optimizer. A more convenient way to approach ! this problem is to create a view: ! ! create view myremotetable as ! select ! dblink_tok(t1.dblink_p,0) as f1 ! ,dblink_tok(t1.dblink_p,1) as f2 ! from ! ( ! select dblink( ! 'hostaddr=127.0.0.1 port=5432 dbname=mydb user=postgres password=mypasswd' ! ,'select f1, f2 from mytable' ! ) as dblink_p ! union all ! select null where false ! ) as t1; Then you can simply write: ! select f1,f2 from myremotetable where f1 = 'mycriteria'; ================================================================== --- 119,134 ---- ================================================================== ! A more convenient way to use dblink may be to create a view: ! create view myremotetable as ! select dblink_tok(t1.dblink_p,0) as f1, dblink_tok(t1.dblink_p,1) as f2 ! from (select dblink('hostaddr=127.0.0.1 port=5432 dbname=template1 user=postgres password=postgres' ! ,'select proname, prosrc from pg_proc') as dblink_p) as t1; Then you can simply write: ! select f1, f2 from myremotetable where f1 like 'bytea%'; ==================================================================
pgsql-patches by date: