Skipping Chunks Using a Dictionary
The skipChunksUsingDictColumn flag controls whether the dictionary chunk filter runs. The filter reads the
dictionary of a dictionary-compressed TEXT column directly, without decompressing the chunk, and skips the
chunk when it can prove that no row in it satisfies every equality condition at once.
This is a third chunk-skipping layer, beside min/max metadata pruning and the chunk index. It answers a question the other two cannot: where each value on its own appears in nearly every chunk, only the combination of conditions is selective, so min/max comparison leaves every chunk in the scan.
The filter skips a chunk only on a proven negative. Anything it cannot prove keeps the chunk, so a statement returns the same rows whether the flag is on or off.
The following describes the skipChunksUsingDictColumn flag:
Data type - bool
Default value -
trueAllowed values -
true,false
Not every chunk can be decided. A column that permits nulls is filtered only where a chunk is known to hold none, and a chunk whose dictionary was written by another compression path is read rather than skipped. A query over such a column sees no change in the number of chunks scanned.
Setting the flag to false turns the filter off, which is the baseline a result can be compared against. The
flag is developer-only, so a session must have developerMode set before it can be changed.
The pool width used to read dictionaries is set by skipChunksUsingDictThreads.