Skip to content

Conversation

joaostorrer
Copy link
Contributor

Closes #6966

Test examples from Oracle docs

Brief summary of the change made

Are there any other side effects of this change that we should be aware of?

Pull Request checklist

  • Please confirm you have completed any of the necessary steps below.

  • Included test cases to demonstrate any code changes, which may be one or more of the following:

    • .yml rule test cases in test/fixtures/rules/std_rule_cases.
    • .sql/.yml parser test cases in test/fixtures/dialects (note YML files can be auto generated with tox -e generate-fixture-yml).
    • Full autofix test cases in test/fixtures/linter/autofix.
    • Other.
  • Added appropriate documentation for the change.

  • Created GitHub issues for any relevant followup/future enhancements if appropriate.

Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR Summary

Adds support for Oracle's JSON_OBJECT function with both modern colon separator syntax (Oracle 19c+) and legacy VALUE keyword format.

  • Added new grammar rules in src/sqlfluff/dialects/dialect_oracle.py for JSON object content, entries, and null handling
  • Created test file test/fixtures/dialects/oracle/json_object.sql covering various syntax scenarios (KEY/VALUE keywords, wildcards, format options)
  • Added corresponding YAML test definitions in test/fixtures/dialects/oracle/json_object.yml for syntax validation
  • Implementation matches official Oracle documentation examples and maintains backward compatibility

3 files reviewed, 1 comment
Edit PR Review Bot Settings | Greptile

SELECT JSON_ARRAYAGG(JSON_OBJECT(*))
FROM departments;

SELECT JSON_OBJECT ('name' value 'Foo') FROM DUAL;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

style: 'value' keyword is lowercase here but uppercase in other examples - should be consistent throughout tests

Copy link
Contributor

Coverage Results ✅

Name    Stmts   Miss  Cover   Missing
-------------------------------------
TOTAL   19770      0   100%

249 files skipped due to complete coverage.

Copy link
Contributor

@keraion keraion left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@keraion keraion added this pull request to the merge queue Jun 30, 2025
Merged via the queue into sqlfluff:main with commit b17ad00 Jun 30, 2025
28 checks passed
@joaostorrer joaostorrer deleted the oracle_json_object branch June 30, 2025 16:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Oracle unable to parse JSON_OBJECT using colon separator
2 participants