Hello,
After Snowflake enabled behavior change bundle 2026_04 on our production account, our execution packages began failing. TimeXtender generates the "SCD Surrogate Hash Key" column as a virtual (computed) column with a NOT NULL constraint.
As of bundle 2026_04, Snowflake rejects NOT NULL/CHECK constraints on virtual columns at DDL time, so the CREATE TABLE statement for the TX-generated temporary staging table now fails. The same project ran fine until the bundle was enabled, and runs fine again after we temporarily disabled the bundle.
The failures occur only on tables that have History (SCD) settings enabled. Tables without history are unaffected, which is consistent with the surrogate hash key being generated specifically for the history/SCD code path.
Environment
- TimeXtender Data Integration, product/portal version: 7158.1
- Data storage: Snowflake
Error message
JavaScript execution error: Uncaught Execution of multiple statements failed on statement "CREATE TABLE ...#<temp>..." (at line 15, position 0).
SQL compilation error: Cannot set NOT NULL constraint on virtual column SCD Surrogate Hash Key.
(SYSTEM$MULTISTMT, SqlState P0000, VendorCode 100132)
The failing statement is the temporary staging table that TimeXtender generates during the transfer step, not the persisted target table.
Root cause
Snowflake BCR bundle 2026_04 (enabled by default during the 11–12 June 2026 release window, release 10.21) introduces stricter validation for virtual columns. Specifically, "Virtual column constraints disallowed": NOT NULL and CHECK constraints on virtual columns are now rejected at DDL time with error 011207 (in our case surfaced inside the multi-statement error 100132). Previously these constraints were silently accepted and not enforced.
The column definition TimeXtender produces on Snowflake is:
"SCD Surrogate Hash Key" VARCHAR(32) AS (MD5(ARRAY_TO_STRING(ARRAY_CONSTRUCT(...), ','))) NOT NULL
Because the column is defined as a virtual/computed column (AS (...)), the trailing NOT NULL is no longer permitted by Snowflake.
Reproduction / evidence
- Only tables with History (SCD) settings enabled fail; tables without history run normally.
- SELECT SYSTEM$BEHAVIOR_CHANGE_BUNDLE_STATUS('2026_04') returned ENABLED on the production account at time of failure.
- Disabling the bundle restores the old behavior and the package completes successfully (see workaround below).
Current workaround
We disabled the bundle on the production account and the package completed successfully. This is a temporary measure only — the opt-out is available until Snowflake's next BCR deployment, after which 2026_04 goes GA and can no longer be disabled.
Questions
1. We are a few versions behind. Is this already solved on one of the newer versions?
2. If no fixed build exists yet, is there a supported configuration to either (a) generate the SCD Surrogate Hash Key as a regular (non-virtual) stored column, or (b) omit the NOT NULL constraint on the generated virtual column?
3. Is this a known issue given the Snowflake 2026_04 bundle? We expect other TX + Snowflake customers to be affected as the bundle reaches GA.
We need a permanent fix in place before bundle 2026_04 reaches GA, since our current workaround expires at that point. Please let me know what additional logs or project details would help.