protected override SelectExpression ProcessSqlNullability( SelectExpression selectExpression, IReadOnlyDictionary <string, object?> parametersValues, out bool canCache) { Check.NotNull(selectExpression, nameof(selectExpression)); Check.NotNull(parametersValues, nameof(parametersValues)); selectExpression = new MySqlSqlNullabilityProcessor(Dependencies, UseRelationalNulls).Process(selectExpression, parametersValues, out canCache); return(selectExpression); }
/// <inheritdoc /> protected override SelectExpression ProcessSqlNullability( SelectExpression selectExpression, IReadOnlyDictionary <string, object> parametersValues, out bool canCache) { Check.NotNull(selectExpression, nameof(selectExpression)); Check.NotNull(parametersValues, nameof(parametersValues)); selectExpression = new MySqlSqlNullabilityProcessor(Dependencies, UseRelationalNulls).Process(selectExpression, parametersValues, out canCache); if (_options.IndexOptimizedBooleanColumns) { selectExpression = (SelectExpression) new MySqlBoolOptimizingExpressionVisitor(Dependencies.SqlExpressionFactory).Visit(selectExpression); } // Run the compatibility checks as late in the query pipeline (before the actual SQL translation happens) as reasonable. selectExpression = (SelectExpression) new MySqlCompatibilityExpressionVisitor(_options).Visit(selectExpression); return(selectExpression); }