Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Filter Expression support #440

Open
wants to merge 48 commits into
base: develop-3.4
Choose a base branch
from

Commits on Apr 12, 2024

  1. Extend perf_SUITE

    This is v6 of the perf_SUITE tests.  The test adds a complex index entry to every object, and then adds a new test phase to test regex queries.
    
    There are three profiles added so the full, mini and profiling versions of perf_SUITE can be run without having to edit the file itself:
    
    e.g. ./rebar3 as perf_mini do ct --suite=test/end_to_end/perf_SUITE
    
    When testing as `perf_prof` summarised versions of the eprof results are now printed to screen.
    
    The volume of keys within the full test suite has been dropped ... just to make life easier so that test run times are not excessively increase by the new features.
    martinsumner committed Apr 12, 2024
    Configuration menu
    Copy the full SHA
    45f6fe5 View commit details
    Browse the repository at this point in the history
  2. Switch to re2 library

    The re2 library, though not offering the complete functionality of pcre, is known to be much faster in many scenarios.
    
    Switch to re2 in preparation for the OTP switch to re2 in OTP28
    martinsumner committed Apr 12, 2024
    Configuration menu
    Copy the full SHA
    4950700 View commit details
    Browse the repository at this point in the history

Commits on Apr 15, 2024

  1. Load chunk in spawned processes

    Assume to make the job of gs easier - name makes a massive difference to load time in OTP 24.
    martinsumner committed Apr 15, 2024
    Configuration menu
    Copy the full SHA
    be6cdc7 View commit details
    Browse the repository at this point in the history
  2. Correctly account for pause

    alos try and improve test stability by increasing pause
    martinsumner committed Apr 15, 2024
    Configuration menu
    Copy the full SHA
    60a4f78 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    ebc79f4 View commit details
    Browse the repository at this point in the history

Commits on Apr 16, 2024

  1. Configuration menu
    Copy the full SHA
    3b98077 View commit details
    Browse the repository at this point in the history

Commits on Apr 18, 2024

  1. Configuration menu
    Copy the full SHA
    c4f428f View commit details
    Browse the repository at this point in the history
  2. Add memory tracking during test phases

    Identify and log out memory usage by test phase
    martinsumner committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    56b2e1f View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    31f2aa4 View commit details
    Browse the repository at this point in the history

