This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.1 by this push:
new 163193b1d48 [branch-2.1](function) fix random_bytes return same data
for multi rows (#39891) (#40137)
163193b1d48 is described below
commit 163193b1d48cc968defa10bd01bccb699725a6b9
Author: zclllhhjj <[email protected]>
AuthorDate: Fri Aug 30 10:43:42 2024 +0800
[branch-2.1](function) fix random_bytes return same data for multi rows
(#39891) (#40137)
pick https://github.com/apache/doris/pull/39891
Issue Number: close #xxx
before:
```sql
mysql [optest]>SELECT random_bytes(10) a FROM numbers("number" = "10");
+------------------------+
| a |
+------------------------+
| 0x7b4e5727024bc5b59e2c |
| 0x7b4e5727024bc5b59e2c |
| 0x7b4e5727024bc5b59e2c |
| 0x7b4e5727024bc5b59e2c |
| 0x7b4e5727024bc5b59e2c |
| 0x7b4e5727024bc5b59e2c |
| 0x7b4e5727024bc5b59e2c |
| 0x7b4e5727024bc5b59e2c |
| 0x7b4e5727024bc5b59e2c |
| 0x7b4e5727024bc5b59e2c |
+------------------------+
```
now:
```sql
mysql [optest]>SELECT random_bytes(10) a FROM numbers("number" = "10");
+------------------------+
| a |
+------------------------+
| 0xd82cf60825b29ef2a0fd |
| 0x6f8c808415bdbaa6d257 |
| 0x7c26b5214297a151c25c |
| 0x43f02c77293063900437 |
| 0x5e5727569dec5e24f96b |
| 0x434f20bf74d7759640b7 |
| 0x087ed96b739750c733a6 |
| 0xdf05f6d7ede4972eb846 |
| 0xcefab471912264b5c54f |
| 0x1bddc019409d1926aa10 |
+------------------------+
```
## Proposed changes
Issue Number: close #xxx
<!--Describe your changes.-->
---
be/src/vec/functions/function_string.h | 22 +-
.../trees/expressions/functions/scalar/Random.java | 5 -
.../expressions/functions/scalar/RandomBytes.java | 3 +-
.../data/nereids_function_p0/scalar_function/R.out | 3 -
.../datetime_functions/test_date_function.out | 605 ---------------------
.../string_functions/test_string_function.out | Bin 4217 -> 4244 bytes
.../nereids_function_p0/scalar_function/R.groovy | 6 -
.../string_functions/test_string_function.groovy | 19 +
8 files changed, 35 insertions(+), 628 deletions(-)
diff --git a/be/src/vec/functions/function_string.h
b/be/src/vec/functions/function_string.h
index 9fc8e8702d7..c05e7deb56b 100644
--- a/be/src/vec/functions/function_string.h
+++ b/be/src/vec/functions/function_string.h
@@ -3107,6 +3107,8 @@ public:
return std::make_shared<DataTypeString>();
}
+ bool use_default_implementation_for_constants() const final { return
false; }
+
Status execute_impl(FunctionContext* context, Block& block, const
ColumnNumbers& arguments,
size_t result, size_t input_rows_count) const override
{
auto res = ColumnString::create();
@@ -3114,24 +3116,28 @@ public:
auto& res_chars = res->get_chars();
res_offsets.resize(input_rows_count);
- ColumnPtr argument_column =
-
block.get_by_position(arguments[0]).column->convert_to_full_column_if_const();
- const auto* length_col = assert_cast<const
ColumnInt32*>(argument_column.get());
+ auto [arg_col, arg_const] =
unpack_if_const(block.get_by_position(arguments[0]).column);
+ const auto* length_col = assert_cast<const
ColumnInt32*>(arg_col.get());
+
+ if (arg_const) {
+ res_chars.reserve(input_rows_count * (length_col->get_element(0) +
2));
+ }
std::vector<uint8_t> random_bytes;
std::random_device rd;
std::mt19937 gen(rd());
+ std::uniform_int_distribution<unsigned short> distribution(0, 255);
for (size_t i = 0; i < input_rows_count; ++i) {
- if (length_col->get_element(i) < 0) [[unlikely]] {
+ size_t index = index_check_const(i, arg_const);
+ if (length_col->get_element(index) < 0) [[unlikely]] {
return Status::InvalidArgument("argument {} of function {} at
row {} was invalid.",
- length_col->get_element(i),
name, i);
+ length_col->get_element(index),
name, index);
}
- random_bytes.resize(length_col->get_element(i));
+ random_bytes.resize(length_col->get_element(index));
- std::uniform_int_distribution<uint8_t> distribution(0, 255);
for (auto& byte : random_bytes) {
- byte = distribution(gen);
+ byte = distribution(gen) & 0xFF;
}
std::ostringstream oss;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Random.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Random.java
index 4c658414aa5..d86eacec934 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Random.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Random.java
@@ -89,11 +89,6 @@ public class Random extends ScalarFunction
}
}
- @Override
- public boolean foldable() {
- return false;
- }
-
/**
* withChildren.
*/
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/RandomBytes.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/RandomBytes.java
index f5906670f86..36b56bca752 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/RandomBytes.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/RandomBytes.java
@@ -20,6 +20,7 @@ package
org.apache.doris.nereids.trees.expressions.functions.scalar;
import org.apache.doris.catalog.FunctionSignature;
import org.apache.doris.nereids.trees.expressions.Expression;
import
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
+import org.apache.doris.nereids.trees.expressions.functions.Nondeterministic;
import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
import org.apache.doris.nereids.types.IntegerType;
@@ -35,7 +36,7 @@ import java.util.List;
* ScalarFunction 'random_bytes'. This class is generated by GenerateFunction.
*/
public class RandomBytes extends ScalarFunction
- implements ExplicitlyCastableSignature, PropagateNullable {
+ implements ExplicitlyCastableSignature, PropagateNullable,
Nondeterministic {
public static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
FunctionSignature.ret(StringType.INSTANCE).args(IntegerType.INSTANCE),
diff --git a/regression-test/data/nereids_function_p0/scalar_function/R.out
b/regression-test/data/nereids_function_p0/scalar_function/R.out
index df315a2624e..e9073697118 100644
--- a/regression-test/data/nereids_function_p0/scalar_function/R.out
+++ b/regression-test/data/nereids_function_p0/scalar_function/R.out
@@ -1125,6 +1125,3 @@ string3
string3
string3
--- !sql_random_bytes --
-\N
-
diff --git
a/regression-test/data/nereids_p0/datetime_functions/test_date_function.out
b/regression-test/data/nereids_p0/datetime_functions/test_date_function.out
deleted file mode 100644
index b2ed2aae64a..00000000000
--- a/regression-test/data/nereids_p0/datetime_functions/test_date_function.out
+++ /dev/null
@@ -1,605 +0,0 @@
--- This file is automatically generated. You should know what you did if you
want to edit this
--- !sql --
-2019-07-31T22:21:03
-
--- !sql --
-2019-07-31T22:21:03
-
--- !sql --
-2019-08-01T06:21:03
-
--- !sql --
-2019-08-01T06:21:03
-
--- !sql --
-\N
-
--- !sql --
-\N
-
--- !sql --
-\N
-
--- !sql --
-\N
-
--- !sql1 --
-1 2019-08-01T13:21:03 Asia/Shanghai Asia/Shanghai
2019-08-01T13:21:03
-2 2019-08-01T13:21:03 Asia/Singapore Asia/Shanghai
2019-08-01T13:21:03
-3 2019-08-01T13:21:03 Asia/Taipei Asia/Shanghai
2019-08-01T13:21:03
-4 2019-08-02T13:21:03 Australia/Queensland Asia/Shanghai
2019-08-02T11:21:03
-5 2019-08-02T13:21:03 Australia/Lindeman Asia/Shanghai
2019-08-02T11:21:03
-6 2019-08-03T13:21:03 America/Aruba Asia/Shanghai
2019-08-04T01:21:03
-7 2019-08-03T13:21:03 America/Blanc-Sablon Asia/Shanghai
2019-08-04T01:21:03
-8 2019-08-04T13:21:03 America/Dawson Africa/Lusaka
2019-08-04T22:21:03
-9 2019-08-04T13:21:03 America/Creston Africa/Lusaka
2019-08-04T22:21:03
-10 2019-08-05T13:21:03 Asia/Shanghai Asia/Shanghai
2019-08-05T13:21:03
-11 2019-08-05T13:21:03 Asia/Shanghai Asia/Singapore
2019-08-05T13:21:03
-12 2019-08-05T13:21:03 Asia/Shanghai Asia/Taipei
2019-08-05T13:21:03
-13 2019-08-06T13:21:03 Asia/Shanghai Australia/Queensland
2019-08-06T15:21:03
-14 2019-08-06T13:21:03 Asia/Shanghai Australia/Lindeman
2019-08-06T15:21:03
-15 2019-08-07T13:21:03 Asia/Shanghai America/Aruba
2019-08-07T01:21:03
-16 2019-08-07T13:21:03 Asia/Shanghai America/Blanc-Sablon
2019-08-07T01:21:03
-17 2019-08-08T13:21:03 Africa/Lusaka America/Dawson
2019-08-08T04:21:03
-18 2019-08-08T13:21:03 Africa/Lusaka America/Creston
2019-08-08T04:21:03
-
--- !sql2 --
-2019-08-01T13:21:03 2019-08-01T13:21:03 2019-08-01T13:21:03
-
--- !sql3 --
-2019-08-02T11:21:03 2019-08-02T11:21:03 2019-08-02T11:21:03
-
--- !sql4 --
-2019-08-04T22:21:03 2019-08-04T22:21:03 2019-08-04T22:21:03
-
--- !sql_vec1 --
-1 2019-08-01T13:21:03 Asia/Shanghai Asia/Shanghai
2019-08-01T13:21:03
-2 2019-08-01T13:21:03 Asia/Singapore Asia/Shanghai
2019-08-01T13:21:03
-3 2019-08-01T13:21:03 Asia/Taipei Asia/Shanghai
2019-08-01T13:21:03
-4 2019-08-02T13:21:03 Australia/Queensland Asia/Shanghai
2019-08-02T11:21:03
-5 2019-08-02T13:21:03 Australia/Lindeman Asia/Shanghai
2019-08-02T11:21:03
-6 2019-08-03T13:21:03 America/Aruba Asia/Shanghai
2019-08-04T01:21:03
-7 2019-08-03T13:21:03 America/Blanc-Sablon Asia/Shanghai
2019-08-04T01:21:03
-8 2019-08-04T13:21:03 America/Dawson Africa/Lusaka
2019-08-04T22:21:03
-9 2019-08-04T13:21:03 America/Creston Africa/Lusaka
2019-08-04T22:21:03
-10 2019-08-05T13:21:03 Asia/Shanghai Asia/Shanghai
2019-08-05T13:21:03
-11 2019-08-05T13:21:03 Asia/Shanghai Asia/Singapore
2019-08-05T13:21:03
-12 2019-08-05T13:21:03 Asia/Shanghai Asia/Taipei
2019-08-05T13:21:03
-13 2019-08-06T13:21:03 Asia/Shanghai Australia/Queensland
2019-08-06T15:21:03
-14 2019-08-06T13:21:03 Asia/Shanghai Australia/Lindeman
2019-08-06T15:21:03
-15 2019-08-07T13:21:03 Asia/Shanghai America/Aruba
2019-08-07T01:21:03
-16 2019-08-07T13:21:03 Asia/Shanghai America/Blanc-Sablon
2019-08-07T01:21:03
-17 2019-08-08T13:21:03 Africa/Lusaka America/Dawson
2019-08-08T04:21:03
-18 2019-08-08T13:21:03 Africa/Lusaka America/Creston
2019-08-08T04:21:03
-
--- !sql_vec2 --
-2019-08-01T13:21:03 2019-08-01T13:21:03 2019-08-01T13:21:03
-
--- !sql_vec3 --
-2019-08-02T11:21:03 2019-08-02T11:21:03 2019-08-02T11:21:03
-
--- !sql_vec4 --
-2019-08-04T22:21:03 2019-08-04T22:21:03 2019-08-04T22:21:03
-
--- !sql --
-2012-11-30T23:59:59
-
--- !sql --
-2011-01-30T23:59:59
-
--- !sql --
-2010-12-02T23:59:59
-
--- !sql --
-2010-12-01T01:59:59
-
--- !sql --
-2010-12-01T00:01:59
-
--- !sql --
-2010-12-01T00:00:01
-
--- !sql --
-22:23:00
-
--- !sql --
-4th 00 Thu 04 10 Oct 277
-
--- !sql --
-22 22 10 10:23:00 PM 22:23:00 00 6
-
--- !sql --
-1998 52
-
--- !sql --
-01
-
--- !sql --
-%01
-
--- !sql --
-2009-10-04
-
--- !sql --
-2008-11-30T23:59:59
-
--- !sql --
-2010-09-30T23:59:59
-
--- !sql --
-2010-11-28T23:59:59
-
--- !sql --
-2010-11-30T21:59:59
-
--- !sql --
-2010-11-30T23:57:59
-
--- !sql --
-2010-11-30T23:59:57
-
--- !sql --
-1
-
--- !sql --
--31
-
--- !sql --
-16
-
--- !sql --
-31
-
--- !sql --
-29
-
--- !sql --
-Saturday
-
--- !sql --
-31
-
--- !sql --
-3
-
--- !sql --
-3
-
--- !sql --
-34
-
--- !sql --
-34
-
--- !sql --
-2000-07-03
-
--- !sql --
-0000-01-01
-
--- !sql --
-2007-12-01 00:30:19
-
--- !sql --
-2007-12-01 00:30:19
-
--- !sql --
-2007-12-01
-
--- !sql --
-2007-12-01 00:30:19
-
--- !sql --
-\N
-
--- !sql --
-23
-
--- !sql --
-0
-
--- !sql --
-2021-01-01 2021-04-10 2022-02-04
-
--- !sql --
-59
-
--- !sql --
-0
-
--- !sql --
-1
-
--- !sql --
-1
-
--- !sql --
-February
-
--- !sql --
-February
-
--- !sql --
-59
-
--- !sql --
-0
-
--- !sql --
-2014-12-21T12:34:56
-
--- !sql --
-2014-12-21T12:34:56
-
--- !sql --
-2014-12-21T12:34:56
-
--- !sql --
-2004-10-18
-
--- !sql --
-2020-09-01T00:00
-
--- !sql --
-2020-01-01T00:00
-
--- !sql --
-2020-04-01T00:00
-
--- !sql --
-2020-02-03T00:00
-
--- !sql --
-2020-04-09T00:00
-
--- !sql --
-08:00:00
-
--- !sql --
-00:00:09
-
--- !sql --
-\N
-
--- !sql --
-2020-01-02T00:00
-
--- !sql --
-2019-02-02T00:00
-
--- !sql --
-2019-01-09T00:00
-
--- !sql --
-2019-01-03T00:00
-
--- !sql --
-2019-01-02T01:00
-
--- !sql --
-2019-01-02T00:01
-
--- !sql --
-2019-01-02T00:00:01
-
--- !sql --
-3
-
--- !sql --
--1
-
--- !sql --
-128885
-
--- !sql --
-7689600
-
--- !sql --
-2136
-
--- !sql --
-89
-
--- !sql --
-12
-
--- !sql --
-733321
-
--- !sql --
-749027
-
--- !sql --
-1196389819
-
--- !sql --
-1196389819
-
--- !sql --
-1196389819
-
--- !sql --
-0
-
--- !sql --
-0
-
--- !sql --
-27
-
--- !sql --
-1
-
--- !sql --
-1
-
--- !sql --
-8
-
--- !sql --
-1987
-
--- !sql --
-2050
-
--- !sql --
-0000-08-01T13:21:03 0
-2019-08-01T13:21:03 2019
-9999-08-01T13:21:03 9999
-
--- !sql --
-202052
-
--- !sql --
-202026
-
--- !sql --
-198912
-
--- !sql --
-198912
-
--- !sql --
-198912
-
--- !sql --
-198912
-
--- !sql --
-198912
-
--- !sql --
-198912
-
--- !sql --
-198912
-
--- !sql --
-198912
-
--- !sql --
-1 2022-08-01
-2 2022-08-01
-4 2022-08-01
-
--- !sql --
-
--- !sql --
-3 2022-07-31
-
--- !sql --
-1 2022-08-01
-2 2022-08-01
-4 2022-08-01
-
--- !sql --
-1 2022-08-01
-2 2022-08-01
-3 2022-07-31
-4 2022-08-01
-
--- !sql --
-1 2022-08-01
-2 2022-08-01
-4 2022-08-01
-
--- !sql --
-2 2022-08-01 00:00:00
-
--- !sql --
-1 2022-08-01 17:00:31
-4 2022-08-01 00:00:01
-
--- !sql --
-3 2022-07-31 23:59:59
-
--- !sql --
-1 2022-08-01 17:00:31
-2 2022-08-01 00:00:00
-4 2022-08-01 00:00:01
-
--- !sql --
-2 2022-08-01 00:00:00
-3 2022-07-31 23:59:59
-
--- !sql --
-2 2022-08-01 00:00:00
-
--- !sql --
-1 2022-08-01 17:00:31
-
--- !sql --
-true
-
--- !sql --
-true
-
--- !sql --
-2022 31 4
-
--- !sql --
-\N
-
--- !sql --
-2022-07-12T20:00:45
-
--- !sql --
-2018-04-02T15:03:28
-
--- !sql --
-19 19 21 22 23 24 25 26
-
--- !sql --
-19 19 21 22 23 24 25 26
-
--- !sql --
-2020-08-01T13:21:03
-
--- !sql --
-2019-09-01T13:21:03
-
--- !sql --
-2019-08-08T13:21:03
-
--- !sql --
-2019-08-02T13:21:03
-
--- !sql --
-2019-08-01T14:21:03
-
--- !sql --
-2019-08-01T13:22:03
-
--- !sql --
-2019-08-01T13:21:04
-
--- !sql --
-2018-08-01T13:21:03
-
--- !sql --
-2019-07-01T13:21:03
-
--- !sql --
-2019-07-25T13:21:03
-
--- !sql --
-2019-07-31T13:21:03
-
--- !sql --
-2019-08-01T12:21:03
-
--- !sql --
-2019-08-01T13:20:03
-
--- !sql --
-2019-08-01T13:21:02
-
--- !sql --
-\N
-
--- !sql --
-\N
-
--- !sql --
-2020-08-01T13:21:03.111
-
--- !sql --
-2019-09-01T13:21:03.111
-
--- !sql --
-2019-08-08T13:21:03.111
-
--- !sql --
-2019-08-02T13:21:03.111
-
--- !sql --
-2019-08-01T14:21:03.111
-
--- !sql --
-2019-08-01T13:22:03.111
-
--- !sql --
-2019-08-01T13:21:04.111
-
--- !sql --
-2018-08-01T13:21:03.111
-
--- !sql --
-2019-07-01T13:21:03.111
-
--- !sql --
-2019-07-25T13:21:03.111
-
--- !sql --
-2019-07-31T13:21:03.111
-
--- !sql --
-2019-08-01T12:21:03.111
-
--- !sql --
-2019-08-01T13:20:03.111
-
--- !sql --
-2019-08-01T13:21:02.111
-
--- !sql --
-2020-08-01T13:21:03.111111
-
--- !sql --
-2019-09-01T13:21:03.111111
-
--- !sql --
-2019-08-08T13:21:03.111111
-
--- !sql --
-2019-08-02T13:21:03.111111
-
--- !sql --
-2019-08-01T14:21:03.111111
-
--- !sql --
-2019-08-01T13:22:03.111111
-
--- !sql --
-2019-08-01T13:21:04.111111
-
--- !sql --
-2018-08-01T13:21:03.111111
-
--- !sql --
-2019-07-01T13:21:03.111111
-
--- !sql --
-2019-07-25T13:21:03.111111
-
--- !sql --
-2019-07-31T13:21:03.111111
-
--- !sql --
-2019-08-01T12:21:03.111111
-
--- !sql --
-2019-08-01T13:20:03.111111
-
--- !sql --
-2019-08-01T13:21:02.111111
-
--- !sql --
-\N \N \N \N
-2000-02-29 2000-02-29 2000-02-29 2000-02-29
-2022-01-31 2022-01-31 2022-01-31 2022-01-31
-2022-02-28 2022-02-28 2022-02-28 2022-02-28
-
--- !sql --
-\N \N
-2000-02-29 2000-02-29
-2022-01-31 2022-01-31
-2022-02-28 2022-02-28
-
--- !sql --
-\N \N \N \N
-1970-01-01 1970-01-01 1970-01-01 1970-01-01
-2000-01-31 2000-01-31 2000-01-31 2000-01-31
-2021-12-27 2021-12-27 2021-12-27 2021-12-27
-2022-02-28 2022-02-28 2022-02-28 2022-02-28
-
diff --git
a/regression-test/data/query_p0/sql_functions/string_functions/test_string_function.out
b/regression-test/data/query_p0/sql_functions/string_functions/test_string_function.out
index 69ce99277fa..0aae3a22064 100644
Binary files
a/regression-test/data/query_p0/sql_functions/string_functions/test_string_function.out
and
b/regression-test/data/query_p0/sql_functions/string_functions/test_string_function.out
differ
diff --git
a/regression-test/suites/nereids_function_p0/scalar_function/R.groovy
b/regression-test/suites/nereids_function_p0/scalar_function/R.groovy
index 2a00feeafdf..bf21154192b 100644
--- a/regression-test/suites/nereids_function_p0/scalar_function/R.groovy
+++ b/regression-test/suites/nereids_function_p0/scalar_function/R.groovy
@@ -107,10 +107,4 @@ suite("nereids_scalar_fn_R") {
qt_sql_rtrim_Varchar_Varchar_notnull "select rtrim(kvchrs1, '1') from
fn_test_not_nullable order by kvchrs1"
qt_sql_rtrim_String_String "select rtrim(kstr, '1') from fn_test order by
kstr"
qt_sql_rtrim_String_String_notnull "select rtrim(kstr, '1') from
fn_test_not_nullable order by kstr"
- sql "SELECT random_bytes(7);"
- qt_sql_random_bytes "SELECT random_bytes(null);"
- test {
- sql " select random_bytes(-1); "
- exception "argument -1 of function random_bytes at row 0 was invalid"
- }
}
diff --git
a/regression-test/suites/query_p0/sql_functions/string_functions/test_string_function.groovy
b/regression-test/suites/query_p0/sql_functions/string_functions/test_string_function.groovy
index f8fe485f967..ea6001d1399 100644
---
a/regression-test/suites/query_p0/sql_functions/string_functions/test_string_function.groovy
+++
b/regression-test/suites/query_p0/sql_functions/string_functions/test_string_function.groovy
@@ -361,4 +361,23 @@ suite("test_string_function", "arrow_flight_sql") {
qt_strcmp1 """ select strcmp('a', 'abc'); """
qt_strcmp2 """ select strcmp('abc', 'abc'); """
qt_strcmp3 """ select strcmp('abcd', 'abc'); """
+
+ sql "SELECT random_bytes(7);"
+ qt_sql_random_bytes "SELECT random_bytes(null);"
+ test {
+ sql " select random_bytes(-1); "
+ exception "argument -1 of function random_bytes at row 0 was invalid"
+ }
+ def some_result = sql """ SELECT random_bytes(10) a FROM numbers("number"
= "10") """
+ assertTrue(some_result[0][0] != some_result[1][0], "${some_result[0][0]}
should different with ${some_result[1][0]}")
+ sql "select random_bytes(k1) from test_function_char;"
+
+ explain {
+ sql("""select/*+SET_VAR(enable_fold_constant_by_be=true)*/
random_bytes(10) from numbers("number" = "10");""")
+ contains "final projections: random_bytes(10)"
+ }
+ explain {
+ sql("""select/*+SET_VAR(enable_fold_constant_by_be=true)*/ random(10)
from numbers("number" = "10");""")
+ contains "final projections: random(10)"
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]