Browse Source

ESQL: Standardize font used in railroad diagrams (#98897)

Locks the railroad diagrams to always use the same font, this one named
`roboto mono`. This makes sure that when we render the railroad diagrams
we always size them the same way. Because everyone has a copy of roboto
mono. Because gradle resolves that dependency.
Nik Everett 2 years ago
parent
commit
ff01fb680b
38 changed files with 263 additions and 38 deletions
  1. 1 1
      docs/reference/esql/functions/abs.asciidoc
  2. 1 1
      docs/reference/esql/functions/cosh.asciidoc
  3. 1 1
      docs/reference/esql/functions/greatest.asciidoc
  4. 1 1
      docs/reference/esql/functions/pow.asciidoc
  5. 1 1
      docs/reference/esql/functions/signature/abs.svg
  6. 1 1
      docs/reference/esql/functions/signature/acos.svg
  7. 1 1
      docs/reference/esql/functions/signature/asin.svg
  8. 1 1
      docs/reference/esql/functions/signature/atan.svg
  9. 1 1
      docs/reference/esql/functions/signature/atan2.svg
  10. 1 1
      docs/reference/esql/functions/signature/case.svg
  11. 1 1
      docs/reference/esql/functions/signature/coalesce.svg
  12. 1 1
      docs/reference/esql/functions/signature/concat.svg
  13. 1 1
      docs/reference/esql/functions/signature/cos.svg
  14. 1 1
      docs/reference/esql/functions/signature/cosh.svg
  15. 1 1
      docs/reference/esql/functions/signature/e.svg
  16. 1 1
      docs/reference/esql/functions/signature/floor.svg
  17. 1 1
      docs/reference/esql/functions/signature/greatest.svg
  18. 1 1
      docs/reference/esql/functions/signature/least.svg
  19. 1 1
      docs/reference/esql/functions/signature/length.svg
  20. 1 1
      docs/reference/esql/functions/signature/log10.svg
  21. 1 1
      docs/reference/esql/functions/signature/ltrim.svg
  22. 1 1
      docs/reference/esql/functions/signature/pi.svg
  23. 1 1
      docs/reference/esql/functions/signature/pow.svg
  24. 1 1
      docs/reference/esql/functions/signature/round.svg
  25. 1 1
      docs/reference/esql/functions/signature/rtrim.svg
  26. 1 1
      docs/reference/esql/functions/signature/sin.svg
  27. 1 1
      docs/reference/esql/functions/signature/sinh.svg
  28. 1 1
      docs/reference/esql/functions/signature/split.svg
  29. 1 1
      docs/reference/esql/functions/signature/sqrt.svg
  30. 1 1
      docs/reference/esql/functions/signature/substring.svg
  31. 1 1
      docs/reference/esql/functions/signature/tan.svg
  32. 1 1
      docs/reference/esql/functions/signature/tanh.svg
  33. 1 1
      docs/reference/esql/functions/signature/tau.svg
  34. 1 1
      docs/reference/esql/functions/signature/trim.svg
  35. 5 0
      gradle/verification-metadata.xml
  36. 1 0
      x-pack/plugin/esql/build.gradle
  37. 41 4
      x-pack/plugin/esql/src/test/java/org/elasticsearch/xpack/esql/expression/function/RailRoadDiagram.java
  38. 182 0
      x-pack/plugin/esql/src/test/java/org/elasticsearch/xpack/esql/expression/function/WoffConverter.java

+ 1 - 1
docs/reference/esql/functions/abs.asciidoc

@@ -1,7 +1,7 @@
 [[esql-abs]]
 === `ABS`
 [.text-center]
-image::signature/abs.svg[]
+image::esql/functions/signature/abs.svg[Embedded,opts=inline]
 
 Returns the absolute value.
 

+ 1 - 1
docs/reference/esql/functions/cosh.asciidoc

@@ -1,7 +1,7 @@
 [[esql-cosh]]
 === `COSH`
 [.text-center]
-image::signature/cosh.svg[]
+image::esql/functions/signature/cosh.svg[Embedded,opts=inline]
 
 https://en.wikipedia.org/wiki/Hyperbolic_functions[Cosine] hyperbolic function.
 

+ 1 - 1
docs/reference/esql/functions/greatest.asciidoc

@@ -1,7 +1,7 @@
 [[esql-greatest]]
 === `GREATEST`
 [.text-center]
-image::signature/greatest.svg[]
+image::esql/functions/signature/greatest.svg[Embedded,opts=inline]
 
 Returns the maximum value from many columns. This is similar to <<esql-mv_max>>
 except it's intended to run on multiple columns at once.

+ 1 - 1
docs/reference/esql/functions/pow.asciidoc

@@ -1,7 +1,7 @@
 [[esql-pow]]
 === `POW`
 [.text-center]
-image::signature/pow.svg[]
+image::esql/functions/signature/pow.svg[Embedded,opts=inline]
 
 Returns the value of a base (first argument) raised to the power of an exponent (second argument).
 Both arguments must be numeric.

+ 1 - 1
docs/reference/esql/functions/signature/abs.svg

@@ -1 +1 @@
-<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="184" height="44" viewbox="0 0 184 44"><defs><style type="text/css">.c{fill:none;stroke:#222222;}.k{fill:#000000;font-family:Dialog,Sans-serif;font-size:20px;}.s{fill:#e4f4ff;stroke:#222222;}.syn{fill:#8D8D8D;font-family:Dialog,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 29h5m59 0h10m27 0h10m31 0h10m27 0h5"/><rect class="s" x="5" y="5" width="59" height="34"/><text class="k" x="15" y="29">ABS</text><rect class="s" x="74" y="5" width="27" height="34" rx="7"/><text class="syn" x="84" y="29">(</text><rect class="s" x="111" y="5" width="31" height="34" rx="7"/><text class="k" x="121" y="29">n</text><rect class="s" x="152" y="5" width="27" height="34" rx="7"/><text class="syn" x="162" y="29">)</text></svg>
+<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="192" height="46" viewbox="0 0 192 46"><defs><style type="text/css">#guide .c{fill:none;stroke:#222222;}#guide .k{fill:#000000;font-family:Roboto Mono,Sans-serif;font-size:20px;}#guide .s{fill:#e4f4ff;stroke:#222222;}#guide .syn{fill:#8D8D8D;font-family:Roboto Mono,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 31h5m56 0h10m32 0h10m32 0h10m32 0h5"/><rect class="s" x="5" y="5" width="56" height="36"/><text class="k" x="15" y="31">ABS</text><rect class="s" x="71" y="5" width="32" height="36" rx="7"/><text class="syn" x="81" y="31">(</text><rect class="s" x="113" y="5" width="32" height="36" rx="7"/><text class="k" x="123" y="31">n</text><rect class="s" x="155" y="5" width="32" height="36" rx="7"/><text class="syn" x="165" y="31">)</text></svg>

+ 1 - 1
docs/reference/esql/functions/signature/acos.svg

@@ -1 +1 @@
-<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="230" height="44" viewbox="0 0 230 44"><defs><style type="text/css">.c{fill:none;stroke:#222222;}.k{fill:#000000;font-family:Dialog,Sans-serif;font-size:20px;}.s{fill:#e4f4ff;stroke:#222222;}.syn{fill:#8D8D8D;font-family:Dialog,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 29h5m76 0h10m27 0h10m60 0h10m27 0h5"/><rect class="s" x="5" y="5" width="76" height="34"/><text class="k" x="15" y="29">ACOS</text><rect class="s" x="91" y="5" width="27" height="34" rx="7"/><text class="syn" x="101" y="29">(</text><rect class="s" x="128" y="5" width="60" height="34" rx="7"/><text class="k" x="138" y="29">arg1</text><rect class="s" x="198" y="5" width="27" height="34" rx="7"/><text class="syn" x="208" y="29">)</text></svg>
+<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="240" height="46" viewbox="0 0 240 46"><defs><style type="text/css">#guide .c{fill:none;stroke:#222222;}#guide .k{fill:#000000;font-family:Roboto Mono,Sans-serif;font-size:20px;}#guide .s{fill:#e4f4ff;stroke:#222222;}#guide .syn{fill:#8D8D8D;font-family:Roboto Mono,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 31h5m68 0h10m32 0h10m68 0h10m32 0h5"/><rect class="s" x="5" y="5" width="68" height="36"/><text class="k" x="15" y="31">ACOS</text><rect class="s" x="83" y="5" width="32" height="36" rx="7"/><text class="syn" x="93" y="31">(</text><rect class="s" x="125" y="5" width="68" height="36" rx="7"/><text class="k" x="135" y="31">arg1</text><rect class="s" x="203" y="5" width="32" height="36" rx="7"/><text class="syn" x="213" y="31">)</text></svg>

+ 1 - 1
docs/reference/esql/functions/signature/asin.svg

@@ -1 +1 @@
-<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="220" height="44" viewbox="0 0 220 44"><defs><style type="text/css">.c{fill:none;stroke:#222222;}.k{fill:#000000;font-family:Dialog,Sans-serif;font-size:20px;}.s{fill:#e4f4ff;stroke:#222222;}.syn{fill:#8D8D8D;font-family:Dialog,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 29h5m66 0h10m27 0h10m60 0h10m27 0h5"/><rect class="s" x="5" y="5" width="66" height="34"/><text class="k" x="15" y="29">ASIN</text><rect class="s" x="81" y="5" width="27" height="34" rx="7"/><text class="syn" x="91" y="29">(</text><rect class="s" x="118" y="5" width="60" height="34" rx="7"/><text class="k" x="128" y="29">arg1</text><rect class="s" x="188" y="5" width="27" height="34" rx="7"/><text class="syn" x="198" y="29">)</text></svg>
+<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="240" height="46" viewbox="0 0 240 46"><defs><style type="text/css">#guide .c{fill:none;stroke:#222222;}#guide .k{fill:#000000;font-family:Roboto Mono,Sans-serif;font-size:20px;}#guide .s{fill:#e4f4ff;stroke:#222222;}#guide .syn{fill:#8D8D8D;font-family:Roboto Mono,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 31h5m68 0h10m32 0h10m68 0h10m32 0h5"/><rect class="s" x="5" y="5" width="68" height="36"/><text class="k" x="15" y="31">ASIN</text><rect class="s" x="83" y="5" width="32" height="36" rx="7"/><text class="syn" x="93" y="31">(</text><rect class="s" x="125" y="5" width="68" height="36" rx="7"/><text class="k" x="135" y="31">arg1</text><rect class="s" x="203" y="5" width="32" height="36" rx="7"/><text class="syn" x="213" y="31">)</text></svg>

+ 1 - 1
docs/reference/esql/functions/signature/atan.svg

@@ -1 +1 @@
-<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="226" height="44" viewbox="0 0 226 44"><defs><style type="text/css">.c{fill:none;stroke:#222222;}.k{fill:#000000;font-family:Dialog,Sans-serif;font-size:20px;}.s{fill:#e4f4ff;stroke:#222222;}.syn{fill:#8D8D8D;font-family:Dialog,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 29h5m72 0h10m27 0h10m60 0h10m27 0h5"/><rect class="s" x="5" y="5" width="72" height="34"/><text class="k" x="15" y="29">ATAN</text><rect class="s" x="87" y="5" width="27" height="34" rx="7"/><text class="syn" x="97" y="29">(</text><rect class="s" x="124" y="5" width="60" height="34" rx="7"/><text class="k" x="134" y="29">arg1</text><rect class="s" x="194" y="5" width="27" height="34" rx="7"/><text class="syn" x="204" y="29">)</text></svg>
+<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="240" height="46" viewbox="0 0 240 46"><defs><style type="text/css">#guide .c{fill:none;stroke:#222222;}#guide .k{fill:#000000;font-family:Roboto Mono,Sans-serif;font-size:20px;}#guide .s{fill:#e4f4ff;stroke:#222222;}#guide .syn{fill:#8D8D8D;font-family:Roboto Mono,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 31h5m68 0h10m32 0h10m68 0h10m32 0h5"/><rect class="s" x="5" y="5" width="68" height="36"/><text class="k" x="15" y="31">ATAN</text><rect class="s" x="83" y="5" width="32" height="36" rx="7"/><text class="syn" x="93" y="31">(</text><rect class="s" x="125" y="5" width="68" height="36" rx="7"/><text class="k" x="135" y="31">arg1</text><rect class="s" x="203" y="5" width="32" height="36" rx="7"/><text class="syn" x="213" y="31">)</text></svg>

+ 1 - 1
docs/reference/esql/functions/signature/atan2.svg

@@ -1 +1 @@
-<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="343" height="44" viewbox="0 0 343 44"><defs><style type="text/css">.c{fill:none;stroke:#222222;}.k{fill:#000000;font-family:Dialog,Sans-serif;font-size:20px;}.s{fill:#e4f4ff;stroke:#222222;}.syn{fill:#8D8D8D;font-family:Dialog,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 29h5m83 0h10m27 0h10m60 0h10m26 0h10m60 0h10m27 0h5"/><rect class="s" x="5" y="5" width="83" height="34"/><text class="k" x="15" y="29">ATAN2</text><rect class="s" x="98" y="5" width="27" height="34" rx="7"/><text class="syn" x="108" y="29">(</text><rect class="s" x="135" y="5" width="60" height="34" rx="7"/><text class="k" x="145" y="29">arg1</text><rect class="s" x="205" y="5" width="26" height="34" rx="7"/><text class="syn" x="215" y="29">,</text><rect class="s" x="241" y="5" width="60" height="34" rx="7"/><text class="k" x="251" y="29">arg2</text><rect class="s" x="311" y="5" width="27" height="34" rx="7"/><text class="syn" x="321" y="29">)</text></svg>
+<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="372" height="46" viewbox="0 0 372 46"><defs><style type="text/css">#guide .c{fill:none;stroke:#222222;}#guide .k{fill:#000000;font-family:Roboto Mono,Sans-serif;font-size:20px;}#guide .s{fill:#e4f4ff;stroke:#222222;}#guide .syn{fill:#8D8D8D;font-family:Roboto Mono,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 31h5m80 0h10m32 0h10m68 0h10m32 0h10m68 0h10m32 0h5"/><rect class="s" x="5" y="5" width="80" height="36"/><text class="k" x="15" y="31">ATAN2</text><rect class="s" x="95" y="5" width="32" height="36" rx="7"/><text class="syn" x="105" y="31">(</text><rect class="s" x="137" y="5" width="68" height="36" rx="7"/><text class="k" x="147" y="31">arg1</text><rect class="s" x="215" y="5" width="32" height="36" rx="7"/><text class="syn" x="225" y="31">,</text><rect class="s" x="257" y="5" width="68" height="36" rx="7"/><text class="k" x="267" y="31">arg2</text><rect class="s" x="335" y="5" width="32" height="36" rx="7"/><text class="syn" x="345" y="31">)</text></svg>

+ 1 - 1
docs/reference/esql/functions/signature/case.svg

@@ -1 +1 @@
-<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="413" height="74" viewbox="0 0 413 74"><defs><style type="text/css">.c{fill:none;stroke:#222222;}.k{fill:#000000;font-family:Dialog,Sans-serif;font-size:20px;}.s{fill:#e4f4ff;stroke:#222222;}.syn{fill:#8D8D8D;font-family:Dialog,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 44h5m73 0h10m27 0h10m60 0h50m-5 0q-5 0-5-5v-24q0-5 5-5h106q5 0 5 5v24q0 5-5 5m-75 0h10m60 0h40m-171 0q5 0 5 5v10q0 5 5 5h146q5 0 5-5v-10q0-5 5-5m5 0h10m27 0h5"/><rect class="s" x="5" y="20" width="73" height="34"/><text class="k" x="15" y="44">CASE</text><rect class="s" x="88" y="20" width="27" height="34" rx="7"/><text class="syn" x="98" y="44">(</text><rect class="s" x="125" y="20" width="60" height="34" rx="7"/><text class="k" x="135" y="44">arg1</text><rect class="s" x="235" y="20" width="26" height="34" rx="7"/><text class="syn" x="245" y="44">,</text><rect class="s" x="271" y="20" width="60" height="34" rx="7"/><text class="k" x="281" y="44">arg2</text><rect class="s" x="381" y="20" width="27" height="34" rx="7"/><text class="syn" x="391" y="44">)</text></svg>
+<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="440" height="76" viewbox="0 0 440 76"><defs><style type="text/css">#guide .c{fill:none;stroke:#222222;}#guide .k{fill:#000000;font-family:Roboto Mono,Sans-serif;font-size:20px;}#guide .s{fill:#e4f4ff;stroke:#222222;}#guide .syn{fill:#8D8D8D;font-family:Roboto Mono,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 46h5m68 0h10m32 0h10m68 0h50m-5 0q-5 0-5-5v-26q0-5 5-5h120q5 0 5 5v26q0 5-5 5m-83 0h10m68 0h40m-185 0q5 0 5 5v10q0 5 5 5h160q5 0 5-5v-10q0-5 5-5m5 0h10m32 0h5"/><rect class="s" x="5" y="20" width="68" height="36"/><text class="k" x="15" y="46">CASE</text><rect class="s" x="83" y="20" width="32" height="36" rx="7"/><text class="syn" x="93" y="46">(</text><rect class="s" x="125" y="20" width="68" height="36" rx="7"/><text class="k" x="135" y="46">arg1</text><rect class="s" x="243" y="20" width="32" height="36" rx="7"/><text class="syn" x="253" y="46">,</text><rect class="s" x="285" y="20" width="68" height="36" rx="7"/><text class="k" x="295" y="46">arg2</text><rect class="s" x="403" y="20" width="32" height="36" rx="7"/><text class="syn" x="413" y="46">)</text></svg>

+ 1 - 1
docs/reference/esql/functions/signature/coalesce.svg

@@ -1 +1 @@
-<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="467" height="74" viewbox="0 0 467 74"><defs><style type="text/css">.c{fill:none;stroke:#222222;}.k{fill:#000000;font-family:Dialog,Sans-serif;font-size:20px;}.s{fill:#e4f4ff;stroke:#222222;}.syn{fill:#8D8D8D;font-family:Dialog,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 44h5m127 0h10m27 0h10m60 0h50m-5 0q-5 0-5-5v-24q0-5 5-5h106q5 0 5 5v24q0 5-5 5m-75 0h10m60 0h40m-171 0q5 0 5 5v10q0 5 5 5h146q5 0 5-5v-10q0-5 5-5m5 0h10m27 0h5"/><rect class="s" x="5" y="20" width="127" height="34"/><text class="k" x="15" y="44">COALESCE</text><rect class="s" x="142" y="20" width="27" height="34" rx="7"/><text class="syn" x="152" y="44">(</text><rect class="s" x="179" y="20" width="60" height="34" rx="7"/><text class="k" x="189" y="44">arg1</text><rect class="s" x="289" y="20" width="26" height="34" rx="7"/><text class="syn" x="299" y="44">,</text><rect class="s" x="325" y="20" width="60" height="34" rx="7"/><text class="k" x="335" y="44">arg2</text><rect class="s" x="435" y="20" width="27" height="34" rx="7"/><text class="syn" x="445" y="44">)</text></svg>
+<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="488" height="76" viewbox="0 0 488 76"><defs><style type="text/css">#guide .c{fill:none;stroke:#222222;}#guide .k{fill:#000000;font-family:Roboto Mono,Sans-serif;font-size:20px;}#guide .s{fill:#e4f4ff;stroke:#222222;}#guide .syn{fill:#8D8D8D;font-family:Roboto Mono,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 46h5m116 0h10m32 0h10m68 0h50m-5 0q-5 0-5-5v-26q0-5 5-5h120q5 0 5 5v26q0 5-5 5m-83 0h10m68 0h40m-185 0q5 0 5 5v10q0 5 5 5h160q5 0 5-5v-10q0-5 5-5m5 0h10m32 0h5"/><rect class="s" x="5" y="20" width="116" height="36"/><text class="k" x="15" y="46">COALESCE</text><rect class="s" x="131" y="20" width="32" height="36" rx="7"/><text class="syn" x="141" y="46">(</text><rect class="s" x="173" y="20" width="68" height="36" rx="7"/><text class="k" x="183" y="46">arg1</text><rect class="s" x="291" y="20" width="32" height="36" rx="7"/><text class="syn" x="301" y="46">,</text><rect class="s" x="333" y="20" width="68" height="36" rx="7"/><text class="k" x="343" y="46">arg2</text><rect class="s" x="451" y="20" width="32" height="36" rx="7"/><text class="syn" x="461" y="46">)</text></svg>

+ 1 - 1
docs/reference/esql/functions/signature/concat.svg

@@ -1 +1 @@
-<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="443" height="74" viewbox="0 0 443 74"><defs><style type="text/css">.c{fill:none;stroke:#222222;}.k{fill:#000000;font-family:Dialog,Sans-serif;font-size:20px;}.s{fill:#e4f4ff;stroke:#222222;}.syn{fill:#8D8D8D;font-family:Dialog,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 44h5m103 0h10m27 0h10m60 0h50m-5 0q-5 0-5-5v-24q0-5 5-5h106q5 0 5 5v24q0 5-5 5m-75 0h10m60 0h40m-171 0q5 0 5 5v10q0 5 5 5h146q5 0 5-5v-10q0-5 5-5m5 0h10m27 0h5"/><rect class="s" x="5" y="20" width="103" height="34"/><text class="k" x="15" y="44">CONCAT</text><rect class="s" x="118" y="20" width="27" height="34" rx="7"/><text class="syn" x="128" y="44">(</text><rect class="s" x="155" y="20" width="60" height="34" rx="7"/><text class="k" x="165" y="44">arg1</text><rect class="s" x="265" y="20" width="26" height="34" rx="7"/><text class="syn" x="275" y="44">,</text><rect class="s" x="301" y="20" width="60" height="34" rx="7"/><text class="k" x="311" y="44">arg2</text><rect class="s" x="411" y="20" width="27" height="34" rx="7"/><text class="syn" x="421" y="44">)</text></svg>
+<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="464" height="76" viewbox="0 0 464 76"><defs><style type="text/css">#guide .c{fill:none;stroke:#222222;}#guide .k{fill:#000000;font-family:Roboto Mono,Sans-serif;font-size:20px;}#guide .s{fill:#e4f4ff;stroke:#222222;}#guide .syn{fill:#8D8D8D;font-family:Roboto Mono,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 46h5m92 0h10m32 0h10m68 0h50m-5 0q-5 0-5-5v-26q0-5 5-5h120q5 0 5 5v26q0 5-5 5m-83 0h10m68 0h40m-185 0q5 0 5 5v10q0 5 5 5h160q5 0 5-5v-10q0-5 5-5m5 0h10m32 0h5"/><rect class="s" x="5" y="20" width="92" height="36"/><text class="k" x="15" y="46">CONCAT</text><rect class="s" x="107" y="20" width="32" height="36" rx="7"/><text class="syn" x="117" y="46">(</text><rect class="s" x="149" y="20" width="68" height="36" rx="7"/><text class="k" x="159" y="46">arg1</text><rect class="s" x="267" y="20" width="32" height="36" rx="7"/><text class="syn" x="277" y="46">,</text><rect class="s" x="309" y="20" width="68" height="36" rx="7"/><text class="k" x="319" y="46">arg2</text><rect class="s" x="427" y="20" width="32" height="36" rx="7"/><text class="syn" x="437" y="46">)</text></svg>

+ 1 - 1
docs/reference/esql/functions/signature/cos.svg

@@ -1 +1 @@
-<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="217" height="44" viewbox="0 0 217 44"><defs><style type="text/css">.c{fill:none;stroke:#222222;}.k{fill:#000000;font-family:Dialog,Sans-serif;font-size:20px;}.s{fill:#e4f4ff;stroke:#222222;}.syn{fill:#8D8D8D;font-family:Dialog,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 29h5m63 0h10m27 0h10m60 0h10m27 0h5"/><rect class="s" x="5" y="5" width="63" height="34"/><text class="k" x="15" y="29">COS</text><rect class="s" x="78" y="5" width="27" height="34" rx="7"/><text class="syn" x="88" y="29">(</text><rect class="s" x="115" y="5" width="60" height="34" rx="7"/><text class="k" x="125" y="29">arg1</text><rect class="s" x="185" y="5" width="27" height="34" rx="7"/><text class="syn" x="195" y="29">)</text></svg>
+<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="228" height="46" viewbox="0 0 228 46"><defs><style type="text/css">#guide .c{fill:none;stroke:#222222;}#guide .k{fill:#000000;font-family:Roboto Mono,Sans-serif;font-size:20px;}#guide .s{fill:#e4f4ff;stroke:#222222;}#guide .syn{fill:#8D8D8D;font-family:Roboto Mono,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 31h5m56 0h10m32 0h10m68 0h10m32 0h5"/><rect class="s" x="5" y="5" width="56" height="36"/><text class="k" x="15" y="31">COS</text><rect class="s" x="71" y="5" width="32" height="36" rx="7"/><text class="syn" x="81" y="31">(</text><rect class="s" x="113" y="5" width="68" height="36" rx="7"/><text class="k" x="123" y="31">arg1</text><rect class="s" x="191" y="5" width="32" height="36" rx="7"/><text class="syn" x="201" y="31">)</text></svg>

+ 1 - 1
docs/reference/esql/functions/signature/cosh.svg

@@ -1 +1 @@
-<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="231" height="44" viewbox="0 0 231 44"><defs><style type="text/css">.c{fill:none;stroke:#222222;}.k{fill:#000000;font-family:Dialog,Sans-serif;font-size:20px;}.s{fill:#e4f4ff;stroke:#222222;}.syn{fill:#8D8D8D;font-family:Dialog,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 29h5m77 0h10m27 0h10m60 0h10m27 0h5"/><rect class="s" x="5" y="5" width="77" height="34"/><text class="k" x="15" y="29">COSH</text><rect class="s" x="92" y="5" width="27" height="34" rx="7"/><text class="syn" x="102" y="29">(</text><rect class="s" x="129" y="5" width="60" height="34" rx="7"/><text class="k" x="139" y="29">arg1</text><rect class="s" x="199" y="5" width="27" height="34" rx="7"/><text class="syn" x="209" y="29">)</text></svg>
+<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="240" height="46" viewbox="0 0 240 46"><defs><style type="text/css">#guide .c{fill:none;stroke:#222222;}#guide .k{fill:#000000;font-family:Roboto Mono,Sans-serif;font-size:20px;}#guide .s{fill:#e4f4ff;stroke:#222222;}#guide .syn{fill:#8D8D8D;font-family:Roboto Mono,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 31h5m68 0h10m32 0h10m68 0h10m32 0h5"/><rect class="s" x="5" y="5" width="68" height="36"/><text class="k" x="15" y="31">COSH</text><rect class="s" x="83" y="5" width="32" height="36" rx="7"/><text class="syn" x="93" y="31">(</text><rect class="s" x="125" y="5" width="68" height="36" rx="7"/><text class="k" x="135" y="31">arg1</text><rect class="s" x="203" y="5" width="32" height="36" rx="7"/><text class="syn" x="213" y="31">)</text></svg>

+ 1 - 1
docs/reference/esql/functions/signature/e.svg

@@ -1 +1 @@
-<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="117" height="44" viewbox="0 0 117 44"><defs><style type="text/css">.c{fill:none;stroke:#222222;}.k{fill:#000000;font-family:Dialog,Sans-serif;font-size:20px;}.s{fill:#e4f4ff;stroke:#222222;}.syn{fill:#8D8D8D;font-family:Dialog,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 29h5m33 0h10m27 0h10m27 0h5"/><rect class="s" x="5" y="5" width="33" height="34"/><text class="k" x="15" y="29">E</text><rect class="s" x="48" y="5" width="27" height="34" rx="7"/><text class="syn" x="58" y="29">(</text><rect class="s" x="85" y="5" width="27" height="34" rx="7"/><text class="syn" x="95" y="29">)</text></svg>
+<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="126" height="46" viewbox="0 0 126 46"><defs><style type="text/css">#guide .c{fill:none;stroke:#222222;}#guide .k{fill:#000000;font-family:Roboto Mono,Sans-serif;font-size:20px;}#guide .s{fill:#e4f4ff;stroke:#222222;}#guide .syn{fill:#8D8D8D;font-family:Roboto Mono,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 31h5m32 0h10m32 0h10m32 0h5"/><rect class="s" x="5" y="5" width="32" height="36"/><text class="k" x="15" y="31">E</text><rect class="s" x="47" y="5" width="32" height="36" rx="7"/><text class="syn" x="57" y="31">(</text><rect class="s" x="89" y="5" width="32" height="36" rx="7"/><text class="syn" x="99" y="31">)</text></svg>

+ 1 - 1
docs/reference/esql/functions/signature/floor.svg

@@ -1 +1 @@
-<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="243" height="44" viewbox="0 0 243 44"><defs><style type="text/css">.c{fill:none;stroke:#222222;}.k{fill:#000000;font-family:Dialog,Sans-serif;font-size:20px;}.s{fill:#e4f4ff;stroke:#222222;}.syn{fill:#8D8D8D;font-family:Dialog,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 29h5m89 0h10m27 0h10m60 0h10m27 0h5"/><rect class="s" x="5" y="5" width="89" height="34"/><text class="k" x="15" y="29">FLOOR</text><rect class="s" x="104" y="5" width="27" height="34" rx="7"/><text class="syn" x="114" y="29">(</text><rect class="s" x="141" y="5" width="60" height="34" rx="7"/><text class="k" x="151" y="29">arg1</text><rect class="s" x="211" y="5" width="27" height="34" rx="7"/><text class="syn" x="221" y="29">)</text></svg>
+<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="252" height="46" viewbox="0 0 252 46"><defs><style type="text/css">#guide .c{fill:none;stroke:#222222;}#guide .k{fill:#000000;font-family:Roboto Mono,Sans-serif;font-size:20px;}#guide .s{fill:#e4f4ff;stroke:#222222;}#guide .syn{fill:#8D8D8D;font-family:Roboto Mono,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 31h5m80 0h10m32 0h10m68 0h10m32 0h5"/><rect class="s" x="5" y="5" width="80" height="36"/><text class="k" x="15" y="31">FLOOR</text><rect class="s" x="95" y="5" width="32" height="36" rx="7"/><text class="syn" x="105" y="31">(</text><rect class="s" x="137" y="5" width="68" height="36" rx="7"/><text class="k" x="147" y="31">arg1</text><rect class="s" x="215" y="5" width="32" height="36" rx="7"/><text class="syn" x="225" y="31">)</text></svg>

+ 1 - 1
docs/reference/esql/functions/signature/greatest.svg

@@ -1 +1 @@
-<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="453" height="74" viewbox="0 0 453 74"><defs><style type="text/css">.c{fill:none;stroke:#222222;}.k{fill:#000000;font-family:Dialog,Sans-serif;font-size:20px;}.s{fill:#e4f4ff;stroke:#222222;}.syn{fill:#8D8D8D;font-family:Dialog,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 44h5m126 0h10m27 0h10m53 0h50m-5 0q-5 0-5-5v-24q0-5 5-5h100q5 0 5 5v24q0 5-5 5m-69 0h10m54 0h40m-165 0q5 0 5 5v10q0 5 5 5h140q5 0 5-5v-10q0-5 5-5m5 0h10m27 0h5"/><rect class="s" x="5" y="20" width="126" height="34"/><text class="k" x="15" y="44">GREATEST</text><rect class="s" x="141" y="20" width="27" height="34" rx="7"/><text class="syn" x="151" y="44">(</text><rect class="s" x="178" y="20" width="53" height="34" rx="7"/><text class="k" x="188" y="44">first</text><rect class="s" x="281" y="20" width="26" height="34" rx="7"/><text class="syn" x="291" y="44">,</text><rect class="s" x="317" y="20" width="54" height="34" rx="7"/><text class="k" x="327" y="44">rest</text><rect class="s" x="421" y="20" width="27" height="34" rx="7"/><text class="syn" x="431" y="44">)</text></svg>
+<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="500" height="76" viewbox="0 0 500 76"><defs><style type="text/css">#guide .c{fill:none;stroke:#222222;}#guide .k{fill:#000000;font-family:Roboto Mono,Sans-serif;font-size:20px;}#guide .s{fill:#e4f4ff;stroke:#222222;}#guide .syn{fill:#8D8D8D;font-family:Roboto Mono,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 46h5m116 0h10m32 0h10m80 0h50m-5 0q-5 0-5-5v-26q0-5 5-5h120q5 0 5 5v26q0 5-5 5m-83 0h10m68 0h40m-185 0q5 0 5 5v10q0 5 5 5h160q5 0 5-5v-10q0-5 5-5m5 0h10m32 0h5"/><rect class="s" x="5" y="20" width="116" height="36"/><text class="k" x="15" y="46">GREATEST</text><rect class="s" x="131" y="20" width="32" height="36" rx="7"/><text class="syn" x="141" y="46">(</text><rect class="s" x="173" y="20" width="80" height="36" rx="7"/><text class="k" x="183" y="46">first</text><rect class="s" x="303" y="20" width="32" height="36" rx="7"/><text class="syn" x="313" y="46">,</text><rect class="s" x="345" y="20" width="68" height="36" rx="7"/><text class="k" x="355" y="46">rest</text><rect class="s" x="463" y="20" width="32" height="36" rx="7"/><text class="syn" x="473" y="46">)</text></svg>

+ 1 - 1
docs/reference/esql/functions/signature/least.svg

@@ -1 +1 @@
-<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="422" height="74" viewbox="0 0 422 74"><defs><style type="text/css">.c{fill:none;stroke:#222222;}.k{fill:#000000;font-family:Dialog,Sans-serif;font-size:20px;}.s{fill:#e4f4ff;stroke:#222222;}.syn{fill:#8D8D8D;font-family:Dialog,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 44h5m82 0h10m27 0h10m60 0h50m-5 0q-5 0-5-5v-24q0-5 5-5h106q5 0 5 5v24q0 5-5 5m-75 0h10m60 0h40m-171 0q5 0 5 5v10q0 5 5 5h146q5 0 5-5v-10q0-5 5-5m5 0h10m27 0h5"/><rect class="s" x="5" y="20" width="82" height="34"/><text class="k" x="15" y="44">LEAST</text><rect class="s" x="97" y="20" width="27" height="34" rx="7"/><text class="syn" x="107" y="44">(</text><rect class="s" x="134" y="20" width="60" height="34" rx="7"/><text class="k" x="144" y="44">arg1</text><rect class="s" x="244" y="20" width="26" height="34" rx="7"/><text class="syn" x="254" y="44">,</text><rect class="s" x="280" y="20" width="60" height="34" rx="7"/><text class="k" x="290" y="44">arg2</text><rect class="s" x="390" y="20" width="27" height="34" rx="7"/><text class="syn" x="400" y="44">)</text></svg>
+<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="452" height="76" viewbox="0 0 452 76"><defs><style type="text/css">#guide .c{fill:none;stroke:#222222;}#guide .k{fill:#000000;font-family:Roboto Mono,Sans-serif;font-size:20px;}#guide .s{fill:#e4f4ff;stroke:#222222;}#guide .syn{fill:#8D8D8D;font-family:Roboto Mono,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 46h5m80 0h10m32 0h10m68 0h50m-5 0q-5 0-5-5v-26q0-5 5-5h120q5 0 5 5v26q0 5-5 5m-83 0h10m68 0h40m-185 0q5 0 5 5v10q0 5 5 5h160q5 0 5-5v-10q0-5 5-5m5 0h10m32 0h5"/><rect class="s" x="5" y="20" width="80" height="36"/><text class="k" x="15" y="46">LEAST</text><rect class="s" x="95" y="20" width="32" height="36" rx="7"/><text class="syn" x="105" y="46">(</text><rect class="s" x="137" y="20" width="68" height="36" rx="7"/><text class="k" x="147" y="46">arg1</text><rect class="s" x="255" y="20" width="32" height="36" rx="7"/><text class="syn" x="265" y="46">,</text><rect class="s" x="297" y="20" width="68" height="36" rx="7"/><text class="k" x="307" y="46">arg2</text><rect class="s" x="415" y="20" width="32" height="36" rx="7"/><text class="syn" x="425" y="46">)</text></svg>

+ 1 - 1
docs/reference/esql/functions/signature/length.svg

@@ -1 +1 @@
-<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="254" height="44" viewbox="0 0 254 44"><defs><style type="text/css">.c{fill:none;stroke:#222222;}.k{fill:#000000;font-family:Dialog,Sans-serif;font-size:20px;}.s{fill:#e4f4ff;stroke:#222222;}.syn{fill:#8D8D8D;font-family:Dialog,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 29h5m100 0h10m27 0h10m60 0h10m27 0h5"/><rect class="s" x="5" y="5" width="100" height="34"/><text class="k" x="15" y="29">LENGTH</text><rect class="s" x="115" y="5" width="27" height="34" rx="7"/><text class="syn" x="125" y="29">(</text><rect class="s" x="152" y="5" width="60" height="34" rx="7"/><text class="k" x="162" y="29">arg1</text><rect class="s" x="222" y="5" width="27" height="34" rx="7"/><text class="syn" x="232" y="29">)</text></svg>
+<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="264" height="46" viewbox="0 0 264 46"><defs><style type="text/css">#guide .c{fill:none;stroke:#222222;}#guide .k{fill:#000000;font-family:Roboto Mono,Sans-serif;font-size:20px;}#guide .s{fill:#e4f4ff;stroke:#222222;}#guide .syn{fill:#8D8D8D;font-family:Roboto Mono,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 31h5m92 0h10m32 0h10m68 0h10m32 0h5"/><rect class="s" x="5" y="5" width="92" height="36"/><text class="k" x="15" y="31">LENGTH</text><rect class="s" x="107" y="5" width="32" height="36" rx="7"/><text class="syn" x="117" y="31">(</text><rect class="s" x="149" y="5" width="68" height="36" rx="7"/><text class="k" x="159" y="31">arg1</text><rect class="s" x="227" y="5" width="32" height="36" rx="7"/><text class="syn" x="237" y="31">)</text></svg>

+ 1 - 1
docs/reference/esql/functions/signature/log10.svg

@@ -1 +1 @@
-<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="239" height="44" viewbox="0 0 239 44"><defs><style type="text/css">.c{fill:none;stroke:#222222;}.k{fill:#000000;font-family:Dialog,Sans-serif;font-size:20px;}.s{fill:#e4f4ff;stroke:#222222;}.syn{fill:#8D8D8D;font-family:Dialog,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 29h5m85 0h10m27 0h10m60 0h10m27 0h5"/><rect class="s" x="5" y="5" width="85" height="34"/><text class="k" x="15" y="29">LOG10</text><rect class="s" x="100" y="5" width="27" height="34" rx="7"/><text class="syn" x="110" y="29">(</text><rect class="s" x="137" y="5" width="60" height="34" rx="7"/><text class="k" x="147" y="29">arg1</text><rect class="s" x="207" y="5" width="27" height="34" rx="7"/><text class="syn" x="217" y="29">)</text></svg>
+<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="252" height="46" viewbox="0 0 252 46"><defs><style type="text/css">#guide .c{fill:none;stroke:#222222;}#guide .k{fill:#000000;font-family:Roboto Mono,Sans-serif;font-size:20px;}#guide .s{fill:#e4f4ff;stroke:#222222;}#guide .syn{fill:#8D8D8D;font-family:Roboto Mono,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 31h5m80 0h10m32 0h10m68 0h10m32 0h5"/><rect class="s" x="5" y="5" width="80" height="36"/><text class="k" x="15" y="31">LOG10</text><rect class="s" x="95" y="5" width="32" height="36" rx="7"/><text class="syn" x="105" y="31">(</text><rect class="s" x="137" y="5" width="68" height="36" rx="7"/><text class="k" x="147" y="31">arg1</text><rect class="s" x="215" y="5" width="32" height="36" rx="7"/><text class="syn" x="225" y="31">)</text></svg>

+ 1 - 1
docs/reference/esql/functions/signature/ltrim.svg

@@ -1 +1 @@
-<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="234" height="44" viewbox="0 0 234 44"><defs><style type="text/css">.c{fill:none;stroke:#222222;}.k{fill:#000000;font-family:Dialog,Sans-serif;font-size:20px;}.s{fill:#e4f4ff;stroke:#222222;}.syn{fill:#8D8D8D;font-family:Dialog,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 29h5m80 0h10m27 0h10m60 0h10m27 0h5"/><rect class="s" x="5" y="5" width="80" height="34"/><text class="k" x="15" y="29">LTRIM</text><rect class="s" x="95" y="5" width="27" height="34" rx="7"/><text class="syn" x="105" y="29">(</text><rect class="s" x="132" y="5" width="60" height="34" rx="7"/><text class="k" x="142" y="29">arg1</text><rect class="s" x="202" y="5" width="27" height="34" rx="7"/><text class="syn" x="212" y="29">)</text></svg>
+<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="252" height="46" viewbox="0 0 252 46"><defs><style type="text/css">#guide .c{fill:none;stroke:#222222;}#guide .k{fill:#000000;font-family:Roboto Mono,Sans-serif;font-size:20px;}#guide .s{fill:#e4f4ff;stroke:#222222;}#guide .syn{fill:#8D8D8D;font-family:Roboto Mono,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 31h5m80 0h10m32 0h10m68 0h10m32 0h5"/><rect class="s" x="5" y="5" width="80" height="36"/><text class="k" x="15" y="31">LTRIM</text><rect class="s" x="95" y="5" width="32" height="36" rx="7"/><text class="syn" x="105" y="31">(</text><rect class="s" x="137" y="5" width="68" height="36" rx="7"/><text class="k" x="147" y="31">arg1</text><rect class="s" x="215" y="5" width="32" height="36" rx="7"/><text class="syn" x="225" y="31">)</text></svg>

+ 1 - 1
docs/reference/esql/functions/signature/pi.svg

@@ -1 +1 @@
-<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="123" height="44" viewbox="0 0 123 44"><defs><style type="text/css">.c{fill:none;stroke:#222222;}.k{fill:#000000;font-family:Dialog,Sans-serif;font-size:20px;}.s{fill:#e4f4ff;stroke:#222222;}.syn{fill:#8D8D8D;font-family:Dialog,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 29h5m39 0h10m27 0h10m27 0h5"/><rect class="s" x="5" y="5" width="39" height="34"/><text class="k" x="15" y="29">PI</text><rect class="s" x="54" y="5" width="27" height="34" rx="7"/><text class="syn" x="64" y="29">(</text><rect class="s" x="91" y="5" width="27" height="34" rx="7"/><text class="syn" x="101" y="29">)</text></svg>
+<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="138" height="46" viewbox="0 0 138 46"><defs><style type="text/css">#guide .c{fill:none;stroke:#222222;}#guide .k{fill:#000000;font-family:Roboto Mono,Sans-serif;font-size:20px;}#guide .s{fill:#e4f4ff;stroke:#222222;}#guide .syn{fill:#8D8D8D;font-family:Roboto Mono,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 31h5m44 0h10m32 0h10m32 0h5"/><rect class="s" x="5" y="5" width="44" height="36"/><text class="k" x="15" y="31">PI</text><rect class="s" x="59" y="5" width="32" height="36" rx="7"/><text class="syn" x="69" y="31">(</text><rect class="s" x="101" y="5" width="32" height="36" rx="7"/><text class="syn" x="111" y="31">)</text></svg>

+ 1 - 1
docs/reference/esql/functions/signature/pow.svg

@@ -1 +1 @@
-<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="373" height="44" viewbox="0 0 373 44"><defs><style type="text/css">.c{fill:none;stroke:#222222;}.k{fill:#000000;font-family:Dialog,Sans-serif;font-size:20px;}.s{fill:#e4f4ff;stroke:#222222;}.syn{fill:#8D8D8D;font-family:Dialog,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 29h5m68 0h10m27 0h10m63 0h10m26 0h10m102 0h10m27 0h5"/><rect class="s" x="5" y="5" width="68" height="34"/><text class="k" x="15" y="29">POW</text><rect class="s" x="83" y="5" width="27" height="34" rx="7"/><text class="syn" x="93" y="29">(</text><rect class="s" x="120" y="5" width="63" height="34" rx="7"/><text class="k" x="130" y="29">base</text><rect class="s" x="193" y="5" width="26" height="34" rx="7"/><text class="syn" x="203" y="29">,</text><rect class="s" x="229" y="5" width="102" height="34" rx="7"/><text class="k" x="239" y="29">exponent</text><rect class="s" x="341" y="5" width="27" height="34" rx="7"/><text class="syn" x="351" y="29">)</text></svg>
+<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="396" height="46" viewbox="0 0 396 46"><defs><style type="text/css">#guide .c{fill:none;stroke:#222222;}#guide .k{fill:#000000;font-family:Roboto Mono,Sans-serif;font-size:20px;}#guide .s{fill:#e4f4ff;stroke:#222222;}#guide .syn{fill:#8D8D8D;font-family:Roboto Mono,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 31h5m56 0h10m32 0h10m68 0h10m32 0h10m116 0h10m32 0h5"/><rect class="s" x="5" y="5" width="56" height="36"/><text class="k" x="15" y="31">POW</text><rect class="s" x="71" y="5" width="32" height="36" rx="7"/><text class="syn" x="81" y="31">(</text><rect class="s" x="113" y="5" width="68" height="36" rx="7"/><text class="k" x="123" y="31">base</text><rect class="s" x="191" y="5" width="32" height="36" rx="7"/><text class="syn" x="201" y="31">,</text><rect class="s" x="233" y="5" width="116" height="36" rx="7"/><text class="k" x="243" y="31">exponent</text><rect class="s" x="359" y="5" width="32" height="36" rx="7"/><text class="syn" x="369" y="31">)</text></svg>

+ 1 - 1
docs/reference/esql/functions/signature/round.svg

@@ -1 +1 @@
-<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="352" height="44" viewbox="0 0 352 44"><defs><style type="text/css">.c{fill:none;stroke:#222222;}.k{fill:#000000;font-family:Dialog,Sans-serif;font-size:20px;}.s{fill:#e4f4ff;stroke:#222222;}.syn{fill:#8D8D8D;font-family:Dialog,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 29h5m92 0h10m27 0h10m60 0h10m26 0h10m60 0h10m27 0h5"/><rect class="s" x="5" y="5" width="92" height="34"/><text class="k" x="15" y="29">ROUND</text><rect class="s" x="107" y="5" width="27" height="34" rx="7"/><text class="syn" x="117" y="29">(</text><rect class="s" x="144" y="5" width="60" height="34" rx="7"/><text class="k" x="154" y="29">arg1</text><rect class="s" x="214" y="5" width="26" height="34" rx="7"/><text class="syn" x="224" y="29">,</text><rect class="s" x="250" y="5" width="60" height="34" rx="7"/><text class="k" x="260" y="29">arg2</text><rect class="s" x="320" y="5" width="27" height="34" rx="7"/><text class="syn" x="330" y="29">)</text></svg>
+<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="372" height="46" viewbox="0 0 372 46"><defs><style type="text/css">#guide .c{fill:none;stroke:#222222;}#guide .k{fill:#000000;font-family:Roboto Mono,Sans-serif;font-size:20px;}#guide .s{fill:#e4f4ff;stroke:#222222;}#guide .syn{fill:#8D8D8D;font-family:Roboto Mono,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 31h5m80 0h10m32 0h10m68 0h10m32 0h10m68 0h10m32 0h5"/><rect class="s" x="5" y="5" width="80" height="36"/><text class="k" x="15" y="31">ROUND</text><rect class="s" x="95" y="5" width="32" height="36" rx="7"/><text class="syn" x="105" y="31">(</text><rect class="s" x="137" y="5" width="68" height="36" rx="7"/><text class="k" x="147" y="31">arg1</text><rect class="s" x="215" y="5" width="32" height="36" rx="7"/><text class="syn" x="225" y="31">,</text><rect class="s" x="257" y="5" width="68" height="36" rx="7"/><text class="k" x="267" y="31">arg2</text><rect class="s" x="335" y="5" width="32" height="36" rx="7"/><text class="syn" x="345" y="31">)</text></svg>

+ 1 - 1
docs/reference/esql/functions/signature/rtrim.svg

@@ -1 +1 @@
-<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="237" height="44" viewbox="0 0 237 44"><defs><style type="text/css">.c{fill:none;stroke:#222222;}.k{fill:#000000;font-family:Dialog,Sans-serif;font-size:20px;}.s{fill:#e4f4ff;stroke:#222222;}.syn{fill:#8D8D8D;font-family:Dialog,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 29h5m83 0h10m27 0h10m60 0h10m27 0h5"/><rect class="s" x="5" y="5" width="83" height="34"/><text class="k" x="15" y="29">RTRIM</text><rect class="s" x="98" y="5" width="27" height="34" rx="7"/><text class="syn" x="108" y="29">(</text><rect class="s" x="135" y="5" width="60" height="34" rx="7"/><text class="k" x="145" y="29">arg1</text><rect class="s" x="205" y="5" width="27" height="34" rx="7"/><text class="syn" x="215" y="29">)</text></svg>
+<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="252" height="46" viewbox="0 0 252 46"><defs><style type="text/css">#guide .c{fill:none;stroke:#222222;}#guide .k{fill:#000000;font-family:Roboto Mono,Sans-serif;font-size:20px;}#guide .s{fill:#e4f4ff;stroke:#222222;}#guide .syn{fill:#8D8D8D;font-family:Roboto Mono,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 31h5m80 0h10m32 0h10m68 0h10m32 0h5"/><rect class="s" x="5" y="5" width="80" height="36"/><text class="k" x="15" y="31">RTRIM</text><rect class="s" x="95" y="5" width="32" height="36" rx="7"/><text class="syn" x="105" y="31">(</text><rect class="s" x="137" y="5" width="68" height="36" rx="7"/><text class="k" x="147" y="31">arg1</text><rect class="s" x="215" y="5" width="32" height="36" rx="7"/><text class="syn" x="225" y="31">)</text></svg>

+ 1 - 1
docs/reference/esql/functions/signature/sin.svg

@@ -1 +1 @@
-<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="207" height="44" viewbox="0 0 207 44"><defs><style type="text/css">.c{fill:none;stroke:#222222;}.k{fill:#000000;font-family:Dialog,Sans-serif;font-size:20px;}.s{fill:#e4f4ff;stroke:#222222;}.syn{fill:#8D8D8D;font-family:Dialog,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 29h5m53 0h10m27 0h10m60 0h10m27 0h5"/><rect class="s" x="5" y="5" width="53" height="34"/><text class="k" x="15" y="29">SIN</text><rect class="s" x="68" y="5" width="27" height="34" rx="7"/><text class="syn" x="78" y="29">(</text><rect class="s" x="105" y="5" width="60" height="34" rx="7"/><text class="k" x="115" y="29">arg1</text><rect class="s" x="175" y="5" width="27" height="34" rx="7"/><text class="syn" x="185" y="29">)</text></svg>
+<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="228" height="46" viewbox="0 0 228 46"><defs><style type="text/css">#guide .c{fill:none;stroke:#222222;}#guide .k{fill:#000000;font-family:Roboto Mono,Sans-serif;font-size:20px;}#guide .s{fill:#e4f4ff;stroke:#222222;}#guide .syn{fill:#8D8D8D;font-family:Roboto Mono,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 31h5m56 0h10m32 0h10m68 0h10m32 0h5"/><rect class="s" x="5" y="5" width="56" height="36"/><text class="k" x="15" y="31">SIN</text><rect class="s" x="71" y="5" width="32" height="36" rx="7"/><text class="syn" x="81" y="31">(</text><rect class="s" x="113" y="5" width="68" height="36" rx="7"/><text class="k" x="123" y="31">arg1</text><rect class="s" x="191" y="5" width="32" height="36" rx="7"/><text class="syn" x="201" y="31">)</text></svg>

+ 1 - 1
docs/reference/esql/functions/signature/sinh.svg

@@ -1 +1 @@
-<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="221" height="44" viewbox="0 0 221 44"><defs><style type="text/css">.c{fill:none;stroke:#222222;}.k{fill:#000000;font-family:Dialog,Sans-serif;font-size:20px;}.s{fill:#e4f4ff;stroke:#222222;}.syn{fill:#8D8D8D;font-family:Dialog,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 29h5m67 0h10m27 0h10m60 0h10m27 0h5"/><rect class="s" x="5" y="5" width="67" height="34"/><text class="k" x="15" y="29">SINH</text><rect class="s" x="82" y="5" width="27" height="34" rx="7"/><text class="syn" x="92" y="29">(</text><rect class="s" x="119" y="5" width="60" height="34" rx="7"/><text class="k" x="129" y="29">arg1</text><rect class="s" x="189" y="5" width="27" height="34" rx="7"/><text class="syn" x="199" y="29">)</text></svg>
+<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="240" height="46" viewbox="0 0 240 46"><defs><style type="text/css">#guide .c{fill:none;stroke:#222222;}#guide .k{fill:#000000;font-family:Roboto Mono,Sans-serif;font-size:20px;}#guide .s{fill:#e4f4ff;stroke:#222222;}#guide .syn{fill:#8D8D8D;font-family:Roboto Mono,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 31h5m68 0h10m32 0h10m68 0h10m32 0h5"/><rect class="s" x="5" y="5" width="68" height="36"/><text class="k" x="15" y="31">SINH</text><rect class="s" x="83" y="5" width="32" height="36" rx="7"/><text class="syn" x="93" y="31">(</text><rect class="s" x="125" y="5" width="68" height="36" rx="7"/><text class="k" x="135" y="31">arg1</text><rect class="s" x="203" y="5" width="32" height="36" rx="7"/><text class="syn" x="213" y="31">)</text></svg>

+ 1 - 1
docs/reference/esql/functions/signature/split.svg

@@ -1 +1 @@
-<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="335" height="44" viewbox="0 0 335 44"><defs><style type="text/css">.c{fill:none;stroke:#222222;}.k{fill:#000000;font-family:Dialog,Sans-serif;font-size:20px;}.s{fill:#e4f4ff;stroke:#222222;}.syn{fill:#8D8D8D;font-family:Dialog,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 29h5m75 0h10m27 0h10m60 0h10m26 0h10m60 0h10m27 0h5"/><rect class="s" x="5" y="5" width="75" height="34"/><text class="k" x="15" y="29">SPLIT</text><rect class="s" x="90" y="5" width="27" height="34" rx="7"/><text class="syn" x="100" y="29">(</text><rect class="s" x="127" y="5" width="60" height="34" rx="7"/><text class="k" x="137" y="29">arg1</text><rect class="s" x="197" y="5" width="26" height="34" rx="7"/><text class="syn" x="207" y="29">,</text><rect class="s" x="233" y="5" width="60" height="34" rx="7"/><text class="k" x="243" y="29">arg2</text><rect class="s" x="303" y="5" width="27" height="34" rx="7"/><text class="syn" x="313" y="29">)</text></svg>
+<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="372" height="46" viewbox="0 0 372 46"><defs><style type="text/css">#guide .c{fill:none;stroke:#222222;}#guide .k{fill:#000000;font-family:Roboto Mono,Sans-serif;font-size:20px;}#guide .s{fill:#e4f4ff;stroke:#222222;}#guide .syn{fill:#8D8D8D;font-family:Roboto Mono,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 31h5m80 0h10m32 0h10m68 0h10m32 0h10m68 0h10m32 0h5"/><rect class="s" x="5" y="5" width="80" height="36"/><text class="k" x="15" y="31">SPLIT</text><rect class="s" x="95" y="5" width="32" height="36" rx="7"/><text class="syn" x="105" y="31">(</text><rect class="s" x="137" y="5" width="68" height="36" rx="7"/><text class="k" x="147" y="31">arg1</text><rect class="s" x="215" y="5" width="32" height="36" rx="7"/><text class="syn" x="225" y="31">,</text><rect class="s" x="257" y="5" width="68" height="36" rx="7"/><text class="k" x="267" y="31">arg2</text><rect class="s" x="335" y="5" width="32" height="36" rx="7"/><text class="syn" x="345" y="31">)</text></svg>

+ 1 - 1
docs/reference/esql/functions/signature/sqrt.svg

@@ -1 +1 @@
-<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="229" height="44" viewbox="0 0 229 44"><defs><style type="text/css">.c{fill:none;stroke:#222222;}.k{fill:#000000;font-family:Dialog,Sans-serif;font-size:20px;}.s{fill:#e4f4ff;stroke:#222222;}.syn{fill:#8D8D8D;font-family:Dialog,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 29h5m75 0h10m27 0h10m60 0h10m27 0h5"/><rect class="s" x="5" y="5" width="75" height="34"/><text class="k" x="15" y="29">SQRT</text><rect class="s" x="90" y="5" width="27" height="34" rx="7"/><text class="syn" x="100" y="29">(</text><rect class="s" x="127" y="5" width="60" height="34" rx="7"/><text class="k" x="137" y="29">arg1</text><rect class="s" x="197" y="5" width="27" height="34" rx="7"/><text class="syn" x="207" y="29">)</text></svg>
+<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="240" height="46" viewbox="0 0 240 46"><defs><style type="text/css">#guide .c{fill:none;stroke:#222222;}#guide .k{fill:#000000;font-family:Roboto Mono,Sans-serif;font-size:20px;}#guide .s{fill:#e4f4ff;stroke:#222222;}#guide .syn{fill:#8D8D8D;font-family:Roboto Mono,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 31h5m68 0h10m32 0h10m68 0h10m32 0h5"/><rect class="s" x="5" y="5" width="68" height="36"/><text class="k" x="15" y="31">SQRT</text><rect class="s" x="83" y="5" width="32" height="36" rx="7"/><text class="syn" x="93" y="31">(</text><rect class="s" x="125" y="5" width="68" height="36" rx="7"/><text class="k" x="135" y="31">arg1</text><rect class="s" x="203" y="5" width="32" height="36" rx="7"/><text class="syn" x="213" y="31">)</text></svg>

+ 1 - 1
docs/reference/esql/functions/signature/substring.svg

@@ -1 +1 @@
-<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="501" height="44" viewbox="0 0 501 44"><defs><style type="text/css">.c{fill:none;stroke:#222222;}.k{fill:#000000;font-family:Dialog,Sans-serif;font-size:20px;}.s{fill:#e4f4ff;stroke:#222222;}.syn{fill:#8D8D8D;font-family:Dialog,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 29h5m135 0h10m27 0h10m60 0h10m26 0h10m60 0h10m26 0h10m60 0h10m27 0h5"/><rect class="s" x="5" y="5" width="135" height="34"/><text class="k" x="15" y="29">SUBSTRING</text><rect class="s" x="150" y="5" width="27" height="34" rx="7"/><text class="syn" x="160" y="29">(</text><rect class="s" x="187" y="5" width="60" height="34" rx="7"/><text class="k" x="197" y="29">arg1</text><rect class="s" x="257" y="5" width="26" height="34" rx="7"/><text class="syn" x="267" y="29">,</text><rect class="s" x="293" y="5" width="60" height="34" rx="7"/><text class="k" x="303" y="29">arg2</text><rect class="s" x="363" y="5" width="26" height="34" rx="7"/><text class="syn" x="373" y="29">,</text><rect class="s" x="399" y="5" width="60" height="34" rx="7"/><text class="k" x="409" y="29">arg3</text><rect class="s" x="469" y="5" width="27" height="34" rx="7"/><text class="syn" x="479" y="29">)</text></svg>
+<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="540" height="46" viewbox="0 0 540 46"><defs><style type="text/css">#guide .c{fill:none;stroke:#222222;}#guide .k{fill:#000000;font-family:Roboto Mono,Sans-serif;font-size:20px;}#guide .s{fill:#e4f4ff;stroke:#222222;}#guide .syn{fill:#8D8D8D;font-family:Roboto Mono,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 31h5m128 0h10m32 0h10m68 0h10m32 0h10m68 0h10m32 0h10m68 0h10m32 0h5"/><rect class="s" x="5" y="5" width="128" height="36"/><text class="k" x="15" y="31">SUBSTRING</text><rect class="s" x="143" y="5" width="32" height="36" rx="7"/><text class="syn" x="153" y="31">(</text><rect class="s" x="185" y="5" width="68" height="36" rx="7"/><text class="k" x="195" y="31">arg1</text><rect class="s" x="263" y="5" width="32" height="36" rx="7"/><text class="syn" x="273" y="31">,</text><rect class="s" x="305" y="5" width="68" height="36" rx="7"/><text class="k" x="315" y="31">arg2</text><rect class="s" x="383" y="5" width="32" height="36" rx="7"/><text class="syn" x="393" y="31">,</text><rect class="s" x="425" y="5" width="68" height="36" rx="7"/><text class="k" x="435" y="31">arg3</text><rect class="s" x="503" y="5" width="32" height="36" rx="7"/><text class="syn" x="513" y="31">)</text></svg>

+ 1 - 1
docs/reference/esql/functions/signature/tan.svg

@@ -1 +1 @@
-<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="213" height="44" viewbox="0 0 213 44"><defs><style type="text/css">.c{fill:none;stroke:#222222;}.k{fill:#000000;font-family:Dialog,Sans-serif;font-size:20px;}.s{fill:#e4f4ff;stroke:#222222;}.syn{fill:#8D8D8D;font-family:Dialog,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 29h5m59 0h10m27 0h10m60 0h10m27 0h5"/><rect class="s" x="5" y="5" width="59" height="34"/><text class="k" x="15" y="29">TAN</text><rect class="s" x="74" y="5" width="27" height="34" rx="7"/><text class="syn" x="84" y="29">(</text><rect class="s" x="111" y="5" width="60" height="34" rx="7"/><text class="k" x="121" y="29">arg1</text><rect class="s" x="181" y="5" width="27" height="34" rx="7"/><text class="syn" x="191" y="29">)</text></svg>
+<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="228" height="46" viewbox="0 0 228 46"><defs><style type="text/css">#guide .c{fill:none;stroke:#222222;}#guide .k{fill:#000000;font-family:Roboto Mono,Sans-serif;font-size:20px;}#guide .s{fill:#e4f4ff;stroke:#222222;}#guide .syn{fill:#8D8D8D;font-family:Roboto Mono,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 31h5m56 0h10m32 0h10m68 0h10m32 0h5"/><rect class="s" x="5" y="5" width="56" height="36"/><text class="k" x="15" y="31">TAN</text><rect class="s" x="71" y="5" width="32" height="36" rx="7"/><text class="syn" x="81" y="31">(</text><rect class="s" x="113" y="5" width="68" height="36" rx="7"/><text class="k" x="123" y="31">arg1</text><rect class="s" x="191" y="5" width="32" height="36" rx="7"/><text class="syn" x="201" y="31">)</text></svg>

+ 1 - 1
docs/reference/esql/functions/signature/tanh.svg

@@ -1 +1 @@
-<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="227" height="44" viewbox="0 0 227 44"><defs><style type="text/css">.c{fill:none;stroke:#222222;}.k{fill:#000000;font-family:Dialog,Sans-serif;font-size:20px;}.s{fill:#e4f4ff;stroke:#222222;}.syn{fill:#8D8D8D;font-family:Dialog,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 29h5m73 0h10m27 0h10m60 0h10m27 0h5"/><rect class="s" x="5" y="5" width="73" height="34"/><text class="k" x="15" y="29">TANH</text><rect class="s" x="88" y="5" width="27" height="34" rx="7"/><text class="syn" x="98" y="29">(</text><rect class="s" x="125" y="5" width="60" height="34" rx="7"/><text class="k" x="135" y="29">arg1</text><rect class="s" x="195" y="5" width="27" height="34" rx="7"/><text class="syn" x="205" y="29">)</text></svg>
+<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="240" height="46" viewbox="0 0 240 46"><defs><style type="text/css">#guide .c{fill:none;stroke:#222222;}#guide .k{fill:#000000;font-family:Roboto Mono,Sans-serif;font-size:20px;}#guide .s{fill:#e4f4ff;stroke:#222222;}#guide .syn{fill:#8D8D8D;font-family:Roboto Mono,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 31h5m68 0h10m32 0h10m68 0h10m32 0h5"/><rect class="s" x="5" y="5" width="68" height="36"/><text class="k" x="15" y="31">TANH</text><rect class="s" x="83" y="5" width="32" height="36" rx="7"/><text class="syn" x="93" y="31">(</text><rect class="s" x="125" y="5" width="68" height="36" rx="7"/><text class="k" x="135" y="31">arg1</text><rect class="s" x="203" y="5" width="32" height="36" rx="7"/><text class="syn" x="213" y="31">)</text></svg>

+ 1 - 1
docs/reference/esql/functions/signature/tau.svg

@@ -1 +1 @@
-<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="143" height="44" viewbox="0 0 143 44"><defs><style type="text/css">.c{fill:none;stroke:#222222;}.k{fill:#000000;font-family:Dialog,Sans-serif;font-size:20px;}.s{fill:#e4f4ff;stroke:#222222;}.syn{fill:#8D8D8D;font-family:Dialog,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 29h5m59 0h10m27 0h10m27 0h5"/><rect class="s" x="5" y="5" width="59" height="34"/><text class="k" x="15" y="29">TAU</text><rect class="s" x="74" y="5" width="27" height="34" rx="7"/><text class="syn" x="84" y="29">(</text><rect class="s" x="111" y="5" width="27" height="34" rx="7"/><text class="syn" x="121" y="29">)</text></svg>
+<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="150" height="46" viewbox="0 0 150 46"><defs><style type="text/css">#guide .c{fill:none;stroke:#222222;}#guide .k{fill:#000000;font-family:Roboto Mono,Sans-serif;font-size:20px;}#guide .s{fill:#e4f4ff;stroke:#222222;}#guide .syn{fill:#8D8D8D;font-family:Roboto Mono,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 31h5m56 0h10m32 0h10m32 0h5"/><rect class="s" x="5" y="5" width="56" height="36"/><text class="k" x="15" y="31">TAU</text><rect class="s" x="71" y="5" width="32" height="36" rx="7"/><text class="syn" x="81" y="31">(</text><rect class="s" x="113" y="5" width="32" height="36" rx="7"/><text class="syn" x="123" y="31">)</text></svg>

+ 1 - 1
docs/reference/esql/functions/signature/trim.svg

@@ -1 +1 @@
-<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="223" height="44" viewbox="0 0 223 44"><defs><style type="text/css">.c{fill:none;stroke:#222222;}.k{fill:#000000;font-family:Dialog,Sans-serif;font-size:20px;}.s{fill:#e4f4ff;stroke:#222222;}.syn{fill:#8D8D8D;font-family:Dialog,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 29h5m69 0h10m27 0h10m60 0h10m27 0h5"/><rect class="s" x="5" y="5" width="69" height="34"/><text class="k" x="15" y="29">TRIM</text><rect class="s" x="84" y="5" width="27" height="34" rx="7"/><text class="syn" x="94" y="29">(</text><rect class="s" x="121" y="5" width="60" height="34" rx="7"/><text class="k" x="131" y="29">arg1</text><rect class="s" x="191" y="5" width="27" height="34" rx="7"/><text class="syn" x="201" y="29">)</text></svg>
+<svg version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="240" height="46" viewbox="0 0 240 46"><defs><style type="text/css">#guide .c{fill:none;stroke:#222222;}#guide .k{fill:#000000;font-family:Roboto Mono,Sans-serif;font-size:20px;}#guide .s{fill:#e4f4ff;stroke:#222222;}#guide .syn{fill:#8D8D8D;font-family:Roboto Mono,Sans-serif;font-size:20px;}</style></defs><path class="c" d="M0 31h5m68 0h10m32 0h10m68 0h10m32 0h5"/><rect class="s" x="5" y="5" width="68" height="36"/><text class="k" x="15" y="31">TRIM</text><rect class="s" x="83" y="5" width="32" height="36" rx="7"/><text class="syn" x="93" y="31">(</text><rect class="s" x="125" y="5" width="68" height="36" rx="7"/><text class="k" x="135" y="31">arg1</text><rect class="s" x="203" y="5" width="32" height="36" rx="7"/><text class="syn" x="213" y="31">)</text></svg>

+ 5 - 0
gradle/verification-metadata.xml

@@ -3941,6 +3941,11 @@
             <sha256 value="bfd2cc7e1bfc78aa83b44c0a54bf2cde38a4382ec24728af683d98dc6be78192" origin="Generated by Gradle"/>
          </artifact>
       </component>
+      <component group="org.webjars.npm" name="fontsource__roboto-mono" version="4.5.7">
+         <artifact name="fontsource__roboto-mono-4.5.7.jar">
+            <sha256 value="9d8c0d04c013e365cf9db976219580bf75bd2f7085533a686a3bb9fbeafab5af" origin="Generated by Gradle"/>
+         </artifact>
+      </component>
       <component group="org.xerial.snappy" name="snappy-java" version="1.0.4.1">
          <artifact name="snappy-java-1.0.4.1.jar">
             <sha256 value="52533e94f79beacb9862bac33fa2e2fc724a8cfb2a739c33ae4ea10515f2bb86" origin="Generated by Gradle"/>

+ 1 - 0
x-pack/plugin/esql/build.gradle

@@ -31,6 +31,7 @@ dependencies {
   testImplementation project(path: ':modules:parent-join')
   testImplementation project(path: ':modules:analysis-common')
   testImplementation('net.nextencia:rrdiagram:0.9.4')
+  testImplementation('org.webjars.npm:fontsource__roboto-mono:4.5.7')
 
   internalClusterTestImplementation project(":client:rest-high-level")
 }

+ 41 - 4
x-pack/plugin/esql/src/test/java/org/elasticsearch/xpack/esql/expression/function/RailRoadDiagram.java

@@ -22,6 +22,10 @@ import net.nextencia.rrdiagram.grammar.rrdiagram.RRText;
 import org.elasticsearch.xpack.esql.plan.logical.show.ShowFunctions;
 import org.elasticsearch.xpack.ql.expression.function.FunctionDefinition;
 
+import java.awt.Font;
+import java.awt.FontFormatException;
+import java.io.IOException;
+import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Locale;
@@ -30,6 +34,14 @@ import java.util.Locale;
  * Generates <a href="https://en.wikipedia.org/wiki/Syntax_diagram">railroad diagrams</a> for docs.
  */
 public class RailRoadDiagram {
+    /**
+     * The font to use in the diagrams. This is loaded from the classpath.
+     * If we tried to use the built-in font the rendering would be dependent
+     * on whatever fonts you have installed. And, since the world can't agree
+     * on fonts, that'd be chaos. So, instead, we load Roboto Mono.
+     */
+    private static final Font FONT = loadFont().deriveFont(20.0F);
+
     static String functionSignature(FunctionDefinition definition) {
         List<Expression> expressions = new ArrayList<>();
         expressions.add(new SpecialSequence(definition.name().toUpperCase(Locale.ROOT)));
@@ -53,13 +65,23 @@ public class RailRoadDiagram {
             expressions.toArray(net.nextencia.rrdiagram.grammar.model.Expression[]::new)
         );
         RRDiagram rrDiagram = new GrammarToRRDiagram().convert(new Rule("test", rr));
+
         RRDiagramToSVG toSvg = new RRDiagramToSVG();
         toSvg.setSpecialSequenceShape(RRDiagramToSVG.BoxShape.RECTANGLE);
+        toSvg.setSpecialSequenceFont(FONT);
+
         toSvg.setLiteralFillColor(toSvg.getSpecialSequenceFillColor());
-        toSvg.setLiteralFont(toSvg.getLiteralFont().deriveFont(20.0F));
-        toSvg.setSpecialSequenceFont(toSvg.getSpecialSequenceFont().deriveFont(20.0F));
-        toSvg.setRuleFont(toSvg.getRuleFont().deriveFont(20.0F));
-        return toSvg.convert(rrDiagram);
+        toSvg.setLiteralFont(FONT);
+
+        toSvg.setRuleFont(FONT);
+        /*
+         * "Tighten" the styles in the SVG so they beat the styles sitting in the
+         * main page. We need this because we're embedding the SVG into the page.
+         * We need to embed the SVG into the page so it can get fonts loaded in the
+         * primary stylesheet. We need to load a font so they images are consistent
+         * on all clients.
+         */
+        return toSvg.convert(rrDiagram).replace(".c", "#guide .c").replace(".k", "#guide .k").replace(".s", "#guide .s");
     }
 
     /**
@@ -120,4 +142,19 @@ public class RailRoadDiagram {
             };
         }
     }
+
+    private static Font loadFont() {
+        try {
+            InputStream woff = RailRoadDiagram.class.getClassLoader()
+                .getResourceAsStream("META-INF/resources/webjars/fontsource__roboto-mono/4.5.7/files/roboto-mono-latin-400-normal.woff");
+            if (woff == null) {
+                throw new IllegalArgumentException("can't find roboto mono");
+            }
+            return Font.createFont(Font.TRUETYPE_FONT, new WoffConverter().convertToTTFOutputStream(woff));
+        } catch (FontFormatException e) {
+            throw new RuntimeException(e);
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+    }
 }

+ 182 - 0
x-pack/plugin/esql/src/test/java/org/elasticsearch/xpack/esql/expression/function/WoffConverter.java

@@ -0,0 +1,182 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License
+ * 2.0; you may not use this file except in compliance with the Elastic License
+ * 2.0.
+ */
+
+package org.elasticsearch.xpack.esql.expression.function;
+
+import org.elasticsearch.common.io.stream.ByteArrayStreamInput;
+
+import java.io.ByteArrayOutputStream;
+import java.io.DataInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.zip.DataFormatException;
+import java.util.zip.Inflater;
+
+/**
+ * Converts woff to ttf. Borrowed from <a href="https://github.com/anupthegit/WOFFToTTFJava">here</a>.
+ * Their license is MIT.
+ */
+class WoffConverter {
+    private static final LinkedHashMap<String, Integer> WOFF_HEADER_FORMAT = new LinkedHashMap<>();
+    static {
+        WOFF_HEADER_FORMAT.put("signature", 4);
+        WOFF_HEADER_FORMAT.put("flavor", 4);
+        WOFF_HEADER_FORMAT.put("length", 4);
+        WOFF_HEADER_FORMAT.put("numTables", 2);
+        WOFF_HEADER_FORMAT.put("reserved", 2);
+        WOFF_HEADER_FORMAT.put("totalSfntSize", 4);
+        WOFF_HEADER_FORMAT.put("majorVersion", 2);
+        WOFF_HEADER_FORMAT.put("minorVersion", 2);
+        WOFF_HEADER_FORMAT.put("metaOffset", 4);
+        WOFF_HEADER_FORMAT.put("metaLength", 4);
+        WOFF_HEADER_FORMAT.put("metaOrigLength", 4);
+        WOFF_HEADER_FORMAT.put("privOffset", 4);
+        WOFF_HEADER_FORMAT.put("privOrigLength", 4);
+    };
+
+    private static final LinkedHashMap<String, Integer> TABLE_RECORD_ENTRY_FORMAT = new LinkedHashMap<>();
+    static {
+        TABLE_RECORD_ENTRY_FORMAT.put("tag", 4);
+        TABLE_RECORD_ENTRY_FORMAT.put("offset", 4);
+        TABLE_RECORD_ENTRY_FORMAT.put("compLength", 4);
+        TABLE_RECORD_ENTRY_FORMAT.put("origLength", 4);
+        TABLE_RECORD_ENTRY_FORMAT.put("origChecksum", 4);
+    };
+
+    private HashMap<String, Number> woffHeaders = new HashMap<String, Number>();
+
+    private ArrayList<HashMap<String, Number>> tableRecordEntries = new ArrayList<HashMap<String, Number>>();
+
+    private int offset = 0;
+
+    private int readOffset = 0;
+
+    public InputStream convertToTTFOutputStream(InputStream woffFileStream) throws IOException {
+        getHeaders(new DataInputStream(woffFileStream));
+        if ((Integer) woffHeaders.get("signature") != 0x774F4646) {
+            throw new IllegalArgumentException("Invalid woff file");
+        }
+        ByteArrayOutputStream ttfOutputStream = new ByteArrayOutputStream();
+        writeOffsetTable(ttfOutputStream);
+        getTableRecordEntries(new DataInputStream(woffFileStream));
+        writeTableRecordEntries(ttfOutputStream);
+        writeFontData(woffFileStream, ttfOutputStream);
+        return new ByteArrayStreamInput(ttfOutputStream.toByteArray());
+    }
+
+    private void getHeaders(DataInputStream woffFileStream) throws IOException {
+        readTableData(woffFileStream, WOFF_HEADER_FORMAT, woffHeaders);
+    }
+
+    private void writeOffsetTable(ByteArrayOutputStream ttfOutputStream) throws IOException {
+        ttfOutputStream.write(getBytes((Integer) woffHeaders.get("flavor")));
+        int numTables = (Integer) woffHeaders.get("numTables");
+        ttfOutputStream.write(getBytes((short) numTables));
+        int temp = numTables;
+        int searchRange = 16;
+        short entrySelector = 0;
+        while (temp > 1) {
+            temp = temp >> 1;
+            entrySelector++;
+            searchRange = (searchRange << 1);
+        }
+        short rangeShift = (short) (numTables * 16 - searchRange);
+        ttfOutputStream.write(getBytes((short) searchRange));
+        ttfOutputStream.write(getBytes(entrySelector));
+        ttfOutputStream.write(getBytes(rangeShift));
+        offset += 12;
+    }
+
+    private void getTableRecordEntries(DataInputStream woffFileStream) throws IOException {
+        int numTables = (Integer) woffHeaders.get("numTables");
+        for (int i = 0; i < numTables; i++) {
+            HashMap<String, Number> tableDirectory = new HashMap<String, Number>();
+            readTableData(woffFileStream, TABLE_RECORD_ENTRY_FORMAT, tableDirectory);
+            offset += 16;
+            tableRecordEntries.add(tableDirectory);
+        }
+    }
+
+    private void writeTableRecordEntries(ByteArrayOutputStream ttfOutputStream) throws IOException {
+        for (HashMap<String, Number> tableRecordEntry : tableRecordEntries) {
+            ttfOutputStream.write(getBytes((Integer) tableRecordEntry.get("tag")));
+            ttfOutputStream.write(getBytes((Integer) tableRecordEntry.get("origChecksum")));
+            ttfOutputStream.write(getBytes(offset));
+            ttfOutputStream.write(getBytes((Integer) tableRecordEntry.get("origLength")));
+            tableRecordEntry.put("outOffset", offset);
+            offset += (Integer) tableRecordEntry.get("origLength");
+            if (offset % 4 != 0) {
+                offset += 4 - (offset % 4);
+            }
+        }
+    }
+
+    private void writeFontData(InputStream woffFileStream, ByteArrayOutputStream ttfOutputStream) throws IOException {
+        for (HashMap<String, Number> tableRecordEntry : tableRecordEntries) {
+            int tableRecordEntryOffset = (Integer) tableRecordEntry.get("offset");
+            int skipBytes = tableRecordEntryOffset - readOffset;
+            if (skipBytes > 0) woffFileStream.skip(skipBytes);
+            readOffset += skipBytes;
+            int compressedLength = (Integer) tableRecordEntry.get("compLength");
+            int origLength = (Integer) tableRecordEntry.get("origLength");
+            byte[] fontData = new byte[compressedLength];
+            byte[] inflatedFontData = new byte[origLength];
+            int readBytes = 0;
+            while (readBytes < compressedLength) {
+                readBytes += woffFileStream.read(fontData, readBytes, compressedLength - readBytes);
+            }
+            readOffset += compressedLength;
+            inflatedFontData = inflateFontData(compressedLength, origLength, fontData, inflatedFontData);
+            ttfOutputStream.write(inflatedFontData);
+            offset = (Integer) tableRecordEntry.get("outOffset") + (Integer) tableRecordEntry.get("origLength");
+            int padding = 0;
+            if (offset % 4 != 0) padding = 4 - (offset % 4);
+            ttfOutputStream.write(getBytes(0), 0, padding);
+        }
+    }
+
+    private byte[] inflateFontData(int compressedLength, int origLength, byte[] fontData, byte[] inflatedFontData) {
+        if (compressedLength != origLength) {
+            Inflater decompressor = new Inflater();
+            decompressor.setInput(fontData, 0, compressedLength);
+            try {
+                decompressor.inflate(inflatedFontData, 0, origLength);
+            } catch (DataFormatException e) {
+                throw new IllegalArgumentException("Malformed woff file");
+            }
+        } else inflatedFontData = fontData;
+        return inflatedFontData;
+    }
+
+    private byte[] getBytes(int i) {
+        return ByteBuffer.allocate(4).putInt(i).array();
+    }
+
+    private byte[] getBytes(short h) {
+        return ByteBuffer.allocate(2).putShort(h).array();
+    }
+
+    private void readTableData(DataInputStream woffFileStream, LinkedHashMap<String, Integer> formatTable, HashMap<String, Number> table)
+        throws IOException {
+        Iterator<String> headerKeys = formatTable.keySet().iterator();
+        while (headerKeys.hasNext()) {
+            String key = headerKeys.next();
+            int size = formatTable.get(key);
+            if (size == 2) {
+                table.put(key, woffFileStream.readUnsignedShort());
+            } else if (size == 4) {
+                table.put(key, woffFileStream.readInt());
+            }
+            readOffset += size;
+        }
+    }
+}