Skip to content

Commit 88f55db

Browse files
authored
ESQL: Add url_decode function (elastic#133494) (elastic#133761)
1 parent dcdbbe0 commit 88f55db

File tree

19 files changed

+634
-75
lines changed

19 files changed

+634
-75
lines changed

docs/reference/query-languages/esql/_snippets/functions/description/url_decode.md

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/reference/query-languages/esql/_snippets/functions/examples/url_decode.md

Lines changed: 13 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/reference/query-languages/esql/_snippets/functions/layout/url_decode.md

Lines changed: 27 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/reference/query-languages/esql/_snippets/functions/parameters/url_decode.md

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/reference/query-languages/esql/_snippets/functions/types/url_decode.md

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/reference/query-languages/esql/images/functions/url_decode.svg

Lines changed: 1 addition & 0 deletions
Loading

docs/reference/query-languages/esql/kibana/definition/functions/url_decode.json

Lines changed: 37 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/reference/query-languages/esql/kibana/docs/functions/url_decode.md

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

x-pack/plugin/esql/qa/testFixtures/src/main/resources/string.csv-spec

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2587,3 +2587,73 @@ ROW u = ["hello elastic!", "a+b-c%d", "", "!#$&'()*+,/:;=?@[]"] | EVAL u = URL_E
25872587
u:keyword
25882588
["hello+elastic%21", "a%2Bb-c%25d", "", "%21%23%24%26%27%28%29*%2B%2C%2F%3A%3B%3D%3F%40%5B%5D"]
25892589
;
2590+
2591+
url_decode sample for docs
2592+
required_capability: url_decode
2593+
2594+
// tag::url_decode[]
2595+
ROW u = "https%3A%2F%2Fwww.example.com%2Fpapers%3Fq%3Dinformation%2Bretrieval%26year%3D2024%26citations%3Dhigh" | EVAL u = URL_DECODE(u)
2596+
// end::url_decode[]
2597+
;
2598+
2599+
// tag::url_decode-result[]
2600+
u:keyword
2601+
https://www.example.com/papers?q=information+retrieval&year=2024&citations=high
2602+
// end::url_decode-result[]
2603+
;
2604+
2605+
url_decode mixed functions tests
2606+
required_capability: url_decode
2607+
2608+
FROM employees
2609+
| WHERE emp_no == 10001
2610+
| EVAL a = TRIM(URL_DECODE(first_name))
2611+
| EVAL b = URL_DECODE(TO_LOWER(first_name))
2612+
| KEEP a,b;
2613+
2614+
a:keyword | b:keyword
2615+
Georgi | georgi
2616+
;
2617+
2618+
url_decode mixed input tests
2619+
required_capability: url_decode
2620+
2621+
ROW u = "%21%23%24%26%27%28%29*%2B%2C%2F%3A%3B%3D%3F%40%5B%5D" | EVAL u = URL_DECODE(u);
2622+
2623+
u:keyword
2624+
"!#$&'()*+,/:;=?@[]"
2625+
;
2626+
2627+
combined url encode decode tests with table reads
2628+
required_capability: url_encode
2629+
required_capability: url_decode
2630+
2631+
FROM employees
2632+
| SORT emp_no
2633+
| LIMIT 10
2634+
| EVAL name = URL_DECODE(URL_ENCODE(CONCAT(gender, " - ", first_name, "+", last_name, "; ", CONCAT("@", first_name, last_name))))
2635+
| KEEP emp_no, name;
2636+
2637+
emp_no:integer | name:keyword
2638+
10001 | M - Georgi+Facello; @GeorgiFacello
2639+
10002 | F - Bezalel+Simmel; @BezalelSimmel
2640+
10003 | M - Parto+Bamford; @PartoBamford
2641+
10004 | M - Chirstian+Koblick; @ChirstianKoblick
2642+
10005 | M - Kyoichi+Maliniak; @KyoichiMaliniak
2643+
10006 | F - Anneke+Preusig; @AnnekePreusig
2644+
10007 | F - Tzvetan+Zielinski; @TzvetanZielinski
2645+
10008 | M - Saniya+Kalloufi; @SaniyaKalloufi
2646+
10009 | F - Sumant+Peac; @SumantPeac
2647+
10010 | null
2648+
;
2649+
2650+
combined url encode decode tests with random strings
2651+
required_capability: url_encode
2652+
required_capability: url_decode
2653+
2654+
ROW u = ["https://www.example.com/papers?q=information+retrieval&year=2024&citations=high", "", "!#$&'()+/:;=?@[]", "💨🔥🪨💧"]
2655+
| eval u = URL_DECODE(URL_ENCODE(u));
2656+
2657+
u:keyword
2658+
["https://www.example.com/papers?q=information+retrieval&year=2024&citations=high", "", "!#$&'()+/:;=?@[]", "💨🔥🪨💧"]
2659+
;

x-pack/plugin/esql/src/main/generated/org/elasticsearch/xpack/esql/expression/function/scalar/convert/UrlDecodeEvaluator.java

Lines changed: 153 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)