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]

Reply via email to