Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
5cb5c91
Add JSON_EXTRACT ES|QL scalar function
quackaplop Feb 12, 2026
364989c
Add test cases for duplicate JSON keys and null-in-array
quackaplop Feb 19, 2026
d2fbb80
Mark JSON_EXTRACT as preview and snapshot-only
quackaplop Feb 19, 2026
381164f
Optimize path parsing with constant specialization
quackaplop Feb 19, 2026
993c8ee
Add comprehensive constant-path evaluator test coverage
quackaplop Feb 19, 2026
d22f833
Add changelog entry for JSON_EXTRACT
quackaplop Feb 19, 2026
0bb37ee
Document duplicate key and null-in-array behavior
quackaplop Feb 19, 2026
71ff603
Add documentation examples for array indexing and object extraction
quackaplop Feb 19, 2026
d9525cd
Rename json_input parameter to string for consistency
quackaplop Feb 19, 2026
6c29594
Add static edge case tests for JSON_EXTRACT
quackaplop Feb 19, 2026
37d7b4b
Inline isStringOrSource and fix forbidden API
quackaplop Feb 19, 2026
9946fa8
Validate path syntax in splitPath
quackaplop Feb 19, 2026
203afe6
Accept optional JSONPath $. prefix in path
quackaplop Feb 19, 2026
2bf8858
Add bracket notation for named keys in path syntax
quackaplop Feb 19, 2026
d78d629
Support bare $ as root document accessor
quackaplop Feb 19, 2026
4414ca2
Treat empty path as root accessor like bare $
quackaplop Feb 19, 2026
7125a59
Add test for bare leading bracket array index path
quackaplop Feb 19, 2026
359fddc
Reframe docs around JSONPath subset, add unsupported syntax tests
quackaplop Feb 19, 2026
ada2d78
Improve JsonPath test coverage, RFC 9535 compliance, and error reporting
quackaplop Feb 19, 2026
7589d91
Remove reason column from unsupported JSONPath features table
quackaplop Feb 19, 2026
bbd431c
Add documentation and improve readability of JsonExtract
quackaplop Feb 23, 2026
df1bdba
Support all XContent encodings in JsonExtract for _source
quackaplop Feb 23, 2026
e6bce56
Consolidate JsonExtractStaticTests into JsonExtractTests
quackaplop Feb 23, 2026
baef9dc
[CI] Auto commit changes from spotless
Feb 23, 2026
d739f76
Replace hand-rolled JSON serialization with XContentBuilder.copyCurre…
quackaplop Feb 23, 2026
20323c7
Add tests for empty input, type mismatch, and array index out of bounds
quackaplop Feb 23, 2026
0cd0d04
Update JSON_EXTRACT.md with multi-encoding _source support and latest…
quackaplop Feb 23, 2026
22c3d5a
Simplify unsupported JSONPath features description in JSON_EXTRACT.md
quackaplop Feb 23, 2026
a7741b9
Remove non-test items from test coverage section in JSON_EXTRACT.md
quackaplop Feb 23, 2026
d389de2
Add CSV spec tests for top-level arrays and scalars
quackaplop Feb 23, 2026
771e6c8
Add CSV spec tests for top-level arrays and scalars
quackaplop Feb 23, 2026
7e3a7f5
Add internalClusterTest for JSON_EXTRACT with _source metadata
quackaplop Feb 23, 2026
c3e03e9
Add deep mixed nesting tests for JSON_EXTRACT (object.array[N].object)
quackaplop Feb 23, 2026
9ea18d8
Update JSON_EXTRACT.md test coverage with deep nesting and _source IT
quackaplop Feb 23, 2026
f664ef5
Remove JSON_EXTRACT.md spec from tracked files
quackaplop Feb 23, 2026
594ac45
Add top-level array and deep nesting examples to JSON_EXTRACT docs
quackaplop Feb 23, 2026
6d17096
Mix bare and $ prefix notation in JSON_EXTRACT doc examples
quackaplop Feb 23, 2026
5f1300f
Improve JSON_EXTRACT doc examples: show $ equivalence, use bare notat…
quackaplop Feb 23, 2026
5e9eb76
Add quoted bracket notation coverage to JSON_EXTRACT tests and docs
quackaplop Feb 23, 2026
920a80f
Clarify that dots in keys require bracket notation per JSONPath spec
quackaplop Feb 23, 2026
0f14e80
Restructure JSON_EXTRACT description for clarity on dot vs bracket no…
quackaplop Feb 23, 2026
d097cca
Clarify $ root selector is optional, supported for JSONPath compatibi…
quackaplop Feb 23, 2026
20bcc0b
Fix $ root selector docs: it is always optional, even for top-level a…
quackaplop Feb 23, 2026
d1ed30a
Restructure JsonExtractTests into parameterized suppliers, trim comments
quackaplop Feb 23, 2026
2b1622a
Fix forbidden API: use Locale.ROOT in toLowerCase
quackaplop Feb 24, 2026
0f66dd1
Address review feedback: extend BinaryScalarFunction, add version tag
quackaplop Feb 24, 2026
1fd2ac8
Revert to EsqlScalarFunction, use List.of per review feedback
quackaplop Feb 24, 2026
51aead8
Switch to tech preview, wire up docs, split description per review
quackaplop Feb 24, 2026
62e9cb1
Add FROM-index CSV spec tests with OTel-style json_logs dataset
quackaplop Feb 24, 2026
997aef2
Address nik9000 review: remove JsonExtractException, move IT to REST,…
quackaplop Feb 25, 2026
9f1572b
Add json_extract.md page file for new per-function docs structure
quackaplop Feb 25, 2026
4bbad7f
Move JsonExtract from snapshotFunctions to main registry for 9.4 tech…
quackaplop Feb 25, 2026
8b93c04
Fix json_logs CSV data loading: properly escape text/keyword JSON str…
quackaplop Feb 25, 2026
98beada
[CI] Auto commit changes from spotless
Feb 25, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions docs/changelog/142375.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
pr: 142375
summary: Add JSON_EXTRACT ES|QL scalar function
area: ES|QL
type: feature
issues: []

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
* [`ENDS_WITH`](../../functions-operators/string-functions/ends_with.md)
* [`FROM_BASE64`](../../functions-operators/string-functions/from_base64.md)
* [`HASH`](../../functions-operators/string-functions/hash.md)
* [`JSON_EXTRACT`](../../functions-operators/string-functions/json_extract.md)
* [`LEFT`](../../functions-operators/string-functions/left.md)
* [`LENGTH`](../../functions-operators/string-functions/length.md)
* [`LOCATE`](../../functions-operators/string-functions/locate.md)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
navigation_title: "JSON_EXTRACT"
mapped_pages:
- https://www.elastic.co/guide/en/elasticsearch/reference/current/esql-functions-operators.html#esql-json_extract
---

# ES|QL `JSON_EXTRACT` function [esql-json_extract]

:::{include} ../../_snippets/functions/layout/json_extract.md
:::
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions docs/reference/query-languages/toc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -278,6 +278,7 @@ toc:
- file: esql/functions-operators/string-functions/ends_with.md
- file: esql/functions-operators/string-functions/from_base64.md
- file: esql/functions-operators/string-functions/hash.md
- file: esql/functions-operators/string-functions/json_extract.md
- file: esql/functions-operators/string-functions/left.md
- file: esql/functions-operators/string-functions/length.md
- file: esql/functions-operators/string-functions/locate.md
Expand Down
Loading
Loading