Commits on Apr 23, 2024

  1. Use macros instead (#437)

    ThomasArts authored Apr 23, 2024
    Configuration menu
    Copy the full SHA
    611b8ac View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ce5db70 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    8fe29eb View commit details
    Browse the repository at this point in the history
  4. Initial support for capture in regex

    Allow for a capturing regular expression to be passed with a filter function that will filter based on the captured output.
    
    Also allows a specific captured term to be returned as the returned term (rather than the whole index term)
    martinsumner committed Apr 23, 2024
    Configuration menu
    Copy the full SHA
    287e8be View commit details
    Browse the repository at this point in the history

Commits on Apr 24, 2024

  1. Create leveled_filter.erl

    First draft of allowing an externally provided comparison expression to be validated, parsed and evaluated
    martinsumner committed Apr 24, 2024
    Configuration menu
    Copy the full SHA
    f54d75c View commit details
    Browse the repository at this point in the history
  2. Make binary comparisons in leveled_filter

    Required as re2 can only output binary not string in captures.
    martinsumner committed Apr 24, 2024
    Configuration menu
    Copy the full SHA
    4a4a7ca View commit details
    Browse the repository at this point in the history

Commits on Apr 27, 2024

  1. Add Filter Expression support

    Allow for capture with either delimited index terms, or with regex capture, and then filtering of captured attributes using a logical expression.
    
    The xref check `locals_not_used` is now ignored due to issues with auto-generated module.
    martinsumner committed Apr 27, 2024
    Configuration menu
    Copy the full SHA
    2b61a13 View commit details
    Browse the repository at this point in the history

Commits on Apr 29, 2024

  1. Initial lexer/parser for eval pipeline

    Allow for the generation of projected attributes from an index term
    martinsumner committed Apr 29, 2024
    Configuration menu
    Copy the full SHA
    bb7c889 View commit details
    Browse the repository at this point in the history

Commits on Apr 30, 2024

  1. Update and extend the eval expression

    Allow for additional functions in eval.  Change the leveled query API to generalise application of eval/filter expressions.
    martinsumner committed Apr 30, 2024
    Configuration menu
    Copy the full SHA
    80ce3c7 View commit details
    Browse the repository at this point in the history
  2. Extend testing

    martinsumner committed Apr 30, 2024
    Configuration menu
    Copy the full SHA
    1563a7c View commit details
    Browse the repository at this point in the history

Commits on May 1, 2024

  1. Add regex eval function to pipeline

    Remove `capture` option - as all can be achieved via eval/filter.
    martinsumner committed May 1, 2024
    Configuration menu
    Copy the full SHA
    59c556a View commit details
    Browse the repository at this point in the history

Commits on May 17, 2024

  1. Remove re2

    martinsumner committed May 17, 2024
    Configuration menu
    Copy the full SHA
    2680bf2 View commit details
    Browse the repository at this point in the history

Commits on May 20, 2024

  1. Modify filter

    The Filter should expect to compare BETWEEN low AND high ... supporting high AND low may be confusing.
    
    The filter should allow for identifier to be in any location in a comparator i.e.
    
    string BETWEEN identifier AND identifier
    
    integer > identifier
    
    This make check some validity constraints harder at parse time (i.e. that High >= Low), but makes tse result more compatible.
    
    For ease, of implementation IN can only be used for a  comparison between a string and a list of strings (with the identifier representing either part).
    martinsumner committed May 20, 2024
    Configuration menu
    Copy the full SHA
    2f13237 View commit details
    Browse the repository at this point in the history

Commits on May 21, 2024

  1. Configuration menu
    Copy the full SHA
    1e22841 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    852e06a View commit details
    Browse the repository at this point in the history

Commits on May 22, 2024

  1. Updated quickcheck for filter language

    now passes 10k tests
    ThomasArts committed May 22, 2024
    Configuration menu
    Copy the full SHA
    6a24913 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    bb8f33d View commit details
    Browse the repository at this point in the history
  3. Also improve eval lexer

    ThomasArts committed May 22, 2024
    Configuration menu
    Copy the full SHA
    a1ae05c View commit details
    Browse the repository at this point in the history
  4. Be more specific re integer types

    Differentiate between positive/negative integers and non-negative integers.  Stop parsing of unusable split/index values.
    martinsumner committed May 22, 2024
    Configuration menu
    Copy the full SHA
    90c8d7b View commit details
    Browse the repository at this point in the history
  5. Basic unicode testing

    Works on index terms of type unicode_binary()
    martinsumner committed May 22, 2024
    Configuration menu
    Copy the full SHA
    fcd195f View commit details
    Browse the repository at this point in the history
  6. Expand unicode test

    martinsumner committed May 22, 2024
    Configuration menu
    Copy the full SHA
    31b476a View commit details
    Browse the repository at this point in the history

Commits on May 23, 2024

  1. Configuration menu
    Copy the full SHA
    0b7df92 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    2753de8 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    13a1760 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    1b320c6 View commit details
    Browse the repository at this point in the history
  5. Update src/leveled_evallexer.xrl

    Co-authored-by: Thomas Arts <thomas.arts@quviq.com>
    martinsumner and ThomasArts authored May 23, 2024
    Configuration menu
    Copy the full SHA
    9353f11 View commit details
    Browse the repository at this point in the history
  6. Update src/leveled_eval.erl

    Co-authored-by: Thomas Arts <thomas.arts@quviq.com>
    martinsumner and ThomasArts authored May 23, 2024
    Configuration menu
    Copy the full SHA
    afee352 View commit details
    Browse the repository at this point in the history
  7. Merge remote-tracking branch 'quviq/mas-d31-mas.i1433-filterexpressio…

    …n' into mas-d31-mas.i1433-filterexpression
    martinsumner committed May 23, 2024
    Configuration menu
    Copy the full SHA
    787c424 View commit details
    Browse the repository at this point in the history
  8. Revert "runtime type errors in eval"

    This reverts commit 1b320c6.
    martinsumner committed May 23, 2024
    Configuration menu
    Copy the full SHA
    9984943 View commit details
    Browse the repository at this point in the history

Commits on May 24, 2024

  1. Non-empty strings and type handling

    Update tot he lexers, to require strings to be non-empty, which rules out a raft of potential failure scenarios during evaluation.
    
    Handle unexpected types in eval functions by not creating  the attribute rather than throwing an exception.
    
    Add a new ends_with function, that behaves as begins_with in reverse.
    martinsumner committed May 24, 2024
    Configuration menu
    Copy the full SHA
    ac75fa9 View commit details
    Browse the repository at this point in the history
  2. Add support for combination queries on same snapshot point

    Allow for return_keys of logical combinations of queries
    martinsumner committed May 24, 2024
    Configuration menu
    Copy the full SHA
    bf69dc5 View commit details
    Browse the repository at this point in the history
  3. Setop parser to use only set operation names

    Avoid confusion over meaning of NOT
    martinsumner committed May 24, 2024
    Configuration menu
    Copy the full SHA
    9c7ff44 View commit details
    Browse the repository at this point in the history

Commits on May 27, 2024

  1. Configuration menu
    Copy the full SHA
    044537a View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    3afa892 View commit details
    Browse the repository at this point in the history

Commits on May 28, 2024

  1. Update setop to use maps as input

    Don't rely on ordering of inputs, use a numeric identifier as a key
    martinsumner committed May 28, 2024
    Configuration menu
    Copy the full SHA
    c7dd6e7 View commit details
    Browse the repository at this point in the history

Commits on Sep 27, 2024

  1. Configuration menu
    Copy the full SHA
    1f97828 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    8075de5 View commit details
    Browse the repository at this point in the history

Commits on Nov 15, 2024

  1. Configuration menu
    Copy the full SHA
    8adb50a View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    0f7ed91 View commit details
    Browse the repository at this point in the history