Fix identifier quoting in postgresql_publication resource #578
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.
Description
Fixes #577
This PR adds proper identifier quoting using
pq.QuoteIdentifier()
for publication names and owner names in all SQL statements within thepostgresql_publication
resource.Problem
When setting a publication owner or name containing special characters (e.g., hyphens like
tenant-management-user
), the resource failed with a syntax error:This occurred because identifiers were not properly quoted in SQL statements.
Solution
Added
pq.QuoteIdentifier()
to all publication and owner name references in:CREATE PUBLICATION
statementsALTER PUBLICATION ... OWNER TO
statementsALTER PUBLICATION ... ADD/DROP TABLE
statementsALTER PUBLICATION ... SET
statements (parameter updates)This aligns the publication resource with the identifier quoting standards already implemented in other resources (database, schema, role, etc.).
Testing
TestAccPostgresqlPublication_UpdateOwner
andTestAccPostgresqlPublication_UpdateName