summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.github/config/muted_ya.txt1
-rw-r--r--ydb/core/kqp/opt/physical/predicate_collector.cpp5
-rw-r--r--ydb/core/kqp/ut/olap/decimal_ut.cpp2
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);