locationtech / locationtech/geomesa
TEquals and similar predicates cannot be pushed down
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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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