Skip to content

Commit 040d629

Browse files
Added esql scalb function. (elastic#127696) (elastic#128815)
Co-authored-by: shmuelhanoch <[email protected]> Co-authored-by: Shmuel Hanoch <[email protected]>
1 parent b06534d commit 040d629

File tree

20 files changed

+1252
-3
lines changed

20 files changed

+1252
-3
lines changed

docs/reference/esql/functions/description/scalb.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/esql/functions/examples/scalb.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/esql/functions/kibana/definition/scalb.json

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

docs/reference/esql/functions/kibana/docs/scalb.md

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
% This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.
2+
3+
## `SCALB` [esql-scalb]
4+
5+
**Syntax**
6+
7+
:::{image} ../../../images/functions/scalb.svg
8+
:alt: Embedded
9+
:class: text-center
10+
:::
11+
12+
13+
:::{include} ../parameters/scalb.md
14+
:::
15+
16+
:::{include} ../description/scalb.md
17+
:::
18+
19+
:::{include} ../types/scalb.md
20+
:::
21+
22+
:::{include} ../examples/scalb.md
23+
:::
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
% This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.
2+
3+
**Parameters**
4+
5+
`d`
6+
: Numeric expression for the multiplier. If `null`, the function returns `null`.
7+
8+
`scaleFactor`
9+
: Numeric expression for the scale factor. If `null`, the function returns `null`.
10+
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
% This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.
2+
3+
**Supported types**
4+
5+
| d | scaleFactor | result |
6+
| --- | --- | --- |
7+
| double | integer | double |
8+
| double | long | double |
9+
| integer | integer | double |
10+
| integer | long | double |
11+
| long | integer | double |
12+
| long | long | double |
13+
| unsigned_long | integer | double |
14+
| unsigned_long | long | double |
15+
Lines changed: 1 addition & 0 deletions
Loading

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

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -600,3 +600,103 @@ s:double | emp_no:integer | salary:integer | salary_change:double
600600
-1.0 | 10004 | 36174 | [-0.35, 1.13, 3.65, 13.48]
601601
-1.0 | 10005 | 63528 | [-2.14, 13.07]
602602
;
603+
604+
docsScalb
605+
required_capability: fn_scalb
606+
// tag::scalb[]
607+
row x = 3.0, y = 10 | eval z = scalb(x, y)
608+
// end::scalb[]
609+
;
610+
611+
// tag::scalb-result[]
612+
x:double | y:integer | z:double
613+
3.0 | 10 | 3072.0
614+
// end::scalb-result[]
615+
;
616+
617+
scalbConstant
618+
required_capability: fn_scalb
619+
row y = "foo" | eval x = scalb(3, 10) | keep x;
620+
621+
x:double
622+
3072.0
623+
;
624+
625+
scalbWithNonFoldableArgsAndWhere
626+
required_capability: fn_scalb
627+
628+
from employees
629+
| eval s = scalb(mv_min(salary_change), emp_no / 1000)
630+
| where scalb(mv_min(salary_change), 3) > 100
631+
| sort s
632+
| keep s;
633+
634+
s:double
635+
13127.68
636+
13936.64
637+
;
638+
639+
scalbWithEvalAndSort
640+
required_capability: fn_scalb
641+
from employees
642+
| eval s = scalb(mv_min(salary_change), 5)
643+
| where scalb(mv_max(salary_change), 5) > 100
644+
| keep s, emp_no, salary, salary_change
645+
| sort s, emp_no
646+
| limit 3;
647+
648+
s:double | emp_no:integer | salary:integer | salary_change:double
649+
-313.92 | 10065 | 50249 | [-9.81, -1.47, 14.44]
650+
-296.96 | 10042 | 30404 | [-9.28, 9.42]
651+
-295.36 | 10091 | 38645 | [-9.23, 5.19, 5.85, 7.5]
652+
;
653+
654+
scalbWithHugeScaleFactor
655+
required_capability: fn_scalb
656+
657+
from employees
658+
| eval s = scalb(abs(mv_min(salary_change)), 2147483648 + emp_no)
659+
| keep s
660+
| limit 3
661+
;
662+
warning: Line 2:12: evaluation of [scalb(abs(mv_min(salary_change)), 2147483648 + emp_no)] failed, treating result as null. Only first 20 failures recorded.
663+
warning: Line 2:12: java.lang.ArithmeticException: integer overflow
664+
665+
s:double
666+
null
667+
null
668+
null
669+
;
670+
scalbWithHugeConstantScaleFactor
671+
required_capability: fn_scalb
672+
673+
from employees
674+
| eval s = scalb(abs(mv_min(salary_change)), 2147483648)
675+
| keep s
676+
| limit 3
677+
;
678+
warning: Line 2:12: evaluation of [scalb(abs(mv_min(salary_change)), 2147483648)] failed, treating result as null. Only first 20 failures recorded.
679+
warning: Line 2:12: java.lang.ArithmeticException: integer overflow
680+
681+
s:double
682+
null
683+
null
684+
null
685+
;
686+
687+
scalbWithHugeconstantFirstArgument
688+
required_capability: fn_scalb
689+
690+
from employees
691+
| eval s = scalb(2147483648, emp_no)
692+
| keep s
693+
| limit 3
694+
;
695+
warning: Line 2:12: evaluation of [scalb(2147483648, emp_no)] failed, treating result as null. Only first 20 failures recorded.
696+
warning: Line 2:12: java.lang.ArithmeticException: not a finite double number: Infinity
697+
698+
s:double
699+
null
700+
null
701+
null
702+
;

0 commit comments

Comments
 (0)