From 8ea1ce39aa61956f32f4617caf09088bb2d668d6 Mon Sep 17 00:00:00 2001 From: fwang12 Date: Fri, 23 Apr 2021 01:01:24 +0800 Subject: [PATCH] [KYUUBI #568] Add TPCDS query output schema check for q2 ### _Why are the changes needed?_ Add TPCDS query output schema check for q2 ### _How was this patch tested?_ - [ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible - [ ] Add screenshots for manual tests if appropriate - [x] [Run test](https://kyuubi.readthedocs.io/en/latest/tools/testing.html#running-tests) locally before make a pull request Closes #568 from turboFei/tpcds_2. Closes #568 c2523ea [fwang12] Add TPCDS query output schema check for q2 Authored-by: fwang12 Signed-off-by: Kent Yao --- .../resources/tpcds-1_4/q2/q2.output.schema | 1 + .../src/test/resources/tpcds-1_4/q2/q2.sql | 98 +++++++++++++++++++ 2 files changed, 99 insertions(+) create mode 100644 kyuubi-main/src/test/resources/tpcds-1_4/q2/q2.output.schema create mode 100755 kyuubi-main/src/test/resources/tpcds-1_4/q2/q2.sql diff --git a/kyuubi-main/src/test/resources/tpcds-1_4/q2/q2.output.schema b/kyuubi-main/src/test/resources/tpcds-1_4/q2/q2.output.schema new file mode 100644 index 000000000..18638f45d --- /dev/null +++ b/kyuubi-main/src/test/resources/tpcds-1_4/q2/q2.output.schema @@ -0,0 +1 @@ +struct diff --git a/kyuubi-main/src/test/resources/tpcds-1_4/q2/q2.sql b/kyuubi-main/src/test/resources/tpcds-1_4/q2/q2.sql new file mode 100755 index 000000000..8fed78994 --- /dev/null +++ b/kyuubi-main/src/test/resources/tpcds-1_4/q2/q2.sql @@ -0,0 +1,98 @@ +-- +-- Licensed to the Apache Software Foundation (ASF) under one or more +-- contributor license agreements. See the NOTICE file distributed with +-- this work for additional information regarding copyright ownership. +-- The ASF licenses this file to You under the Apache License, Version 2.0 +-- (the "License"); you may not use this file except in compliance with +-- the License. You may obtain a copy of the License at +-- +-- http://www.apache.org/licenses/LICENSE-2.0 +-- +-- Unless required by applicable law or agreed to in writing, software +-- distributed under the License is distributed on an "AS IS" BASIS, +-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +-- See the License for the specific language governing permissions and +-- limitations under the License. +-- + +WITH wscs AS +( SELECT + sold_date_sk, + sales_price + FROM (SELECT + ws_sold_date_sk sold_date_sk, + ws_ext_sales_price sales_price + FROM web_sales) x + UNION ALL + (SELECT + cs_sold_date_sk sold_date_sk, + cs_ext_sales_price sales_price + FROM catalog_sales)), + wswscs AS + ( SELECT + d_week_seq, + sum(CASE WHEN (d_day_name = 'Sunday') + THEN sales_price + ELSE NULL END) + sun_sales, + sum(CASE WHEN (d_day_name = 'Monday') + THEN sales_price + ELSE NULL END) + mon_sales, + sum(CASE WHEN (d_day_name = 'Tuesday') + THEN sales_price + ELSE NULL END) + tue_sales, + sum(CASE WHEN (d_day_name = 'Wednesday') + THEN sales_price + ELSE NULL END) + wed_sales, + sum(CASE WHEN (d_day_name = 'Thursday') + THEN sales_price + ELSE NULL END) + thu_sales, + sum(CASE WHEN (d_day_name = 'Friday') + THEN sales_price + ELSE NULL END) + fri_sales, + sum(CASE WHEN (d_day_name = 'Saturday') + THEN sales_price + ELSE NULL END) + sat_sales + FROM wscs, date_dim + WHERE d_date_sk = sold_date_sk + GROUP BY d_week_seq) +SELECT + d_week_seq1, + round(sun_sales1 / sun_sales2, 2), + round(mon_sales1 / mon_sales2, 2), + round(tue_sales1 / tue_sales2, 2), + round(wed_sales1 / wed_sales2, 2), + round(thu_sales1 / thu_sales2, 2), + round(fri_sales1 / fri_sales2, 2), + round(sat_sales1 / sat_sales2, 2) +FROM + (SELECT + wswscs.d_week_seq d_week_seq1, + sun_sales sun_sales1, + mon_sales mon_sales1, + tue_sales tue_sales1, + wed_sales wed_sales1, + thu_sales thu_sales1, + fri_sales fri_sales1, + sat_sales sat_sales1 + FROM wswscs, date_dim + WHERE date_dim.d_week_seq = wswscs.d_week_seq AND d_year = 2001) y, + (SELECT + wswscs.d_week_seq d_week_seq2, + sun_sales sun_sales2, + mon_sales mon_sales2, + tue_sales tue_sales2, + wed_sales wed_sales2, + thu_sales thu_sales2, + fri_sales fri_sales2, + sat_sales sat_sales2 + FROM wswscs, date_dim + WHERE date_dim.d_week_seq = wswscs.d_week_seq AND d_year = 2001 + 1) z +WHERE d_week_seq1 = d_week_seq2 - 53 +ORDER BY d_week_seq1