OSDN Git Service

>>I confirmed the UNION hack is no longer required. Thanks! Is it too late
authorBruce Momjian <bruce@momjian.us>
Thu, 13 Dec 2001 10:48:39 +0000 (10:48 +0000)
committerBruce Momjian <bruce@momjian.us>
Thu, 13 Dec 2001 10:48:39 +0000 (10:48 +0000)
>>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.

Joe Conway

contrib/dblink/README.dblink

index c56720d..0a2f87b 100644 (file)
@@ -82,7 +82,8 @@ Outputs
 
 Example usage
 
-  select dblink('hostaddr=127.0.0.1 port=5432 dbname=mydb user=postgres password=mypasswd','select f1, f2 from mytable');
+  select dblink('hostaddr=127.0.0.1 port=5432 dbname=mydb user=postgres password=mypasswd'
+               ,'select f1, f2 from mytable');
 
 
 ==================================================================
@@ -118,44 +119,16 @@ Example usage
 
 ==================================================================
 
-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;
+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 = 'mycriteria';
+   select f1, f2 from myremotetable where f1 like 'bytea%';
 
 ==================================================================