Get the schema for the benchmarks derived from TPC-H
(table: &str)
| 44 | |
| 45 | /// Get the schema for the benchmarks derived from TPC-H |
| 46 | pub fn get_tpch_table_schema(table: &str) -> Schema { |
| 47 | // note that the schema intentionally uses signed integers so that any generated Parquet |
| 48 | // files can also be used to benchmark tools that only support signed integers, such as |
| 49 | // Apache Spark |
| 50 | |
| 51 | match table { |
| 52 | "part" => Schema::new(vec![ |
| 53 | Field::new("p_partkey", DataType::Int64, false), |
| 54 | Field::new("p_name", DataType::Utf8, false), |
| 55 | Field::new("p_mfgr", DataType::Utf8, false), |
| 56 | Field::new("p_brand", DataType::Utf8, false), |
| 57 | Field::new("p_type", DataType::Utf8, false), |
| 58 | Field::new("p_size", DataType::Int32, false), |
| 59 | Field::new("p_container", DataType::Utf8, false), |
| 60 | Field::new("p_retailprice", DataType::Decimal128(15, 2), false), |
| 61 | Field::new("p_comment", DataType::Utf8, false), |
| 62 | ]), |
| 63 | |
| 64 | "supplier" => Schema::new(vec![ |
| 65 | Field::new("s_suppkey", DataType::Int64, false), |
| 66 | Field::new("s_name", DataType::Utf8, false), |
| 67 | Field::new("s_address", DataType::Utf8, false), |
| 68 | Field::new("s_nationkey", DataType::Int64, false), |
| 69 | Field::new("s_phone", DataType::Utf8, false), |
| 70 | Field::new("s_acctbal", DataType::Decimal128(15, 2), false), |
| 71 | Field::new("s_comment", DataType::Utf8, false), |
| 72 | ]), |
| 73 | |
| 74 | "partsupp" => Schema::new(vec![ |
| 75 | Field::new("ps_partkey", DataType::Int64, false), |
| 76 | Field::new("ps_suppkey", DataType::Int64, false), |
| 77 | Field::new("ps_availqty", DataType::Int32, false), |
| 78 | Field::new("ps_supplycost", DataType::Decimal128(15, 2), false), |
| 79 | Field::new("ps_comment", DataType::Utf8, false), |
| 80 | ]), |
| 81 | |
| 82 | "customer" => Schema::new(vec![ |
| 83 | Field::new("c_custkey", DataType::Int64, false), |
| 84 | Field::new("c_name", DataType::Utf8, false), |
| 85 | Field::new("c_address", DataType::Utf8, false), |
| 86 | Field::new("c_nationkey", DataType::Int64, false), |
| 87 | Field::new("c_phone", DataType::Utf8, false), |
| 88 | Field::new("c_acctbal", DataType::Decimal128(15, 2), false), |
| 89 | Field::new("c_mktsegment", DataType::Utf8, false), |
| 90 | Field::new("c_comment", DataType::Utf8, false), |
| 91 | ]), |
| 92 | |
| 93 | "orders" => Schema::new(vec![ |
| 94 | Field::new("o_orderkey", DataType::Int64, false), |
| 95 | Field::new("o_custkey", DataType::Int64, false), |
| 96 | Field::new("o_orderstatus", DataType::Utf8, false), |
| 97 | Field::new("o_totalprice", DataType::Decimal128(15, 2), false), |
| 98 | Field::new("o_orderdate", DataType::Date32, false), |
| 99 | Field::new("o_orderpriority", DataType::Utf8, false), |
| 100 | Field::new("o_clerk", DataType::Utf8, false), |
| 101 | Field::new("o_shippriority", DataType::Int32, false), |
| 102 | Field::new("o_comment", DataType::Utf8, false), |
| 103 | ]), |
no test coverage detected
searching dependent graphs…