Postgres_FDW doc doesn't specify TYPE support in Remote Execution Options

Started by Rajan Pandeyabout 2 years ago4 messagesdocsgeneral
Jump to latest
#1Rajan Pandey
rajanpandey2508@gmail.com
docsgeneral

Hi,
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
<https://doxygen.postgresql.org/shippable_8c_source.html&gt;/lookup_shippable()
function, I found that type is also pushed down.

[image: image.png]

Does this require updating the docs? Can I raise a PR to do so? Thank you!
:)

--
Regards
Rajan Pandey

Attachments:

image.pngimage/png; name=image.pngDownload+3-0
#2Laurenz Albe
laurenz.albe@cybertec.at
In reply to: Rajan Pandey (#1)
docsgeneral
Re: Postgres_FDW doc doesn't specify TYPE support in Remote Execution Options

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

#3Rajan Pandey
rajanpandey2508@gmail.com
In reply to: Laurenz Albe (#2)
docsgeneral
Re: Postgres_FDW doc doesn't specify TYPE support in Remote Execution Options

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&gt;/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.albe@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

Attachments:

update_lookup_shippable_comments.patchapplication/octet-stream; name=update_lookup_shippable_comments.patchDownload+1-1
#4Rajan Pandey
rajanpandey2508@gmail.com
In reply to: Rajan Pandey (#3)
docsgeneral
Re: Postgres_FDW doc doesn't specify TYPE support in Remote Execution Options

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 <rajanpandey2508@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&gt;/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.albe@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