GPSS executes an internal check to determine whether upsert is supported on the target table. However, this check ignores the schema defined in the job configuration.
Instead of resolving the fully qualified table name (e.g. gss_schema.result_data), GPSS uses "search_path" settings to find the schema for the table result_data.
This leads to errors such as:
[ERROR] error when check if upsert is supported, err: pq: relation "result_data" does not exist
This happens even though the table does exist in the specified schema (gss_schema) and is fully accessible by the GPSS user.
Yaml Example:
targets:
- gpdb:
user: user01
database: test_db
schema: gss_schema
...
tables:
- table: result_data
schema: test_schema
mode:
merge:
match_columns: [...]
update_columns: [...]
Even though the table is fully qualified in YAML, GPSS attempts to locate <search_path>.result_data.
Workaround:
Explicitly set the search path for the GPSS user:
ALTER ROLE user01 SET search_path = test_schema, public;
This allows GPSS to resolve the table correctly via the PostgreSQL search path mechanism.
Fix:
As of January 2026 a fix will be released in the next version of GPSS.