diff --git a/.github/actions/test_sqllogic_cluster_linux/action.yml b/.github/actions/test_sqllogic_cluster_linux/action.yml index a25c649204136..cad1052a28f1a 100644 --- a/.github/actions/test_sqllogic_cluster_linux/action.yml +++ b/.github/actions/test_sqllogic_cluster_linux/action.yml @@ -26,5 +26,4 @@ runs: env: TEST_HANDLERS: ${{ inputs.handlers }} TEST_PARALLEL: ${{ inputs.parallel }} - TEST_EXT_ARGS: '--skip_file tpcds_spill_1.test,tpcds_spill_2.test,tpcds_spill_3.test' run: bash ./scripts/ci/ci-run-sqllogic-tests-cluster.sh ${{ inputs.dirs }} diff --git a/.github/actions/test_sqllogic_standalone_linux/action.yml b/.github/actions/test_sqllogic_standalone_linux/action.yml index 7745bd30f7af2..d3748c53e44a3 100644 --- a/.github/actions/test_sqllogic_standalone_linux/action.yml +++ b/.github/actions/test_sqllogic_standalone_linux/action.yml @@ -29,20 +29,12 @@ runs: with: artifacts: sqllogictests,meta,query - - uses: actions/github-script@v7 - id: ext-args - env: - DIRS: ${{ inputs.dirs }} - with: - script: require('.github/actions/test_sqllogic_standalone_linux/script.js')(core) - - name: Run sqllogic Tests with Standalone mode if: inputs.storage-format == 'all' || inputs.storage-format == 'parquet' shell: bash env: TEST_HANDLERS: ${{ inputs.handlers }} TEST_PARALLEL: ${{ inputs.parallel }} - TEST_EXT_ARGS: ${{ steps.ext-args.outputs.parquet }} CACHE_ENABLE_TABLE_META_CACHE: ${{ inputs.enable_table_meta_cache}} run: bash ./scripts/ci/ci-run-sqllogic-tests.sh ${{ inputs.dirs }} diff --git a/.github/actions/test_sqllogic_standalone_linux/script.js b/.github/actions/test_sqllogic_standalone_linux/script.js deleted file mode 100644 index 6d270432bc838..0000000000000 --- a/.github/actions/test_sqllogic_standalone_linux/script.js +++ /dev/null @@ -1,12 +0,0 @@ -module.exports = (core) => { - switch (process.env.DIRS) { - case 'tpcds': - const parquet = [ - '--skip_file tpcds_spill_2.test,tpcds_spill_3.test', - '--skip_file tpcds_spill_1.test,tpcds_spill_3.test', - '--skip_file tpcds_spill_1.test,tpcds_spill_2.test', - ][Date.now() % 3]; - core.setOutput('parquet', parquet) - return - } -} diff --git a/.github/workflows/reuse.sqllogic.yml b/.github/workflows/reuse.sqllogic.yml index e1952c4788cac..385915ef1ace4 100644 --- a/.github/workflows/reuse.sqllogic.yml +++ b/.github/workflows/reuse.sqllogic.yml @@ -60,7 +60,7 @@ jobs: - { dirs: "crdb", runner: "2c8g" } - { dirs: "base", runner: "2c8g" } - { dirs: "ydb", runner: "2c8g" } - - { dirs: "tpcds", runner: "4c16g", parallel: "1" } + - { dirs: "tpcds", runner: "2c8g" } - { dirs: "tpch", runner: "2c8g" } - { dirs: "standalone", runner: "2c8g" } handler: diff --git a/tests/sqllogictests/src/client/http_client.rs b/tests/sqllogictests/src/client/http_client.rs index 3485a39f108a1..9a704a02c937b 100644 --- a/tests/sqllogictests/src/client/http_client.rs +++ b/tests/sqllogictests/src/client/http_client.rs @@ -17,6 +17,7 @@ use std::sync::Arc; use std::time::Duration; use std::time::Instant; +use regex::Regex; use reqwest::header::HeaderMap; use reqwest::header::HeaderValue; use reqwest::Client; @@ -41,12 +42,43 @@ pub struct HttpClient { #[derive(serde::Deserialize, Debug)] struct QueryResponse { session: Option, + schema: Vec, data: Option, next_uri: Option, error: Option, } +#[derive(serde::Deserialize, Debug)] +struct SchemaItem { + #[allow(dead_code)] + pub name: String, + pub r#type: String, +} + +impl SchemaItem { + fn parse_type(&self) -> Result { + let nullable = Regex::new(r"^Nullable\((.+)\)$").unwrap(); + let value = match nullable.captures(&self.r#type) { + Some(captures) => { + let (_, [value]) = captures.extract(); + value + } + None => &self.r#type, + }; + let typ = match value { + "String" => DefaultColumnType::Text, + "Int8" | "Int16" | "Int32" | "Int64" | "UInt8" | "UInt16" | "UInt32" | "UInt64" => { + DefaultColumnType::Integer + } + "Float32" | "Float64" => DefaultColumnType::FloatingPoint, + decimal if decimal.starts_with("Decimal") => DefaultColumnType::FloatingPoint, + _ => DefaultColumnType::Any, + }; + Ok(typ) + } +} + // make error message the same with ErrorCode::display fn format_error(value: serde_json::Value) -> String { let value = value.as_object().unwrap(); @@ -125,14 +157,20 @@ impl HttpClient { pub async fn query(&mut self, sql: &str) -> Result> { let start = Instant::now(); + let port = self.port; + let mut response = self + .post_query(sql, &format!("http://127.0.0.1:{port}/v1/query")) + .await?; - let url = format!("http://127.0.0.1:{}/v1/query", self.port); + let mut schema = std::mem::take(&mut response.schema); let mut parsed_rows = vec![]; - let mut response = self.post_query(sql, &url).await?; self.handle_response(&response, &mut parsed_rows)?; while let Some(next_uri) = &response.next_uri { - let url = format!("http://127.0.0.1:{}{next_uri}", self.port); - let new_response = self.poll_query_result(&url).await?; + let url = format!("http://127.0.0.1:{port}{next_uri}"); + let mut new_response = self.poll_query_result(&url).await?; + if schema.is_empty() && !new_response.schema.is_empty() { + schema = std::mem::take(&mut new_response.schema); + } if new_response.next_uri.is_some() { self.handle_response(&new_response, &mut parsed_rows)?; response = new_response; @@ -143,11 +181,6 @@ impl HttpClient { if let Some(error) = response.error { return Err(format_error(error).into()); } - // Todo: add types to compare - let mut types = vec![]; - if !parsed_rows.is_empty() { - types = vec![DefaultColumnType::Any; parsed_rows[0].len()]; - } if self.debug { println!( @@ -156,6 +189,11 @@ impl HttpClient { ); } + let types = schema + .iter() + .map(|item| item.parse_type().unwrap_or(DefaultColumnType::Any)) + .collect(); + Ok(DBOutput::Rows { types, rows: parsed_rows, diff --git a/tests/sqllogictests/src/main.rs b/tests/sqllogictests/src/main.rs index b6f4380aa9591..b6d1d18dd5014 100644 --- a/tests/sqllogictests/src/main.rs +++ b/tests/sqllogictests/src/main.rs @@ -27,6 +27,8 @@ use sqllogictest::default_validator; use sqllogictest::parse_file; use sqllogictest::DBOutput; use sqllogictest::DefaultColumnType; +use sqllogictest::Location; +use sqllogictest::QueryExpect; use sqllogictest::Record; use sqllogictest::Runner; use sqllogictest::TestError; @@ -319,7 +321,6 @@ async fn run_suits(args: SqlLogicTestArgs, client_type: ClientType) -> Result<() let col_separator = " "; let validator = default_validator; - let column_validator = default_column_validator; let mut runner = Runner::new(|| async { create_databend(&client_type, &file_name).await }); runner @@ -328,7 +329,7 @@ async fn run_suits(args: SqlLogicTestArgs, client_type: ClientType) -> Result<() col_separator, validator, sqllogictest::default_normalizer, - column_validator, + default_column_validator, ) .await .unwrap(); @@ -354,6 +355,33 @@ async fn run_suits(args: SqlLogicTestArgs, client_type: ClientType) -> Result<() Ok(()) } +fn column_validator( + loc: Location, + actual: Vec, + expected: Vec, +) { + let equals = if actual.len() != expected.len() { + false + } else { + actual.iter().zip(expected.iter()).all(|x| { + use DefaultColumnType::*; + matches!( + x, + (Text, Text) + | (Integer, Integer) + | (FloatingPoint, FloatingPoint) + | (Any, _) + | (_, Any) + ) + }) + }; + if !equals { + println!( + "warn: column type not match, actual: {actual:?}, expected: {expected:?}, loc: {loc}" + ); + } +} + async fn run_parallel_async( tasks: Vec, TestError>>>, num_of_tests: usize, @@ -399,22 +427,40 @@ async fn run_file_async( break; } // Capture error record and continue to run next records - if let Err(e) = runner.run_async(record).await { - // Skip query result error in bench - if bench - && matches!( - e.kind(), - sqllogictest::TestErrorKind::QueryResultMismatch { .. } - ) - { - continue; - } + let expected_types = if let Record::Query { + loc, + expected: QueryExpect::Results { types, .. }, + .. + } = &record + { + Some((loc.clone(), types.clone())) + } else { + None + }; + + match (runner.run_async(record).await, expected_types) { + ( + Ok(sqllogictest::RecordOutput::Query { types: actual, .. }), + Some((loc, expected)), + ) => column_validator(loc, actual, expected), + (Err(e), _) => { + // Skip query result error in bench + if bench + && matches!( + e.kind(), + sqllogictest::TestErrorKind::QueryResultMismatch { .. } + ) + { + continue; + } - if no_fail_fast { - error_records.push(e); - } else { - return Err(e); + if no_fail_fast { + error_records.push(e); + } else { + return Err(e); + } } + _ => {} } } let run_file_status = match error_records.is_empty() { diff --git a/tests/sqllogictests/suites/tpcds/Q1 b/tests/sqllogictests/suites/tpcds/Q1 index 9622c7f630960..5cc1291c3f929 100644 --- a/tests/sqllogictests/suites/tpcds/Q1 +++ b/tests/sqllogictests/suites/tpcds/Q1 @@ -1,5 +1,5 @@ # Q1 -query I +query T WITH customer_total_return AS (SELECT sr_customer_sk AS ctr_customer_sk, sr_store_sk AS ctr_store_sk, diff --git a/tests/sqllogictests/suites/tpcds/Q10 b/tests/sqllogictests/suites/tpcds/Q10 index 0f49c34a741bc..9ba929e271b0f 100644 --- a/tests/sqllogictests/suites/tpcds/Q10 +++ b/tests/sqllogictests/suites/tpcds/Q10 @@ -1,5 +1,5 @@ # Q10 -query I +query TTTIIITIIIIIII SELECT cd_gender, cd_marital_status, cd_education_status, diff --git a/tests/sqllogictests/suites/tpcds/Q11 b/tests/sqllogictests/suites/tpcds/Q11 index 2b4a8f85542e7..156122b9a0f9f 100644 --- a/tests/sqllogictests/suites/tpcds/Q11 +++ b/tests/sqllogictests/suites/tpcds/Q11 @@ -1,5 +1,5 @@ # Q11 -query I +query TTTT WITH year_total AS (SELECT c_customer_id customer_id, c_first_name customer_first_name, diff --git a/tests/sqllogictests/suites/tpcds/Q12 b/tests/sqllogictests/suites/tpcds/Q12 index 7e75ff86e465d..83c621e52d936 100644 --- a/tests/sqllogictests/suites/tpcds/Q12 +++ b/tests/sqllogictests/suites/tpcds/Q12 @@ -1,5 +1,5 @@ # Q12 -query I +query TTTTRRR SELECT i_item_id, i_item_desc, i_category, diff --git a/tests/sqllogictests/suites/tpcds/Q13 b/tests/sqllogictests/suites/tpcds/Q13 index ba9c83244af0a..e58408576bae8 100644 --- a/tests/sqllogictests/suites/tpcds/Q13 +++ b/tests/sqllogictests/suites/tpcds/Q13 @@ -1,5 +1,5 @@ # Q13 -query I +query RRRR SELECT avg(ss_quantity) avg1, avg(ss_ext_sales_price) avg2, diff --git a/tests/sqllogictests/suites/tpcds/Q14 b/tests/sqllogictests/suites/tpcds/Q14 index 699f9eb27770d..ff38c0fce2755 100644 --- a/tests/sqllogictests/suites/tpcds/Q14 +++ b/tests/sqllogictests/suites/tpcds/Q14 @@ -1,5 +1,5 @@ # Q14 -query I +query TIIIRI WITH cross_items AS (SELECT i_item_sk ss_item_sk FROM item, diff --git a/tests/sqllogictests/suites/tpcds/Q15 b/tests/sqllogictests/suites/tpcds/Q15 index 47c287e07e373..82febfa4a8aef 100644 --- a/tests/sqllogictests/suites/tpcds/Q15 +++ b/tests/sqllogictests/suites/tpcds/Q15 @@ -1,5 +1,5 @@ # Q15 -query I +query TR SELECT ca_zip, sum(cs_sales_price) FROM catalog_sales, diff --git a/tests/sqllogictests/suites/tpcds/Q16 b/tests/sqllogictests/suites/tpcds/Q16 index 50e73ad1dc87b..8b8e6433ca7a0 100644 --- a/tests/sqllogictests/suites/tpcds/Q16 +++ b/tests/sqllogictests/suites/tpcds/Q16 @@ -1,5 +1,5 @@ # Q16 -query I +query IRR SELECT count(DISTINCT cs_order_number) AS "order count", sum(cs_ext_ship_cost) AS "total shipping cost", sum(cs_net_profit) AS "total net profit" diff --git a/tests/sqllogictests/suites/tpcds/Q17 b/tests/sqllogictests/suites/tpcds/Q17 index 7398a4c8d7ba9..0f8ee7723996c 100644 --- a/tests/sqllogictests/suites/tpcds/Q17 +++ b/tests/sqllogictests/suites/tpcds/Q17 @@ -1,5 +1,5 @@ # Q17 -query I +query TTTIRRRIRRRIRRR SELECT i_item_id, i_item_desc, s_state, diff --git a/tests/sqllogictests/suites/tpcds/Q18 b/tests/sqllogictests/suites/tpcds/Q18 index afbf25ef06abd..2448620974f7e 100644 --- a/tests/sqllogictests/suites/tpcds/Q18 +++ b/tests/sqllogictests/suites/tpcds/Q18 @@ -1,5 +1,5 @@ # Q18 -query I +query TTTTRRRRRRR SELECT i_item_id, ca_country, ca_state, diff --git a/tests/sqllogictests/suites/tpcds/Q19 b/tests/sqllogictests/suites/tpcds/Q19 index ebb0b576d6e68..807f88e4da30d 100644 --- a/tests/sqllogictests/suites/tpcds/Q19 +++ b/tests/sqllogictests/suites/tpcds/Q19 @@ -1,5 +1,5 @@ # Q19 -query I +query ITITR SELECT i_brand_id brand_id, i_brand brand, i_manufact_id, diff --git a/tests/sqllogictests/suites/tpcds/Q2 b/tests/sqllogictests/suites/tpcds/Q2 index 1ebc0d423b242..b3a78a981d3a3 100644 --- a/tests/sqllogictests/suites/tpcds/Q2 +++ b/tests/sqllogictests/suites/tpcds/Q2 @@ -1,5 +1,5 @@ # Q2 -query I +query IRRRRRRR WITH wscs AS (SELECT sold_date_sk, sales_price diff --git a/tests/sqllogictests/suites/tpcds/Q20 b/tests/sqllogictests/suites/tpcds/Q20 index 3ebbad3383e72..4b7f7e14d7d08 100644 --- a/tests/sqllogictests/suites/tpcds/Q20 +++ b/tests/sqllogictests/suites/tpcds/Q20 @@ -1,5 +1,5 @@ # Q20 -query I +query TTTTRRR SELECT i_item_id , i_item_desc, diff --git a/tests/sqllogictests/suites/tpcds/Q21 b/tests/sqllogictests/suites/tpcds/Q21 index 1ea7b7c21a971..92c91def4d843 100644 --- a/tests/sqllogictests/suites/tpcds/Q21 +++ b/tests/sqllogictests/suites/tpcds/Q21 @@ -1,5 +1,5 @@ # Q21 -query I +query TTII SELECT * FROM (SELECT w_warehouse_name, diff --git a/tests/sqllogictests/suites/tpcds/Q22 b/tests/sqllogictests/suites/tpcds/Q22 index 2aeea32cf67a0..34413497f3693 100644 --- a/tests/sqllogictests/suites/tpcds/Q22 +++ b/tests/sqllogictests/suites/tpcds/Q22 @@ -1,5 +1,5 @@ # Q22 -query I +query TTTTR SELECT i_product_name , i_brand , i_class , diff --git a/tests/sqllogictests/suites/tpcds/Q23 b/tests/sqllogictests/suites/tpcds/Q23 index 7ceb3c725458a..ce83170d846c0 100644 --- a/tests/sqllogictests/suites/tpcds/Q23 +++ b/tests/sqllogictests/suites/tpcds/Q23 @@ -1,5 +1,5 @@ # Q23 -query I +query TTR WITH frequent_ss_items AS (SELECT itemdesc, i_item_sk item_sk, diff --git a/tests/sqllogictests/suites/tpcds/Q24 b/tests/sqllogictests/suites/tpcds/Q24 index c8305533be1d9..ce228fa32c03d 100644 --- a/tests/sqllogictests/suites/tpcds/Q24 +++ b/tests/sqllogictests/suites/tpcds/Q24 @@ -1,5 +1,5 @@ # Q24 -query I +query TTTR WITH ssales AS (SELECT c_last_name, c_first_name, diff --git a/tests/sqllogictests/suites/tpcds/Q25 b/tests/sqllogictests/suites/tpcds/Q25 index 35992e03b0242..a81f13534c95c 100644 --- a/tests/sqllogictests/suites/tpcds/Q25 +++ b/tests/sqllogictests/suites/tpcds/Q25 @@ -1,5 +1,5 @@ # Q25 -query I +query TTTTRRR SELECT i_item_id , i_item_desc , diff --git a/tests/sqllogictests/suites/tpcds/Q26 b/tests/sqllogictests/suites/tpcds/Q26 index 915c110532e68..4911a2a363a53 100644 --- a/tests/sqllogictests/suites/tpcds/Q26 +++ b/tests/sqllogictests/suites/tpcds/Q26 @@ -1,5 +1,5 @@ # Q26 -query I +query TRRRR SELECT i_item_id, avg(cs_quantity) agg1, avg(cs_list_price) agg2, diff --git a/tests/sqllogictests/suites/tpcds/Q27 b/tests/sqllogictests/suites/tpcds/Q27 index 4ef069d1ef917..2d70d4cf75d61 100644 --- a/tests/sqllogictests/suites/tpcds/Q27 +++ b/tests/sqllogictests/suites/tpcds/Q27 @@ -1,5 +1,5 @@ # Q27 -query I +query TTIRRRR WITH results AS (SELECT i_item_id, s_state, diff --git a/tests/sqllogictests/suites/tpcds/Q28 b/tests/sqllogictests/suites/tpcds/Q28 index d79bb7e87ea01..b51de55048a7d 100644 --- a/tests/sqllogictests/suites/tpcds/Q28 +++ b/tests/sqllogictests/suites/tpcds/Q28 @@ -1,5 +1,5 @@ # Q28 -query I +query RIIRIIRIIRIIRIIRII SELECT * FROM (SELECT avg(ss_list_price) B1_LP, diff --git a/tests/sqllogictests/suites/tpcds/Q29 b/tests/sqllogictests/suites/tpcds/Q29 index 6a1969870070a..eb18290b23157 100644 --- a/tests/sqllogictests/suites/tpcds/Q29 +++ b/tests/sqllogictests/suites/tpcds/Q29 @@ -1,5 +1,5 @@ # Q29 -query I +query TTTTIII SELECT i_item_id, i_item_desc, s_store_id, diff --git a/tests/sqllogictests/suites/tpcds/Q3 b/tests/sqllogictests/suites/tpcds/Q3 index 861653c1ff5e5..2429ed07257e4 100644 --- a/tests/sqllogictests/suites/tpcds/Q3 +++ b/tests/sqllogictests/suites/tpcds/Q3 @@ -1,5 +1,5 @@ # Q3 -query I +query IITR SELECT dt.d_year, item.i_brand_id brand_id, item.i_brand brand, diff --git a/tests/sqllogictests/suites/tpcds/Q30 b/tests/sqllogictests/suites/tpcds/Q30 index 66903cd98e873..6cdc8ed4edfa9 100644 --- a/tests/sqllogictests/suites/tpcds/Q30 +++ b/tests/sqllogictests/suites/tpcds/Q30 @@ -1,5 +1,5 @@ # Q30 -query I +query TTTTTIIITTTIR WITH customer_total_return AS (SELECT wr_returning_customer_sk AS ctr_customer_sk, ca_state AS ctr_state, diff --git a/tests/sqllogictests/suites/tpcds/Q31 b/tests/sqllogictests/suites/tpcds/Q31 index 4f853aefa7422..3cb4f2e6cc3cd 100644 --- a/tests/sqllogictests/suites/tpcds/Q31 +++ b/tests/sqllogictests/suites/tpcds/Q31 @@ -1,5 +1,5 @@ # Q31 -query I +query TIRRRR WITH ss AS (SELECT ca_county, d_qoy, diff --git a/tests/sqllogictests/suites/tpcds/Q32 b/tests/sqllogictests/suites/tpcds/Q32 index d5bcd03648f2b..d36d60c595466 100644 --- a/tests/sqllogictests/suites/tpcds/Q32 +++ b/tests/sqllogictests/suites/tpcds/Q32 @@ -1,5 +1,5 @@ # Q32 -query I +query R SELECT sum(cs_ext_discount_amt) AS "excess discount amount" FROM catalog_sales , item , diff --git a/tests/sqllogictests/suites/tpcds/Q33 b/tests/sqllogictests/suites/tpcds/Q33 index b0ad4708912c7..00ce730c69469 100644 --- a/tests/sqllogictests/suites/tpcds/Q33 +++ b/tests/sqllogictests/suites/tpcds/Q33 @@ -1,5 +1,5 @@ # Q33 -query I +query IR WITH ss AS ( SELECT i_manufact_id, sum(ss_ext_sales_price) total_sales diff --git a/tests/sqllogictests/suites/tpcds/Q34 b/tests/sqllogictests/suites/tpcds/Q34 index ec488e20e6703..f0659d20c39f7 100644 --- a/tests/sqllogictests/suites/tpcds/Q34 +++ b/tests/sqllogictests/suites/tpcds/Q34 @@ -1,5 +1,5 @@ # Q34 -query I +query TTTTII SELECT c_last_name , c_first_name , c_salutation , diff --git a/tests/sqllogictests/suites/tpcds/Q35 b/tests/sqllogictests/suites/tpcds/Q35 index dc2239af9fada..cc3e2ccc54c1e 100644 --- a/tests/sqllogictests/suites/tpcds/Q35 +++ b/tests/sqllogictests/suites/tpcds/Q35 @@ -1,5 +1,5 @@ # Q35 -query I +query TTTIIIIRIIIIRIIIIR SELECT ca_state, cd_gender, cd_marital_status, diff --git a/tests/sqllogictests/suites/tpcds/Q36 b/tests/sqllogictests/suites/tpcds/Q36 index 4554baa69c4ad..7730235a6bcef 100644 --- a/tests/sqllogictests/suites/tpcds/Q36 +++ b/tests/sqllogictests/suites/tpcds/Q36 @@ -1,5 +1,5 @@ # Q36 -query I +query RTTII WITH results AS (SELECT sum(ss_net_profit) AS ss_net_profit, sum(ss_ext_sales_price) AS ss_ext_sales_price, diff --git a/tests/sqllogictests/suites/tpcds/Q37 b/tests/sqllogictests/suites/tpcds/Q37 index 2482e615a8bd0..c63c2245b3509 100644 --- a/tests/sqllogictests/suites/tpcds/Q37 +++ b/tests/sqllogictests/suites/tpcds/Q37 @@ -1,5 +1,5 @@ # Q37 -query I +query TTR SELECT i_item_id, i_item_desc, i_current_price diff --git a/tests/sqllogictests/suites/tpcds/Q39 b/tests/sqllogictests/suites/tpcds/Q39 index 2ef223d4fb197..75de3b6eb99bd 100644 --- a/tests/sqllogictests/suites/tpcds/Q39 +++ b/tests/sqllogictests/suites/tpcds/Q39 @@ -1,5 +1,5 @@ # Q39 -query I +query IIIRRIIIRR WITH inv AS (SELECT w_warehouse_name, diff --git a/tests/sqllogictests/suites/tpcds/Q4 b/tests/sqllogictests/suites/tpcds/Q4 index 4ed62e9522fef..faada0ab325ce 100644 --- a/tests/sqllogictests/suites/tpcds/Q4 +++ b/tests/sqllogictests/suites/tpcds/Q4 @@ -1,5 +1,5 @@ # Q4 -query I +query TTTT WITH year_total AS (SELECT c_customer_id customer_id, c_first_name customer_first_name, diff --git a/tests/sqllogictests/suites/tpcds/Q40 b/tests/sqllogictests/suites/tpcds/Q40 index 0c5b2f776b01d..6566950ae8704 100644 --- a/tests/sqllogictests/suites/tpcds/Q40 +++ b/tests/sqllogictests/suites/tpcds/Q40 @@ -1,5 +1,5 @@ # Q40 -query I +query TTRR SELECT w_state, i_item_id, sum(CASE diff --git a/tests/sqllogictests/suites/tpcds/Q41 b/tests/sqllogictests/suites/tpcds/Q41 index ee907236e2ec8..8f53c3afb4704 100644 --- a/tests/sqllogictests/suites/tpcds/Q41 +++ b/tests/sqllogictests/suites/tpcds/Q41 @@ -1,5 +1,5 @@ # Q41 -query I +query T SELECT distinct(i_product_name) FROM item i1 WHERE i_manufact_id BETWEEN 738 AND 738+40 diff --git a/tests/sqllogictests/suites/tpcds/Q42 b/tests/sqllogictests/suites/tpcds/Q42 index 31703be8f70e7..35368698c89c5 100644 --- a/tests/sqllogictests/suites/tpcds/Q42 +++ b/tests/sqllogictests/suites/tpcds/Q42 @@ -1,5 +1,5 @@ # Q42 -query I +query IITR SELECT dt.d_year, item.i_category_id, item.i_category, diff --git a/tests/sqllogictests/suites/tpcds/Q43 b/tests/sqllogictests/suites/tpcds/Q43 index ad3137211920e..b24e7469f7255 100644 --- a/tests/sqllogictests/suites/tpcds/Q43 +++ b/tests/sqllogictests/suites/tpcds/Q43 @@ -1,5 +1,5 @@ # Q43 -query I +query TTRRRRRRR SELECT s_store_name, s_store_id, diff --git a/tests/sqllogictests/suites/tpcds/Q44 b/tests/sqllogictests/suites/tpcds/Q44 index 76eed98d93066..6565f3653525c 100644 --- a/tests/sqllogictests/suites/tpcds/Q44 +++ b/tests/sqllogictests/suites/tpcds/Q44 @@ -1,5 +1,5 @@ # Q44 -query I +query ITT SELECT asceding.rnk, i1.i_product_name best_performing, i2.i_product_name worst_performing diff --git a/tests/sqllogictests/suites/tpcds/Q45 b/tests/sqllogictests/suites/tpcds/Q45 index db065a2d5ad4b..983221ae5afc6 100644 --- a/tests/sqllogictests/suites/tpcds/Q45 +++ b/tests/sqllogictests/suites/tpcds/Q45 @@ -1,5 +1,5 @@ # Q45 -query I +query TTR SELECT ca_zip, ca_city, sum(ws_sales_price) diff --git a/tests/sqllogictests/suites/tpcds/Q46 b/tests/sqllogictests/suites/tpcds/Q46 index 7815474b327c2..41c86ede56c4c 100644 --- a/tests/sqllogictests/suites/tpcds/Q46 +++ b/tests/sqllogictests/suites/tpcds/Q46 @@ -1,5 +1,5 @@ # Q46 -query I +query TTTTIRR SELECT c_last_name, c_first_name, diff --git a/tests/sqllogictests/suites/tpcds/Q47 b/tests/sqllogictests/suites/tpcds/Q47 index 49f33439ac2ad..d917d1e490af1 100644 --- a/tests/sqllogictests/suites/tpcds/Q47 +++ b/tests/sqllogictests/suites/tpcds/Q47 @@ -1,5 +1,5 @@ # Q47 -query I +query TTTTIIRRRR WITH v1 AS (SELECT i_category, i_brand, diff --git a/tests/sqllogictests/suites/tpcds/Q49 b/tests/sqllogictests/suites/tpcds/Q49 index d7a61c5880a15..309989d902304 100644 --- a/tests/sqllogictests/suites/tpcds/Q49 +++ b/tests/sqllogictests/suites/tpcds/Q49 @@ -1,5 +1,5 @@ # Q49 -query I +query TIRII SELECT channel, item, diff --git a/tests/sqllogictests/suites/tpcds/Q5 b/tests/sqllogictests/suites/tpcds/Q5 index e86640e415b3b..8f3ed98ed36dc 100644 --- a/tests/sqllogictests/suites/tpcds/Q5 +++ b/tests/sqllogictests/suites/tpcds/Q5 @@ -1,5 +1,5 @@ # Q5 -query I +query TTRRR WITH ssr AS (SELECT s_store_id, sum(sales_price) AS sales, diff --git a/tests/sqllogictests/suites/tpcds/Q50 b/tests/sqllogictests/suites/tpcds/Q50 index 0bb791ca56fd5..742fd1cad8bee 100644 --- a/tests/sqllogictests/suites/tpcds/Q50 +++ b/tests/sqllogictests/suites/tpcds/Q50 @@ -1,5 +1,5 @@ # Q50 -query I +query TITTTTTTTTIIIII SELECT s_store_name, s_company_id, s_street_number, diff --git a/tests/sqllogictests/suites/tpcds/Q51 b/tests/sqllogictests/suites/tpcds/Q51 index 644e0fe95b55a..33ca2b63adf43 100644 --- a/tests/sqllogictests/suites/tpcds/Q51 +++ b/tests/sqllogictests/suites/tpcds/Q51 @@ -1,5 +1,5 @@ # Q51 -query I +query I?RRRR WITH web_v1 AS (SELECT ws_item_sk item_sk, d_date, diff --git a/tests/sqllogictests/suites/tpcds/Q52 b/tests/sqllogictests/suites/tpcds/Q52 index 9d73b8f756b25..c5f329b43ccde 100644 --- a/tests/sqllogictests/suites/tpcds/Q52 +++ b/tests/sqllogictests/suites/tpcds/Q52 @@ -1,5 +1,5 @@ # Q52 -query I +query IITR SELECT dt.d_year, item.i_brand_id brand_id, item.i_brand brand, diff --git a/tests/sqllogictests/suites/tpcds/Q53 b/tests/sqllogictests/suites/tpcds/Q53 index f0769c1d4439c..a6f86a9b8d30a 100644 --- a/tests/sqllogictests/suites/tpcds/Q53 +++ b/tests/sqllogictests/suites/tpcds/Q53 @@ -1,5 +1,5 @@ # Q53 -query I +query IRR SELECT * FROM (SELECT i_manufact_id, diff --git a/tests/sqllogictests/suites/tpcds/Q54 b/tests/sqllogictests/suites/tpcds/Q54 index ed5cd0b835c47..31386a9bbafed 100644 --- a/tests/sqllogictests/suites/tpcds/Q54 +++ b/tests/sqllogictests/suites/tpcds/Q54 @@ -1,5 +1,5 @@ # Q54 -query I +query III WITH my_customers AS (SELECT DISTINCT c_customer_sk, c_current_addr_sk diff --git a/tests/sqllogictests/suites/tpcds/Q55 b/tests/sqllogictests/suites/tpcds/Q55 index d4e363930421d..a0fd3ddcc5d65 100644 --- a/tests/sqllogictests/suites/tpcds/Q55 +++ b/tests/sqllogictests/suites/tpcds/Q55 @@ -1,5 +1,5 @@ # Q55 -query I +query ITR SELECT i_brand_id brand_id, i_brand brand, sum(ss_ext_sales_price) ext_price diff --git a/tests/sqllogictests/suites/tpcds/Q56 b/tests/sqllogictests/suites/tpcds/Q56 index 59660cd7f9925..2976fe11838cb 100644 --- a/tests/sqllogictests/suites/tpcds/Q56 +++ b/tests/sqllogictests/suites/tpcds/Q56 @@ -1,5 +1,5 @@ # Q56 -query I +query TR WITH ss AS (SELECT i_item_id, sum(ss_ext_sales_price) total_sales diff --git a/tests/sqllogictests/suites/tpcds/Q57 b/tests/sqllogictests/suites/tpcds/Q57 index 70259d9ca81d8..7ed58724a6dcb 100644 --- a/tests/sqllogictests/suites/tpcds/Q57 +++ b/tests/sqllogictests/suites/tpcds/Q57 @@ -1,5 +1,5 @@ # Q57 -query I +query TTTIIRRRR WITH v1 AS (SELECT i_category, i_brand, diff --git a/tests/sqllogictests/suites/tpcds/Q58 b/tests/sqllogictests/suites/tpcds/Q58 index 3573f1ac09f0f..f7e28a1cb2bc3 100644 --- a/tests/sqllogictests/suites/tpcds/Q58 +++ b/tests/sqllogictests/suites/tpcds/Q58 @@ -1,5 +1,5 @@ # Q58 -query I +query TRRRRRRR WITH ss_items AS (SELECT i_item_id item_id, sum(ss_ext_sales_price) ss_item_rev diff --git a/tests/sqllogictests/suites/tpcds/Q59 b/tests/sqllogictests/suites/tpcds/Q59 index fcefe2879983a..131a468770e7a 100644 --- a/tests/sqllogictests/suites/tpcds/Q59 +++ b/tests/sqllogictests/suites/tpcds/Q59 @@ -1,5 +1,5 @@ # Q59 -query I +query TTIRRRRRRR WITH wss AS (SELECT d_week_seq, ss_store_sk, diff --git a/tests/sqllogictests/suites/tpcds/Q6 b/tests/sqllogictests/suites/tpcds/Q6 index 59bf5cc3cc53c..28716c7e63b8d 100644 --- a/tests/sqllogictests/suites/tpcds/Q6 +++ b/tests/sqllogictests/suites/tpcds/Q6 @@ -1,5 +1,5 @@ # Q6 -query I +query TI SELECT a.ca_state state, count(*) cnt FROM customer_address a , diff --git a/tests/sqllogictests/suites/tpcds/Q60 b/tests/sqllogictests/suites/tpcds/Q60 index 85af9a2aca76b..9a0b8386df11a 100644 --- a/tests/sqllogictests/suites/tpcds/Q60 +++ b/tests/sqllogictests/suites/tpcds/Q60 @@ -1,5 +1,5 @@ # Q60 -query I +query TR WITH ss AS (SELECT i_item_id, sum(ss_ext_sales_price) total_sales diff --git a/tests/sqllogictests/suites/tpcds/Q61 b/tests/sqllogictests/suites/tpcds/Q61 index e7521e657ee91..888571e6eb3de 100644 --- a/tests/sqllogictests/suites/tpcds/Q61 +++ b/tests/sqllogictests/suites/tpcds/Q61 @@ -1,5 +1,5 @@ # Q61 -query I +query RRR SELECT promotions, total, cast(promotions AS decimal(15,4))/cast(total AS decimal(15,4))*100 diff --git a/tests/sqllogictests/suites/tpcds/Q62 b/tests/sqllogictests/suites/tpcds/Q62 index cef7956696ef7..3aace8f173f0b 100644 --- a/tests/sqllogictests/suites/tpcds/Q62 +++ b/tests/sqllogictests/suites/tpcds/Q62 @@ -1,5 +1,5 @@ # Q62 -query I +query TTTIIIII SELECT w_substr, sm_type, web_name, diff --git a/tests/sqllogictests/suites/tpcds/Q63 b/tests/sqllogictests/suites/tpcds/Q63 index 26fe414f41313..cd21bfc943324 100644 --- a/tests/sqllogictests/suites/tpcds/Q63 +++ b/tests/sqllogictests/suites/tpcds/Q63 @@ -1,5 +1,5 @@ # Q63 -query I +query IRR SELECT * FROM diff --git a/tests/sqllogictests/suites/tpcds/Q64 b/tests/sqllogictests/suites/tpcds/Q64 index 7486be70169f5..834dd61d34ebd 100644 --- a/tests/sqllogictests/suites/tpcds/Q64 +++ b/tests/sqllogictests/suites/tpcds/Q64 @@ -1,5 +1,5 @@ # Q64 -query I +query TTTTTTTTTTTIIRRRRRRII WITH cs_ui AS (SELECT cs_item_sk, sum(cs_ext_list_price) AS sale, diff --git a/tests/sqllogictests/suites/tpcds/Q65 b/tests/sqllogictests/suites/tpcds/Q65 index 58c8f27cbe2d7..a55fedc915076 100644 --- a/tests/sqllogictests/suites/tpcds/Q65 +++ b/tests/sqllogictests/suites/tpcds/Q65 @@ -1,5 +1,5 @@ # Q65 -query I +query TTRRRT SELECT s_store_name, i_item_desc, sc.revenue, diff --git a/tests/sqllogictests/suites/tpcds/Q66 b/tests/sqllogictests/suites/tpcds/Q66 index d98bdceb0dad8..62b704def9f97 100644 --- a/tests/sqllogictests/suites/tpcds/Q66 +++ b/tests/sqllogictests/suites/tpcds/Q66 @@ -1,5 +1,5 @@ # Q66 -query I +query TITTTTTIRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR select w_warehouse_name ,w_warehouse_sq_ft diff --git a/tests/sqllogictests/suites/tpcds/Q67 b/tests/sqllogictests/suites/tpcds/Q67 index 323b673675cb0..00f95100c9ea5 100644 --- a/tests/sqllogictests/suites/tpcds/Q67 +++ b/tests/sqllogictests/suites/tpcds/Q67 @@ -1,5 +1,5 @@ # Q67 -query I +query TTTTIIITRI SELECT * FROM (SELECT i_category, diff --git a/tests/sqllogictests/suites/tpcds/Q68 b/tests/sqllogictests/suites/tpcds/Q68 index 9c0cd5b1b703c..582fbf2695429 100644 --- a/tests/sqllogictests/suites/tpcds/Q68 +++ b/tests/sqllogictests/suites/tpcds/Q68 @@ -1,5 +1,5 @@ # Q68 -query I +query TTTTIRRR SELECT c_last_name, c_first_name, ca_city, diff --git a/tests/sqllogictests/suites/tpcds/Q69 b/tests/sqllogictests/suites/tpcds/Q69 index a7b626ada1c21..4bb65383f41f3 100644 --- a/tests/sqllogictests/suites/tpcds/Q69 +++ b/tests/sqllogictests/suites/tpcds/Q69 @@ -1,6 +1,5 @@ # Q69 -onlyif todo -query I +query TTTIIITI SELECT cd_gender, cd_marital_status, cd_education_status, @@ -53,5 +52,103 @@ ORDER BY cd_gender, cd_credit_rating LIMIT 100; ---- - - +F D 2 yr Degree 1 2500 1 Low Risk 1 +F D 2 yr Degree 1 4500 1 Good 1 +F D 2 yr Degree 2 4500 2 Low Risk 2 +F D 2 yr Degree 1 9000 1 Good 1 +F D 2 yr Degree 1 9500 1 Good 1 +F D 4 yr Degree 1 1000 1 Low Risk 1 +F D 4 yr Degree 1 1500 1 Low Risk 1 +F D 4 yr Degree 1 1500 1 Unknown 1 +F D 4 yr Degree 1 2000 1 Good 1 +F D 4 yr Degree 1 2500 1 Unknown 1 +F D 4 yr Degree 1 4000 1 Unknown 1 +F D 4 yr Degree 1 5500 1 Good 1 +F D 4 yr Degree 1 7000 1 Good 1 +F D 4 yr Degree 1 7000 1 High Risk 1 +F D 4 yr Degree 1 8000 1 High Risk 1 +F D 4 yr Degree 1 8500 1 Unknown 1 +F D Advanced Degree 1 1000 1 Good 1 +F D Advanced Degree 1 3500 1 Good 1 +F D Advanced Degree 1 3500 1 High Risk 1 +F D Advanced Degree 1 4000 1 Good 1 +F D Advanced Degree 1 4000 1 High Risk 1 +F D Advanced Degree 1 5000 1 High Risk 1 +F D Advanced Degree 1 5500 1 Good 1 +F D Advanced Degree 1 5500 1 Low Risk 1 +F D Advanced Degree 1 6500 1 Low Risk 1 +F D Advanced Degree 1 7000 1 High Risk 1 +F D Advanced Degree 1 8000 1 Low Risk 1 +F D Advanced Degree 1 8500 1 High Risk 1 +F D Advanced Degree 1 9500 1 Low Risk 1 +F D Advanced Degree 1 9500 1 Unknown 1 +F D Advanced Degree 1 10000 1 Low Risk 1 +F D College 1 1500 1 Low Risk 1 +F D College 1 2500 1 Good 1 +F D College 1 4000 1 High Risk 1 +F D College 1 6000 1 Good 1 +F D College 1 6000 1 High Risk 1 +F D College 1 9000 1 High Risk 1 +F D Primary 1 3000 1 High Risk 1 +F D Primary 1 4000 1 Low Risk 1 +F D Primary 1 4000 1 Unknown 1 +F D Primary 1 4500 1 Unknown 1 +F D Primary 1 5000 1 High Risk 1 +F D Primary 1 5000 1 Unknown 1 +F D Primary 1 6000 1 Good 1 +F D Primary 1 6000 1 Unknown 1 +F D Primary 1 8500 1 Unknown 1 +F D Primary 1 9000 1 Unknown 1 +F D Primary 1 9500 1 High Risk 1 +F D Primary 1 9500 1 Unknown 1 +F D Primary 1 10000 1 Good 1 +F D Primary 2 10000 2 Low Risk 2 +F D Secondary 1 500 1 Low Risk 1 +F D Secondary 1 1000 1 High Risk 1 +F D Secondary 1 3000 1 Good 1 +F D Secondary 1 3500 1 Good 1 +F D Secondary 1 6000 1 Low Risk 1 +F D Secondary 1 6500 1 Unknown 1 +F D Secondary 1 8500 1 High Risk 1 +F D Secondary 1 10000 1 Low Risk 1 +F D Unknown 1 1500 1 High Risk 1 +F D Unknown 1 3000 1 Good 1 +F D Unknown 1 3000 1 High Risk 1 +F D Unknown 1 6000 1 Good 1 +F D Unknown 1 6500 1 High Risk 1 +F D Unknown 2 8000 2 Low Risk 2 +F D Unknown 1 10000 1 Unknown 1 +F M 2 yr Degree 1 2500 1 Low Risk 1 +F M 2 yr Degree 3 4000 3 Unknown 3 +F M 2 yr Degree 1 4500 1 Low Risk 1 +F M 2 yr Degree 1 8500 1 High Risk 1 +F M 4 yr Degree 1 1000 1 Good 1 +F M 4 yr Degree 1 1500 1 Good 1 +F M 4 yr Degree 1 4000 1 Low Risk 1 +F M 4 yr Degree 1 4000 1 Unknown 1 +F M 4 yr Degree 1 5000 1 Unknown 1 +F M 4 yr Degree 1 5500 1 Low Risk 1 +F M 4 yr Degree 1 6000 1 Good 1 +F M 4 yr Degree 1 8000 1 High Risk 1 +F M Advanced Degree 1 500 1 Low Risk 1 +F M Advanced Degree 1 500 1 Unknown 1 +F M Advanced Degree 1 2500 1 Good 1 +F M Advanced Degree 1 3500 1 High Risk 1 +F M Advanced Degree 2 5500 2 Unknown 2 +F M Advanced Degree 1 6500 1 Good 1 +F M Advanced Degree 1 6500 1 Unknown 1 +F M Advanced Degree 1 8000 1 Low Risk 1 +F M Advanced Degree 1 9500 1 Good 1 +F M Advanced Degree 1 10000 1 Low Risk 1 +F M College 1 1000 1 Unknown 1 +F M College 1 3000 1 Good 1 +F M College 2 5000 2 High Risk 2 +F M College 1 6000 1 Low Risk 1 +F M College 1 7000 1 High Risk 1 +F M College 1 8000 1 Good 1 +F M College 1 9000 1 Good 1 +F M College 2 9000 2 High Risk 2 +F M College 1 10000 1 High Risk 1 +F M Primary 1 1000 1 Low Risk 1 +F M Primary 1 1500 1 High Risk 1 +F M Primary 1 7000 1 Good 1 diff --git a/tests/sqllogictests/suites/tpcds/Q7 b/tests/sqllogictests/suites/tpcds/Q7 index 6e6d668105852..9bea3e64f4984 100644 --- a/tests/sqllogictests/suites/tpcds/Q7 +++ b/tests/sqllogictests/suites/tpcds/Q7 @@ -1,5 +1,5 @@ # Q7 -query I +query TRRRR SELECT i_item_id, avg(ss_quantity) agg1, avg(ss_list_price) agg2, diff --git a/tests/sqllogictests/suites/tpcds/Q70 b/tests/sqllogictests/suites/tpcds/Q70 index 7cd2be2082088..300d817efdd4c 100644 --- a/tests/sqllogictests/suites/tpcds/Q70 +++ b/tests/sqllogictests/suites/tpcds/Q70 @@ -1,5 +1,5 @@ # Q70 -query I +query RTTII SELECT sum(ss_net_profit) AS total_sum, s_state, s_county, diff --git a/tests/sqllogictests/suites/tpcds/Q71 b/tests/sqllogictests/suites/tpcds/Q71 index cbe283ce6daff..fe6d77dde49ed 100644 --- a/tests/sqllogictests/suites/tpcds/Q71 +++ b/tests/sqllogictests/suites/tpcds/Q71 @@ -1,5 +1,5 @@ # Q71 -query I +query ITIIR SELECT i_brand_id brand_id, i_brand brand, t_hour, diff --git a/tests/sqllogictests/suites/tpcds/Q72 b/tests/sqllogictests/suites/tpcds/Q72 index 781f170564d9d..73b4078997c4f 100644 --- a/tests/sqllogictests/suites/tpcds/Q72 +++ b/tests/sqllogictests/suites/tpcds/Q72 @@ -1,5 +1,5 @@ # Q72 -query I +query TTIIII SELECT i_item_desc, w_warehouse_name, d1.d_week_seq, diff --git a/tests/sqllogictests/suites/tpcds/Q73 b/tests/sqllogictests/suites/tpcds/Q73 index 3ca28430cc649..ce4be2fa4029b 100644 --- a/tests/sqllogictests/suites/tpcds/Q73 +++ b/tests/sqllogictests/suites/tpcds/Q73 @@ -1,5 +1,5 @@ # Q73 -query I +query TTTTII SELECT c_last_name, c_first_name, diff --git a/tests/sqllogictests/suites/tpcds/Q74 b/tests/sqllogictests/suites/tpcds/Q74 index 42a98103e8973..1ba4a379f21cc 100644 --- a/tests/sqllogictests/suites/tpcds/Q74 +++ b/tests/sqllogictests/suites/tpcds/Q74 @@ -1,5 +1,5 @@ # Q74 -query I +query TTT WITH year_total AS (SELECT c_customer_id customer_id, c_first_name customer_first_name, diff --git a/tests/sqllogictests/suites/tpcds/Q75 b/tests/sqllogictests/suites/tpcds/Q75 index acf713d56c6bc..3b89d2ddaf5d3 100644 --- a/tests/sqllogictests/suites/tpcds/Q75 +++ b/tests/sqllogictests/suites/tpcds/Q75 @@ -1,5 +1,5 @@ # Q75 -query I +query IIIIIIIIIR WITH all_sales AS ( SELECT d_year , i_brand_id , diff --git a/tests/sqllogictests/suites/tpcds/Q76 b/tests/sqllogictests/suites/tpcds/Q76 index 50fb82a5ba183..7f1bb6c7628f0 100644 --- a/tests/sqllogictests/suites/tpcds/Q76 +++ b/tests/sqllogictests/suites/tpcds/Q76 @@ -1,5 +1,5 @@ # Q76 -query I +query TTIITIR SELECT channel, col_name, d_year, diff --git a/tests/sqllogictests/suites/tpcds/Q77 b/tests/sqllogictests/suites/tpcds/Q77 index 214a8f62a22d1..21efc566ec21c 100644 --- a/tests/sqllogictests/suites/tpcds/Q77 +++ b/tests/sqllogictests/suites/tpcds/Q77 @@ -1,5 +1,5 @@ # Q77 -query I +query TIRRR WITH ss AS (SELECT s_store_sk, sum(ss_ext_sales_price) AS sales, diff --git a/tests/sqllogictests/suites/tpcds/Q78 b/tests/sqllogictests/suites/tpcds/Q78 index bd5d3270b506d..679ccbab082d8 100644 --- a/tests/sqllogictests/suites/tpcds/Q78 +++ b/tests/sqllogictests/suites/tpcds/Q78 @@ -1,5 +1,5 @@ # Q78 -query I +query IIIRIRRIRR WITH ws AS (SELECT d_year AS ws_sold_year, ws_item_sk, diff --git a/tests/sqllogictests/suites/tpcds/Q79 b/tests/sqllogictests/suites/tpcds/Q79 index 1e71cdd7b0f32..bb69c0355caa1 100644 --- a/tests/sqllogictests/suites/tpcds/Q79 +++ b/tests/sqllogictests/suites/tpcds/Q79 @@ -1,5 +1,5 @@ # Q79 -query I +query TTTIRR SELECT c_last_name, c_first_name, SUBSTRING(s_city,1,30), diff --git a/tests/sqllogictests/suites/tpcds/Q8 b/tests/sqllogictests/suites/tpcds/Q8 index 2443206e12eae..602bd467c84a8 100644 --- a/tests/sqllogictests/suites/tpcds/Q8 +++ b/tests/sqllogictests/suites/tpcds/Q8 @@ -1,5 +1,5 @@ # Q8 -query I +query TR SELECT s_store_name, sum(ss_net_profit) FROM store_sales, diff --git a/tests/sqllogictests/suites/tpcds/Q80 b/tests/sqllogictests/suites/tpcds/Q80 index b44aea6ca55c1..117259a7e553c 100644 --- a/tests/sqllogictests/suites/tpcds/Q80 +++ b/tests/sqllogictests/suites/tpcds/Q80 @@ -1,5 +1,5 @@ # Q80 -query I +query TTRRR WITH ssr AS (SELECT s_store_id AS store_id, sum(ss_ext_sales_price) AS sales, diff --git a/tests/sqllogictests/suites/tpcds/Q81 b/tests/sqllogictests/suites/tpcds/Q81 index 892ced005d656..c865e2445c784 100644 --- a/tests/sqllogictests/suites/tpcds/Q81 +++ b/tests/sqllogictests/suites/tpcds/Q81 @@ -1,5 +1,5 @@ # Q81 -query I +query TTTTTTTTTTTTTRTR WITH customer_total_return AS (SELECT cr_returning_customer_sk AS ctr_customer_sk , ca_state AS ctr_state, diff --git a/tests/sqllogictests/suites/tpcds/Q82 b/tests/sqllogictests/suites/tpcds/Q82 index a8dbd2e540814..be50cf5a46583 100644 --- a/tests/sqllogictests/suites/tpcds/Q82 +++ b/tests/sqllogictests/suites/tpcds/Q82 @@ -1,5 +1,5 @@ # Q82 -query I +query TTR SELECT i_item_id , i_item_desc , diff --git a/tests/sqllogictests/suites/tpcds/Q83 b/tests/sqllogictests/suites/tpcds/Q83 index 34cc17153cd60..73e2349756c42 100644 --- a/tests/sqllogictests/suites/tpcds/Q83 +++ b/tests/sqllogictests/suites/tpcds/Q83 @@ -1,5 +1,5 @@ # Q83 -query I +query TIRIRIRR WITH sr_items AS (SELECT i_item_id item_id, sum(sr_return_quantity) sr_item_qty diff --git a/tests/sqllogictests/suites/tpcds/Q84 b/tests/sqllogictests/suites/tpcds/Q84 index 76f188e2368a4..b573582eb4e74 100644 --- a/tests/sqllogictests/suites/tpcds/Q84 +++ b/tests/sqllogictests/suites/tpcds/Q84 @@ -1,5 +1,5 @@ # Q84 -query I +query TT SELECT c_customer_id AS customer_id , concat(concat(coalesce(c_last_name, '') , ', '), coalesce(c_first_name, '')) AS customername FROM customer , diff --git a/tests/sqllogictests/suites/tpcds/Q85 b/tests/sqllogictests/suites/tpcds/Q85 index 6d0ce73fc2351..6c9d106832881 100644 --- a/tests/sqllogictests/suites/tpcds/Q85 +++ b/tests/sqllogictests/suites/tpcds/Q85 @@ -1,5 +1,5 @@ # Q85 -query I +query TRRR SELECT SUBSTRING(r_reason_desc,1,20) , avg(ws_quantity) avg1, diff --git a/tests/sqllogictests/suites/tpcds/Q86 b/tests/sqllogictests/suites/tpcds/Q86 index 81fdd106ba64f..d1bd6111cd2b8 100644 --- a/tests/sqllogictests/suites/tpcds/Q86 +++ b/tests/sqllogictests/suites/tpcds/Q86 @@ -1,5 +1,5 @@ # Q86 -query I +query RTTII SELECT sum(ws_net_paid) AS total_sum , i_category , i_class , diff --git a/tests/sqllogictests/suites/tpcds/Q88 b/tests/sqllogictests/suites/tpcds/Q88 index abd5f881b7aba..9e07dd5103e9d 100644 --- a/tests/sqllogictests/suites/tpcds/Q88 +++ b/tests/sqllogictests/suites/tpcds/Q88 @@ -1,5 +1,5 @@ # Q88 -query I +query IIIIIIII SELECT * FROM (SELECT count(*) h8_30_to_9 diff --git a/tests/sqllogictests/suites/tpcds/Q89 b/tests/sqllogictests/suites/tpcds/Q89 index 2993f58c8bb02..87afc2813e134 100644 --- a/tests/sqllogictests/suites/tpcds/Q89 +++ b/tests/sqllogictests/suites/tpcds/Q89 @@ -1,5 +1,5 @@ # Q89 -query I +query TTTTTIRR SELECT * from (SELECT i_category, i_class, i_brand, s_store_name, s_company_name, d_moy, sum(ss_sales_price) sum_sales, avg(sum(ss_sales_price)) OVER (PARTITION BY i_category, i_brand, s_store_name, s_company_name) avg_monthly_sales diff --git a/tests/sqllogictests/suites/tpcds/Q9 b/tests/sqllogictests/suites/tpcds/Q9 index 85884c7c66b0e..a00f911965003 100644 --- a/tests/sqllogictests/suites/tpcds/Q9 +++ b/tests/sqllogictests/suites/tpcds/Q9 @@ -1,5 +1,5 @@ # Q9 -query I +query RRRRR SELECT CASE WHEN diff --git a/tests/sqllogictests/suites/tpcds/Q90 b/tests/sqllogictests/suites/tpcds/Q90 index 86d7207014956..3e73f059b90c6 100644 --- a/tests/sqllogictests/suites/tpcds/Q90 +++ b/tests/sqllogictests/suites/tpcds/Q90 @@ -1,5 +1,5 @@ # Q90 -query I +query R SELECT case when pmc=0 then null else cast(amc AS decimal(15,4))/cast(pmc AS decimal(15,4)) end am_pm_ratio FROM (SELECT count(*) amc diff --git a/tests/sqllogictests/suites/tpcds/Q91 b/tests/sqllogictests/suites/tpcds/Q91 index 9a271156d0323..0313f017f5088 100644 --- a/tests/sqllogictests/suites/tpcds/Q91 +++ b/tests/sqllogictests/suites/tpcds/Q91 @@ -1,5 +1,5 @@ # Q91 -query I +query TTTR SELECT cc_call_center_id Call_Center, cc_name Call_Center_Name, cc_manager Manager, diff --git a/tests/sqllogictests/suites/tpcds/Q92 b/tests/sqllogictests/suites/tpcds/Q92 index 0d63d0a575818..1af37093dd4de 100644 --- a/tests/sqllogictests/suites/tpcds/Q92 +++ b/tests/sqllogictests/suites/tpcds/Q92 @@ -1,5 +1,5 @@ # Q92 -query I +query R SELECT sum(ws_ext_discount_amt) AS "Excess Discount Amount" FROM web_sales, item, diff --git a/tests/sqllogictests/suites/tpcds/Q93 b/tests/sqllogictests/suites/tpcds/Q93 index b15591f592369..257636b505ac0 100644 --- a/tests/sqllogictests/suites/tpcds/Q93 +++ b/tests/sqllogictests/suites/tpcds/Q93 @@ -1,5 +1,5 @@ # Q93 -query I +query IR SELECT ss_customer_sk, sum(act_sales) sumsales FROM diff --git a/tests/sqllogictests/suites/tpcds/Q94 b/tests/sqllogictests/suites/tpcds/Q94 index 1f5f8651f7573..00631f036b147 100644 --- a/tests/sqllogictests/suites/tpcds/Q94 +++ b/tests/sqllogictests/suites/tpcds/Q94 @@ -1,5 +1,5 @@ # Q94 -query I +query IRR SELECT count(DISTINCT ws_order_number) AS "order count" , sum(ws_ext_ship_cost) AS "total shipping cost" , diff --git a/tests/sqllogictests/suites/tpcds/Q95 b/tests/sqllogictests/suites/tpcds/Q95 index 9272969a58a92..6bfecc354009e 100644 --- a/tests/sqllogictests/suites/tpcds/Q95 +++ b/tests/sqllogictests/suites/tpcds/Q95 @@ -1,5 +1,5 @@ # Q95 -query I +query IRR WITH ws_wh AS (SELECT ws1.ws_order_number, ws1.ws_warehouse_sk wh1, diff --git a/tests/sqllogictests/suites/tpcds/Q97 b/tests/sqllogictests/suites/tpcds/Q97 index d226570764559..7718148a702f4 100644 --- a/tests/sqllogictests/suites/tpcds/Q97 +++ b/tests/sqllogictests/suites/tpcds/Q97 @@ -1,5 +1,5 @@ # Q97 -query I +query III WITH ssci AS (SELECT ss_customer_sk customer_sk , ss_item_sk item_sk diff --git a/tests/sqllogictests/suites/tpcds/Q98 b/tests/sqllogictests/suites/tpcds/Q98 index 4f63a1171b061..bbff993c170ae 100644 --- a/tests/sqllogictests/suites/tpcds/Q98 +++ b/tests/sqllogictests/suites/tpcds/Q98 @@ -1,5 +1,5 @@ # Q98 -query I +query TTTTRRR SELECT i_item_id , i_item_desc, i_category, diff --git a/tests/sqllogictests/suites/tpcds/Q99 b/tests/sqllogictests/suites/tpcds/Q99 index d2e045a3c8968..ad9c709d2a4ac 100644 --- a/tests/sqllogictests/suites/tpcds/Q99 +++ b/tests/sqllogictests/suites/tpcds/Q99 @@ -1,5 +1,5 @@ # Q99 -query I +query TTTIIIII SELECT w_substr , sm_type , LOWER(cc_name) cc_name_lower , diff --git a/tests/sqllogictests/suites/tpcds/tpcds_spill_1.test b/tests/sqllogictests/suites/tpcds/tpcds_spill_1.test index dd73420128845..806735349c32c 100644 --- a/tests/sqllogictests/suites/tpcds/tpcds_spill_1.test +++ b/tests/sqllogictests/suites/tpcds/tpcds_spill_1.test @@ -5,45 +5,56 @@ statement ok use tpcds; statement ok -set max_memory_usage = 1024*1024*1024; +set max_memory_usage = 100*1024*1024; + +statement ok +set max_query_memory_usage = 100*1024*1024; + +statement ok +set query_out_of_memory_behavior = 'spilling'; # The io performance of the ci environment is very poor, especially in cluster mode, # resulting in too much time consuming to run the entire tpcds. -include ./Q1 -include ./Q2 -include ./Q3 -include ./Q4 -include ./Q5 -include ./Q6 -include ./Q7 -include ./Q8 -include ./Q9 -include ./Q10 -include ./Q11 -include ./Q12 -include ./Q13 -include ./Q14 -include ./Q15 -include ./Q16 -include ./Q17 -include ./Q18 -include ./Q19 -include ./Q20 -include ./Q21 -include ./Q22 -# Q23 fail in cluster mode -include ./Q23 -include ./Q24 -include ./Q25 -include ./Q26 -include ./Q27 -include ./Q28 -include ./Q29 -include ./Q30 -include ./Q31 -include ./Q32 -include ./Q33 - -statement ok -UNSET max_memory_usage; +include Q1 +include Q2 +include Q3 +include Q4 +include Q5 +include Q6 +include Q7 +include Q8 +include Q9 +include Q10 +include Q11 +include Q12 +include Q13 +include Q14 +include Q15 +include Q16 +include Q17 +include Q18 +include Q19 +include Q20 +include Q21 +include Q22 +include Q23 +include Q24 +include Q25 +include Q26 +include Q27 +include Q28 +include Q29 +include Q30 +include Q31 +include Q32 +include Q33 + +statement ok +unset max_memory_usage; + +statement ok +unset max_query_memory_usage; + +statement ok +unset query_out_of_memory_behavior; diff --git a/tests/sqllogictests/suites/tpcds/tpcds_spill_2.test b/tests/sqllogictests/suites/tpcds/tpcds_spill_2.test index 84f3d97ccf9dd..c6c4cd84fd9cb 100644 --- a/tests/sqllogictests/suites/tpcds/tpcds_spill_2.test +++ b/tests/sqllogictests/suites/tpcds/tpcds_spill_2.test @@ -5,46 +5,56 @@ statement ok use tpcds; statement ok -set max_memory_usage = 1024*1024*1024; +set max_memory_usage = 100*1024*1024; + +statement ok +set max_query_memory_usage = 100*1024*1024; + +statement ok +set query_out_of_memory_behavior = 'spilling'; # The io performance of the ci environment is very poor, especially in cluster mode, # resulting in too much time consuming to run the entire tpcds. -include ./Q9 -include ./Q34 -include ./Q35 -include ./Q36 -include ./Q37 -include ./Q38 -include ./Q39 -include ./Q40 -# Q41 fail in cluster mode -# include ./Q41 -include ./Q42 -include ./Q43 -include ./Q44 -include ./Q45 -include ./Q46 -include ./Q47 -include ./Q48 -include ./Q49 -include ./Q50 -include ./Q51 -include ./Q52 -include ./Q53 -include ./Q54 -include ./Q55 -include ./Q56 -include ./Q57 -include ./Q58 -include ./Q59 -include ./Q60 -include ./Q61 -include ./Q62 -include ./Q63 -include ./Q64 -include ./Q65 -include ./Q66 - -statement ok -UNSET max_memory_usage; +include Q34 +include Q35 +include Q36 +include Q37 +include Q38 +include Q39 +include Q40 +include Q41 +include Q42 +include Q43 +include Q44 +include Q45 +include Q46 +include Q47 +include Q48 +include Q49 +include Q50 +include Q51 +include Q52 +include Q53 +include Q54 +include Q55 +include Q56 +include Q57 +include Q58 +include Q59 +include Q60 +include Q61 +include Q62 +include Q63 +include Q64 +include Q65 +include Q66 + +statement ok +unset max_memory_usage; + +statement ok +unset max_query_memory_usage; + +statement ok +unset query_out_of_memory_behavior; diff --git a/tests/sqllogictests/suites/tpcds/tpcds_spill_3.test b/tests/sqllogictests/suites/tpcds/tpcds_spill_3.test index f1dd9cff4e08b..f8967d0bc31db 100644 --- a/tests/sqllogictests/suites/tpcds/tpcds_spill_3.test +++ b/tests/sqllogictests/suites/tpcds/tpcds_spill_3.test @@ -5,44 +5,56 @@ statement ok use tpcds; statement ok -set max_memory_usage = 1024*1024*1024; +set max_memory_usage = 100*1024*1024; + +statement ok +set max_query_memory_usage = 100*1024*1024; + +statement ok +set query_out_of_memory_behavior = 'spilling'; # The io performance of the ci environment is very poor, especially in cluster mode, # resulting in too much time consuming to run the entire tpcds. -include ./Q67 -include ./Q68 -include ./Q69 -include ./Q70 -include ./Q71 -include ./Q72 -include ./Q73 -include ./Q74 -include ./Q75 -include ./Q76 -include ./Q77 -include ./Q78 -include ./Q79 -include ./Q80 -include ./Q81 -include ./Q82 -include ./Q83 -include ./Q84 -include ./Q85 -include ./Q86 -include ./Q87 -include ./Q88 -include ./Q89 -include ./Q90 -include ./Q91 -include ./Q92 -include ./Q93 -include ./Q94 -include ./Q95 -include ./Q96 -include ./Q97 -include ./Q98 -include ./Q99 - -statement ok -UNSET max_memory_usage; +include Q67 +include Q68 +include Q69 +include Q70 +include Q71 +include Q72 +include Q73 +include Q74 +include Q75 +include Q76 +include Q77 +include Q78 +include Q79 +include Q80 +include Q81 +include Q82 +include Q83 +include Q84 +include Q85 +include Q86 +include Q87 +include Q88 +include Q89 +include Q90 +include Q91 +include Q92 +include Q93 +include Q94 +include Q95 +include Q96 +include Q97 +include Q98 +include Q99 + +statement ok +unset max_memory_usage; + +statement ok +unset max_query_memory_usage; + +statement ok +unset query_out_of_memory_behavior; diff --git a/tests/sqllogictests/suites/tpcds/validate_duckdb.py b/tests/sqllogictests/suites/tpcds/validate_duckdb.py index fddd081340ad0..3b5f469059147 100644 --- a/tests/sqllogictests/suites/tpcds/validate_duckdb.py +++ b/tests/sqllogictests/suites/tpcds/validate_duckdb.py @@ -7,7 +7,6 @@ databend_port = os.getenv("QUERY_HTTP_HANDLER_PORT", "8000") -## now we can't run Q69 sf = 1 # Initialize a DuckDB instance duckdb_location = "/tmp/tpcds.duck"