Viraj Jasani created PHOENIX-7641:
-------------------------------------

             Summary: Support placeholder for document field keys in BSON 
condition expression
                 Key: PHOENIX-7641
                 URL: https://issues.apache.org/jira/browse/PHOENIX-7641
             Project: Phoenix
          Issue Type: Improvement
            Reporter: Viraj Jasani


BSON supports various non-alphanumeric values as document field keys which are 
case sensitive. Not all can be used in the BSON_CONDITION_EXPRESSION() antlr 
grammar as the field key can have duplicate meaning with operator. e.g. ">" is 
valid field key, therefore condition expression "> > :val" is valid because the 
expression tries to evaluate whether the value of ">" key is greater than the 
value represented by ":val" value placeholder. However, the antlr grammar needs 
to recognize ">" as only "greater-than" symbol to avoid ambiguity.

For complex key names like this, it is recommended to provide them as key alias 
placeholders as part of the condition expression document argument, which 
already consists of value alias placeholders.

Example:
{code:java}
{
  "$EXPR": "#press = :press AND #track[0].#shot[2][0].#city.#standard[50] = 
:softly",
  "$VAL": {
    ":press": "beat",
    ":softly": "softly"
  },
  "$KEYS": {
    "#press": "press",
    "#track": "track",
    "#shot": "shot",
    "#city": "city",
    "#standard": "standard"
  }
} {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to