View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update | 
|---|---|---|---|---|---|
| 0006779 | SymmetricDS | Bug | public | 2025-03-21 21:00 | 2025-05-06 02:45 | 
| Reporter | pbelov | Assigned To | pbelov | ||
| Priority | normal | ||||
| Status | closed | Resolution | fixed | ||
| Product Version | 3.16.0 | ||||
| Target Version | 3.16.2 | Fixed in Version | 3.16.2 | ||
| Summary | 0006779: Postgresql DDL trigger fails when sym_trigger_hist is located in another schema | ||||
| Description | Function for DDL trigger (on Postgresql) fails when sym_trigger_hist is located in another schema. The error occurs in the function fsym_on_filtered_ddl, which implements the DDL trigger for Postgres endpoint. ERROR: relation "sym_trigger_hist" does not exist LINE 1: ...id, source_table_name from sym_trigge... ^ QUERY: select trigger_hist_id, source_table_name from sym_trigger_hist where upper(source_table_name) = upper(tableName) and inactive_time is null CONTEXT: PL/pgSQL function tds.fsym_on_all_ddl() line 25 at SQL statement | ||||
| Steps To Reproduce | Create a non-default schemas in Postgresql: "sds" Install SymmetricDS runtime tables into the in the "sds" schema with connection string db.url=jdbc:postgresql://localhost:5432/postgres?currentSchema=sds Configure parameter trigger.capture.ddl.changes=true Create test tables in the "public" or other "business" schema. Configure triggers on test tables. Add column to a test table - as a non-SymmetricDS user in a separate connection targeting the "public" or "business" schema (SET search_path = business). Observe the error relation "sym_trigger_hist" does not exist. SET search_path = business; CREATE TABLE ddl_trigger_test1 ( test_id BIGINT NOT NULL, name char(20) NOT NULL, CONSTRAINT ddl_trigger_test1_PK PRIMARY KEY (test_id) ); ALTER TABLE ddl_trigger_test1 add column test2 BIGINT; SQL Error [42P01]: ERROR: relation "sym_trigger_hist" does not exist Where: PL/pgSQL function sym315client5.fsym_on_filtered_ddl() line 25 at SQL statement | ||||
| Additional Information | The error occurs in the function fsym_on_filtered_ddl, which implements the DDL trigger for Postgres endpoint. PGSQL code references two tables directly: sym_trigger_hist, sym_trigger while they are located in another schema (which is not part of the search_path ). | ||||
| Tags | ddl/schema, dialect: postgresql | ||||
| related to | 0004524 | acknowledged | Add support for PostgreSQL search_path instead of target schema name | 
|  | Merged PRs: https://github.com/JumpMind/symmetric-ds/pull/262 into the 3.15.16 version https://github.com/JumpMind/symmetric-ds/pull/267 into the 3.16.2 version | 
|  | Included in the 3.16.2 release | 
| SymmetricDS: 3.15 714dd1a7 2025-05-01 19:36:24 Committer: GitHub Details Diff | 0006779: Capture DDL events PostgreSQL from non-default schema (0000262) * Add VSCode and MAC exemptions * Explicitly specify schema for SymmetricDS when capturing DDL changes (potentially occurring in other schemas). * Fix object prefix in Postgres DDL triggers | Affected Issues 0006779 | |
| mod - .gitignore | Diff File | ||
| mod - symmetric-client/src/main/java/org/jumpmind/symmetric/db/postgresql/PostgreSqlTriggerTemplate.java | Diff File | ||
| SymmetricDS: 3.16 254faf81 2025-05-05 14:53:26 Committer: GitHub Details Diff | 0006779: Capture DDL events PostgreSQL from non-default schema (0000267) * Cherry-picked commit for 0006779 from 3.15: Capture DDL events PostgreSQL from non-default schema. * Explicitly specify schema for SymmetricDS when capturing DDL changes (potentially occurring in other schemas). | Affected Issues 0006779 | |
| mod - .gitignore | Diff File | ||
| mod - symmetric-client/src/main/java/org/jumpmind/symmetric/db/postgresql/PostgreSqlTriggerTemplate.java | Diff File | ||
| Date Modified | Username | Field | Change | 
|---|---|---|---|
| 2025-03-21 21:00 | pbelov | New Issue | |
| 2025-03-21 21:00 | pbelov | Status | new => assigned | 
| 2025-03-21 21:00 | pbelov | Assigned To | => pbelov | 
| 2025-03-21 21:00 | pbelov | Tag Attached: dialect: postgresql | |
| 2025-03-22 13:15 | pbelov | Steps to Reproduce Updated | View Revisions | 
| 2025-03-22 13:29 | pbelov | Steps to Reproduce Updated | View Revisions | 
| 2025-03-22 13:30 | pbelov | Status | assigned => confirmed | 
| 2025-03-22 13:30 | pbelov | Steps to Reproduce Updated | View Revisions | 
| 2025-03-22 13:32 | pbelov | Steps to Reproduce Updated | View Revisions | 
| 2025-03-26 17:07 | emiller | Relationship added | related to 0004524 | 
| 2025-03-27 21:19 | pbelov | Status | confirmed => assigned | 
| 2025-03-27 21:19 | pbelov | Description Updated | View Revisions | 
| 2025-03-27 21:19 | pbelov | Additional Information Updated | View Revisions | 
| 2025-03-27 21:40 | pbelov | Tag Attached: ddl/schema | |
| 2025-03-31 13:19 | pbelov | Target Version | 3.16.1 => 3.16.2 | 
| 2025-05-01 20:00 | pbelov | Changeset attached | => SymmetricDS 3.15 714dd1a7 | 
| 2025-05-05 14:52 | pbelov | Status | assigned => resolved | 
| 2025-05-05 14:52 | pbelov | Resolution | open => fixed | 
| 2025-05-05 14:52 | pbelov | Fixed in Version | => 3.16.2 | 
| 2025-05-05 14:52 | pbelov | Note Added: 0002871 | |
| 2025-05-05 15:00 | pbelov | Changeset attached | => SymmetricDS 3.16 254faf81 | 
| 2025-05-06 02:45 | pbelov | Note Added: 0002887 | |
| 2025-05-06 02:45 | pbelov | Status | resolved => closed |