2.10.2.1 BNF Grammar vs 2.10.2.4.3 CONTAINS() predicate

    • Type: Bug
    • Resolution: Fixed
    • Priority: Major
    • None
    • Affects Version/s: None
    • Component/s: Domain Model
    • None

      The BNF in these two sections do not agree. 2.10.2.1 requires double-quote characters around <text search expression>, while the BNF in 2.10.2.4.3 does not, although the text of 2.10.2.4.3 requires it:

      <text search predicate> ::= CONTAINS "(" [ <qualifier> "," ] '"'<text search expression> '"' ")"

      BNF grammar structure:: CONTAINS ( [ <qualifier> ,] <text search expression> )

      The <text search expression> parameter MUST be a character string literal in quotes...

      Also, text says "Within a word or phrase, each double quote must also be escaped by a preceding backslash "\". This is confusing. How does this interact with the escaping defined in 2.10.3, as a phrase must be delimited by <quote>, and the entire <text search expression> is in quotes. So what is this:

      CONTAINS( "word \"my \"phrase\" is \"what\"")

      This could be parsed in a few different ways (some of which are illegal) - it is not possible to tell what in the above is a word containing a quote or a phrase delimited with quotes and containing a quote. Or are you supposed to double-escape the quotes (and escapes) within a <phrase>, so you can parse the difference between which quotes are doing what function? As in:

      CONTAINS( "word \"my \\\"phrase\\\" is \\\"what\"")

            Assignee:
            Ethan Gur-esh (Inactive)
            Reporter:
            Ryan McVeigh (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: