UDF calls and FDW - Mailing list pgsql-general

From Emmanuel Medernach
Subject UDF calls and FDW
Date
Msg-id 533EC46A.8050705@clermont.in2p3.fr
Whole thread Raw
Responses Re: UDF calls and FDW  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-general
Hello,

I am using FDW to transparently access a remote Postgres database
containing a table indexed with the Q3C library.

On the remote server :

   postgres=# SELECT * FROM object_000 WHERE q3c_radial_query(ra_PS, decl_PS,
1.3, 3.4, .2) ;
   ...
   (2416 rows)

   Time: 130.300 ms

But on the FDW node the timing is bad :

   postgres=# SELECT * FROM master_object_000 WHERE q3c_radial_query(ra_PS,
decl_PS, 1.3, 3.4, .2) ;
   ...
   (2416 rows)

   Time: 130843.931 ms

postgres=# explain SELECT * FROM master_object_000 WHERE q3c_radial_query(ra_PS,
decl_PS, 1.3, 3.4, .2) ;
                                                    QUERY PLAN

-----------------------------------------------------------------------------------------------------------------
  Foreign Scan on master_object_000  (cost=100.00..383744.04 rows=377539 width=1084)
    Filter: q3c_radial_query(ra_ps, decl_ps, 1.3::double precision, 3.4::double
precision, 0.2::double precision)
(2 rows)


So the problem is that is  calls the UDF on the FDW node (Foreign
Scan on master_object_000 + Filter) and not on the remote server.

   - How to call the UDF on the remote server ?

Regards,
--

Attachment

pgsql-general by date:

Previous
From: Seamus Abshere
Date:
Subject: Why is pg_restore trying to create tables in pg_catalog?
Next
From: Tom Lane
Date:
Subject: Re: Why is pg_restore trying to create tables in pg_catalog?