Hi, please ignore my last email about the patch. :/ I have determined that pushdown of custom data types through fdw in fact does make sense.
Consider this query: SELECT * FROM customers WHERE <user_defined_type_col> <user_defined_operator> <user_defined_function>; To push down the WHERE clause to the foreign servers, both local and foreign server must have the user_defined database objects (else the query won't work on the foreign servers). For built-in types, operators, functions, Postgres knows that pushdown is safe as the foreign servers the db objects. But for the user_defined db objects, postgres won't know. Hence, user_defined_type_col needs to be pushed down explicitly. On Tue, Apr 9, 2024 at 8:06 PM Rajan Pandey <rajanpandey2...@gmail.com> wrote: > Hi team 😃. > > In the > https://www.postgresql.org/docs/current/postgres-fdw.html#POSTGRES-FDW-OPTIONS-REMOTE-EXECUTION > doc, it > mentions that Immutable Functions and Hi can be pushed down using > `extensions` option for foreign server. > > But it does not mention TYPE. In the shippable.c > <https://doxygen.postgresql.org/shippable_8c_source.html>/lookup_shippable() > function, I found a comment that indicates that type is also pushed down. > Hece, I have removed TYPE from the comments, assuming that it does not make > sense to push down a data type, and only functions and operations can be > pushed down. Please let me know if my assumption is incorrect. 🙂 > > I have added my patch file with the mail. Thanks! > > On Tue, Apr 9, 2024 at 4:06 PM Laurenz Albe <laurenz.a...@cybertec.at> > wrote: > >> On Tue, 2024-04-09 at 15:49 +0530, Rajan Pandey wrote: >> > I was reading >> https://www.postgresql.org/docs/current/postgres-fdw.html#POSTGRES-FDW-OPTIONS-REMOTE-EXECUTION >> > and found that it mentions that Immutable Functions and Operators can >> > be pushed down using `extensions` option for foreign server. >> > >> > But it does not mention about TYPE. In >> the shippable.c/lookup_shippable() >> > function, I found that type is also pushed down. >> >> The comment only says that data types may be shippable, but not that >> they are actually shipped. Can you think of a case where a data type >> would be shipped to a foreign server? I wrote a foreign data wrapper, >> and I cannot think of such a case. >> >> Perhaps the function comment should be adjusted by removing the >> parenthesis >> or changing it to "(operator/function/...)". >> >> > Does this require updating the docs? Can I raise a PR to do so? Thank >> you! :) >> >> You would send a patch against the "master" branch to the pgsql-docs list >> for that. >> >> Yours, >> Laurenz Albe >> > > > -- > Regards > Rajan Pandey > -- Regards Rajan Pandey