locationtech / locationtech/geomesa

Improve query planning for attribute functions

Open
#5,831 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

Improve query planning for attribute functions

Currently functions fall back to full table scans. Some of them could be optimized. For example,
strToUpper(foo) = 'FOO'
could be expanded to something we can query plan correctly:
foo = 'FOO' OR foo = 'foo' OR foo = 'Foo' ... // etc
That might not be feasible for longer words of course...
List of functions here: http://docs.geoserver.org/latest/en/user/filter/function_reference.html


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

Key: GEOMESA-1990
Type: Improvement
Priority: Major
Status: To Do
Resolution: Unresolved
Reporter: Emilio Lahr-Vivaz
Created: Tue, 22 Aug 2017 13:43:23 -0400
Updated: Wed, 16 May 2018 16:14:14 -0400


Comments:

557058:da7f6dfa-f0a1-468b-aec5-2cb61273feb5 (Wed, 16 May 2018 16:14:14 -0400):

The logic is all wired through already. The method that needs to be implemented is:
org.locationtech.geomesa.filter.FilterHelper#extractFunctionBounds

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 with org.locationtech.geomesa.filter.FilterHelper#extractFunctionBounds, which the issue identifies as the unimplemented method, and consult the linked GeoServer filter function reference for the functions involved. Done means supported attribute functions produce query bounds instead of falling back to full table scans, while accounting for cases where expansion is impractical.

Written by the indexing model from the issue text.

Assessment

Tech stack
scala
Domain
databases, distributed-systems
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
65/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.