From 9ddf2809ec038380264eaed99b4ce73b9a047ee4 Mon Sep 17 00:00:00 2001 From: James Cor Date: Fri, 4 Apr 2025 11:00:21 -0700 Subject: [PATCH] fix and optimization --- enginetest/queries/script_queries.go | 6 ++++++ sql/analyzer/optimization_rules.go | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/enginetest/queries/script_queries.go b/enginetest/queries/script_queries.go index ce7b74f832..00a51d0214 100644 --- a/enginetest/queries/script_queries.go +++ b/enginetest/queries/script_queries.go @@ -7837,6 +7837,12 @@ where {123}, }, }, + { + Query: "select * from t where ((true and -1) >= 0);", + Expected: []sql.Row{ + {123}, + }, + }, }, }, { diff --git a/sql/analyzer/optimization_rules.go b/sql/analyzer/optimization_rules.go index 87472f3eae..c1e86e0b8d 100644 --- a/sql/analyzer/optimization_rules.go +++ b/sql/analyzer/optimization_rules.go @@ -264,11 +264,11 @@ func simplifyFilters(ctx *sql.Context, a *Analyzer, node sql.Node, scope *plan.S return e.RightChild, transform.NewTree, nil } - if isTrue(e.LeftChild) { + if isTrue(e.LeftChild) && types.IsBoolean(e.RightChild.Type()) { return e.RightChild, transform.NewTree, nil } - if isTrue(e.RightChild) { + if isTrue(e.RightChild) && types.IsBoolean(e.LeftChild.Type()) { return e.LeftChild, transform.NewTree, nil }