@@ -1566,30 +1566,30 @@ Y_UNIT_TEST_SUITE(KqpOlap) {
1566
1566
std::vector<TString> testData = {
1567
1567
// TPC-H Datetime predicates. Commented out predicates currently fail, need to be fixed
1568
1568
// TPCH Q1:
1569
- // R"(CAST(dt AS Timestamp) <= (CAST('1998-12-01' AS Date) - Interval("P100D")))", // - Not pushed down
1570
- // R"(CAST(dt AS Timestamp64) <= (CAST('1998-12-01' AS Date) - Interval("P100D")))", // - Not pushed down
1569
+ R"( CAST(dt AS Timestamp) <= (CAST('1998-12-01' AS Date) - Interval("P100D")))" ,
1570
+ R"( CAST(dt AS Timestamp64) <= (CAST('1998-12-01' AS Date) - Interval("P100D")))" ,
1571
1571
1572
- // R"(CAST(dt32 AS Timestamp) <= (CAST('1998-12-01' AS Date) - Interval("P100D")))", // - Not pushed down
1573
- // R"(CAST(dt32 AS Timestamp) <= (CAST('1998-12-01' AS Date32) - Interval("P100D")))", // - Not pushed down
1574
- // R"(CAST(dt32 AS Timestamp) <= (CAST('1998-12-01' AS Date32) - Interval64("P100D")))", // - Not pushed down
1575
- // R"(CAST(dt32 AS Timestamp64) <= (CAST('1998-12-01' AS Date32) - Interval64("P100D")))", // - Not pushed down
1572
+ R"( CAST(dt32 AS Timestamp) <= (CAST('1998-12-01' AS Date) - Interval("P100D")))" ,
1573
+ R"( CAST(dt32 AS Timestamp) <= (CAST('1998-12-01' AS Date32) - Interval("P100D")))" ,
1574
+ R"( CAST(dt32 AS Timestamp) <= (CAST('1998-12-01' AS Date32) - Interval64("P100D")))" ,
1575
+ R"( CAST(dt32 AS Timestamp64) <= (CAST('1998-12-01' AS Date32) - Interval64("P100D")))" ,
1576
1576
1577
1577
// TPCH Q6:
1578
- // R"(cast(dt as Timestamp) < (Date("1995-01-01") + Interval("P365D")))", // - Not pushed down
1578
+ R"( cast(dt as Timestamp) < (Date("1995-01-01") + Interval("P365D")))" ,
1579
1579
1580
1580
// Other tests:
1581
1581
1582
- // R"(dt <= (CAST('1998-12-01' AS Date) - Interval("P100D")))", // - ERROR: Function local_function has no kernel matching input types (scalar[timestamp[us]]), code: 2013
1582
+ R"( dt <= (CAST('1998-12-01' AS Date) - Interval("P100D")))" ,
1583
1583
R"( dt32 <= (CAST('1998-12-01' AS Date) - Interval("P100D")))" ,
1584
1584
R"( dt <= (CAST('1998-12-01' AS Date32) - Interval64("P100D")))" ,
1585
1585
1586
- // R"(CAST(dt as Timestamp) <= dt - inter64)", // - Not pushed down
1587
- // R"(CAST(dt as Timestamp64) <= dt - inter64)",// - Not pushed down
1588
- // R"(CAST(dt as Timestamp64) <= dt32 - inter64)",// - Not pushed down
1589
- // R"(dt <= dt - inter64)", // - Not pushed down
1590
- // R"(dt32 <= dt - inter64)", // - Not pushed down
1591
- // R"(CAST(dt32 as Date) <= dt - inter64)", // - Not pushed down
1592
- // R"(dt <= dt - CAST(inter64 as Interval))", // - Not pushed down
1586
+ R"( CAST(dt as Timestamp) <= dt - inter64)" ,
1587
+ R"( CAST(dt as Timestamp64) <= dt - inter64)" ,
1588
+ R"( CAST(dt as Timestamp64) <= dt32 - inter64)" ,
1589
+ R"( dt <= dt - inter64)" ,
1590
+ R"( dt32 <= dt - inter64)" ,
1591
+ R"( CAST(dt32 as Date) <= dt - inter64)" ,
1592
+ R"( dt <= dt - CAST(inter64 as Interval))" ,
1593
1593
R"( dt32 <= dt32 - inter64)" ,
1594
1594
R"( dt32 <= ts64 - inter64)" ,
1595
1595
@@ -1609,14 +1609,27 @@ Y_UNIT_TEST_SUITE(KqpOlap) {
1609
1609
auto result = session2.ExecuteQuery (query, NYdb::NQuery::TTxControl::NoTx (), NYdb::NQuery::TExecuteQuerySettings ().ExecMode (NQuery::EExecMode::Explain)).ExtractValueSync ();
1610
1610
UNIT_ASSERT_VALUES_EQUAL (result.GetStatus (), EStatus::SUCCESS);
1611
1611
1612
+ // if (result.GetStatus() != EStatus::SUCCESS) {
1613
+ // Cout << "Error in query planning: " << query << "\n";
1614
+ // continue;
1615
+ // }
1616
+
1612
1617
TString plan = *result.GetStats ()->GetPlan ();
1613
1618
auto ast = *result.GetStats ()->GetAst ();
1614
1619
1615
1620
UNIT_ASSERT_C (ast.find (" KqpOlapFilter" ) != std::string::npos,
1616
1621
TStringBuilder () << " Predicate not pushed down. Query: " << query);
1622
+ // if (ast.find("KqpOlapFilter") != std::string::npos) {
1623
+ // Cout << "Predicate not pushed, Query: " << query << "\n";
1624
+ // continue;
1625
+ // }
1617
1626
1618
1627
result = session2.ExecuteQuery (query, NYdb::NQuery::TTxControl::NoTx (), NYdb::NQuery::TExecuteQuerySettings ()).ExtractValueSync ();
1619
1628
UNIT_ASSERT_VALUES_EQUAL (result.GetStatus (), EStatus::SUCCESS);
1629
+ // if (result.GetStatus() != EStatus::SUCCESS) {
1630
+ // Cout << "Error in query: " << query << "\n";
1631
+ // continue;
1632
+ // }
1620
1633
}
1621
1634
}
1622
1635
@@ -1668,30 +1681,30 @@ Y_UNIT_TEST_SUITE(KqpOlap) {
1668
1681
std::vector<TString> testData = {
1669
1682
// TPC-H Datetime predicates. Commented out predicates currently fail, need to be fixed
1670
1683
// TPCH Q1:
1671
- // R"(CAST(dt AS Timestamp) <= (CAST('1998-12-01' AS Date) - Interval("P100D")))", // - Not pushed down
1672
- // R"(CAST(dt AS Timestamp64) <= (CAST('1998-12-01' AS Date) - Interval("P100D")))", // - Not pushed down
1684
+ R"( CAST(dt AS Timestamp) <= (CAST('1998-12-01' AS Date) - Interval("P100D")))" ,
1685
+ R"( CAST(dt AS Timestamp64) <= (CAST('1998-12-01' AS Date) - Interval("P100D")))" ,
1673
1686
1674
- // R"(CAST(dt32 AS Timestamp) <= (CAST('1998-12-01' AS Date) - Interval("P100D")))", // - Not pushed down
1675
- // R"(CAST(dt32 AS Timestamp) <= (CAST('1998-12-01' AS Date32) - Interval("P100D")))", // - Not pushed down
1676
- // R"(CAST(dt32 AS Timestamp) <= (CAST('1998-12-01' AS Date32) - Interval64("P100D")))", // - Not pushed down
1677
- // R"(CAST(dt32 AS Timestamp64) <= (CAST('1998-12-01' AS Date32) - Interval64("P100D")))", // - Not pushed down
1687
+ R"( CAST(dt32 AS Timestamp) <= (CAST('1998-12-01' AS Date) - Interval("P100D")))" ,
1688
+ R"( CAST(dt32 AS Timestamp) <= (CAST('1998-12-01' AS Date32) - Interval("P100D")))" ,
1689
+ R"( CAST(dt32 AS Timestamp) <= (CAST('1998-12-01' AS Date32) - Interval64("P100D")))" ,
1690
+ R"( CAST(dt32 AS Timestamp64) <= (CAST('1998-12-01' AS Date32) - Interval64("P100D")))" ,
1678
1691
1679
1692
// TPCH Q6:
1680
- // R"(cast(dt as Timestamp) < (Date("1995-01-01") + Interval("P365D")))", // - Not pushed down
1693
+ R"( cast(dt as Timestamp) < (Date("1995-01-01") + Interval("P365D")))" ,
1681
1694
1682
1695
// Other tests:
1683
1696
1684
- // R"(dt <= (CAST('1998-12-01' AS Date) - Interval("P100D")))", // - ERROR: Function local_function has no kernel matching input types (scalar[timestamp[us]]), code: 2013
1697
+ R"( dt <= (CAST('1998-12-01' AS Date) - Interval("P100D")))" ,
1685
1698
R"( dt32 <= (CAST('1998-12-01' AS Date) - Interval("P100D")))" ,
1686
1699
R"( dt <= (CAST('1998-12-01' AS Date32) - Interval64("P100D")))" ,
1687
1700
1688
- // R"(CAST(dt as Timestamp) <= dt - inter64)", // - Not pushed down
1689
- // R"(CAST(dt as Timestamp64) <= dt - inter64)",// - Not pushed down
1690
- // R"(CAST(dt as Timestamp64) <= dt32 - inter64)",// - Not pushed down
1691
- // R"(dt <= dt - inter64)", // - Not pushed down
1692
- // R"(dt32 <= dt - inter64)", // - Not pushed down
1693
- // R"(CAST(dt32 as Date) <= dt - inter64)", // - Not pushed down
1694
- // R"(dt <= dt - CAST(inter64 as Interval))", // - Not pushed down
1701
+ R"( CAST(dt as Timestamp) <= dt - inter64)" ,
1702
+ R"( CAST(dt as Timestamp64) <= dt - inter64)" ,
1703
+ R"( CAST(dt as Timestamp64) <= dt32 - inter64)" ,
1704
+ R"( dt <= dt - inter64)" ,
1705
+ R"( dt32 <= dt - inter64)" ,
1706
+ R"( CAST(dt32 as Date) <= dt - inter64)" ,
1707
+ R"( dt <= dt - CAST(inter64 as Interval))" ,
1695
1708
R"( dt32 <= dt32 - inter64)" ,
1696
1709
R"( dt32 <= ts64 - inter64)" ,
1697
1710
0 commit comments