kz930 opened a new pull request, #8075:
URL: https://github.com/apache/texera/pull/8075
### What changes were proposed in this PR?
The keyword goes straight to Lucene's QueryParser, whose lexer reads a
double quote as opening a phrase. A value carrying one on its own never
terminates it, so `parse` throws before a row is read and the run ends. The
field declared only `minLength: 1`, so the form accepted the value without
objection.
It now declares the pairing rule as a pattern, the way the chart colour
settings declare what plotly accepts. The pattern is anchored, because the form
validates with `new RegExp().test`, which searches rather than anchors:
unanchored, the expression would match the leading quoteless run of any value
and turn nothing away.
Only the quote rule is stated. `(` `)` `[` `]` `{` `}` `^` and `/` also
throw in some positions, but which uses parse depends on what follows, and a
pattern strict enough to cover them would reject the phrase and range queries
that work today.
### Any related issues, documentation, discussions?
Closes #8074
### How was this PR tested?
Eight cases added to KeywordSearchOpDescSpec. They read the pattern back out
of the generated schema rather than restating it, and check both halves:
`hello`, `"a b"`, `a "b" c` and `"a" "b"` are accepted, `he"llo`, `"unclosed`
and `x"y"z"` are rejected. The rejected three are the values I confirmed
QueryParser throws on, using the Lucene version the executor builds against.
### Was this PR authored or co-authored using generative AI tooling?
Generated-by: Claude Code (Claude Opus 5)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]