locationtech / locationtech/geomesa

TEquals and similar predicates cannot be pushed down

Open
#6,872 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Scala
Stars
1.5k
Forks
446
Avg merge
1d 8h
Merged PRs (30d)
31

Description

TEquals and similar predicates cannot be pushed down

TEquals, TContains, TOverlaps, etc. do not have representations from FilterToECQL*. As such, GeoMesa cannot serialize them for predicate pushdown.

In situations where they can be eliminated by the query planner, queries will work. Otherwise, they'll fail with an exception like: "TheTContains has not an ECQL expression".

I see a few options for addressing this issue.

Option 1: Add handling in the query planner to replace these predicates with predicates which can be pushed down.

Option 2: Update or wrap FilterToECQL so that these predicates are handled.


Original JIRA Issue: https://geomesa.atlassian.net/browse/GEOMESA-3046

Key: GEOMESA-3046
Type: Story
Priority: Major
Status: To Do
Resolution: Unresolved
Reporter: James Hughes
Created: Mon, 5 Apr 2021 12:44:35 -0400
Updated: Mon, 5 Apr 2021 12:44:35 -0400
Affects Version(s): 2.0.2, 1.3.7, 2.1.4, 2.2.3, 2.3.3, 3.0.1, 2.4.2, 3.2.0, 3.1.1

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by inspecting the GeoTools FilterToECQL.java handling around lines 446-485 and GeoMesa's FilterToECQL* integration. Determine how TEquals, TContains, and TOverlaps should be represented for predicate pushdown, then verify that affected queries serialize without the reported exception.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, scala
Domain
backend, databases
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.