syncbase: syncQL: query optimization and regex rewrite

1. Optimization: examine fewer key values by using ranges rather
   than prefixes.  The query package was written with the
   understanding that only prefixes could be specified when
   fetching key/values from the store (e.g., for the where clause
   expression 'k = "foo", all keys beginning with "foo" would be
   returned.  With this change, at most one key/value pair
   will be examined for the above case.
2. Optimize like expressions that contain no wildcards to an
   equal expression.  If a like is used where not needed, the
   expression is translated to an equals (escaped wildcard
   characters are unescaped as the equals expression does not
   expect escaped characters).
3. The computeRegularExpression function has been rewritten
   because the author (that's me) found it confusing and
   unmaintainable.

Change-Id: Ie66625f6af6baefd45f0292bbf0ac11b9f5d5d86
7 files changed
tree: cdadec30f3738f43b7fb8adbdfe0a8c7e7d2bda2
  1. v23/
  2. x/
  3. .gitignore
  4. AUTHORS
  5. CONTRIBUTORS
  6. LICENSE
  7. PATENTS
  8. VERSION