Hi all,

I wanted to discuss the deprecation and removal of the Druid configs
related to SQL compatibility, with the eventual goal of always running
in SQL compatible mode. As of Druid 28, these are the default, but in
the interest of dramatically reducing complexity and removing a ton of
code, and also cutting a lot of our CI time in half, I would
eventually like to remove the related configs and the code that
handles the now non-default behaviors completely.

The related configs are:

runtime.properties:
druid.generic.useDefaultValueForNull  - (will become always false)
druid.expressions.useStrictBooleans - (will become always true)
druid.generic.useThreeValueLogicForNativeFilters - (will become always true)
druid.generic.ignoreNullsForStringCardinality - (irrelevant if
druid.generic.useDefaultValueForNull=false)

query context:
sqlUseBoundAndSelectors - (this is moderately related, and defaults to
value of druid.generic.useDefaultValueForNull, but enhancements to
expressions and sql planning for lookups make this totally unnecessary
to keep around)

other things to dump while we are at it:
druid.expressions.allowNestedArrays - (will become always true)

There might be additional configs which can also be removed, we can
add to this thread if we can think of them.

I would like to get the official deprecation process started now with
Druid 29, and imagine actually removing them sometime towards the end
of the year, so maybe Druid 32 or so?

Before completely removing them I think I would like to get a more in
depth migration guide in place, to help any hold-outs that are
overriding the now default SQL compatible configs so that things still
run in the legacy mode.

Thoughts? Concerns?

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@druid.apache.org
For additional commands, e-mail: dev-h...@druid.apache.org

Reply via email to