Skip to content
Jody Garnett edited this page Apr 11, 2015 · 10 revisions

Extention of CQL to match abilities of Filter (ECQL)

Description

The CQL format has a couple of limitations we need to break free of:

  • propertyName OP expression
  • there is no support for FeatureId filters

This proposal will create a new query language (called TXT) that looks like CQL but offers support for the above two ideas. We would call it WKT but since we are making up is is not yet known.

Status

Voting in progress:

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

        | :white_check_mark: | :no_entry: | :warning:               | :negative_squared_cross_mark: |

------------|--------------------|------------|-------------------------|-------------------------------| no progress | done | impeded | lack mandate/funds/time | volunteer needed |

Define the BNF for TXT based on the CQL origional (see TXT Language Analysis)

  1. ✅ Code refactoring in CQLCopiler class to separate the generated parser from filter builder logic

  2. ✅ Create a TXT facade class that is method compatible with CQL

  3. ✅ Develop ID predicate

  4. ✅ Develop Comparison predicate

  5. ✅ Develop Between predicate

  6. ✅ Develop Null predicate

  7. ✅ Develop IN predicate

  8. ✅ Develop LIKE Text Pattern predicate

  9. ✅ Develop Spatial Predicate Functions

2.6.0

Update the user guide to present TXT as a non standard option.

2.6.0

Replace TXT by ECQL (src and docs).

2.6.0

Develop Spatial Relation Predicates

2.6.1

Debate

We are looking for a better name for the new language

Now: TXT

Options:

  • ECQL: Andrea, Mauricio, Matthias
  • CQL+: Jody
  • TXTQL: Adrian

Name

TXT

the user can easily see the context

TXT is a file format with a big history

ECQL

All OGC CQL statements are valid in the new language; It is clear for the users that they only need to learn the new language features; maintains the reference to CQL the original language

could be prone to error: only a letter ("E") of difference to distinguish the context

CQL+

idem ECQL

need to be url-escaped in a GET request

TXTQL

the user can easily see the context

hard to pronounce

Conclusion: it will be ECQL (thanks everybody)

API Changes

Facade Class

class ECQL {
    Expression toExpression( String );
    Expression toExpression( String, FilterFactory );
    Filter toFilter( String );
    Filter toFilter( String, FilterFactory );
    List<Filter> toFilterList(String);
    List<Filter> toFilterList(String,FilterFactory);
}

Documentation Changes

list the pages affected by this proposal

Clone this wiki locally