Certain number functions (ASIN, POWER, ACOS, LOG, COT, and LN), if given invalid input, return a query failure rather than return Null. In addition, Regex functions use the RE2 library rather than ICU. Check existing content to see if you must take action to prevent breaking changes before these updates are released.
Where: This change applies to Tableau Next in Enterprise, Performance, and Unlimited editions.
When: Salesforce enforces this update in March 2026. To get the major release upgrade date for your instance, go to Trust Status, search for your instance, and click the maintenance tab.
Why: These changes ensure data integrity and improve performance.
How: Calculations that use invalid inputs cause query failures (number functions) or different handling of certain regex functions. Review existing calculated fields to prevent breaking changes.
Updated number functions
- ASIN, POWER, ACOS, LOG, COT, and LN
- Previously: Invalid input returns Null
- Now: Query failure
Updated regex functions
Empty string handling. The RE2 engine handles empty strings and "zero-width" matches differently than the previous library. In RE2, an empty pattern is considered a match at every possible position (including the start of the string).
| Calculation | Old Behavior (ICU) | New Behavior (RE2) |
|---|---|---|
| REGEXP_REPLACE('', '()', 'newstring') | '' (i.e. empty string) | 'newstring' |
| REGEXP_REPLACE('', '', 'newstring') | '' (i.e. empty) | 'newstring' |
| REGEXP_REPLACE('tableau', '', 'replace') | 'tableau' | 'replacetableau' |
| REGEXP_MATCH('string', '') | FALSE | TRUE |
Unsupported syntax
RE2 prioritizes speed and security by excluding features that require complex backtracking. If your current calculated fields use the following syntax, they will need to be modified to not use the syntax in this table.
| Feature | Unsupported Syntax Example | Description |
|---|---|---|
| Backreferences | (abc)\1 | Referencing a previously captured group within the same regex. |
| Lookahead | (?=...) or (?!...) | Checking if a pattern exists (or doesn't) ahead of the current position without "consuming" characters. |
| Lookbehind | (?<=...) or (?<!...) | Checking if a pattern exists (or doesn't) behind the current position. |
| Possessive Quantifiers | .*+ or [0-9]++ | Quantifiers that do not allow the engine to "backtrack" if a match fails. |
Improved Error Handling for DATEPARSE Function
If you have existing calculations with invalid date strings, DATEPARSE returns a query error for invalid inputs instead of a Null value.