fix: use proper quoting for table names #81
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When table names contain special characters that require identifiers to be quoted, the code was not quoting properly.
In particular:
calling Sprintf("%s.%s") with unquoted table and schema names is not safe to build SQL statements. pgx.Identifier.Sanitize() is used instead.
Casting to regclass to convert OID to names is too complicated because it can produce quoted or unquoted names depending on the context. Use pg_class and pg_namespace instead.
Casting to regclass to convert names to OID depends on the search_path, and also requires pre-quoting, which makes it difficult to use properly with user-supplied arguments. Use pg_class and pg_namespace instead.