Skip to content

Weasel 9.27.2

Choose a tag to compare

@jeremydmiller jeremydmiller released this 30 Aug 23:35
c35b204

One fix since 9.27.1, and like that release it is a case of the guard existing but not everywhere it needed to.

#525 — a static partition alongside a partition manager is now refused in every order. A partition manager owns the whole partition set, so a statically declared partition sitting next to one is silently ignored: the caller wrote something that cannot do what they meant.

RangePartitioning.AddRange already refused this. ListPartitioning.AddPartition did not, and neither class guarded UsePartitionManager — so even where the refusal existed, it depended on the order the fluent calls happened to be written in:

Order Range List
manager, then static partition threw accepted
static partition, then manager accepted accepted

All four now throw. A fluent builder gives the caller no reason to prefer one order, so the guard should not depend on one either.

Two smaller things fall out of the same change: ListPartitioning.UsePartitionManager now null-checks its argument like its range twin (a null manager was accepted and then silently fell back to the static partitions), and UsePartitionManager clearing EnableDefaultPartition — load-bearing rather than incidental, since it is what made the empty enumeration in #520 total rather than merely short — now has a test pinning it.

AddPartitionWithSqlLiterals is deliberately left unguarded and pinned as such: introspection populates a read table's partitions, and a table read back out of the catalog never carries a manager.

Upgrading. If a configuration of yours declared a static partition alongside a manager, it was already being ignored — you now get an exception at configuration time instead of silence. Remove whichever of the two you did not mean.

Full notes: https://weasel.jasperfx.net/release-9-27