Skip to end of metadata
Go to start of metadata

Motivation:

Case insensitive search need to be improved to take advantage of store implementations

Contact:

Mauricio Pazos

Tracker:

http://jira.codehaus.org/browse/GEOT-2359

Tagline:

improving the search conditions

This page represents the current plan; for discussion please check the tracker link above.

Description

Nowadays, the CQL module does not implement the ILIKE statement. The CQL specification only talks about the LIKE statement so it is case-sensitive. Moreover, the GeoTool infrastructure (datastore, sql encoders, etc) saves this limitations with the case insensitive functions which allow to lowercase/uppercase an expression.  

toLowerCase(myAttribute) LIKE 'blah%'

Those functions are not supported at all by the sql encoders, so the filtering is performed completely in memory. This approach saves the problem and works well for small datasets. Additionally, the use of a toLowerCase or toUpperCase on an sql column will prevent using sql index with the resultant low performance problem.

To take advantages of this new feature some geotools components should be changed.

To begin the impact analysis I copy below some comment taken from our e-mail list.

  • extend filter Interface (PropertyIsILike filter).
  • extend the interfaces to add matchCase to Like filters,
  • change filter parsers,
  • sql encoders
  • ....

Status

This proposal is under construction.

Voting has not started yet:

Tasks

This section is used to make sure your proposal is complete (did you remember documentation?) and has enough paid or volunteer time lined up to be a success

 

no progress

(tick)

done

(error)

impeded

(warning)

lack mandate/funds/time

(question)

volunteer needed

  1. API changed based on BEFORE / AFTER
  2. Update default implementation
  3. Update wiki (both module matrix and upgrade to to 2.5 pages) |
  4. Remove deprecated code from GeoTools project
  5. Update the user guide
  6. Update or provided sample code in demo
  7. review user documentation

API Changes

BEFORE

describe subject is being changed

AFTER

describe what is being changed

Documentation Changes

list the pages effected by this proposal

Labels