jayzhan211 opened a new issue, #27239:
URL: https://github.com/apache/datafusion/issues/27239

   ### Is your feature request related to a problem or challenge?
   
   326 error checks in 65 `.slt` files put the full error message on the 
`statement error` / `query error` line as an escaped regex, which is hard to 
read and review:
   
   ```text
   statement error DataFusion error: This feature is not implemented: WITH 
\[NO\] DATA not supported
   CREATE TABLE foo AS SELECT 1 WITH NO DATA;
   ```
   
   As plain text after `----`, the same check is exact and readable:
   
   ```text
   statement error
   CREATE TABLE foo AS SELECT 1 WITH NO DATA;
   ----
   DataFusion error: This feature is not implemented: WITH [NO] DATA not 
supported
   
   
   ```
   
   #27217 documents this form in the sqllogictest README, and #27218 asks 
`--complete` to write it for new records. Neither changes existing lines, 
because `--complete` leaves a regex that still matches alone. This issue is 
about converting the existing lines.
   
   ### Describe the solution you'd like
   
   For each line listed by this command:
   
   ```shell
   git grep -nE '^(statement|query) error DataFusion error: 
.*\\[][(){}.+*?^$|]' -- 'datafusion/sqllogictest/test_files/*.slt'
   ```
   
   1. Remove the message from the `statement error` / `query error` line, and 
add `----` and two blank lines after the SQL. With only one blank line, the 
next record becomes part of the expected error and `--complete` deletes it.
   2. Run `cargo test --test sqllogictests -- <file> --complete`.
   3. Keep the new block only if its message equals the old regex with the 
escapes removed. If it differs, the regex matched part of the message on 
purpose, so restore the old line. For example, `ddl.slt:704` uses `.*` for a 
local path.
   4. Check `git diff`: only the converted records should change. Start from a 
file that passes, because `--complete` also rewrites any other failing record.
   
   Several small PRs (about 5 to 10 files each) are easier to review and 
conflict less: 36 open PRs touch 21 of these files today. Please comment here 
with the files you're taking.
   
   The 75 other escaped lines don't start with `DataFusion error:`, so they 
match only part of a message. Leave them as they are.
   
   ### Describe alternatives you've considered
   
   - One PR for all 65 files: a harder review, and more conflicts with open PRs.
   - Waiting for #27218: it changes only what `--complete` writes for failing 
records, so existing lines that pass stay as they are.
   
   ### Additional context
   
   Follow-up to #27217.
   
   <details>
   <summary>The steps above, tried on <code>ddl.slt</code> (7 lines)</summary>
   
   4 lines converted cleanly, for example:
   
   ```diff
   -statement error DataFusion error: Execution error: Catalog 'cat' doesn't 
exist\.
   +statement error
    drop catalog cat;
   +----
   +DataFusion error: Execution error: Catalog 'cat' doesn't exist.
   +
   ```
   
   The 3 `No files found at .*` lines were filled with the local path 
(`file:///.../test_files/scratch/ddl/empty_dir/`), so step 3 restores them.
   
   </details>
   
   ### Willingness to contribute
   
   I'm not planning to work on this myself, so anyone is welcome to pick it up. 
Feel free to ping me with questions or when you'd like a review.
   


-- 
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]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to