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
{{ message }}
Repository navigation
A re-declaration cannot clear a table's saved expiration or eviction #3934
A table's expiration and eviction are saved on its primary catalog row. A later declaration can raise or change them, but never clear them: removing expiration from @table, or declaring expiration: 0, leaves the saved value in place. Every thread that loads the table from the catalog (and every restart) keeps using the old value, while the declaring thread applies 0.
Mechanism
persistTableSettings in resources/databases.ts compares and writes expiration/eviction only when the declaration supplies a truthy value, and never deletes a field.
Table._adoptCatalogExpiration (added in #3924) adopts only positive catalog values, so it has nothing to clear until the catalog can be cleared.
A numeric string such as "0" takes a different path from 0.
Existing for keyed tables before #3924; #3924 makes keyless re-declarations reach the same code. The symmetric-reconcile request on #2564 (for #2480) is the same gap.
Expected
An explicit 0 (and, for schema-authored callers, an omitted value) clears the saved setting on disk and on every thread, without breaking callers that omit the settings because they are not authoring the schema (cluster schema events, add_attribute).
Activity