You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
REST catalog options and retry mechanism:
- Rename RestCatalogConnectionInfo to RestCatalogOptions throughout
- Eliminate CurrentRetryServerName static; pass opts directly through
HttpRetryFn callback (void *context + List *headers) so the 419
token-expired handler can force-refresh and patch the Authorization
header in-place
- Fix double-free in GetRestCatalogAccessToken: null out entry fields
before calling FetchRestCatalogAccessToken
Transaction-scoped state:
- Reject transactions that touch tables from different REST catalog
servers
- Replace per-table rest catalog opts deep-copy with a single
PgLakeXactRestCatalogOpts static, deep-copied into
TopTransactionContext on first use
- This avoids syscache lookups at XACT_EVENT_COMMIT time, which are
forbidden (AssertCouldGetRelation fires during TRANS_COMMIT state)
Server configuration enforcement:
- Require TYPE 'rest' on CREATE SERVER ... FOREIGN DATA WRAPPER
iceberg_catalog (reject NULL or non-rest types)
- Make FDW option names and auth type values case-insensitive
(pg_strcasecmp), while keeping server names case-sensitive
- Make reserved catalog name checks (postgres, object_store, rest)
case-insensitive via IsCatalogOwnedByExtension
- Support location_prefix server option, overriding the GUC default
- Accept user-created iceberg_catalog servers in default_catalog GUC
Tests:
- Add test_reject_modify_different_rest_catalogs_in_single_transaction
- Add test_server_location_prefix_overrides_guc
- Add tests for TYPE enforcement, case-sensitive server names, and
default_catalog GUC with user-created servers
- Remove obsolete no-TYPE-defaults-to-rest tests
Signed-off-by: sfc-gh-npuka <naisila.puka@snowflake.com>
0 commit comments