Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proper way of specifying the schema along with the table #67

Open
Cito opened this issue Jan 30, 2022 · 0 comments
Open

Proper way of specifying the schema along with the table #67

Cito opened this issue Jan 30, 2022 · 0 comments
Milestone

Comments

@Cito
Copy link
Member

Cito commented Jan 30, 2022

See earlier discussions in #47 and #61.

Several methods of PyGreSQL, such as copy_*() or inserttable(), expect table names as parameters, and these are escaped internally.

This causes a problem when we want to specify a schema name together with the table name, like public.table, because the dot will be escaped as well. As a pragmatic solution, we now split a dotted table name and escape the parts individually. However, this only works as long as we have no tables that actually contain a dot.

For a proper solution, we could allow passing a tuple of (namespace, table) or (table,) or (db,namespace,table) instead of a string, and then escape the strings in these tuples individually before joining them. This should be handled consistently in all of the methods.

Alternatively, take a kwarg which would indicate that the table is already quoted (and might contain schema), or add separate parameters for schema and database.

@Cito Cito added this to the 6.1 milestone Aug 27, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant