diff --git a/src/validator/LookupValidator.cpp b/src/validator/LookupValidator.cpp index f4f6acb00..2f4115422 100644 --- a/src/validator/LookupValidator.cpp +++ b/src/validator/LookupValidator.cpp @@ -148,7 +148,6 @@ StatusOr LookupValidator::handleLogicalExprOperands(LogicalExpressi } StatusOr LookupValidator::checkFilter(Expression* expr) { - // TODO: Support IN expression push down if (expr->isRelExpr()) { auto relExpr = static_cast(expr); NG_RETURN_IF_ERROR(checkRelExpr(relExpr)); diff --git a/tests/tck/features/lookup/TagIndexFullScan.feature b/tests/tck/features/lookup/TagIndexFullScan.feature index 2945a49a8..586925e33 100644 --- a/tests/tck/features/lookup/TagIndexFullScan.feature +++ b/tests/tck/features/lookup/TagIndexFullScan.feature @@ -93,6 +93,7 @@ Feature: Lookup tag index full scan | 4 | TagIndexFullScan | 0 | | | 0 | Start | | | + # TODO: Support compare operator info that has multiple column hints Scenario: Tag with relational IN/NOT IN filter When profiling query: """ @@ -103,11 +104,10 @@ Feature: Lookup tag index full scan | "Jazz" | | "Hornets" | And the execution plan should be: - | id | name | dependencies | operator info | - | 3 | Project | 2 | | - | 2 | Filter | 4 | {"condition": "(team.name IN [\"Hornets\",\"Jazz\"])"} | - | 4 | TagIndexFullScan | 0 | | - | 0 | Start | | | + | id | name | dependencies | operator info | + | 3 | Project | 4 | | + | 4 | IndexScan | 0 | | + | 0 | Start | | | When executing query: """ LOOKUP ON team WHERE team.name IN ["non-existed-name"] @@ -125,11 +125,10 @@ Feature: Lookup tag index full scan | "Tony Parker" | 36 | | "Boris Diaw" | 36 | And the execution plan should be: - | id | name | dependencies | operator info | - | 3 | Project | 2 | | - | 2 | Filter | 4 | {"condition": "(player.age IN [39,36])"} | - | 4 | TagIndexFullScan | 0 | | - | 0 | Start | | | + | id | name | dependencies | operator info | + | 3 | Project | 4 | | + | 4 | IndexScan | 0 | | + | 0 | Start | | | When profiling query: """ LOOKUP ON team WHERE team.name NOT IN ["Hornets", "Jazz"]