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 1b3d4b4d31c [cherry-pick](branch-21)fix operator do_projections should
use local_state intermediate_projections (#38612) (#38765)
1b3d4b4d31c is described below
commit 1b3d4b4d31cd7b77dcf11769026c0f46b7c061c7
Author: zhangstar333 <[email protected]>
AuthorDate: Mon Aug 5 09:07:16 2024 +0800
[cherry-pick](branch-21)fix operator do_projections should use local_state
intermediate_projections (#38612) (#38765)
## Proposed changes
cherry-pick from master https://github.com/apache/doris/pull/38612
<!--Describe your changes.-->
---
be/src/pipeline/pipeline_x/operator.cpp | 2 +-
.../data/javaudf_p0/test_javaudf_string.out | 22 ++++++++++++++++++++++
.../suites/javaudf_p0/test_javaudf_string.groovy | 20 +++++++++++++++++++-
3 files changed, 42 insertions(+), 2 deletions(-)
diff --git a/be/src/pipeline/pipeline_x/operator.cpp
b/be/src/pipeline/pipeline_x/operator.cpp
index a8902cf2321..6c2c2a6294d 100644
--- a/be/src/pipeline/pipeline_x/operator.cpp
+++ b/be/src/pipeline/pipeline_x/operator.cpp
@@ -220,7 +220,7 @@ Status OperatorXBase::do_projections(RuntimeState* state,
vectorized::Block* ori
vectorized::Block input_block = *origin_block;
std::vector<int> result_column_ids;
- for (const auto& projections : _intermediate_projections) {
+ for (const auto& projections : local_state->_intermediate_projections) {
result_column_ids.resize(projections.size());
for (int i = 0; i < projections.size(); i++) {
RETURN_IF_ERROR(projections[i]->execute(&input_block,
&result_column_ids[i]));
diff --git a/regression-test/data/javaudf_p0/test_javaudf_string.out
b/regression-test/data/javaudf_p0/test_javaudf_string.out
index 892c5245824..59f2f7c776d 100644
--- a/regression-test/data/javaudf_p0/test_javaudf_string.out
+++ b/regression-test/data/javaudf_p0/test_javaudf_string.out
@@ -10,6 +10,17 @@
8 8 abcdefg8 poiuytre8abcdefg
9 9 abcdefg9 poiuytre9abcdefg
+-- !select_default_2 --
+1 1 abcdefg1 poiuytre1abcdefg
+2 2 abcdefg2 poiuytre2abcdefg
+3 3 abcdefg3 poiuytre3abcdefg
+4 4 abcdefg4 poiuytre4abcdefg
+5 5 abcdefg5 poiuytre5abcdefg
+6 6 abcdefg6 poiuytre6abcdefg
+7 7 abcdefg7 poiuytre7abcdefg
+8 8 abcdefg8 poiuytre8abcdefg
+9 9 abcdefg9 poiuytre9abcdefg
+
-- !select --
ab***fg1
ab***fg2
@@ -43,3 +54,14 @@ ab*def ab**efg
ab*def ab**efg
ab*def ab**efg
+-- !select_4 --
+ab***fg1 ab***fg1
+ab***fg2 ab***fg2
+ab***fg3 ab***fg3
+ab***fg4 ab***fg4
+ab***fg5 ab***fg5
+ab***fg6 ab***fg6
+ab***fg7 ab***fg7
+ab***fg8 ab***fg8
+ab***fg9 ab***fg9
+
diff --git a/regression-test/suites/javaudf_p0/test_javaudf_string.groovy
b/regression-test/suites/javaudf_p0/test_javaudf_string.groovy
index c6d7a7311f5..6517c4b08c2 100644
--- a/regression-test/suites/javaudf_p0/test_javaudf_string.groovy
+++ b/regression-test/suites/javaudf_p0/test_javaudf_string.groovy
@@ -29,6 +29,7 @@ suite("test_javaudf_string") {
log.info("Jar path: ${jarPath}".toString())
try {
sql """ DROP TABLE IF EXISTS ${tableName} """
+ sql """ DROP TABLE IF EXISTS test_javaudf_string_2 """
sql """
CREATE TABLE IF NOT EXISTS ${tableName} (
`user_id` INT NOT NULL COMMENT "用户id",
@@ -51,7 +52,10 @@ suite("test_javaudf_string") {
sql """ INSERT INTO ${tableName} VALUES
${sb.toString()}
"""
+ sql """ create table test_javaudf_string_2 like test_javaudf_string """
+ sql """ insert into test_javaudf_string_2 select * from
test_javaudf_string; """
qt_select_default """ SELECT * FROM ${tableName} t ORDER BY user_id;
"""
+ qt_select_default_2 """ SELECT * FROM test_javaudf_string_2 t ORDER BY
user_id; """
File path = new File(jarPath)
if (!path.exists()) {
@@ -68,9 +72,23 @@ suite("test_javaudf_string") {
qt_select """ SELECT java_udf_string_test(string_col, 2, 3) result
FROM ${tableName} ORDER BY result; """
qt_select """ SELECT java_udf_string_test('abcdef', 2, 3),
java_udf_string_test('abcdefg', 2, 3) result FROM ${tableName} ORDER BY result;
"""
-
+ qt_select_4 """
+ SELECT
+ COALESCE(
+ java_udf_string_test(test_javaudf_string.varchar_col, 2,
3),
+ 'not1'
+ ),
+ COALESCE(
+ java_udf_string_test(test_javaudf_string.varchar_col, 2,
3),
+ 'not2'
+ )
+ FROM
+ test_javaudf_string
+ JOIN test_javaudf_string_2 ON test_javaudf_string.user_id =
test_javaudf_string_2.user_id order by 1,2;
+ """
} finally {
try_sql("DROP FUNCTION IF EXISTS java_udf_string_test(string, int,
int);")
try_sql("DROP TABLE IF EXISTS ${tableName}")
+ try_sql("DROP TABLE IF EXISTS test_javaudf_string_2")
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]