diff options
| -rw-r--r-- | .github/config/muted_ya.txt | 1 | ||||
| -rw-r--r-- | ydb/core/kqp/opt/physical/predicate_collector.cpp | 5 | ||||
| -rw-r--r-- | ydb/core/kqp/ut/olap/decimal_ut.cpp | 2 |
3 files changed, 5 insertions, 3 deletions
diff --git a/.github/config/muted_ya.txt b/.github/config/muted_ya.txt index 814c9d9664f..ba518a6760f 100644 --- a/.github/config/muted_ya.txt +++ b/.github/config/muted_ya.txt @@ -19,7 +19,6 @@ ydb/core/kqp/ut/batch_operations [*/*] chunk chunk ydb/core/kqp/ut/cost KqpCost.OlapWriteRow ydb/core/kqp/ut/federated_query/s3 sole chunk chunk ydb/core/kqp/ut/olap KqpDecimalColumnShard.TestAggregation -ydb/core/kqp/ut/olap KqpDecimalColumnShard.TestFilterCompare ydb/core/kqp/ut/olap KqpOlapDelete.DeleteWithDiffrentTypesPKColumns-isStream ydb/core/kqp/ut/olap KqpOlapJson.CompactionVariants ydb/core/kqp/ut/olap KqpOlapJson.DuplicationCompactionVariants diff --git a/ydb/core/kqp/opt/physical/predicate_collector.cpp b/ydb/core/kqp/opt/physical/predicate_collector.cpp index a3fb9c8fa73..b9d3b562720 100644 --- a/ydb/core/kqp/opt/physical/predicate_collector.cpp +++ b/ydb/core/kqp/opt/physical/predicate_collector.cpp @@ -104,6 +104,9 @@ bool IsGoodTypeForArithmeticPushdown(const TTypeAnnotationNode& type, bool allow bool IsGoodTypeForComparsionPushdown(const TTypeAnnotationNode& type, bool allowOlapApply) { const auto features = NUdf::GetDataTypeInfo(RemoveOptionality(type).Cast<TDataExprType>()->GetSlot()).Features; + if (features & NUdf::EDataTypeFeatures::DecimalType) { + return false; + } return (NUdf::EDataTypeFeatures::CanCompare & features) && (((NUdf::EDataTypeFeatures::NumericType | NUdf::EDataTypeFeatures::StringType) & features) || (allowOlapApply && ((NUdf::EDataTypeFeatures::ExtDateType | @@ -225,7 +228,7 @@ bool IsGoodTypesForPushdownCompare(const TTypeAnnotationNode& typeOne, const TTy const auto& rawOne = RemoveOptionality(typeOne); const auto& rawTwo = RemoveOptionality(typeTwo); if (IsSameAnnotation(rawOne, rawTwo)) - return true; + return IsGoodTypeForComparsionPushdown(rawOne, options.AllowOlapApply); const auto kindOne = rawOne.GetKind(); const auto kindTwo = rawTwo.GetKind(); diff --git a/ydb/core/kqp/ut/olap/decimal_ut.cpp b/ydb/core/kqp/ut/olap/decimal_ut.cpp index ed5cf35b59d..355e0d155a0 100644 --- a/ydb/core/kqp/ut/olap/decimal_ut.cpp +++ b/ydb/core/kqp/ut/olap/decimal_ut.cpp @@ -173,7 +173,7 @@ Y_UNIT_TEST_SUITE(KqpDecimalColumnShard) { "[[[\"3.14\"];1;[4]];[[\"8.16\"];2;[3]];[[\"8.492\"];3;[2]];[[\"12.46\"];4;[1]]]"); tester.CheckQuery("SELECT * FROM `/Root/Table1` WHERE dec >= cast(\"8.492\" as decimal(22,9)) order by id", - "[[[\"8.16\"];2;[3]];[[\"8.492\"];3;[2]];[[\"12.46\"];4;[1]]]"); + "[[[\"8.492\"];3;[2]];[[\"12.46\"];4;[1]]]"); }; check(tester22); |
