From 56865f0020f112c3499e58d9b1cdf3633aa578b1 Mon Sep 17 00:00:00 2001 From: junsklee Date: Tue, 24 Dec 2024 15:47:52 +0900 Subject: [PATCH 1/2] [CBRD-25746] added a sql javasp test case for If the SP of GROUP BY of WITH ROLLUP insert fails, the array will be marked as NULL --- sql/_08_javasp/answers/cbrd_25746.answer | 0 sql/_08_javasp/cases/cbrd_25746.sql | 60 ++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 sql/_08_javasp/answers/cbrd_25746.answer create mode 100644 sql/_08_javasp/cases/cbrd_25746.sql diff --git a/sql/_08_javasp/answers/cbrd_25746.answer b/sql/_08_javasp/answers/cbrd_25746.answer new file mode 100644 index 0000000000..e69de29bb2 diff --git a/sql/_08_javasp/cases/cbrd_25746.sql b/sql/_08_javasp/cases/cbrd_25746.sql new file mode 100644 index 0000000000..950072ec65 --- /dev/null +++ b/sql/_08_javasp/cases/cbrd_25746.sql @@ -0,0 +1,60 @@ +-- This test case verifies the following issue: CBRD-25746. +-- When a stored procedure is included in the GROUP BY clause with rollup (e.g., GROUP BY test_fc(dept_no), name WITH ROLLUP), +-- ensure that the aggregated rows for some grouping levels no longer show NULL values instead of the expected aggregated values. + +CREATE OR REPLACE FUNCTION test_fc_int(i INT) RETURN INT AS LANGUAGE JAVA NAME 'SpTest7.typetestint(int) return int'; +CREATE OR REPLACE FUNCTION test_fc_str(i string) RETURN string as language java name 'SpTest7.typeteststring(java.lang.String) return java.lang.String'; + +CREATE TABLE sales_tbl +( + dept_no INT, + name VARCHAR(20), + sales_month INT, + sales_amount INT DEFAULT 100, + PRIMARY KEY (dept_no, name, sales_month) +); + +INSERT INTO sales_tbl VALUES (201, 'George', 1, 450); +INSERT INTO sales_tbl VALUES (202, 'Alice', 1, 550); + +evaluate 'Test Case 1: Using ROUND function in GROUP BY with WITH ROLLUP'; +SELECT ROUND(dept_no), name, AVG(sales_amount) +FROM sales_tbl +WHERE sales_amount > 100 +GROUP BY dept_no, name WITH ROLLUP; + +evaluate 'Test Case 2: Using stored procedure in GROUP BY with WITH ROLLUP'; +SELECT dept_no, name, AVG(sales_amount) +FROM sales_tbl +WHERE sales_amount > 100 +GROUP BY test_fc_int(dept_no), name WITH ROLLUP; + +evaluate 'Test Case 3: Including non-numeric columns in GROUP BY'; +SELECT dept_no, name, AVG(sales_amount) +FROM sales_tbl +WHERE sales_amount > 100 +GROUP BY dept_no, test_fc_str(name) WITH ROLLUP; + +evaluate 'Test Case 4: Using stored procedure in WHERE clause'; +SELECT dept_no, name, AVG(sales_amount) +FROM sales_tbl +WHERE test_fc_int(dept_no) > 200 +GROUP BY test_fc_int(dept_no), name WITH ROLLUP; + +evaluate 'Test Case 5: Using multiple stored procedures in GROUP BY'; +SELECT dept_no, AVG(sales_month), SUM(sales_amount) +FROM sales_tbl +WHERE sales_amount > 100 +GROUP BY test_fc_int(dept_no), test_fc_int(sales_month) WITH ROLLUP; + +evaluate 'Test Case 6: Using HAVING clause with stored procedure'; +SELECT dept_no, name, AVG(sales_amount) +FROM sales_tbl +WHERE sales_amount > 100 +GROUP BY test_fc_int(dept_no), name WITH ROLLUP +HAVING AVG(sales_amount) > 100; + +evaluate 'Cleanup'; +DROP FUNCTION test_fc_int; +DROP FUNCTION test_fc_str; +DROP TABLE sales_tbl; From 0f1a6a8c7e96a10d9989df5b813ee9e7f1d04b97 Mon Sep 17 00:00:00 2001 From: junsklee <50674368+junsklee@users.noreply.github.com> Date: Tue, 24 Dec 2024 16:35:29 +0900 Subject: [PATCH 2/2] fixed description --- sql/_08_javasp/cases/cbrd_25746.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/_08_javasp/cases/cbrd_25746.sql b/sql/_08_javasp/cases/cbrd_25746.sql index 950072ec65..7af66496ac 100644 --- a/sql/_08_javasp/cases/cbrd_25746.sql +++ b/sql/_08_javasp/cases/cbrd_25746.sql @@ -17,7 +17,7 @@ CREATE TABLE sales_tbl INSERT INTO sales_tbl VALUES (201, 'George', 1, 450); INSERT INTO sales_tbl VALUES (202, 'Alice', 1, 550); -evaluate 'Test Case 1: Using ROUND function in GROUP BY with WITH ROLLUP'; +evaluate 'Test Case 1: Using ROUND function and NO SP execution in GROUP BY with WITH ROLLUP'; SELECT ROUND(dept_no), name, AVG(sales_amount) FROM sales_tbl WHERE sales_amount > 100