Details
-
Task
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
None
Description
The value SET @@optimizer_switch='engine_condition_pushdown=on' was originally introduced in MySQL to allow the user to enable condition pushdown into the NDB cluster. But by default it was disabled.
In MariaDB we don't support NDB cluster. But we have other engines that support condition pushdown. In MariaDB-5.2 we've added a table flag that allows an engine to override condition pushdown configuration and force it to be enabled it unconditionally. For this engine only, that is.
De facto we have now the case when all engines that support condition pushdown use this override. There are two possibilities now:
- remove the value of "engine_condition_pushdown" from the @@optimizer_switch, or
- remove the override and enable engine_condition_pushdown by default.
Enabling it by defaults adds a sizable overhead into the query processing. This overhead applies always and for all engines, even if they don't support condition pushdown. And, apparently, most engines that support conditon pushdown prefer it to be always enabled.
Thus we'll remove "engine_condition_pushdown" from the @@optimizer_switch. In 10.1 it'll will do nothing and will be marked deprecated. In 10.2 it'll disappear.
Attachments
Issue Links
- blocks
-
MDEV-6514 remove HA_MUST_USE_TABLE_CONDITION_PUSHDOWN table_flag
-
- Closed
-
Activity
Summary | enable engine condition push-down by default | deprecate engine_condition_pushdown value of the @@optimizer_switch |
Description | enable engine condition push-down by default |
the setting of {{ enable engine condition push-down by default |
Description |
the setting of {{ enable engine condition push-down by default |
the setting of {{SET @@optimizer_switch='engine_condition_pushdown=on'}} was originally introduced in MySQL to allow the user to enable condition push-down into the NDB cluster. enable engine condition push-down by default |
Description |
the setting of {{SET @@optimizer_switch='engine_condition_pushdown=on'}} was originally introduced in MySQL to allow the user to enable condition push-down into the NDB cluster. enable engine condition push-down by default |
The value {{SET @@optimizer_switch='engine_condition_pushdown=on'}} was originally introduced in MySQL to allow the user to enable condition pushdown into the NDB cluster. In MariaDB we don't support NDB cluster. But we have other engines that support condition pushdown. In MariaDB-5.2 we've added a table flag that allows an engine to override condition pushdown configuration and force it to be enabled it unconditionally. For this engine only, that is. De facto we have now the case when all engines that support condition pushdown use this override. enable engine condition push-down by default |
Description |
The value {{SET @@optimizer_switch='engine_condition_pushdown=on'}} was originally introduced in MySQL to allow the user to enable condition pushdown into the NDB cluster. In MariaDB we don't support NDB cluster. But we have other engines that support condition pushdown. In MariaDB-5.2 we've added a table flag that allows an engine to override condition pushdown configuration and force it to be enabled it unconditionally. For this engine only, that is. De facto we have now the case when all engines that support condition pushdown use this override. enable engine condition push-down by default |
The value {{SET @@optimizer_switch='engine_condition_pushdown=on'}} was originally introduced in MySQL to allow the user to enable condition pushdown into the NDB cluster. But by default it was disabled. In MariaDB we don't support NDB cluster. But we have other engines that support condition pushdown. In MariaDB-5.2 we've added a table flag that allows an engine to override condition pushdown configuration and force it to be enabled it unconditionally. For this engine only, that is. De facto we have now the case when all engines that support condition pushdown use this override. There are two possibilities now: * remove the value of "engine_condition_pushdown" from the @@optimizer_switch, or * remove the override and enable engine_condition_pushdown by default. Enabling it by defaults adds a sizable overhead into the query processing. This overhead applies always and for all engines, even if they don't support condition pushdown. And, apparently, most engines that support conditon pushdown prefer it to be always enabled. Thus we'll remove "engine_condition_pushdown" from the @@optimizer_switch. In 10.1 it'll will do nothing and will be marked deprecated. In 10.2 it'll disappear. |
Status | Open [ 1 ] | In Progress [ 3 ] |
Status | In Progress [ 3 ] | Stalled [ 10000 ] |
Status | Stalled [ 10000 ] | In Progress [ 3 ] |
Component/s | Optimizer [ 10200 ] | |
Fix Version/s | 10.1.1 [ 16801 ] | |
Fix Version/s | 10.1 [ 16100 ] | |
Resolution | Fixed [ 1 ] | |
Status | In Progress [ 3 ] | Closed [ 6 ] |
Workflow | MariaDB v2 [ 51708 ] | MariaDB v3 [ 64682 ] |
Workflow | MariaDB v3 [ 64682 ] | MariaDB v4 [ 132376 ] |