├── .cargo └── config.toml ├── .clang-format ├── .dockerignore ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── dependabot.yml └── workflows │ ├── bench.yaml │ ├── ci.yaml │ ├── docs.yaml │ └── release.yaml ├── .gitignore ├── .gitmodules ├── Cargo.lock ├── Cargo.toml ├── LICENSE ├── README.md ├── archive ├── README.md ├── catalogs.md ├── hybrid.md ├── notes.md ├── old_repo_readme.md ├── query-graph.md └── sql.md ├── bench ├── README.md ├── clickbench │ ├── partitioned │ │ ├── q00.bench │ │ ├── q01.bench │ │ ├── q02.bench │ │ ├── q03.bench │ │ ├── q04.bench │ │ ├── q05.bench │ │ ├── q06.bench │ │ ├── q07.bench │ │ ├── q08.bench │ │ ├── q09.bench │ │ ├── q10.bench │ │ ├── q11.bench │ │ ├── q12.bench │ │ ├── q13.bench │ │ ├── q14.bench │ │ ├── q15.bench │ │ ├── q16.bench │ │ ├── q17.bench │ │ ├── q18.bench │ │ ├── q19.bench │ │ ├── q20.bench │ │ ├── q21.bench │ │ ├── q22.bench │ │ ├── q23.bench │ │ ├── q24.bench │ │ ├── q25.bench │ │ ├── q26.bench │ │ ├── q27.bench │ │ ├── q28.bench │ │ ├── q29.bench │ │ ├── q30.bench │ │ ├── q31.bench │ │ ├── q32.bench │ │ ├── q33.bench │ │ ├── q34.bench │ │ ├── q35.bench │ │ ├── q36.bench │ │ ├── q37.bench │ │ ├── q38.bench │ │ ├── q39.bench │ │ ├── q40.bench │ │ ├── q41.bench │ │ └── q42.bench │ └── single │ │ ├── q00.bench │ │ ├── q01.bench │ │ ├── q02.bench │ │ ├── q03.bench │ │ ├── q04.bench │ │ ├── q05.bench │ │ ├── q06.bench │ │ ├── q07.bench │ │ ├── q08.bench │ │ ├── q09.bench │ │ ├── q10.bench │ │ ├── q11.bench │ │ ├── q12.bench │ │ ├── q13.bench │ │ ├── q14.bench │ │ ├── q15.bench │ │ ├── q16.bench │ │ ├── q17.bench │ │ ├── q18.bench │ │ ├── q19.bench │ │ ├── q20.bench │ │ ├── q21.bench │ │ ├── q22.bench │ │ ├── q23.bench │ │ ├── q24.bench │ │ ├── q25.bench │ │ ├── q26.bench │ │ ├── q27.bench │ │ ├── q28.bench │ │ ├── q29.bench │ │ ├── q30.bench │ │ ├── q31.bench │ │ ├── q32.bench │ │ ├── q33.bench │ │ ├── q34.bench │ │ ├── q35.bench │ │ ├── q36.bench │ │ ├── q37.bench │ │ ├── q38.bench │ │ ├── q39.bench │ │ ├── q40.bench │ │ ├── q41.bench │ │ └── q42.bench ├── micro │ ├── aggregates │ │ ├── corr_10M_points.bench │ │ ├── many_distinct_values.bench │ │ ├── many_int_groups_1M.bench │ │ ├── many_med_string_groups_1M.bench │ │ ├── many_small_string_groups_1M.bench │ │ └── redundant_group_by_exprs_64.bench │ ├── case │ │ └── large_case_statement.bench │ ├── functions │ │ └── trim_large_inputs_small_patterns.bench │ ├── limit │ │ └── limit_early_stop.bench │ ├── many_base_relation_join_10.bench │ ├── many_base_relation_join_14.bench │ ├── many_base_relation_join_8.bench │ ├── min_max_generate_series_10M.bench │ ├── select │ │ ├── select_from_many_columns.bench │ │ ├── select_from_many_regex_columns.bench │ │ └── star_expand_many_cols.bench │ └── select_1.bench └── tpch │ ├── 1 │ ├── q01.bench │ ├── q02.bench │ ├── q03.bench │ ├── q04.bench │ ├── q05.bench │ ├── q06.bench │ ├── q07.bench │ ├── q08.bench │ ├── q09.bench │ ├── q10.bench │ ├── q11.bench │ ├── q12.bench │ ├── q13.bench │ ├── q14.bench │ ├── q15.bench │ ├── q16.bench │ ├── q17.bench │ ├── q18.bench │ ├── q19.bench │ ├── q20.bench │ ├── q21.bench │ └── q22.bench │ ├── 10 │ ├── q01.bench │ ├── q02.bench │ ├── q03.bench │ ├── q04.bench │ ├── q05.bench │ ├── q06.bench │ ├── q07.bench │ ├── q08.bench │ ├── q09.bench │ ├── q10.bench │ ├── q11.bench │ ├── q12.bench │ ├── q13.bench │ ├── q14.bench │ ├── q15.bench │ ├── q16.bench │ ├── q17.bench │ ├── q18.bench │ ├── q19.bench │ ├── q20.bench │ ├── q21.bench │ └── q22.bench │ ├── 50 │ ├── q01.bench │ ├── q02.bench │ ├── q03.bench │ ├── q04.bench │ ├── q05.bench │ ├── q06.bench │ ├── q07.bench │ ├── q08.bench │ ├── q09.bench │ ├── q10.bench │ ├── q11.bench │ ├── q12.bench │ ├── q13.bench │ ├── q14.bench │ ├── q15.bench │ ├── q16.bench │ ├── q17.bench │ ├── q18.bench │ ├── q19.bench │ ├── q20.bench │ ├── q21.bench │ └── q22.bench │ └── 100 │ ├── q01.bench │ ├── q02.bench │ ├── q03.bench │ ├── q04.bench │ ├── q05.bench │ ├── q06.bench │ ├── q07.bench │ ├── q08.bench │ ├── q09.bench │ ├── q10.bench │ ├── q11.bench │ ├── q12.bench │ ├── q13.bench │ ├── q14.bench │ ├── q15.bench │ ├── q16.bench │ ├── q17.bench │ ├── q18.bench │ ├── q19.bench │ ├── q20.bench │ ├── q21.bench │ └── q22.bench ├── bench_bin ├── Cargo.toml └── bench_runner.rs ├── crates ├── docgen │ ├── Cargo.toml │ └── src │ │ ├── file.rs │ │ ├── main.rs │ │ ├── markdown_table.rs │ │ ├── section.rs │ │ └── session.rs ├── ext_csv │ ├── Cargo.toml │ └── src │ │ ├── decoder.rs │ │ ├── dialect.rs │ │ ├── extension.rs │ │ ├── functions │ │ ├── mod.rs │ │ └── read_csv.rs │ │ ├── lib.rs │ │ ├── reader.rs │ │ ├── schema.rs │ │ └── writer.rs ├── ext_default │ ├── Cargo.toml │ └── src │ │ └── lib.rs ├── ext_delta │ ├── Cargo.toml │ └── src │ │ ├── lib.rs │ │ └── protocol │ │ ├── action.rs │ │ ├── mod.rs │ │ ├── schema.rs │ │ └── snapshot.rs ├── ext_iceberg │ ├── Cargo.toml │ └── src │ │ ├── catalog │ │ ├── client.rs │ │ ├── mod.rs │ │ ├── rest.rs │ │ └── spec.rs │ │ ├── extension.rs │ │ ├── functions │ │ ├── metadata.rs │ │ └── mod.rs │ │ ├── lib.rs │ │ └── table │ │ ├── mod.rs │ │ ├── spec │ │ ├── manifest.rs │ │ ├── metadata.rs │ │ ├── mod.rs │ │ └── schema.rs │ │ └── state.rs ├── ext_parquet │ ├── Cargo.toml │ ├── README.md │ ├── regen.sh │ └── src │ │ ├── basic.rs │ │ ├── bloom_filter │ │ └── mod.rs │ │ ├── column │ │ ├── bitutil.rs │ │ ├── column_reader.rs │ │ ├── encoding │ │ │ ├── byte_stream_split.rs │ │ │ ├── delta_binary_packed.rs │ │ │ ├── delta_byte_array.rs │ │ │ ├── delta_length_byte_array.rs │ │ │ ├── dictionary.rs │ │ │ ├── mod.rs │ │ │ ├── plain.rs │ │ │ └── rle_bit_packed.rs │ │ ├── mod.rs │ │ ├── page_reader.rs │ │ ├── read_buffer.rs │ │ ├── row_group_pruner.rs │ │ ├── struct_reader.rs │ │ └── value_reader │ │ │ ├── bool.rs │ │ │ ├── int96.rs │ │ │ ├── mod.rs │ │ │ ├── primitive.rs │ │ │ └── varlen.rs │ │ ├── compression.rs │ │ ├── data_type.rs │ │ ├── encodings │ │ ├── decoding │ │ │ ├── byte_stream_split_decoder.rs │ │ │ ├── mod.rs │ │ │ └── view.rs │ │ ├── encoding │ │ │ ├── byte_stream_split_encoder.rs │ │ │ ├── dict_encoder.rs │ │ │ └── mod.rs │ │ ├── levels.rs │ │ ├── mod.rs │ │ └── rle.rs │ │ ├── extension.rs │ │ ├── format.rs │ │ ├── functions │ │ ├── metadata.rs │ │ ├── mod.rs │ │ └── scan.rs │ │ ├── lib.rs │ │ ├── metadata │ │ ├── loader.rs │ │ ├── mod.rs │ │ ├── page_encoding_stats.rs │ │ ├── page_index │ │ │ ├── index.rs │ │ │ ├── index_reader.rs │ │ │ └── mod.rs │ │ ├── properties.rs │ │ └── statistics.rs │ │ ├── page.rs │ │ ├── reader.rs │ │ ├── schema │ │ ├── convert.rs │ │ ├── mod.rs │ │ ├── parser.rs │ │ ├── printer.rs │ │ ├── types.rs │ │ └── visitor.rs │ │ ├── testutil │ │ ├── file_util.rs │ │ ├── miri.rs │ │ ├── mod.rs │ │ └── rand_gen.rs │ │ ├── thrift.rs │ │ └── util │ │ ├── bit_pack.rs │ │ ├── bit_util.rs │ │ ├── interner.rs │ │ └── mod.rs ├── ext_spark │ ├── Cargo.toml │ └── src │ │ ├── functions │ │ ├── csc.rs │ │ ├── expm1.rs │ │ └── mod.rs │ │ └── lib.rs ├── ext_tpch_gen │ ├── Cargo.toml │ └── src │ │ ├── functions │ │ ├── customer.rs │ │ ├── lineitem.rs │ │ ├── mod.rs │ │ ├── nation.rs │ │ ├── orders.rs │ │ ├── part.rs │ │ ├── partsupp.rs │ │ ├── region.rs │ │ ├── supplier.rs │ │ └── table_gen.rs │ │ └── lib.rs ├── glaredb │ ├── Cargo.toml │ └── src │ │ └── main.rs ├── glaredb_bench │ ├── Cargo.toml │ └── src │ │ ├── benchmark.rs │ │ ├── lib.rs │ │ ├── pagecache.rs │ │ └── runner.rs ├── glaredb_core │ ├── Cargo.toml │ └── src │ │ ├── arrays │ │ ├── array │ │ │ ├── array_buffer.rs │ │ │ ├── execution_format.rs │ │ │ ├── mod.rs │ │ │ ├── physical_type.rs │ │ │ ├── selection.rs │ │ │ └── validity.rs │ │ ├── batch.rs │ │ ├── bitmap │ │ │ ├── mod.rs │ │ │ └── view.rs │ │ ├── cache.rs │ │ ├── collection │ │ │ ├── chunk.rs │ │ │ ├── concurrent.rs │ │ │ ├── equal.rs │ │ │ ├── mod.rs │ │ │ └── segment.rs │ │ ├── compute │ │ │ ├── copy.rs │ │ │ ├── date.rs │ │ │ ├── hash.rs │ │ │ ├── list_extract.rs │ │ │ ├── make_list.rs │ │ │ ├── mod.rs │ │ │ └── set_list_value.rs │ │ ├── datatype.rs │ │ ├── executor │ │ │ ├── aggregate │ │ │ │ ├── binary.rs │ │ │ │ ├── mod.rs │ │ │ │ └── unary.rs │ │ │ ├── mod.rs │ │ │ └── scalar │ │ │ │ ├── binary.rs │ │ │ │ ├── list.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── ternary.rs │ │ │ │ ├── unary.rs │ │ │ │ └── uniform.rs │ │ ├── field.rs │ │ ├── format │ │ │ ├── mod.rs │ │ │ ├── pretty │ │ │ │ ├── components.rs │ │ │ │ ├── display.rs │ │ │ │ ├── mod.rs │ │ │ │ └── table.rs │ │ │ └── ugly.rs │ │ ├── mod.rs │ │ ├── row │ │ │ ├── aggregate_collection.rs │ │ │ ├── aggregate_layout.rs │ │ │ ├── block.rs │ │ │ ├── block_scan.rs │ │ │ ├── mod.rs │ │ │ ├── row_blocks.rs │ │ │ ├── row_collection.rs │ │ │ ├── row_layout.rs │ │ │ ├── row_matcher.rs │ │ │ └── row_scan.rs │ │ ├── scalar │ │ │ ├── decimal.rs │ │ │ ├── interval.rs │ │ │ ├── mod.rs │ │ │ ├── timestamp.rs │ │ │ └── unwrap.rs │ │ ├── sort │ │ │ ├── binary_merge.rs │ │ │ ├── heap_compare.rs │ │ │ ├── key_encode.rs │ │ │ ├── mod.rs │ │ │ ├── partial_sort.rs │ │ │ ├── sort_layout.rs │ │ │ ├── sorted_block.rs │ │ │ └── sorted_segment.rs │ │ └── string.rs │ │ ├── buffer │ │ ├── buffer_manager.rs │ │ ├── db_vec.rs │ │ └── mod.rs │ │ ├── catalog │ │ ├── context.rs │ │ ├── create.rs │ │ ├── database.rs │ │ ├── drop.rs │ │ ├── entry.rs │ │ ├── memory.rs │ │ ├── mod.rs │ │ ├── profile.rs │ │ └── system.rs │ │ ├── config │ │ ├── execution.rs │ │ ├── mod.rs │ │ └── session.rs │ │ ├── engine │ │ ├── mod.rs │ │ ├── query_result.rs │ │ ├── session.rs │ │ └── single_user.rs │ │ ├── execution │ │ ├── execution_stack.rs │ │ ├── mod.rs │ │ ├── operators │ │ │ ├── catalog │ │ │ │ ├── create_schema.rs │ │ │ │ ├── create_table.rs │ │ │ │ ├── create_table_as.rs │ │ │ │ ├── create_view.rs │ │ │ │ ├── drop.rs │ │ │ │ ├── insert.rs │ │ │ │ └── mod.rs │ │ │ ├── filter.rs │ │ │ ├── hash_aggregate │ │ │ │ ├── distinct_aggregates.rs │ │ │ │ ├── grouping_value.rs │ │ │ │ ├── hash_table │ │ │ │ │ ├── base.rs │ │ │ │ │ ├── directory.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── partitioned.rs │ │ │ │ └── mod.rs │ │ │ ├── hash_join │ │ │ │ ├── hash_table │ │ │ │ │ ├── directory.rs │ │ │ │ │ ├── drain.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── scan.rs │ │ │ │ └── mod.rs │ │ │ ├── limit.rs │ │ │ ├── materialize.rs │ │ │ ├── mod.rs │ │ │ ├── nested_loop_join │ │ │ │ ├── cross_product.rs │ │ │ │ ├── match_tracker.rs │ │ │ │ └── mod.rs │ │ │ ├── no_rows.rs │ │ │ ├── project.rs │ │ │ ├── results │ │ │ │ ├── materialized.rs │ │ │ │ ├── mod.rs │ │ │ │ └── streaming.rs │ │ │ ├── scan.rs │ │ │ ├── single_row.rs │ │ │ ├── sort │ │ │ │ ├── global_sort.rs │ │ │ │ ├── merge_queue.rs │ │ │ │ └── mod.rs │ │ │ ├── table_execute.rs │ │ │ ├── ungrouped_aggregate.rs │ │ │ ├── union.rs │ │ │ ├── util │ │ │ │ ├── delayed_count.rs │ │ │ │ ├── mod.rs │ │ │ │ └── partition_wakers.rs │ │ │ └── values.rs │ │ ├── partition_pipeline.rs │ │ ├── pipeline.rs │ │ └── planner │ │ │ ├── mod.rs │ │ │ ├── plan_aggregate.rs │ │ │ ├── plan_create_schema.rs │ │ │ ├── plan_create_table.rs │ │ │ ├── plan_create_view.rs │ │ │ ├── plan_describe.rs │ │ │ ├── plan_distinct.rs │ │ │ ├── plan_drop.rs │ │ │ ├── plan_explain.rs │ │ │ ├── plan_expression_list.rs │ │ │ ├── plan_filter.rs │ │ │ ├── plan_insert.rs │ │ │ ├── plan_join.rs │ │ │ ├── plan_limit.rs │ │ │ ├── plan_magic_scan.rs │ │ │ ├── plan_materialize_scan.rs │ │ │ ├── plan_no_rows.rs │ │ │ ├── plan_project.rs │ │ │ ├── plan_scan.rs │ │ │ ├── plan_set_operation.rs │ │ │ ├── plan_show_var.rs │ │ │ ├── plan_single_row.rs │ │ │ ├── plan_sort.rs │ │ │ ├── plan_table_execute.rs │ │ │ └── plan_unnest.rs │ │ ├── explain │ │ ├── context_display.rs │ │ ├── explainable.rs │ │ ├── formatter.rs │ │ ├── mod.rs │ │ └── node.rs │ │ ├── expr │ │ ├── aggregate_expr.rs │ │ ├── arith_expr.rs │ │ ├── between_expr.rs │ │ ├── case_expr.rs │ │ ├── cast_expr.rs │ │ ├── column_expr.rs │ │ ├── comparison_expr.rs │ │ ├── conjunction_expr.rs │ │ ├── grouping_set_expr.rs │ │ ├── is_expr.rs │ │ ├── literal_expr.rs │ │ ├── mod.rs │ │ ├── negate_expr.rs │ │ ├── physical │ │ │ ├── case_expr.rs │ │ │ ├── cast_expr.rs │ │ │ ├── column_expr.rs │ │ │ ├── conjunction_expr.rs │ │ │ ├── evaluator.rs │ │ │ ├── literal_expr.rs │ │ │ ├── mod.rs │ │ │ ├── planner.rs │ │ │ ├── scalar_function_expr.rs │ │ │ └── selection_evaluator.rs │ │ ├── scalar_function_expr.rs │ │ ├── subquery_expr.rs │ │ ├── unnest_expr.rs │ │ └── window_expr.rs │ │ ├── extension │ │ └── mod.rs │ │ ├── functions │ │ ├── aggregate │ │ │ ├── builtin │ │ │ │ ├── approx_count_distinct.rs │ │ │ │ ├── approx_quantile.rs │ │ │ │ ├── avg.rs │ │ │ │ ├── bit_and.rs │ │ │ │ ├── bit_or.rs │ │ │ │ ├── bool_and.rs │ │ │ │ ├── bool_or.rs │ │ │ │ ├── corr.rs │ │ │ │ ├── count.rs │ │ │ │ ├── covar.rs │ │ │ │ ├── first.rs │ │ │ │ ├── minmax.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── regr_avg.rs │ │ │ │ ├── regr_count.rs │ │ │ │ ├── regr_r2.rs │ │ │ │ ├── regr_slope.rs │ │ │ │ ├── stddev.rs │ │ │ │ ├── string_agg.rs │ │ │ │ └── sum.rs │ │ │ ├── mod.rs │ │ │ └── simple.rs │ │ ├── bind_state.rs │ │ ├── candidate.rs │ │ ├── cast │ │ │ ├── behavior.rs │ │ │ ├── builtin │ │ │ │ ├── mod.rs │ │ │ │ ├── to_binary.rs │ │ │ │ ├── to_boolean.rs │ │ │ │ ├── to_date.rs │ │ │ │ ├── to_decimal.rs │ │ │ │ ├── to_interval.rs │ │ │ │ ├── to_primitive.rs │ │ │ │ └── to_string.rs │ │ │ ├── format.rs │ │ │ ├── mod.rs │ │ │ └── parse.rs │ │ ├── documentation.rs │ │ ├── function_set.rs │ │ ├── implicit.rs │ │ ├── mod.rs │ │ ├── scalar │ │ │ ├── builtin │ │ │ │ ├── arith │ │ │ │ │ ├── add.rs │ │ │ │ │ ├── decimal_arith.rs │ │ │ │ │ ├── decimal_sigs.rs │ │ │ │ │ ├── div.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── mul.rs │ │ │ │ │ ├── rem.rs │ │ │ │ │ └── sub.rs │ │ │ │ ├── binary │ │ │ │ │ ├── bitand.rs │ │ │ │ │ ├── bitnot.rs │ │ │ │ │ ├── bitor.rs │ │ │ │ │ ├── hex.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── shl.rs │ │ │ │ │ ├── shr.rs │ │ │ │ │ └── xor.rs │ │ │ │ ├── boolean.rs │ │ │ │ ├── comparison.rs │ │ │ │ ├── datetime │ │ │ │ │ ├── date_part.rs │ │ │ │ │ ├── date_trunc.rs │ │ │ │ │ ├── epoch.rs │ │ │ │ │ └── mod.rs │ │ │ │ ├── debug.rs │ │ │ │ ├── is.rs │ │ │ │ ├── list │ │ │ │ │ ├── list_extract.rs │ │ │ │ │ ├── list_value.rs │ │ │ │ │ └── mod.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── negate.rs │ │ │ │ ├── not_implemented.rs │ │ │ │ ├── numeric │ │ │ │ │ ├── abs.rs │ │ │ │ │ ├── acos.rs │ │ │ │ │ ├── acosh.rs │ │ │ │ │ ├── asin.rs │ │ │ │ │ ├── asinh.rs │ │ │ │ │ ├── atan.rs │ │ │ │ │ ├── atan2.rs │ │ │ │ │ ├── atanh.rs │ │ │ │ │ ├── cbrt.rs │ │ │ │ │ ├── ceil.rs │ │ │ │ │ ├── cos.rs │ │ │ │ │ ├── cosh.rs │ │ │ │ │ ├── cot.rs │ │ │ │ │ ├── degrees.rs │ │ │ │ │ ├── exp.rs │ │ │ │ │ ├── factorial.rs │ │ │ │ │ ├── floor.rs │ │ │ │ │ ├── gcd.rs │ │ │ │ │ ├── isfinite.rs │ │ │ │ │ ├── isinf.rs │ │ │ │ │ ├── isnan.rs │ │ │ │ │ ├── lcm.rs │ │ │ │ │ ├── ln.rs │ │ │ │ │ ├── log.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── pi.rs │ │ │ │ │ ├── power.rs │ │ │ │ │ ├── radians.rs │ │ │ │ │ ├── round.rs │ │ │ │ │ ├── sign.rs │ │ │ │ │ ├── sin.rs │ │ │ │ │ ├── sinh.rs │ │ │ │ │ ├── sqrt.rs │ │ │ │ │ ├── tan.rs │ │ │ │ │ ├── tanh.rs │ │ │ │ │ └── trunc.rs │ │ │ │ ├── random.rs │ │ │ │ ├── similarity │ │ │ │ │ ├── l2_distance.rs │ │ │ │ │ └── mod.rs │ │ │ │ ├── string │ │ │ │ │ ├── ascii.rs │ │ │ │ │ ├── case.rs │ │ │ │ │ ├── concat.rs │ │ │ │ │ ├── contains.rs │ │ │ │ │ ├── ends_with.rs │ │ │ │ │ ├── initcap.rs │ │ │ │ │ ├── left.rs │ │ │ │ │ ├── length.rs │ │ │ │ │ ├── like.rs │ │ │ │ │ ├── md5.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── pad.rs │ │ │ │ │ ├── regexp_count.rs │ │ │ │ │ ├── regexp_instr.rs │ │ │ │ │ ├── regexp_like.rs │ │ │ │ │ ├── regexp_replace.rs │ │ │ │ │ ├── repeat.rs │ │ │ │ │ ├── replace.rs │ │ │ │ │ ├── reverse.rs │ │ │ │ │ ├── right.rs │ │ │ │ │ ├── split_part.rs │ │ │ │ │ ├── starts_with.rs │ │ │ │ │ ├── strpos.rs │ │ │ │ │ ├── substring.rs │ │ │ │ │ ├── translate.rs │ │ │ │ │ └── trim.rs │ │ │ │ └── struct_funcs.rs │ │ │ └── mod.rs │ │ └── table │ │ │ ├── builtin │ │ │ ├── glob.rs │ │ │ ├── list_databases.rs │ │ │ ├── list_entries.rs │ │ │ ├── list_schemas.rs │ │ │ ├── memory_scan.rs │ │ │ ├── mod.rs │ │ │ ├── profile.rs │ │ │ ├── read_text.rs │ │ │ ├── series.rs │ │ │ └── unnest.rs │ │ │ ├── execute.rs │ │ │ ├── mod.rs │ │ │ └── scan.rs │ │ ├── lib.rs │ │ ├── logical │ │ ├── binder │ │ │ ├── bind_attach.rs │ │ │ ├── bind_context.rs │ │ │ ├── bind_copy.rs │ │ │ ├── bind_create_schema.rs │ │ │ ├── bind_create_table.rs │ │ │ ├── bind_create_view.rs │ │ │ ├── bind_describe.rs │ │ │ ├── bind_discard.rs │ │ │ ├── bind_drop.rs │ │ │ ├── bind_explain.rs │ │ │ ├── bind_insert.rs │ │ │ ├── bind_query │ │ │ │ ├── bind_from.rs │ │ │ │ ├── bind_group_by.rs │ │ │ │ ├── bind_having.rs │ │ │ │ ├── bind_modifier.rs │ │ │ │ ├── bind_select.rs │ │ │ │ ├── bind_select_list.rs │ │ │ │ ├── bind_setop.rs │ │ │ │ ├── bind_values.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── select_expr_expander.rs │ │ │ │ └── select_list.rs │ │ │ ├── bind_set.rs │ │ │ ├── bind_statement.rs │ │ │ ├── column_binder.rs │ │ │ ├── constant_binder.rs │ │ │ ├── expr_binder.rs │ │ │ ├── ident.rs │ │ │ ├── mod.rs │ │ │ └── table_list.rs │ │ ├── logical_aggregate.rs │ │ ├── logical_attach.rs │ │ ├── logical_copy.rs │ │ ├── logical_create.rs │ │ ├── logical_describe.rs │ │ ├── logical_discard.rs │ │ ├── logical_distinct.rs │ │ ├── logical_drop.rs │ │ ├── logical_explain.rs │ │ ├── logical_expression_list.rs │ │ ├── logical_filter.rs │ │ ├── logical_inout.rs │ │ ├── logical_insert.rs │ │ ├── logical_join.rs │ │ ├── logical_limit.rs │ │ ├── logical_materialization.rs │ │ ├── logical_no_rows.rs │ │ ├── logical_order.rs │ │ ├── logical_project.rs │ │ ├── logical_scan.rs │ │ ├── logical_set.rs │ │ ├── logical_setop.rs │ │ ├── logical_single_row.rs │ │ ├── logical_unnest.rs │ │ ├── logical_window.rs │ │ ├── mod.rs │ │ ├── operator.rs │ │ ├── planner │ │ │ ├── mod.rs │ │ │ ├── plan_copy.rs │ │ │ ├── plan_create_table.rs │ │ │ ├── plan_explain.rs │ │ │ ├── plan_from.rs │ │ │ ├── plan_insert.rs │ │ │ ├── plan_query.rs │ │ │ ├── plan_select.rs │ │ │ ├── plan_setop.rs │ │ │ ├── plan_statement.rs │ │ │ ├── plan_subquery.rs │ │ │ └── plan_unnest.rs │ │ └── resolver │ │ │ ├── expr_resolver.rs │ │ │ ├── mod.rs │ │ │ ├── resolve_context.rs │ │ │ ├── resolve_normal.rs │ │ │ ├── resolved_cte.rs │ │ │ ├── resolved_function.rs │ │ │ ├── resolved_table.rs │ │ │ └── resolved_table_function.rs │ │ ├── optimizer │ │ ├── column_prune.rs │ │ ├── common_subexpression.rs │ │ ├── expr_rewrite │ │ │ ├── const_fold.rs │ │ │ ├── distributive_or.rs │ │ │ ├── join_filter_or.rs │ │ │ ├── like.rs │ │ │ ├── mod.rs │ │ │ └── unnest_conjunction.rs │ │ ├── filter_pushdown │ │ │ ├── condition_extractor.rs │ │ │ ├── extracted_filter.rs │ │ │ ├── generator.rs │ │ │ ├── mod.rs │ │ │ └── split.rs │ │ ├── join_reorder │ │ │ ├── edge.rs │ │ │ ├── graph.rs │ │ │ ├── mod.rs │ │ │ ├── statistics.rs │ │ │ └── subgraph.rs │ │ ├── limit_pushdown.rs │ │ ├── location.rs │ │ ├── mod.rs │ │ ├── redundant_groups.rs │ │ ├── scan_filter.rs │ │ ├── selection_reorder.rs │ │ └── sort_limit_hint.rs │ │ ├── runtime │ │ ├── filesystem │ │ │ ├── directory.rs │ │ │ ├── dispatch.rs │ │ │ ├── file_ext.rs │ │ │ ├── file_provider.rs │ │ │ ├── glob.rs │ │ │ ├── memory.rs │ │ │ └── mod.rs │ │ ├── handle.rs │ │ ├── mod.rs │ │ ├── pipeline.rs │ │ ├── profile_buffer.rs │ │ ├── system.rs │ │ └── time.rs │ │ ├── shell │ │ ├── code_point_string.rs │ │ ├── debug.rs │ │ ├── highlighter.rs │ │ ├── lineedit.rs │ │ ├── mod.rs │ │ ├── raw.rs │ │ └── vt100.rs │ │ ├── statistics │ │ ├── hll.rs │ │ ├── mod.rs │ │ ├── tdigest.rs │ │ └── value.rs │ │ ├── storage │ │ ├── datatable.rs │ │ ├── mod.rs │ │ ├── projections.rs │ │ ├── scan_filter.rs │ │ └── storage_manager.rs │ │ ├── testutil │ │ ├── array_assert.rs │ │ ├── database_context.rs │ │ ├── generate_batch.rs │ │ ├── mod.rs │ │ ├── operator_wrapper.rs │ │ ├── plan_exprs.rs │ │ └── row_blocks.rs │ │ └── util │ │ ├── cell.rs │ │ ├── fmt │ │ ├── displayable.rs │ │ └── mod.rs │ │ ├── future.rs │ │ ├── iter.rs │ │ ├── marker.rs │ │ ├── mod.rs │ │ └── task.rs ├── glaredb_error │ ├── Cargo.toml │ └── src │ │ └── lib.rs ├── glaredb_http │ ├── Cargo.toml │ └── src │ │ ├── client.rs │ │ ├── filesystem.rs │ │ ├── gcs │ │ ├── credentials.rs │ │ ├── directory.rs │ │ ├── filesystem.rs │ │ ├── list.rs │ │ └── mod.rs │ │ ├── handle.rs │ │ ├── lib.rs │ │ ├── list.rs │ │ └── s3 │ │ ├── credentials.rs │ │ ├── directory.rs │ │ ├── filesystem.rs │ │ ├── hex.rs │ │ ├── list.rs │ │ └── mod.rs ├── glaredb_parser │ ├── Cargo.toml │ └── src │ │ ├── ast │ │ ├── attach.rs │ │ ├── copy.rs │ │ ├── create_schema.rs │ │ ├── create_table.rs │ │ ├── create_view.rs │ │ ├── cte.rs │ │ ├── datatype.rs │ │ ├── describe.rs │ │ ├── discard.rs │ │ ├── drop.rs │ │ ├── explain.rs │ │ ├── expr.rs │ │ ├── from.rs │ │ ├── insert.rs │ │ ├── mod.rs │ │ ├── modifiers.rs │ │ ├── query.rs │ │ ├── select.rs │ │ ├── show.rs │ │ ├── variable.rs │ │ └── window.rs │ │ ├── keywords.rs │ │ ├── lib.rs │ │ ├── meta.rs │ │ ├── parser.rs │ │ ├── statement.rs │ │ └── tokens.rs ├── glaredb_proto │ ├── Cargo.toml │ ├── build.rs │ ├── proto │ │ ├── access.proto │ │ ├── array.proto │ │ ├── ast │ │ │ └── raw.proto │ │ ├── catalog.proto │ │ ├── execution.proto │ │ ├── expr.proto │ │ ├── foreign.proto │ │ ├── functions.proto │ │ ├── hybrid.proto │ │ ├── logical.proto │ │ ├── physical_expr.proto │ │ ├── physical_type.proto │ │ ├── resolver.proto │ │ └── schema.proto │ └── src │ │ ├── generated.rs │ │ ├── lib.rs │ │ ├── packed.rs │ │ └── util_types.rs ├── glaredb_python │ ├── Cargo.toml │ ├── README.md │ ├── benchmarks │ │ └── run_tpch.py │ ├── pyproject.toml │ ├── src │ │ ├── errors.rs │ │ ├── event_loop.rs │ │ ├── lib.rs │ │ ├── print.rs │ │ └── session.rs │ └── tests │ │ └── test_basic.py ├── glaredb_rt_native │ ├── Cargo.toml │ └── src │ │ ├── filesystem.rs │ │ ├── http.rs │ │ ├── lib.rs │ │ ├── runtime.rs │ │ ├── threaded │ │ ├── handle.rs │ │ ├── mod.rs │ │ └── task.rs │ │ └── time.rs ├── glaredb_slt │ ├── Cargo.toml │ └── src │ │ └── lib.rs ├── glaredb_wasm │ ├── Cargo.toml │ ├── README.md │ └── src │ │ ├── errors.rs │ │ ├── http.rs │ │ ├── lib.rs │ │ ├── origin_filesystem.rs │ │ ├── runtime.rs │ │ ├── session.rs │ │ ├── shell.rs │ │ ├── time.rs │ │ └── tracing.rs ├── harness │ ├── Cargo.toml │ ├── README.md │ └── src │ │ ├── args.rs │ │ ├── lib.rs │ │ ├── printer.rs │ │ ├── sqlfile │ │ ├── bench_parser.rs │ │ ├── find.rs │ │ ├── mod.rs │ │ ├── parser.rs │ │ ├── slt_parser.rs │ │ └── vars.rs │ │ └── trial.rs └── logutil │ ├── Cargo.toml │ └── src │ └── lib.rs ├── docs ├── development │ ├── building.md │ ├── index.md │ └── testing.md ├── extensions │ ├── csv.md │ ├── index.md │ ├── parquet.md │ └── tpch.md ├── get-started │ ├── index.md │ └── install.md ├── index.md └── reference │ ├── datatypes.md │ ├── filesystems │ ├── gcs.md │ ├── http.md │ ├── index.md │ ├── local.md │ ├── overview.md │ └── s3.md │ ├── functions │ ├── aggregate.md │ ├── date-time.md │ ├── index.md │ ├── list.md │ ├── numeric.md │ ├── operator.md │ ├── regexp.md │ ├── string.md │ ├── system.md │ └── table.md │ ├── identifiers.md │ ├── index.md │ └── sql │ ├── commands │ ├── create-schema.md │ ├── create-table.md │ ├── create-view.md │ ├── describe.md │ ├── drop.md │ ├── explain.md │ ├── index.md │ ├── insert.md │ └── set-reset.md │ ├── expressions │ ├── arithmetic.md │ ├── comparison.md │ ├── index.md │ ├── logical.md │ └── subqueries.md │ ├── index.md │ └── query-syntax │ ├── from.md │ ├── group-by.md │ ├── having.md │ ├── index.md │ ├── limit.md │ ├── order-by.md │ ├── select.md │ ├── values.md │ ├── where.md │ └── with.md ├── install.sh ├── rustfmt.toml ├── scripts ├── assert_cargo_version.sh ├── bench_download_clickbench_data.sh ├── bench_download_tpch_data.sh ├── bench_gcp.sh ├── ci_run_cli_non_interactive.sh ├── ci_run_python_tests.sh ├── codesign_macos.sh ├── create-test-postgres-db.sh ├── format.sh ├── install_protoc_linux.sh ├── install_protoc_linux_arm.sh ├── notarize_macos.sh ├── run_miri.sh └── run_slt_standard.sh ├── slt ├── clickbench │ ├── partitioned │ │ ├── describe.slt │ │ ├── q00.slt │ │ ├── q01.slt │ │ ├── q02.slt │ │ ├── q03.slt │ │ ├── q04.slt │ │ ├── q05.slt │ │ ├── q06.slt │ │ ├── q07.slt │ │ ├── q08.slt │ │ ├── q09.slt │ │ ├── q10.slt │ │ ├── q11.slt │ │ ├── q12.slt │ │ ├── q13.slt │ │ ├── q14.slt │ │ ├── q15.slt │ │ ├── q16.slt │ │ ├── q17.slt │ │ ├── q18.slt │ │ ├── q19.slt │ │ ├── q20.slt │ │ ├── q21.slt │ │ ├── q22.slt │ │ ├── q23.slt │ │ ├── q24.slt │ │ ├── q25.slt │ │ ├── q26.slt │ │ ├── q27.slt │ │ ├── q28.slt │ │ ├── q29.slt │ │ ├── q30.slt │ │ ├── q31.slt │ │ ├── q32.slt │ │ ├── q33.slt │ │ ├── q34.slt │ │ ├── q35.slt │ │ ├── q36.slt │ │ ├── q37.slt │ │ ├── q38.slt │ │ ├── q39.slt │ │ ├── q40.slt │ │ ├── q41.slt │ │ └── q42.slt │ └── single │ │ ├── describe.slt │ │ ├── q00.slt │ │ ├── q01.slt │ │ ├── q02.slt │ │ ├── q03.slt │ │ ├── q04.slt │ │ ├── q05.slt │ │ ├── q06.slt │ │ ├── q07.slt │ │ ├── q08.slt │ │ ├── q09.slt │ │ ├── q10.slt │ │ ├── q11.slt │ │ ├── q12.slt │ │ ├── q13.slt │ │ ├── q14.slt │ │ ├── q15.slt │ │ ├── q16.slt │ │ ├── q17.slt │ │ ├── q18.slt │ │ ├── q19.slt │ │ ├── q20.slt │ │ ├── q21.slt │ │ ├── q22.slt │ │ ├── q23.slt │ │ ├── q24.slt │ │ ├── q25.slt │ │ ├── q26.slt │ │ ├── q27.slt │ │ ├── q28.slt │ │ ├── q29.slt │ │ ├── q30.slt │ │ ├── q31.slt │ │ ├── q32.slt │ │ ├── q33.slt │ │ ├── q34.slt │ │ ├── q35.slt │ │ ├── q36.slt │ │ ├── q37.slt │ │ ├── q38.slt │ │ ├── q39.slt │ │ ├── q40.slt │ │ ├── q41.slt │ │ └── q42.slt ├── csv │ ├── copy_to.slt │ ├── glob_different_num_columns.slt │ ├── glob_numbers.slt │ ├── infer │ │ ├── all_null.slt │ │ ├── boolean_values.slt │ │ ├── dup_header_name.slt │ │ ├── empty_first_line.slt │ │ ├── empty_header_names.slt │ │ ├── empty_middle_line.slt │ │ ├── escaped_quotes.slt │ │ ├── infer_string_lit_as_int.slt │ │ ├── mixed_type_pipe_delim.slt │ │ ├── semicolon_delim.slt │ │ ├── single_quotes.slt │ │ ├── special_float_values.slt │ │ ├── tab_delim.slt │ │ └── whitespace_handling.slt │ ├── read_file_list.slt │ ├── read_tsv.slt │ ├── simple.slt │ ├── small_batch_size.slt │ ├── tpch_small │ │ ├── lineitem.slt │ │ └── nation.slt │ └── userdata1.slt ├── delta │ └── simple.slt ├── gcs │ ├── private │ │ ├── errors.slt │ │ ├── glob.slt │ │ ├── iceberg_metadata.slt │ │ └── userdata0.slt │ └── public │ │ ├── csv_glob_numbers.slt │ │ ├── csv_tpch_small │ │ ├── lineitem.slt │ │ └── nation.slt │ │ ├── glob.slt │ │ ├── iceberg_manifest_list.slt │ │ ├── iceberg_metadata.slt │ │ ├── iceberg_snapshots.slt │ │ ├── parquet_glob_numbers.slt │ │ ├── read_text.slt │ │ └── userdata0.slt ├── http │ ├── read_csv_http.slt │ ├── read_parquet_http.slt │ └── row_group_metadata_http.slt ├── hybrid │ ├── client_only.slt │ ├── copy_to.slt │ ├── create_temp_table_as.slt │ ├── insert_into.slt │ └── remote_attach.slt ├── iceberg │ ├── iceberg_data_files.slt │ ├── iceberg_manifest_list.slt │ ├── iceberg_metadata.slt │ └── iceberg_snapshots.slt ├── parquet │ ├── binary_rle_dict_defs.slt │ ├── capital_column_names.slt │ ├── column_metadata.slt │ ├── copy_to.slt │ ├── describe.slt │ ├── file_infer.slt │ ├── file_metadata.slt │ ├── firebolt_ecommerce_sample.slt │ ├── glob_numbers.slt │ ├── parquet-testing │ │ ├── alltypes_dictionary.slt │ │ ├── alltypes_plain.slt │ │ ├── alltypes_plain_snappy.slt │ │ ├── alltypes_tiny_pages.slt │ │ ├── alltypes_tiny_pages_plain.slt │ │ ├── bad │ │ │ ├── ARROW-GH-41317.slt │ │ │ ├── ARROW-GH-41321.slt │ │ │ ├── ARROW-GH-43605.slt │ │ │ ├── ARROW-GH-45185.slt │ │ │ ├── ARROW-RS-GH-6229-DICTHEADER.slt │ │ │ ├── ARROW-RS-GH-6229-LEVELS.slt │ │ │ └── PARQUET-1481.slt │ │ ├── binary.slt │ │ ├── byte_array_decimal.slt │ │ ├── byte_stream_split_extended_gzip.slt │ │ ├── bytes_stream_split_zstd.slt │ │ ├── column_chunk_key_value_metadata.slt │ │ ├── concatenated_gzip_members.slt │ │ ├── data_index_bloom_encoding_stats.slt │ │ ├── data_index_bloom_encoding_with_length.slt │ │ ├── datapage_v1-corrupt-checksum.slt │ │ ├── datapage_v1-snappy-compressed-checksum.slt │ │ ├── datapage_v1-uncompressed-checksum.slt │ │ ├── datapage_v2_empty_datapage_snappy.slt │ │ ├── datapage_v2_snappy.slt │ │ ├── delta_binary_packed.slt │ │ ├── delta_byte_array.slt │ │ ├── delta_encoding_optional_column.slt │ │ ├── delta_encoding_required_column.slt │ │ ├── delta_length_byte_array.slt │ │ ├── dict-page-offset-zero.slt │ │ ├── fixed_length_byte_array.slt │ │ ├── fixed_length_decimal.slt │ │ ├── fixed_length_decimal_legacy.slt │ │ ├── float16_nonzeros_and_nans.slt │ │ ├── float16_zeros_and_nans.slt │ │ ├── hadoop_lz4_compressed.slt │ │ ├── hadoop_lz4_compressed_larger.slt │ │ ├── incorrect_map_schema.slt │ │ ├── int32_decimal.slt │ │ ├── int32_with_null_pages.slt │ │ ├── int64_decimal.slt │ │ ├── int96_from_spark.slt │ │ ├── large_string_map_brotli.slt │ │ ├── list_columns.slt │ │ ├── lz4_raw_compressed.slt │ │ ├── lz4_raw_compressed_larger.slt │ │ ├── map_no_value.slt │ │ ├── nan_in_stats.slt │ │ ├── nation_dict-malformed.slt │ │ ├── nested_lists.snappy.slt │ │ ├── nested_maps.snappy.slt │ │ ├── nested_structs_rust.slt │ │ ├── non_hadoop_lz4_compressed.slt │ │ ├── nonullable_impala.slt │ │ ├── null_list.slt │ │ ├── nullable_impala.slt │ │ ├── nulls_snappy.slt │ │ ├── old_list_structure.slt │ │ ├── overflow_i16_page_cnt.slt │ │ ├── page_v2_empty_compressed.slt │ │ ├── plain-dict-uncompressed-checksum.slt │ │ ├── repeated_no_annotation.slt │ │ ├── repeated_primitive_no_list.slt │ │ ├── rle-dict-snappy-checksum.slt │ │ ├── rle-dict-uncompressed-corrupt-checksum.slt │ │ ├── rle_boolean_encoding.slt │ │ ├── single_nan.slt │ │ ├── sort_columns.slt │ │ └── unknown-logical-type.slt │ ├── parquet_testing.slt │ ├── read_file_list.slt │ ├── read_parquet_local.slt │ ├── rowgroup_metadata.slt │ ├── small_batch_size.slt │ └── userdata0.slt ├── postgres │ ├── attach.slt │ └── read_postgres.slt ├── s3 │ ├── README.md │ ├── private │ │ ├── csv_simple.slt │ │ ├── glob.slt │ │ ├── iceberg_metadata.slt │ │ ├── parquet_metadata.slt │ │ └── userdata0.slt │ └── public │ │ ├── csv_glob_numbers.slt │ │ ├── csv_simple.slt │ │ ├── csv_tpch_small │ │ ├── lineitem.slt │ │ └── nation.slt │ │ ├── file_infer.slt │ │ ├── glob.slt │ │ ├── iceberg_manifest_list.slt │ │ ├── iceberg_metadata.slt │ │ ├── iceberg_snapshots.slt │ │ ├── parquet_glob_numbers.slt │ │ ├── parquet_metadata.slt │ │ ├── parquet_metadata_eu.slt │ │ ├── read_text.slt │ │ └── userdata0.slt ├── standard │ ├── aggregates │ │ ├── aggregate_with_no_column_refs.slt │ │ ├── basic.slt │ │ ├── distinct_grouped.slt │ │ ├── distinct_grouped_many_groups.slt │ │ ├── distinct_ungrouped.slt │ │ ├── group_by_alias.slt │ │ ├── group_by_cube.slt │ │ ├── group_by_duplicated.slt │ │ ├── group_by_errors.slt │ │ ├── group_by_expr.slt │ │ ├── group_by_many.slt │ │ ├── group_by_multiple_cols.slt │ │ ├── group_by_no_aggregates.slt │ │ ├── group_by_order_by.slt │ │ ├── group_by_ordinal.slt │ │ ├── group_by_string.slt │ │ ├── grouping.slt │ │ └── having.slt │ ├── attach │ │ ├── invalid_datasource.slt │ │ └── memory.slt │ ├── cast │ │ ├── binary.slt │ │ ├── cast_overflow.slt │ │ ├── date.slt │ │ ├── decimal.slt │ │ ├── f16.slt │ │ ├── implicit_cast_int_lit.slt │ │ ├── implicit_cast_scalar_agg.slt │ │ ├── implicit_cast_string_lit.slt │ │ ├── integer_minmax.slt │ │ ├── interval.slt │ │ ├── nested_casts.slt │ │ ├── reference_through_cast.slt │ │ ├── string_cast.slt │ │ ├── typed_string.slt │ │ └── unsigned_int.slt │ ├── comments.slt │ ├── create_schema │ │ ├── create_temp_schema.slt │ │ ├── drop_schema_dependants.slt │ │ └── drop_temp_schema.slt │ ├── create_table │ │ ├── create_table.slt │ │ ├── ctas_temp.slt │ │ ├── drop_table.slt │ │ └── temp_table.slt │ ├── cte │ │ ├── cte.slt │ │ ├── insert_cte.slt │ │ └── materialized_cte.slt │ ├── describe │ │ ├── describe_query.slt │ │ └── describe_table.slt │ ├── discard.slt │ ├── equality_join.slt │ ├── explain.slt │ ├── filter │ │ ├── constant.slt │ │ └── duplicate_conditions.slt │ ├── functions │ │ ├── aggregate │ │ │ ├── approx_count_distinct.slt │ │ │ ├── approx_quantile.slt │ │ │ ├── avg.slt │ │ │ ├── bit_and.slt │ │ │ ├── bit_or.slt │ │ │ ├── bool_and.slt │ │ │ ├── bool_or.slt │ │ │ ├── corr.slt │ │ │ ├── count.slt │ │ │ ├── count_star.slt │ │ │ ├── covar.slt │ │ │ ├── first_last.slt │ │ │ ├── minmax.slt │ │ │ ├── regr_avg.slt │ │ │ ├── regr_count.slt │ │ │ ├── regr_r2.slt │ │ │ ├── regr_slope.slt │ │ │ ├── stddev.slt │ │ │ ├── string_agg.slt │ │ │ ├── sum.slt │ │ │ └── sum_decimal.slt │ │ ├── chaining.slt │ │ ├── operators │ │ │ ├── between.slt │ │ │ ├── bit_and_or_not.slt │ │ │ ├── case.slt │ │ │ ├── case_short_circuit.slt │ │ │ └── in.slt │ │ ├── qualified.slt │ │ ├── scalar │ │ │ ├── arith.slt │ │ │ ├── binary │ │ │ │ ├── shl.slt │ │ │ │ └── shr.slt │ │ │ ├── boolean.slt │ │ │ ├── ceil.slt │ │ │ ├── coalesce.slt │ │ │ ├── comparison.slt │ │ │ ├── contains.slt │ │ │ ├── date_comparison.slt │ │ │ ├── datetime │ │ │ │ ├── date_part.slt │ │ │ │ ├── date_trunc.slt │ │ │ │ ├── epoch.slt │ │ │ │ └── extract.slt │ │ │ ├── decimal_arith.slt │ │ │ ├── decimal_arith_add.slt │ │ │ ├── decimal_arith_mul.slt │ │ │ ├── decimal_arith_sub.slt │ │ │ ├── decimal_comparison.slt │ │ │ ├── ends_with.slt │ │ │ ├── f16_arith.slt │ │ │ ├── factorial.slt │ │ │ ├── floor.slt │ │ │ ├── gcd.slt │ │ │ ├── is_bool.slt │ │ │ ├── is_distinct_from.slt │ │ │ ├── is_not_distinct_from.slt │ │ │ ├── is_null.slt │ │ │ ├── isfinite.slt │ │ │ ├── isinf.slt │ │ │ ├── l2_distance.slt │ │ │ ├── lcm.slt │ │ │ ├── like.slt │ │ │ ├── list_comparisons.slt │ │ │ ├── list_extract.slt │ │ │ ├── list_value.slt │ │ │ ├── negate.slt │ │ │ ├── not.slt │ │ │ ├── pi.slt │ │ │ ├── power.slt │ │ │ ├── random.slt │ │ │ ├── right.slt │ │ │ ├── round.slt │ │ │ ├── sign.slt │ │ │ ├── string │ │ │ │ ├── ascii.slt │ │ │ │ ├── ends_with.slt │ │ │ │ ├── initcap.slt │ │ │ │ ├── left.slt │ │ │ │ ├── length.slt │ │ │ │ ├── lower.slt │ │ │ │ ├── lpad.slt │ │ │ │ ├── position.slt │ │ │ │ ├── regexp_count.slt │ │ │ │ ├── regexp_instr.slt │ │ │ │ ├── regexp_like.slt │ │ │ │ ├── regexp_replace.slt │ │ │ │ ├── repeat.slt │ │ │ │ ├── replace.slt │ │ │ │ ├── reverse.slt │ │ │ │ ├── rpad.slt │ │ │ │ ├── starts_with.slt │ │ │ │ ├── string_concat.slt │ │ │ │ ├── string_split_part.slt │ │ │ │ ├── strpos.slt │ │ │ │ ├── substring.slt │ │ │ │ ├── translate.slt │ │ │ │ ├── trim.slt │ │ │ │ └── upper.slt │ │ │ ├── trigonometric.slt │ │ │ ├── trunc.slt │ │ │ └── xor.slt │ │ ├── star_is_special.slt │ │ ├── string │ │ │ └── md5.slt │ │ └── table │ │ │ ├── generate_series.slt │ │ │ ├── glob.slt │ │ │ ├── list_database.slt │ │ │ ├── list_functions.slt │ │ │ ├── list_tables.slt │ │ │ ├── list_views.slt │ │ │ ├── read_text.slt │ │ │ ├── read_text_file_list.slt │ │ │ ├── read_text_into_table.slt │ │ │ ├── read_text_natural_join.slt │ │ │ └── unnest_list.slt │ ├── ident │ │ ├── case_sensitivity.slt │ │ ├── case_sensitivity_alias.slt │ │ ├── case_sensitivity_ambiguous.slt │ │ ├── case_sensitivity_columns.slt │ │ ├── case_sensitivity_views.slt │ │ └── leading_underscore.slt │ ├── insert │ │ ├── insert_cast.slt │ │ ├── insert_count.slt │ │ ├── insert_invalid.slt │ │ └── insert_parallel.slt │ ├── join │ │ ├── cross_join.slt │ │ ├── in_semi_join_with_filter.slt │ │ ├── inner_join.slt │ │ ├── inner_join_eq_neq.slt │ │ ├── inner_join_large_result.slt │ │ ├── inner_join_using.slt │ │ ├── join_empty.slt │ │ ├── lateral_join.slt │ │ ├── lateral_join_aggregate.slt │ │ ├── lateral_left_join.slt │ │ ├── left_join_with_right_filter.slt │ │ ├── left_outer.slt │ │ ├── left_outer_using.slt │ │ ├── natural_join.slt │ │ ├── right_outer.slt │ │ ├── right_outer_using.slt │ │ ├── semi_join.slt │ │ ├── system_join.slt │ │ └── where_or_condition.slt │ ├── limit │ │ ├── basic.slt │ │ ├── global_limit.slt │ │ └── limit_union.slt │ ├── list │ │ └── create_list_larger_than_batch_size.slt │ ├── optimizer │ │ ├── column_pruning_multiple_scans.slt │ │ ├── column_pruning_no_table_projections.slt │ │ ├── cse.slt │ │ ├── filter_pushdown.slt │ │ └── filter_pushdown_nested_cross_join.slt │ ├── order │ │ ├── basic.slt │ │ ├── order_by_alias.slt │ │ ├── order_by_large.slt │ │ ├── order_by_many.slt │ │ ├── order_by_noninline_data.slt │ │ ├── order_by_nulls.slt │ │ ├── order_by_ordinal.slt │ │ ├── order_by_strings.slt │ │ ├── order_group.slt │ │ ├── order_limit_offsets.slt │ │ └── order_union.slt │ ├── parallelism │ │ └── arbitrary_values.slt │ ├── select │ │ ├── columns.slt │ │ ├── distinct.slt │ │ ├── exclude_except.slt │ │ ├── from_missing.slt │ │ ├── from_values_no_parens.slt │ │ ├── reference_alias_in_select.slt │ │ ├── replace.slt │ │ ├── replace_different_types.slt │ │ └── unnest.slt │ ├── setops │ │ ├── union.slt │ │ └── union_distinct.slt │ ├── show │ │ ├── show_databases.slt │ │ ├── show_schemas.slt │ │ └── show_tables.slt │ ├── simple.slt │ ├── subqueries │ │ ├── any_all.slt │ │ ├── correlated_any.slt │ │ ├── correlated_exists.slt │ │ ├── correlated_in.slt │ │ ├── correlated_lateral.slt │ │ ├── correlated_set_semantics.slt │ │ ├── correlated_subquery.slt │ │ ├── from_subquery.slt │ │ ├── from_table_subquery.slt │ │ ├── in.slt │ │ ├── neumann.slt │ │ ├── scalar │ │ │ ├── count_subquery.slt │ │ │ ├── scalar_exists.slt │ │ │ └── scalar_subquery.slt │ │ └── subquery_alias.slt │ ├── time │ │ ├── date_arith.slt │ │ ├── date_cmp.slt │ │ └── interval_arith.slt │ ├── values │ │ ├── implicit_cast.slt │ │ ├── lateral_values.slt │ │ ├── num_columns.slt │ │ └── values_aliases.slt │ ├── vars │ │ ├── reset.slt │ │ ├── set_batch_size.slt │ │ ├── set_partitions.slt │ │ ├── set_var.slt │ │ └── verify_optimized_plan.slt │ ├── views │ │ ├── create_view.slt │ │ ├── temp_view.slt │ │ ├── view_in_subquery.slt │ │ └── view_qualified_reference.slt │ └── window │ │ └── basic.slt ├── tpcds │ ├── describe_files.slt │ ├── q01.slt │ ├── q02.slt │ ├── q03.slt │ ├── q04.slt │ ├── q05.slt │ ├── q06.slt │ ├── q07.slt │ ├── q08.slt │ ├── q09.slt │ ├── q10.slt │ ├── q11.slt │ ├── q12.slt │ ├── q13.slt │ ├── q14.slt │ ├── q15.slt │ ├── q16.slt │ ├── q17.slt │ ├── q18.slt │ ├── q19.slt │ ├── q20.slt │ ├── q21.slt │ ├── q22.slt │ ├── q23.slt │ ├── q24.slt │ ├── q25.slt │ ├── q26.slt │ ├── q27.slt │ ├── q28.slt │ ├── q29.slt │ ├── q30.slt │ ├── q31.slt │ ├── q32.slt │ ├── q33.slt │ ├── q34.slt │ ├── q35.slt │ ├── q36.slt │ ├── q37.slt │ ├── q38.slt │ ├── q39.slt │ ├── q40.slt │ ├── q41.slt │ ├── q42.slt │ ├── q43.slt │ ├── q44.slt │ ├── q45.slt │ ├── q46.slt │ ├── q47.slt │ ├── q48.slt │ ├── q49.slt │ ├── q50.slt │ ├── q51.slt │ ├── q52.slt │ ├── q53.slt │ ├── q54.slt │ ├── q55.slt │ ├── q56.slt │ ├── q57.slt │ ├── q58.slt │ ├── q59.slt │ ├── q60.slt │ ├── q61.slt │ ├── q62.slt │ ├── q63.slt │ ├── q64.slt │ ├── q65.slt │ ├── q66.slt │ ├── q67.slt │ ├── q68.slt │ ├── q69.slt │ ├── q70.slt │ ├── q71.slt │ ├── q72.slt │ ├── q73.slt │ ├── q74.slt │ ├── q75.slt │ ├── q76.slt │ ├── q77.slt │ ├── q78.slt │ ├── q79.slt │ ├── q80.slt │ ├── q81.slt │ ├── q82.slt │ ├── q83.slt │ ├── q84.slt │ ├── q85.slt │ ├── q86.slt │ ├── q87.slt │ ├── q88.slt │ ├── q89.slt │ ├── q90.slt │ ├── q91.slt │ ├── q92.slt │ ├── q93.slt │ ├── q94.slt │ ├── q95.slt │ ├── q96.slt │ ├── q97.slt │ ├── q98.slt │ └── q99.slt ├── tpch_gen │ ├── describe.slt │ ├── linitem.slt │ ├── orders.slt │ └── region.slt ├── tpchbench │ ├── describe.slt │ ├── q01.slt │ ├── q02.slt │ ├── q03.slt │ ├── q04.slt │ ├── q05.slt │ ├── q06.slt │ ├── q07.slt │ ├── q08.slt │ ├── q09.slt │ ├── q10.slt │ ├── q11.slt │ ├── q12.slt │ ├── q13.slt │ ├── q14.slt │ ├── q15.slt │ ├── q16.slt │ ├── q17.slt │ ├── q18.slt │ ├── q19.slt │ ├── q20.slt │ ├── q21.slt │ └── q22.slt └── unity_catalog │ ├── attach.slt │ ├── list_schemas.slt │ └── list_tables.slt ├── submodules └── README.md ├── test_bin ├── Cargo.toml └── integration_slt.rs └── testdata ├── cli ├── create_view_v1.sql └── query_view_v1.sql ├── csv ├── all_null_with_header.csv ├── boolean_values.csv ├── dup_header_name.csv ├── empty_first_line.csv ├── empty_header_names.csv ├── empty_middle_line.csv ├── escaped_quotes.csv ├── glob_num_cols │ ├── 2_cols.csv │ └── 3_cols.csv ├── glob_numbers │ ├── 100.csv │ ├── 200.csv │ ├── 300.csv │ ├── 400.csv │ ├── 500.csv │ ├── README.md │ ├── deep │ │ ├── my_favorite_numbers.csv │ │ ├── nested1 │ │ │ ├── 100.csv │ │ │ ├── 200.csv │ │ │ ├── 300.csv │ │ │ ├── 400.csv │ │ │ └── 500.csv │ │ └── nested2 │ │ │ ├── 100.csv │ │ │ ├── 200.csv │ │ │ ├── 300.csv │ │ │ ├── 400.csv │ │ │ └── 500.csv │ ├── nested1 │ │ ├── 100.csv │ │ ├── 200.csv │ │ ├── 300.csv │ │ ├── 400.csv │ │ └── 500.csv │ └── nested2 │ │ ├── 100.csv │ │ ├── 200.csv │ │ ├── 300.csv │ │ ├── 400.csv │ │ └── 500.csv ├── mixed_type_pipe_delim.csv ├── semicolon_delim.csv ├── simple.csv ├── single_quotes.csv ├── special_float_values.csv ├── string_lit_int.csv ├── tab_delim.csv ├── tpch_small │ ├── customer.csv │ ├── lineitem.csv │ ├── nation.csv │ ├── orders.csv │ ├── part.csv │ ├── partsupp.csv │ ├── region.csv │ └── supplier.csv ├── tsv_small.tsv ├── userdata1.csv └── whitespace_handling.csv ├── delta └── table1 │ ├── _delta_log │ ├── 00000000000000000000.json │ ├── 00000000000000000001.json │ └── 00000000000000000002.json │ ├── part-00001-0b80d78e-bee2-4230-917d-96a93ff4ea47-c000.snappy.parquet │ └── part-00001-15c5f284-3ffd-40a3-8618-0065cac3840a-c000.snappy.parquet ├── iceberg ├── README.md ├── generate.py ├── tables-v1 │ ├── lineitem_partitioned │ │ ├── data │ │ │ ├── l_shipmode=AIR │ │ │ │ ├── .00000-5-4ab0cc8a-b1c5-4c5c-8ca9-0dee868f96bc-00001.parquet.crc │ │ │ │ └── 00000-5-4ab0cc8a-b1c5-4c5c-8ca9-0dee868f96bc-00001.parquet │ │ │ ├── l_shipmode=FOB │ │ │ │ ├── .00000-5-4ab0cc8a-b1c5-4c5c-8ca9-0dee868f96bc-00007.parquet.crc │ │ │ │ └── 00000-5-4ab0cc8a-b1c5-4c5c-8ca9-0dee868f96bc-00007.parquet │ │ │ ├── l_shipmode=MAIL │ │ │ │ ├── .00000-5-4ab0cc8a-b1c5-4c5c-8ca9-0dee868f96bc-00002.parquet.crc │ │ │ │ └── 00000-5-4ab0cc8a-b1c5-4c5c-8ca9-0dee868f96bc-00002.parquet │ │ │ ├── l_shipmode=RAIL │ │ │ │ ├── .00000-5-4ab0cc8a-b1c5-4c5c-8ca9-0dee868f96bc-00003.parquet.crc │ │ │ │ └── 00000-5-4ab0cc8a-b1c5-4c5c-8ca9-0dee868f96bc-00003.parquet │ │ │ ├── l_shipmode=REG+AIR │ │ │ │ ├── .00000-5-4ab0cc8a-b1c5-4c5c-8ca9-0dee868f96bc-00006.parquet.crc │ │ │ │ └── 00000-5-4ab0cc8a-b1c5-4c5c-8ca9-0dee868f96bc-00006.parquet │ │ │ ├── l_shipmode=SHIP │ │ │ │ ├── .00000-5-4ab0cc8a-b1c5-4c5c-8ca9-0dee868f96bc-00004.parquet.crc │ │ │ │ └── 00000-5-4ab0cc8a-b1c5-4c5c-8ca9-0dee868f96bc-00004.parquet │ │ │ └── l_shipmode=TRUCK │ │ │ │ ├── .00000-5-4ab0cc8a-b1c5-4c5c-8ca9-0dee868f96bc-00005.parquet.crc │ │ │ │ └── 00000-5-4ab0cc8a-b1c5-4c5c-8ca9-0dee868f96bc-00005.parquet │ │ └── metadata │ │ │ ├── .157b2954-35a0-4a5d-946e-76723d3f153c-m0.avro.crc │ │ │ ├── .snap-7556422720324607284-1-157b2954-35a0-4a5d-946e-76723d3f153c.avro.crc │ │ │ ├── .v1.metadata.json.crc │ │ │ ├── .version-hint.text.crc │ │ │ ├── 157b2954-35a0-4a5d-946e-76723d3f153c-m0.avro │ │ │ ├── snap-7556422720324607284-1-157b2954-35a0-4a5d-946e-76723d3f153c.avro │ │ │ ├── v1.metadata.json │ │ │ └── version-hint.text │ ├── lineitem_simple │ │ ├── data │ │ │ ├── .00000-1-f1cb7836-febe-45ef-b786-56a1ff4aefc1-00001.parquet.crc │ │ │ └── 00000-1-f1cb7836-febe-45ef-b786-56a1ff4aefc1-00001.parquet │ │ └── metadata │ │ │ ├── .bb767407-7be5-4a32-9b5e-63a8ed6d8f2a-m0.avro.crc │ │ │ ├── .snap-924970080087887963-1-bb767407-7be5-4a32-9b5e-63a8ed6d8f2a.avro.crc │ │ │ ├── .v1.metadata.json.crc │ │ │ ├── .version-hint.text.crc │ │ │ ├── bb767407-7be5-4a32-9b5e-63a8ed6d8f2a-m0.avro │ │ │ ├── snap-924970080087887963-1-bb767407-7be5-4a32-9b5e-63a8ed6d8f2a.avro │ │ │ ├── v1.metadata.json │ │ │ └── version-hint.text │ └── lineitem_versioned │ │ ├── data │ │ ├── .00000-6-b94b5d8e-1a35-4fde-8b1a-b5c766e3cba4-00001.parquet.crc │ │ ├── .00000-7-8fd3874c-9aca-444c-a2b1-77840d9c3030-00001.parquet.crc │ │ ├── 00000-6-b94b5d8e-1a35-4fde-8b1a-b5c766e3cba4-00001.parquet │ │ └── 00000-7-8fd3874c-9aca-444c-a2b1-77840d9c3030-00001.parquet │ │ └── metadata │ │ ├── .0ee4d240-0ce1-4762-9fcd-3e66602c4df4-m0.avro.crc │ │ ├── .4e566a81-8be3-455d-a275-e116c633931e-m0.avro.crc │ │ ├── .snap-5059858397763322359-1-4e566a81-8be3-455d-a275-e116c633931e.avro.crc │ │ ├── .snap-7891046191617315941-1-0ee4d240-0ce1-4762-9fcd-3e66602c4df4.avro.crc │ │ ├── .v1.metadata.json.crc │ │ ├── .v2.metadata.json.crc │ │ ├── .version-hint.text.crc │ │ ├── 0ee4d240-0ce1-4762-9fcd-3e66602c4df4-m0.avro │ │ ├── 4e566a81-8be3-455d-a275-e116c633931e-m0.avro │ │ ├── snap-5059858397763322359-1-4e566a81-8be3-455d-a275-e116c633931e.avro │ │ ├── snap-7891046191617315941-1-0ee4d240-0ce1-4762-9fcd-3e66602c4df4.avro │ │ ├── v1.metadata.json │ │ ├── v2.metadata.json │ │ └── version-hint.text ├── tables-v2 │ ├── lineitem_partitioned │ │ ├── data │ │ │ ├── l_shipmode=AIR │ │ │ │ ├── .00000-5-ee7de033-60a3-43ac-98bd-eacd7a2d8b31-00001.parquet.crc │ │ │ │ └── 00000-5-ee7de033-60a3-43ac-98bd-eacd7a2d8b31-00001.parquet │ │ │ ├── l_shipmode=FOB │ │ │ │ ├── .00000-5-ee7de033-60a3-43ac-98bd-eacd7a2d8b31-00007.parquet.crc │ │ │ │ └── 00000-5-ee7de033-60a3-43ac-98bd-eacd7a2d8b31-00007.parquet │ │ │ ├── l_shipmode=MAIL │ │ │ │ ├── .00000-5-ee7de033-60a3-43ac-98bd-eacd7a2d8b31-00002.parquet.crc │ │ │ │ └── 00000-5-ee7de033-60a3-43ac-98bd-eacd7a2d8b31-00002.parquet │ │ │ ├── l_shipmode=RAIL │ │ │ │ ├── .00000-5-ee7de033-60a3-43ac-98bd-eacd7a2d8b31-00003.parquet.crc │ │ │ │ └── 00000-5-ee7de033-60a3-43ac-98bd-eacd7a2d8b31-00003.parquet │ │ │ ├── l_shipmode=REG+AIR │ │ │ │ ├── .00000-5-ee7de033-60a3-43ac-98bd-eacd7a2d8b31-00006.parquet.crc │ │ │ │ └── 00000-5-ee7de033-60a3-43ac-98bd-eacd7a2d8b31-00006.parquet │ │ │ ├── l_shipmode=SHIP │ │ │ │ ├── .00000-5-ee7de033-60a3-43ac-98bd-eacd7a2d8b31-00004.parquet.crc │ │ │ │ └── 00000-5-ee7de033-60a3-43ac-98bd-eacd7a2d8b31-00004.parquet │ │ │ └── l_shipmode=TRUCK │ │ │ │ ├── .00000-5-ee7de033-60a3-43ac-98bd-eacd7a2d8b31-00005.parquet.crc │ │ │ │ └── 00000-5-ee7de033-60a3-43ac-98bd-eacd7a2d8b31-00005.parquet │ │ └── metadata │ │ │ ├── .520ee581-12e1-4e5f-8059-8738d531e3ff-m0.avro.crc │ │ │ ├── .snap-4597973029942958420-1-520ee581-12e1-4e5f-8059-8738d531e3ff.avro.crc │ │ │ ├── .v1.metadata.json.crc │ │ │ ├── .version-hint.text.crc │ │ │ ├── 520ee581-12e1-4e5f-8059-8738d531e3ff-m0.avro │ │ │ ├── snap-4597973029942958420-1-520ee581-12e1-4e5f-8059-8738d531e3ff.avro │ │ │ ├── v1.metadata.json │ │ │ └── version-hint.text │ ├── lineitem_simple │ │ ├── data │ │ │ ├── .00000-1-3a276b7e-f8ff-4d24-a026-22621c010f34-00001.parquet.crc │ │ │ └── 00000-1-3a276b7e-f8ff-4d24-a026-22621c010f34-00001.parquet │ │ └── metadata │ │ │ ├── .3cc1cd4c-4ca7-41ba-8dbe-9b7111df1363-m0.avro.crc │ │ │ ├── .snap-7108035762376929897-1-3cc1cd4c-4ca7-41ba-8dbe-9b7111df1363.avro.crc │ │ │ ├── .v1.metadata.json.crc │ │ │ ├── .version-hint.text.crc │ │ │ ├── 3cc1cd4c-4ca7-41ba-8dbe-9b7111df1363-m0.avro │ │ │ ├── snap-7108035762376929897-1-3cc1cd4c-4ca7-41ba-8dbe-9b7111df1363.avro │ │ │ ├── v1.metadata.json │ │ │ └── version-hint.text │ └── lineitem_versioned │ │ ├── data │ │ ├── .00000-6-1f2f0cb8-148f-4b08-bc6d-c938928f2147-00001.parquet.crc │ │ ├── .00000-7-e5c4c121-5e7e-4054-915d-c7fc36c715a3-00001.parquet.crc │ │ ├── 00000-6-1f2f0cb8-148f-4b08-bc6d-c938928f2147-00001.parquet │ │ └── 00000-7-e5c4c121-5e7e-4054-915d-c7fc36c715a3-00001.parquet │ │ └── metadata │ │ ├── .2ac95fc0-5767-4a0a-a986-8575ef5defd0-m0.avro.crc │ │ ├── .a231e3a9-517c-4ce7-9f5e-27c0703f16ad-m0.avro.crc │ │ ├── .snap-2480368519522897709-1-a231e3a9-517c-4ce7-9f5e-27c0703f16ad.avro.crc │ │ ├── .snap-6529358792917324964-1-2ac95fc0-5767-4a0a-a986-8575ef5defd0.avro.crc │ │ ├── .v1.metadata.json.crc │ │ ├── .v2.metadata.json.crc │ │ ├── .version-hint.text.crc │ │ ├── 2ac95fc0-5767-4a0a-a986-8575ef5defd0-m0.avro │ │ ├── a231e3a9-517c-4ce7-9f5e-27c0703f16ad-m0.avro │ │ ├── snap-2480368519522897709-1-a231e3a9-517c-4ce7-9f5e-27c0703f16ad.avro │ │ ├── snap-6529358792917324964-1-2ac95fc0-5767-4a0a-a986-8575ef5defd0.avro │ │ ├── v1.metadata.json │ │ ├── v2.metadata.json │ │ └── version-hint.text ├── tables.py └── wh │ └── default.db │ └── cities │ ├── data │ └── 00000-0-6704a04a-3e2e-415f-b173-b21f4c5b78b7.parquet │ └── metadata │ ├── 00000-46e40e13-1a4e-471f-8c1c-de0d7017f33f.metadata.json │ ├── 00001-278cfebe-cfd4-4475-b30f-1b8ba1ae8eee.metadata.json │ ├── 6704a04a-3e2e-415f-b173-b21f4c5b78b7-m0.avro │ └── snap-8687260678833969554-0-6704a04a-3e2e-415f-b173-b21f4c5b78b7.avro ├── parquet ├── capital_column_names.parquet ├── glob_numbers │ ├── 100.parquet │ ├── 200.parquet │ ├── 300.parquet │ ├── 400.parquet │ ├── 500.parquet │ ├── README.md │ ├── deep │ │ ├── my_favorite_numbers.parquet │ │ ├── nested1 │ │ │ ├── 100.parquet │ │ │ ├── 200.parquet │ │ │ ├── 300.parquet │ │ │ ├── 400.parquet │ │ │ └── 500.parquet │ │ └── nested2 │ │ │ ├── 100.parquet │ │ │ ├── 200.parquet │ │ │ ├── 300.parquet │ │ │ ├── 400.parquet │ │ │ └── 500.parquet │ ├── nested1 │ │ ├── 100.parquet │ │ ├── 200.parquet │ │ ├── 300.parquet │ │ ├── 400.parquet │ │ └── 500.parquet │ └── nested2 │ │ ├── 100.parquet │ │ ├── 200.parquet │ │ ├── 300.parquet │ │ ├── 400.parquet │ │ └── 500.parquet ├── small.parquet └── userdata0.parquet └── text ├── empty.txt ├── glob_simple ├── aaa.txt ├── aab.txt ├── bbb.txt ├── cbb.txt └── ccc.txt └── same_content_different_name ├── 1.txt └── 2.txt /.cargo/config.toml: -------------------------------------------------------------------------------- 1 | # See 2 | [target.wasm32-unknown-unknown] 3 | rustflags = ['--cfg', 'getrandom_backend="wasm_js"'] 4 | -------------------------------------------------------------------------------- /.clang-format: -------------------------------------------------------------------------------- 1 | Language: "Proto" 2 | BasedOnStyle: Google 3 | AlignConsecutiveDeclarations: true 4 | AlignConsecutiveAssignments: true 5 | AlignOperands: true 6 | AlignTrailingComments: true 7 | ColumnLimit: 0 8 | IndentWidth: 4 9 | -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | # Cargo target directories. 2 | /*target 3 | 4 | # Submodules 5 | /submodules 6 | 7 | # Temp dir for slts 8 | /slt_tmp 9 | 10 | # Outputs from cargo flamegraph 11 | flamegraph.svg 12 | 13 | # Python stuff 14 | venv/ 15 | .venv/ 16 | __pycache__ 17 | 18 | # Benchmark stuff 19 | **/benchmarks/data/ 20 | **/.tmp 21 | profile.json 22 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | type: 'Bug' 8 | 9 | --- 10 | 11 | **Describe the bug** 12 | 13 | **To Reproduce** 14 | 15 | 16 | 17 | **Additional context** 18 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Request a feature 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | type: 'Feature' 8 | 9 | --- 10 | 11 | **Describe the feature** 12 | 13 | **Desired UX** 14 | 15 | 16 | 17 | **Additional context** 18 | -------------------------------------------------------------------------------- /.github/workflows/docs.yaml: -------------------------------------------------------------------------------- 1 | name: Docs 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | pull_request: 8 | merge_group: 9 | 10 | concurrency: 11 | group: docs-ci-${{ github.ref }} 12 | cancel-in-progress: true 13 | 14 | jobs: 15 | check-links: 16 | name: Check Links 17 | runs-on: ubuntu-latest 18 | steps: 19 | - name: Checkout 20 | uses: actions/checkout@v4 21 | 22 | - name: Check Links 23 | uses: lycheeverse/lychee-action@v2 24 | with: 25 | args: ./docs README.md 26 | fail: true 27 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "submodules/arrow"] 2 | path = submodules/arrow 3 | url = https://github.com/apache/arrow 4 | [submodule "submodules/parquet-testing"] 5 | path = submodules/parquet-testing 6 | url = https://github.com/apache/parquet-testing 7 | [submodule "submodules/testdata"] 8 | path = submodules/testdata 9 | url = git@github.com:glaredb/testdata 10 | -------------------------------------------------------------------------------- /archive/README.md: -------------------------------------------------------------------------------- 1 | # Archived documents 2 | 3 | Documents written during initial development of the new engine. 4 | 5 | These docs are not up-to-date and are really only for historical interest. 6 | -------------------------------------------------------------------------------- /bench/README.md: -------------------------------------------------------------------------------- 1 | # Benchmarks 2 | -------------------------------------------------------------------------------- /bench/clickbench/partitioned/q00.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT COUNT(*) FROM hits; 3 | -------------------------------------------------------------------------------- /bench/clickbench/partitioned/q01.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT COUNT(*) FROM hits WHERE AdvEngineID <> 0; 3 | -------------------------------------------------------------------------------- /bench/clickbench/partitioned/q02.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT SUM(AdvEngineID), COUNT(*), AVG(ResolutionWidth) FROM hits; 3 | -------------------------------------------------------------------------------- /bench/clickbench/partitioned/q03.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT AVG(UserID) FROM hits; 3 | -------------------------------------------------------------------------------- /bench/clickbench/partitioned/q04.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT COUNT(DISTINCT UserID) FROM hits; 3 | -------------------------------------------------------------------------------- /bench/clickbench/partitioned/q05.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT COUNT(DISTINCT SearchPhrase) FROM hits; 3 | -------------------------------------------------------------------------------- /bench/clickbench/partitioned/q06.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT MIN(EventDate), MAX(EventDate) FROM hits; 3 | -------------------------------------------------------------------------------- /bench/clickbench/partitioned/q07.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT AdvEngineID, COUNT(*) FROM hits WHERE AdvEngineID <> 0 GROUP BY AdvEngineID ORDER BY COUNT(*) DESC; 3 | -------------------------------------------------------------------------------- /bench/clickbench/partitioned/q08.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT RegionID, COUNT(DISTINCT UserID) AS u FROM hits GROUP BY RegionID ORDER BY u DESC LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/partitioned/q09.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT RegionID, SUM(AdvEngineID), COUNT(*) AS c, AVG(ResolutionWidth), COUNT(DISTINCT UserID) FROM hits GROUP BY RegionID ORDER BY c DESC LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/partitioned/q10.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT MobilePhoneModel, COUNT(DISTINCT UserID) AS u FROM hits WHERE MobilePhoneModel <> '' GROUP BY MobilePhoneModel ORDER BY u DESC LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/partitioned/q11.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT MobilePhone, MobilePhoneModel, COUNT(DISTINCT UserID) AS u FROM hits WHERE MobilePhoneModel <> '' GROUP BY MobilePhone, MobilePhoneModel ORDER BY u DESC LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/partitioned/q12.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT SearchPhrase, COUNT(*) AS c FROM hits WHERE SearchPhrase <> '' GROUP BY SearchPhrase ORDER BY c DESC LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/partitioned/q13.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT SearchPhrase, COUNT(DISTINCT UserID) AS u FROM hits WHERE SearchPhrase <> '' GROUP BY SearchPhrase ORDER BY u DESC LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/partitioned/q14.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT SearchEngineID, SearchPhrase, COUNT(*) AS c FROM hits WHERE SearchPhrase <> '' GROUP BY SearchEngineID, SearchPhrase ORDER BY c DESC LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/partitioned/q15.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT UserID, COUNT(*) FROM hits GROUP BY UserID ORDER BY COUNT(*) DESC LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/partitioned/q16.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT UserID, SearchPhrase, COUNT(*) FROM hits GROUP BY UserID, SearchPhrase ORDER BY COUNT(*) DESC LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/partitioned/q17.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT UserID, SearchPhrase, COUNT(*) FROM hits GROUP BY UserID, SearchPhrase LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/partitioned/q18.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT UserID, extract(minute FROM epoch(EventTime)) AS m, SearchPhrase, COUNT(*) FROM hits GROUP BY UserID, m, SearchPhrase ORDER BY COUNT(*) DESC LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/partitioned/q19.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT UserID FROM hits WHERE UserID = 435090932899640449; 3 | -------------------------------------------------------------------------------- /bench/clickbench/partitioned/q20.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT COUNT(*) FROM hits WHERE URL LIKE '%google%'; 3 | -------------------------------------------------------------------------------- /bench/clickbench/partitioned/q21.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT SearchPhrase, MIN(URL), COUNT(*) AS c FROM hits WHERE URL LIKE '%google%' AND SearchPhrase <> '' GROUP BY SearchPhrase ORDER BY c DESC LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/partitioned/q22.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT SearchPhrase, MIN(URL), MIN(Title), COUNT(*) AS c, COUNT(DISTINCT UserID) FROM hits WHERE Title LIKE '%Google%' AND URL NOT LIKE '%.google.%' AND SearchPhrase <> '' GROUP BY SearchPhrase ORDER BY c DESC LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/partitioned/q23.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT * FROM hits WHERE URL LIKE '%google%' ORDER BY EventTime LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/partitioned/q24.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT SearchPhrase FROM hits WHERE SearchPhrase <> '' ORDER BY EventTime LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/partitioned/q25.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT SearchPhrase FROM hits WHERE SearchPhrase <> '' ORDER BY SearchPhrase LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/partitioned/q26.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT SearchPhrase FROM hits WHERE SearchPhrase <> '' ORDER BY EventTime, SearchPhrase LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/partitioned/q27.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT CounterID, AVG(octet_length(URL)) AS l, COUNT(*) AS c FROM hits WHERE URL <> '' GROUP BY CounterID HAVING COUNT(*) > 100000 ORDER BY l DESC LIMIT 25; 3 | -------------------------------------------------------------------------------- /bench/clickbench/partitioned/q28.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT REGEXP_REPLACE(Referer, '^https?://(?:www\.)?([^/]+)/.*$', '\1') AS k, AVG(octet_length(Referer)) AS l, COUNT(*) AS c, MIN(Referer) FROM hits WHERE Referer <> '' GROUP BY k HAVING COUNT(*) > 100000 ORDER BY l DESC LIMIT 25; 3 | -------------------------------------------------------------------------------- /bench/clickbench/partitioned/q30.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT SearchEngineID, ClientIP, COUNT(*) AS c, SUM(IsRefresh), AVG(ResolutionWidth) FROM hits WHERE SearchPhrase <> '' GROUP BY SearchEngineID, ClientIP ORDER BY c DESC LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/partitioned/q31.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT WatchID, ClientIP, COUNT(*) AS c, SUM(IsRefresh), AVG(ResolutionWidth) FROM hits WHERE SearchPhrase <> '' GROUP BY WatchID, ClientIP ORDER BY c DESC LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/partitioned/q32.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT WatchID, ClientIP, COUNT(*) AS c, SUM(IsRefresh), AVG(ResolutionWidth) FROM hits GROUP BY WatchID, ClientIP ORDER BY c DESC LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/partitioned/q33.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT URL, COUNT(*) AS c FROM hits GROUP BY URL ORDER BY c DESC LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/partitioned/q34.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT 1, URL, COUNT(*) AS c FROM hits GROUP BY 1, URL ORDER BY c DESC LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/partitioned/q35.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT ClientIP, ClientIP - 1, ClientIP - 2, ClientIP - 3, COUNT(*) AS c FROM hits GROUP BY ClientIP, ClientIP - 1, ClientIP - 2, ClientIP - 3 ORDER BY c DESC LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/partitioned/q36.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT URL, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND DontCountHits = 0 AND IsRefresh = 0 AND URL <> '' GROUP BY URL ORDER BY PageViews DESC LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/partitioned/q37.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT Title, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND DontCountHits = 0 AND IsRefresh = 0 AND Title <> '' GROUP BY Title ORDER BY PageViews DESC LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/partitioned/q38.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT URL, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND IsRefresh = 0 AND IsLink <> 0 AND IsDownload = 0 GROUP BY URL ORDER BY PageViews DESC LIMIT 10 OFFSET 1000; 3 | -------------------------------------------------------------------------------- /bench/clickbench/partitioned/q39.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT TraficSourceID, SearchEngineID, AdvEngineID, CASE WHEN (SearchEngineID = 0 AND AdvEngineID = 0) THEN Referer ELSE '' END AS Src, URL AS Dst, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND IsRefresh = 0 GROUP BY TraficSourceID, SearchEngineID, AdvEngineID, Src, Dst ORDER BY PageViews DESC LIMIT 10 OFFSET 1000; 3 | -------------------------------------------------------------------------------- /bench/clickbench/partitioned/q40.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT URLHash, EventDate, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND IsRefresh = 0 AND TraficSourceID IN (-1, 6) AND RefererHash = 3594120000172545465 GROUP BY URLHash, EventDate ORDER BY PageViews DESC LIMIT 10 OFFSET 100; 3 | -------------------------------------------------------------------------------- /bench/clickbench/partitioned/q41.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT WindowClientWidth, WindowClientHeight, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND IsRefresh = 0 AND DontCountHits = 0 AND URLHash = 2868770270353813622 GROUP BY WindowClientWidth, WindowClientHeight ORDER BY PageViews DESC LIMIT 10 OFFSET 10000; 3 | -------------------------------------------------------------------------------- /bench/clickbench/partitioned/q42.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT DATE_TRUNC('minute', epoch(EventTime)) AS M, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-14' AND EventDate <= '2013-07-15' AND IsRefresh = 0 AND DontCountHits = 0 GROUP BY DATE_TRUNC('minute', epoch(EventTime)) ORDER BY DATE_TRUNC('minute', epoch(EventTime)) LIMIT 10 OFFSET 1000; 3 | -------------------------------------------------------------------------------- /bench/clickbench/single/q00.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT COUNT(*) FROM hits; 3 | -------------------------------------------------------------------------------- /bench/clickbench/single/q01.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT COUNT(*) FROM hits WHERE AdvEngineID <> 0; 3 | -------------------------------------------------------------------------------- /bench/clickbench/single/q02.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT SUM(AdvEngineID), COUNT(*), AVG(ResolutionWidth) FROM hits; 3 | -------------------------------------------------------------------------------- /bench/clickbench/single/q03.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT AVG(UserID) FROM hits; 3 | -------------------------------------------------------------------------------- /bench/clickbench/single/q04.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT COUNT(DISTINCT UserID) FROM hits; 3 | -------------------------------------------------------------------------------- /bench/clickbench/single/q05.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT COUNT(DISTINCT SearchPhrase) FROM hits; 3 | -------------------------------------------------------------------------------- /bench/clickbench/single/q06.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT MIN(EventDate), MAX(EventDate) FROM hits; 3 | -------------------------------------------------------------------------------- /bench/clickbench/single/q07.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT AdvEngineID, COUNT(*) FROM hits WHERE AdvEngineID <> 0 GROUP BY AdvEngineID ORDER BY COUNT(*) DESC; 3 | -------------------------------------------------------------------------------- /bench/clickbench/single/q08.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT RegionID, COUNT(DISTINCT UserID) AS u FROM hits GROUP BY RegionID ORDER BY u DESC LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/single/q09.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT RegionID, SUM(AdvEngineID), COUNT(*) AS c, AVG(ResolutionWidth), COUNT(DISTINCT UserID) FROM hits GROUP BY RegionID ORDER BY c DESC LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/single/q10.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT MobilePhoneModel, COUNT(DISTINCT UserID) AS u FROM hits WHERE MobilePhoneModel <> '' GROUP BY MobilePhoneModel ORDER BY u DESC LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/single/q11.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT MobilePhone, MobilePhoneModel, COUNT(DISTINCT UserID) AS u FROM hits WHERE MobilePhoneModel <> '' GROUP BY MobilePhone, MobilePhoneModel ORDER BY u DESC LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/single/q12.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT SearchPhrase, COUNT(*) AS c FROM hits WHERE SearchPhrase <> '' GROUP BY SearchPhrase ORDER BY c DESC LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/single/q13.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT SearchPhrase, COUNT(DISTINCT UserID) AS u FROM hits WHERE SearchPhrase <> '' GROUP BY SearchPhrase ORDER BY u DESC LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/single/q14.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT SearchEngineID, SearchPhrase, COUNT(*) AS c FROM hits WHERE SearchPhrase <> '' GROUP BY SearchEngineID, SearchPhrase ORDER BY c DESC LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/single/q15.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT UserID, COUNT(*) FROM hits GROUP BY UserID ORDER BY COUNT(*) DESC LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/single/q16.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT UserID, SearchPhrase, COUNT(*) FROM hits GROUP BY UserID, SearchPhrase ORDER BY COUNT(*) DESC LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/single/q17.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT UserID, SearchPhrase, COUNT(*) FROM hits GROUP BY UserID, SearchPhrase LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/single/q18.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT UserID, extract(minute FROM epoch(EventTime)) AS m, SearchPhrase, COUNT(*) FROM hits GROUP BY UserID, m, SearchPhrase ORDER BY COUNT(*) DESC LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/single/q19.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT UserID FROM hits WHERE UserID = 435090932899640449; 3 | -------------------------------------------------------------------------------- /bench/clickbench/single/q20.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT COUNT(*) FROM hits WHERE URL LIKE '%google%'; 3 | -------------------------------------------------------------------------------- /bench/clickbench/single/q21.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT SearchPhrase, MIN(URL), COUNT(*) AS c FROM hits WHERE URL LIKE '%google%' AND SearchPhrase <> '' GROUP BY SearchPhrase ORDER BY c DESC LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/single/q22.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT SearchPhrase, MIN(URL), MIN(Title), COUNT(*) AS c, COUNT(DISTINCT UserID) FROM hits WHERE Title LIKE '%Google%' AND URL NOT LIKE '%.google.%' AND SearchPhrase <> '' GROUP BY SearchPhrase ORDER BY c DESC LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/single/q23.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT * FROM hits WHERE URL LIKE '%google%' ORDER BY EventTime LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/single/q24.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT SearchPhrase FROM hits WHERE SearchPhrase <> '' ORDER BY EventTime LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/single/q25.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT SearchPhrase FROM hits WHERE SearchPhrase <> '' ORDER BY SearchPhrase LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/single/q26.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT SearchPhrase FROM hits WHERE SearchPhrase <> '' ORDER BY EventTime, SearchPhrase LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/single/q27.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT CounterID, AVG(octet_length(URL)) AS l, COUNT(*) AS c FROM hits WHERE URL <> '' GROUP BY CounterID HAVING COUNT(*) > 100000 ORDER BY l DESC LIMIT 25; 3 | -------------------------------------------------------------------------------- /bench/clickbench/single/q28.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT REGEXP_REPLACE(Referer, '^https?://(?:www\.)?([^/]+)/.*$', '\1') AS k, AVG(octet_length(Referer)) AS l, COUNT(*) AS c, MIN(Referer) FROM hits WHERE Referer <> '' GROUP BY k HAVING COUNT(*) > 100000 ORDER BY l DESC LIMIT 25; 3 | -------------------------------------------------------------------------------- /bench/clickbench/single/q30.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT SearchEngineID, ClientIP, COUNT(*) AS c, SUM(IsRefresh), AVG(ResolutionWidth) FROM hits WHERE SearchPhrase <> '' GROUP BY SearchEngineID, ClientIP ORDER BY c DESC LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/single/q31.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT WatchID, ClientIP, COUNT(*) AS c, SUM(IsRefresh), AVG(ResolutionWidth) FROM hits WHERE SearchPhrase <> '' GROUP BY WatchID, ClientIP ORDER BY c DESC LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/single/q32.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT WatchID, ClientIP, COUNT(*) AS c, SUM(IsRefresh), AVG(ResolutionWidth) FROM hits GROUP BY WatchID, ClientIP ORDER BY c DESC LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/single/q33.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT URL, COUNT(*) AS c FROM hits GROUP BY URL ORDER BY c DESC LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/single/q34.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT 1, URL, COUNT(*) AS c FROM hits GROUP BY 1, URL ORDER BY c DESC LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/single/q35.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT ClientIP, ClientIP - 1, ClientIP - 2, ClientIP - 3, COUNT(*) AS c FROM hits GROUP BY ClientIP, ClientIP - 1, ClientIP - 2, ClientIP - 3 ORDER BY c DESC LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/single/q36.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT URL, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND DontCountHits = 0 AND IsRefresh = 0 AND URL <> '' GROUP BY URL ORDER BY PageViews DESC LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/single/q37.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT Title, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND DontCountHits = 0 AND IsRefresh = 0 AND Title <> '' GROUP BY Title ORDER BY PageViews DESC LIMIT 10; 3 | -------------------------------------------------------------------------------- /bench/clickbench/single/q38.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT URL, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND IsRefresh = 0 AND IsLink <> 0 AND IsDownload = 0 GROUP BY URL ORDER BY PageViews DESC LIMIT 10 OFFSET 1000; 3 | -------------------------------------------------------------------------------- /bench/clickbench/single/q39.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT TraficSourceID, SearchEngineID, AdvEngineID, CASE WHEN (SearchEngineID = 0 AND AdvEngineID = 0) THEN Referer ELSE '' END AS Src, URL AS Dst, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND IsRefresh = 0 GROUP BY TraficSourceID, SearchEngineID, AdvEngineID, Src, Dst ORDER BY PageViews DESC LIMIT 10 OFFSET 1000; 3 | -------------------------------------------------------------------------------- /bench/clickbench/single/q40.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT URLHash, EventDate, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND IsRefresh = 0 AND TraficSourceID IN (-1, 6) AND RefererHash = 3594120000172545465 GROUP BY URLHash, EventDate ORDER BY PageViews DESC LIMIT 10 OFFSET 100; 3 | -------------------------------------------------------------------------------- /bench/clickbench/single/q41.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT WindowClientWidth, WindowClientHeight, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND IsRefresh = 0 AND DontCountHits = 0 AND URLHash = 2868770270353813622 GROUP BY WindowClientWidth, WindowClientHeight ORDER BY PageViews DESC LIMIT 10 OFFSET 10000; 3 | -------------------------------------------------------------------------------- /bench/clickbench/single/q42.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT DATE_TRUNC('minute', epoch(EventTime)) AS M, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-14' AND EventDate <= '2013-07-15' AND IsRefresh = 0 AND DontCountHits = 0 GROUP BY DATE_TRUNC('minute', epoch(EventTime)) ORDER BY DATE_TRUNC('minute', epoch(EventTime)) LIMIT 10 OFFSET 1000; 3 | -------------------------------------------------------------------------------- /bench/micro/aggregates/corr_10M_points.bench: -------------------------------------------------------------------------------- 1 | # Correlation between 10M linear points 2 | 3 | run 4 | SELECT corr(a, b * 5) FROM 5 | generate_series(1, 10000000) t1(a), 6 | generate_series(1, 10000000) t2(b) 7 | WHERE a = b 8 | -------------------------------------------------------------------------------- /bench/micro/aggregates/many_distinct_values.bench: -------------------------------------------------------------------------------- 1 | # Many distinct values in aggregate inputs. 2 | 3 | setup 4 | CREATE TEMP VIEW ints AS SELECT * FROM generate_series(1, 1000000) g(v); 5 | 6 | run 7 | SELECT sum(distinct v), avg(distinct v), count(distinct v) FROM ints; 8 | -------------------------------------------------------------------------------- /bench/micro/aggregates/many_int_groups_1M.bench: -------------------------------------------------------------------------------- 1 | # GROUP BY with many int groups 2 | 3 | setup 4 | CREATE TEMP VIEW v(i1, i2) AS 5 | SELECT * FROM generate_series(1, 4) g1, generate_series(1, 1000000) g2 6 | 7 | run 8 | SELECT sum(i1) FROM v GROUP BY i2; 9 | -------------------------------------------------------------------------------- /bench/micro/aggregates/many_med_string_groups_1M.bench: -------------------------------------------------------------------------------- 1 | # GROUP BY with many string groups 2 | 3 | setup 4 | CREATE TEMP VIEW v(ints, strings) AS 5 | SELECT a, repeat(b::string, 100) 6 | FROM generate_series(1, 4) g1(a), generate_series(1, 1000000) g2(b) 7 | 8 | run 9 | SELECT sum(ints) FROM v GROUP BY strings; 10 | -------------------------------------------------------------------------------- /bench/micro/aggregates/many_small_string_groups_1M.bench: -------------------------------------------------------------------------------- 1 | # GROUP BY with many string groups 2 | 3 | setup 4 | CREATE TEMP VIEW v(ints, strings) AS 5 | SELECT a, b::string FROM generate_series(1, 4) g1(a), generate_series(1, 1000000) g2(b) 6 | 7 | run 8 | SELECT sum(ints) FROM v GROUP BY strings; 9 | -------------------------------------------------------------------------------- /bench/micro/functions/trim_large_inputs_small_patterns.bench: -------------------------------------------------------------------------------- 1 | # trim on large input strings with small patterns to trim on the ends. 2 | 3 | setup 4 | CREATE TEMP TABLE strings AS 5 | SELECT repeat('xy', b) || repeat(a::string, a % 100) || repeat('z', b) AS s 6 | FROM generate_series(1, 100000) g1(a), generate_series(1, 3) g2(b); 7 | 8 | run 9 | SELECT s, trim(s, 'xyz') FROM strings; 10 | -------------------------------------------------------------------------------- /bench/micro/limit/limit_early_stop.bench: -------------------------------------------------------------------------------- 1 | # Ensure we stop early 2 | 3 | run 4 | SELECT * FROM generate_series(1, 100000000000) LIMIT 30; 5 | -------------------------------------------------------------------------------- /bench/micro/min_max_generate_series_10M.bench: -------------------------------------------------------------------------------- 1 | # min/max from output of 10M ints. 2 | 3 | setup 4 | CREATE TEMP VIEW ints AS SELECT * FROM generate_series(1, 10000000) g(a); 5 | 6 | run 7 | SELECT min(a), max(a) FROM ints; 8 | -------------------------------------------------------------------------------- /bench/micro/select_1.bench: -------------------------------------------------------------------------------- 1 | # Testing the bench stuff. 2 | 3 | run 4 | SELECT 1 5 | -------------------------------------------------------------------------------- /bench/tpch/1/q04.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT 3 | o_orderpriority, 4 | count(*) AS order_count 5 | FROM 6 | orders 7 | WHERE 8 | o_orderdate >= CAST('1993-07-01' AS date) 9 | AND o_orderdate < CAST('1993-10-01' AS date) 10 | AND EXISTS ( 11 | SELECT 12 | * 13 | FROM 14 | lineitem 15 | WHERE 16 | l_orderkey = o_orderkey 17 | AND l_commitdate < l_receiptdate) 18 | GROUP BY 19 | o_orderpriority 20 | ORDER BY 21 | o_orderpriority; 22 | -------------------------------------------------------------------------------- /bench/tpch/1/q06.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT 3 | sum(l_extendedprice * l_discount) AS revenue 4 | FROM 5 | lineitem 6 | WHERE 7 | l_shipdate >= CAST('1994-01-01' AS date) 8 | AND l_shipdate < CAST('1995-01-01' AS date) 9 | AND l_discount BETWEEN 0.05 10 | AND 0.07 11 | AND l_quantity < 24; 12 | -------------------------------------------------------------------------------- /bench/tpch/1/q13.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT 3 | c_count, 4 | count(*) AS custdist 5 | FROM ( 6 | SELECT 7 | c_custkey, 8 | count(o_orderkey) 9 | FROM 10 | customer 11 | LEFT OUTER JOIN 12 | orders 13 | ON c_custkey = o_custkey AND o_comment NOT LIKE '%special%requests%' 14 | GROUP BY c_custkey 15 | ) AS c_orders (c_custkey, c_count) 16 | GROUP BY 17 | c_count 18 | ORDER BY 19 | custdist DESC, 20 | c_count DESC; 21 | -------------------------------------------------------------------------------- /bench/tpch/1/q14.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT 3 | 100.00 * sum( 4 | CASE WHEN p_type LIKE 'PROMO%' THEN 5 | l_extendedprice * (1 - l_discount) 6 | ELSE 7 | 0 8 | END) / sum(l_extendedprice * (1 - l_discount)) AS promo_revenue 9 | FROM 10 | part, 11 | lineitem 12 | WHERE 13 | l_partkey = p_partkey 14 | AND l_shipdate >= date '1995-09-01' 15 | AND l_shipdate < CAST('1995-10-01' AS date); 16 | -------------------------------------------------------------------------------- /bench/tpch/1/q17.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT 3 | sum(l_extendedprice) / 7.0 AS avg_yearly 4 | FROM 5 | lineitem, 6 | part 7 | WHERE 8 | p_partkey = l_partkey 9 | AND p_brand = 'Brand#23' 10 | AND p_container = 'MED BOX' 11 | AND l_quantity < ( 12 | SELECT 13 | 0.2 * avg(l_quantity) 14 | FROM 15 | lineitem 16 | WHERE 17 | l_partkey = p_partkey); 18 | -------------------------------------------------------------------------------- /bench/tpch/10/q04.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT 3 | o_orderpriority, 4 | count(*) AS order_count 5 | FROM 6 | orders 7 | WHERE 8 | o_orderdate >= CAST('1993-07-01' AS date) 9 | AND o_orderdate < CAST('1993-10-01' AS date) 10 | AND EXISTS ( 11 | SELECT 12 | * 13 | FROM 14 | lineitem 15 | WHERE 16 | l_orderkey = o_orderkey 17 | AND l_commitdate < l_receiptdate) 18 | GROUP BY 19 | o_orderpriority 20 | ORDER BY 21 | o_orderpriority; 22 | -------------------------------------------------------------------------------- /bench/tpch/10/q06.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT 3 | sum(l_extendedprice * l_discount) AS revenue 4 | FROM 5 | lineitem 6 | WHERE 7 | l_shipdate >= CAST('1994-01-01' AS date) 8 | AND l_shipdate < CAST('1995-01-01' AS date) 9 | AND l_discount BETWEEN 0.05 10 | AND 0.07 11 | AND l_quantity < 24; 12 | -------------------------------------------------------------------------------- /bench/tpch/10/q13.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT 3 | c_count, 4 | count(*) AS custdist 5 | FROM ( 6 | SELECT 7 | c_custkey, 8 | count(o_orderkey) 9 | FROM 10 | customer 11 | LEFT OUTER JOIN 12 | orders 13 | ON c_custkey = o_custkey AND o_comment NOT LIKE '%special%requests%' 14 | GROUP BY c_custkey 15 | ) AS c_orders (c_custkey, c_count) 16 | GROUP BY 17 | c_count 18 | ORDER BY 19 | custdist DESC, 20 | c_count DESC; 21 | -------------------------------------------------------------------------------- /bench/tpch/10/q14.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT 3 | 100.00 * sum( 4 | CASE WHEN p_type LIKE 'PROMO%' THEN 5 | l_extendedprice * (1 - l_discount) 6 | ELSE 7 | 0 8 | END) / sum(l_extendedprice * (1 - l_discount)) AS promo_revenue 9 | FROM 10 | part, 11 | lineitem 12 | WHERE 13 | l_partkey = p_partkey 14 | AND l_shipdate >= date '1995-09-01' 15 | AND l_shipdate < CAST('1995-10-01' AS date); 16 | -------------------------------------------------------------------------------- /bench/tpch/10/q17.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT 3 | sum(l_extendedprice) / 7.0 AS avg_yearly 4 | FROM 5 | lineitem, 6 | part 7 | WHERE 8 | p_partkey = l_partkey 9 | AND p_brand = 'Brand#23' 10 | AND p_container = 'MED BOX' 11 | AND l_quantity < ( 12 | SELECT 13 | 0.2 * avg(l_quantity) 14 | FROM 15 | lineitem 16 | WHERE 17 | l_partkey = p_partkey); 18 | -------------------------------------------------------------------------------- /bench/tpch/100/q04.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT 3 | o_orderpriority, 4 | count(*) AS order_count 5 | FROM 6 | orders 7 | WHERE 8 | o_orderdate >= CAST('1993-07-01' AS date) 9 | AND o_orderdate < CAST('1993-10-01' AS date) 10 | AND EXISTS ( 11 | SELECT 12 | * 13 | FROM 14 | lineitem 15 | WHERE 16 | l_orderkey = o_orderkey 17 | AND l_commitdate < l_receiptdate) 18 | GROUP BY 19 | o_orderpriority 20 | ORDER BY 21 | o_orderpriority; 22 | -------------------------------------------------------------------------------- /bench/tpch/100/q06.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT 3 | sum(l_extendedprice * l_discount) AS revenue 4 | FROM 5 | lineitem 6 | WHERE 7 | l_shipdate >= CAST('1994-01-01' AS date) 8 | AND l_shipdate < CAST('1995-01-01' AS date) 9 | AND l_discount BETWEEN 0.05 10 | AND 0.07 11 | AND l_quantity < 24; 12 | -------------------------------------------------------------------------------- /bench/tpch/100/q13.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT 3 | c_count, 4 | count(*) AS custdist 5 | FROM ( 6 | SELECT 7 | c_custkey, 8 | count(o_orderkey) 9 | FROM 10 | customer 11 | LEFT OUTER JOIN 12 | orders 13 | ON c_custkey = o_custkey AND o_comment NOT LIKE '%special%requests%' 14 | GROUP BY c_custkey 15 | ) AS c_orders (c_custkey, c_count) 16 | GROUP BY 17 | c_count 18 | ORDER BY 19 | custdist DESC, 20 | c_count DESC; 21 | -------------------------------------------------------------------------------- /bench/tpch/100/q14.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT 3 | 100.00 * sum( 4 | CASE WHEN p_type LIKE 'PROMO%' THEN 5 | l_extendedprice * (1 - l_discount) 6 | ELSE 7 | 0 8 | END) / sum(l_extendedprice * (1 - l_discount)) AS promo_revenue 9 | FROM 10 | part, 11 | lineitem 12 | WHERE 13 | l_partkey = p_partkey 14 | AND l_shipdate >= date '1995-09-01' 15 | AND l_shipdate < CAST('1995-10-01' AS date); 16 | -------------------------------------------------------------------------------- /bench/tpch/100/q17.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT 3 | sum(l_extendedprice) / 7.0 AS avg_yearly 4 | FROM 5 | lineitem, 6 | part 7 | WHERE 8 | p_partkey = l_partkey 9 | AND p_brand = 'Brand#23' 10 | AND p_container = 'MED BOX' 11 | AND l_quantity < ( 12 | SELECT 13 | 0.2 * avg(l_quantity) 14 | FROM 15 | lineitem 16 | WHERE 17 | l_partkey = p_partkey); 18 | -------------------------------------------------------------------------------- /bench/tpch/50/q04.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT 3 | o_orderpriority, 4 | count(*) AS order_count 5 | FROM 6 | orders 7 | WHERE 8 | o_orderdate >= CAST('1993-07-01' AS date) 9 | AND o_orderdate < CAST('1993-10-01' AS date) 10 | AND EXISTS ( 11 | SELECT 12 | * 13 | FROM 14 | lineitem 15 | WHERE 16 | l_orderkey = o_orderkey 17 | AND l_commitdate < l_receiptdate) 18 | GROUP BY 19 | o_orderpriority 20 | ORDER BY 21 | o_orderpriority; 22 | -------------------------------------------------------------------------------- /bench/tpch/50/q06.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT 3 | sum(l_extendedprice * l_discount) AS revenue 4 | FROM 5 | lineitem 6 | WHERE 7 | l_shipdate >= CAST('1994-01-01' AS date) 8 | AND l_shipdate < CAST('1995-01-01' AS date) 9 | AND l_discount BETWEEN 0.05 10 | AND 0.07 11 | AND l_quantity < 24; 12 | -------------------------------------------------------------------------------- /bench/tpch/50/q13.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT 3 | c_count, 4 | count(*) AS custdist 5 | FROM ( 6 | SELECT 7 | c_custkey, 8 | count(o_orderkey) 9 | FROM 10 | customer 11 | LEFT OUTER JOIN 12 | orders 13 | ON c_custkey = o_custkey AND o_comment NOT LIKE '%special%requests%' 14 | GROUP BY c_custkey 15 | ) AS c_orders (c_custkey, c_count) 16 | GROUP BY 17 | c_count 18 | ORDER BY 19 | custdist DESC, 20 | c_count DESC; 21 | -------------------------------------------------------------------------------- /bench/tpch/50/q14.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT 3 | 100.00 * sum( 4 | CASE WHEN p_type LIKE 'PROMO%' THEN 5 | l_extendedprice * (1 - l_discount) 6 | ELSE 7 | 0 8 | END) / sum(l_extendedprice * (1 - l_discount)) AS promo_revenue 9 | FROM 10 | part, 11 | lineitem 12 | WHERE 13 | l_partkey = p_partkey 14 | AND l_shipdate >= date '1995-09-01' 15 | AND l_shipdate < CAST('1995-10-01' AS date); 16 | -------------------------------------------------------------------------------- /bench/tpch/50/q17.bench: -------------------------------------------------------------------------------- 1 | run 2 | SELECT 3 | sum(l_extendedprice) / 7.0 AS avg_yearly 4 | FROM 5 | lineitem, 6 | part 7 | WHERE 8 | p_partkey = l_partkey 9 | AND p_brand = 'Brand#23' 10 | AND p_container = 'MED BOX' 11 | AND l_quantity < ( 12 | SELECT 13 | 0.2 * avg(l_quantity) 14 | FROM 15 | lineitem 16 | WHERE 17 | l_partkey = p_partkey); 18 | -------------------------------------------------------------------------------- /crates/ext_csv/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "ext_csv" 3 | version.workspace = true 4 | edition.workspace = true 5 | 6 | [lints] 7 | workspace = true 8 | 9 | [dependencies] 10 | glaredb_proto = { path = '../glaredb_proto' } 11 | glaredb_core = { path = '../glaredb_core' } 12 | glaredb_error = { path = '../glaredb_error' } 13 | futures = { workspace = true } 14 | tracing = { workspace = true } 15 | regex = { workspace = true } 16 | url = { workspace = true } 17 | bytes = { workspace = true } 18 | csv-core = "0.1.12" 19 | csv = "1.3.0" 20 | -------------------------------------------------------------------------------- /crates/ext_csv/src/functions/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod read_csv; 2 | -------------------------------------------------------------------------------- /crates/ext_csv/src/lib.rs: -------------------------------------------------------------------------------- 1 | pub mod dialect; 2 | pub mod extension; 3 | pub mod functions; 4 | pub mod reader; 5 | pub mod schema; 6 | pub mod writer; 7 | 8 | mod decoder; 9 | -------------------------------------------------------------------------------- /crates/ext_default/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "ext_default" 3 | version.workspace = true 4 | edition.workspace = true 5 | 6 | [dependencies] 7 | glaredb_error = { path = '../glaredb_error' } 8 | glaredb_core = { path = '../glaredb_core' } 9 | 10 | ext_spark = { path = '../ext_spark' } 11 | ext_csv = { path = '../ext_csv' } 12 | ext_parquet = { path = '../ext_parquet' } 13 | ext_tpch_gen = { path = '../ext_tpch_gen' } 14 | ext_iceberg = { path = '../ext_iceberg' } 15 | 16 | [lints] 17 | workspace = true 18 | -------------------------------------------------------------------------------- /crates/ext_delta/src/protocol/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod action; 2 | pub mod schema; 3 | pub mod snapshot; 4 | -------------------------------------------------------------------------------- /crates/ext_iceberg/src/catalog/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod client; 2 | pub mod rest; 3 | pub mod spec; 4 | -------------------------------------------------------------------------------- /crates/ext_iceberg/src/functions/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod metadata; 2 | -------------------------------------------------------------------------------- /crates/ext_iceberg/src/lib.rs: -------------------------------------------------------------------------------- 1 | pub mod catalog; 2 | pub mod extension; 3 | pub mod functions; 4 | pub mod table; 5 | -------------------------------------------------------------------------------- /crates/ext_iceberg/src/table/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod spec; 2 | pub mod state; 3 | -------------------------------------------------------------------------------- /crates/ext_parquet/README.md: -------------------------------------------------------------------------------- 1 | # Parquet extension for GlareDB 2 | 3 | Forked from upstream https://github.com/apache/arrow-rs at commit 087f34b70e 4 | -------------------------------------------------------------------------------- /crates/ext_parquet/src/functions/mod.rs: -------------------------------------------------------------------------------- 1 | #![allow(clippy::new_without_default)] 2 | 3 | pub mod metadata; 4 | pub mod scan; 5 | -------------------------------------------------------------------------------- /crates/ext_parquet/src/testutil/mod.rs: -------------------------------------------------------------------------------- 1 | //! Test utilities. 2 | 3 | pub mod file_util; 4 | pub mod miri; 5 | pub mod rand_gen; 6 | -------------------------------------------------------------------------------- /crates/ext_spark/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "ext_spark" 3 | version.workspace = true 4 | edition.workspace = true 5 | 6 | [lints] 7 | workspace = true 8 | 9 | [dependencies] 10 | glaredb_core = { path = '../glaredb_core' } 11 | glaredb_error = { path = '../glaredb_error' } 12 | 13 | -------------------------------------------------------------------------------- /crates/ext_spark/src/functions/mod.rs: -------------------------------------------------------------------------------- 1 | mod csc; 2 | pub use csc::*; 3 | 4 | mod expm1; 5 | pub use expm1::*; 6 | -------------------------------------------------------------------------------- /crates/ext_tpch_gen/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "ext_tpch_gen" 3 | version.workspace = true 4 | edition.workspace = true 5 | 6 | [lints] 7 | workspace = true 8 | 9 | [dependencies] 10 | glaredb_core = { path = '../glaredb_core' } 11 | glaredb_error = { path = '../glaredb_error' } 12 | tpchgen = "1.1.0" 13 | -------------------------------------------------------------------------------- /crates/glaredb_core/src/arrays/bitmap/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod view; 2 | -------------------------------------------------------------------------------- /crates/glaredb_core/src/arrays/collection/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod concurrent; 2 | 3 | pub(crate) mod equal; 4 | 5 | mod chunk; 6 | mod segment; 7 | -------------------------------------------------------------------------------- /crates/glaredb_core/src/arrays/compute/mod.rs: -------------------------------------------------------------------------------- 1 | //! Compute ops. 2 | pub mod copy; 3 | pub mod date; 4 | pub mod hash; 5 | pub mod list_extract; 6 | pub mod make_list; 7 | pub mod set_list_value; 8 | -------------------------------------------------------------------------------- /crates/glaredb_core/src/arrays/format/pretty/mod.rs: -------------------------------------------------------------------------------- 1 | //! Pretty batch formatting. 2 | 3 | pub mod components; 4 | pub mod table; 5 | 6 | mod display; 7 | -------------------------------------------------------------------------------- /crates/glaredb_core/src/arrays/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod array; 2 | pub mod batch; 3 | pub mod bitmap; 4 | pub mod cache; 5 | pub mod collection; 6 | pub mod compute; 7 | pub mod datatype; 8 | pub mod executor; 9 | pub mod field; 10 | pub mod format; 11 | pub mod row; 12 | pub mod scalar; 13 | pub mod sort; 14 | pub mod string; 15 | -------------------------------------------------------------------------------- /crates/glaredb_core/src/arrays/row/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod aggregate_collection; 2 | pub mod aggregate_layout; 3 | pub mod block_scan; 4 | pub mod row_collection; 5 | pub mod row_layout; 6 | pub mod row_matcher; 7 | pub mod row_scan; 8 | 9 | pub(crate) mod block; 10 | pub(crate) mod row_blocks; 11 | -------------------------------------------------------------------------------- /crates/glaredb_core/src/arrays/scalar/timestamp.rs: -------------------------------------------------------------------------------- 1 | use serde::{Deserialize, Serialize}; 2 | 3 | use crate::arrays::datatype::TimeUnit; 4 | 5 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Hash)] 6 | pub struct TimestampScalar { 7 | pub unit: TimeUnit, 8 | pub value: i64, 9 | } 10 | -------------------------------------------------------------------------------- /crates/glaredb_core/src/arrays/sort/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod binary_merge; 2 | pub mod partial_sort; 3 | pub mod sort_layout; 4 | pub mod sorted_segment; 5 | 6 | pub(crate) mod heap_compare; 7 | pub(crate) mod key_encode; 8 | pub(crate) mod sorted_block; 9 | -------------------------------------------------------------------------------- /crates/glaredb_core/src/buffer/mod.rs: -------------------------------------------------------------------------------- 1 | //! Low-level buffers tracked by a buffer manager. 2 | 3 | pub mod buffer_manager; 4 | pub mod db_vec; 5 | -------------------------------------------------------------------------------- /crates/glaredb_core/src/config/mod.rs: -------------------------------------------------------------------------------- 1 | //! Runtime configuration. 2 | pub mod execution; 3 | pub mod session; 4 | -------------------------------------------------------------------------------- /crates/glaredb_core/src/execution/mod.rs: -------------------------------------------------------------------------------- 1 | //! Implementation of the "query graph" design. 2 | pub mod operators; 3 | pub mod planner; 4 | 5 | pub mod partition_pipeline; 6 | pub mod pipeline; 7 | 8 | mod execution_stack; 9 | -------------------------------------------------------------------------------- /crates/glaredb_core/src/execution/operators/catalog/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod create_schema; 2 | pub mod create_table; 3 | pub mod create_table_as; 4 | pub mod create_view; 5 | pub mod drop; 6 | pub mod insert; 7 | -------------------------------------------------------------------------------- /crates/glaredb_core/src/execution/operators/hash_aggregate/hash_table/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod base; 2 | pub mod partitioned; 3 | 4 | mod directory; 5 | -------------------------------------------------------------------------------- /crates/glaredb_core/src/execution/operators/results/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod materialized; 2 | pub mod streaming; 3 | -------------------------------------------------------------------------------- /crates/glaredb_core/src/execution/operators/sort/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod global_sort; 2 | 3 | mod merge_queue; 4 | -------------------------------------------------------------------------------- /crates/glaredb_core/src/execution/operators/util/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod delayed_count; 2 | pub mod partition_wakers; 3 | -------------------------------------------------------------------------------- /crates/glaredb_core/src/execution/planner/plan_unnest.rs: -------------------------------------------------------------------------------- 1 | use glaredb_error::{Result, not_implemented}; 2 | 3 | use super::OperatorPlanState; 4 | use crate::execution::operators::PlannedOperatorWithChildren; 5 | use crate::logical::logical_unnest::LogicalUnnest; 6 | use crate::logical::operator::Node; 7 | 8 | impl OperatorPlanState<'_> { 9 | pub fn plan_unnest( 10 | &mut self, 11 | _unnest: Node, 12 | ) -> Result { 13 | not_implemented!("plan unnest") 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /crates/glaredb_core/src/explain/mod.rs: -------------------------------------------------------------------------------- 1 | //! Utilities for generating EXPLAIN output. 2 | pub mod context_display; 3 | pub mod explainable; 4 | pub mod formatter; 5 | pub mod node; 6 | -------------------------------------------------------------------------------- /crates/glaredb_core/src/functions/scalar/builtin/arith/mod.rs: -------------------------------------------------------------------------------- 1 | mod add; 2 | pub use add::*; 3 | 4 | mod sub; 5 | pub use sub::*; 6 | 7 | mod div; 8 | pub use div::*; 9 | 10 | mod mul; 11 | pub use mul::*; 12 | 13 | mod rem; 14 | pub use rem::*; 15 | 16 | mod decimal_arith; 17 | mod decimal_sigs; 18 | -------------------------------------------------------------------------------- /crates/glaredb_core/src/functions/scalar/builtin/binary/mod.rs: -------------------------------------------------------------------------------- 1 | mod bitand; 2 | mod bitnot; 3 | mod bitor; 4 | mod hex; 5 | mod shl; 6 | mod shr; 7 | mod xor; 8 | 9 | pub use bitand::*; 10 | pub use bitnot::*; 11 | pub use bitor::*; 12 | pub use hex::*; 13 | pub use shl::*; 14 | pub use shr::*; 15 | pub use xor::*; 16 | -------------------------------------------------------------------------------- /crates/glaredb_core/src/functions/scalar/builtin/datetime/mod.rs: -------------------------------------------------------------------------------- 1 | mod date_part; 2 | pub use date_part::*; 3 | 4 | mod epoch; 5 | pub use epoch::*; 6 | 7 | mod date_trunc; 8 | pub use date_trunc::*; 9 | -------------------------------------------------------------------------------- /crates/glaredb_core/src/functions/scalar/builtin/list/mod.rs: -------------------------------------------------------------------------------- 1 | mod list_value; 2 | pub use list_value::*; 3 | 4 | mod list_extract; 5 | pub use list_extract::*; 6 | -------------------------------------------------------------------------------- /crates/glaredb_core/src/functions/scalar/builtin/similarity/mod.rs: -------------------------------------------------------------------------------- 1 | mod l2_distance; 2 | pub use l2_distance::*; 3 | -------------------------------------------------------------------------------- /crates/glaredb_core/src/lib.rs: -------------------------------------------------------------------------------- 1 | pub mod arrays; 2 | pub mod buffer; 3 | pub mod catalog; 4 | pub mod config; 5 | pub mod engine; 6 | pub mod execution; 7 | pub mod explain; 8 | pub mod expr; 9 | pub mod extension; 10 | pub mod functions; 11 | pub mod logical; 12 | pub mod optimizer; 13 | pub mod runtime; 14 | pub mod shell; 15 | pub mod statistics; 16 | pub mod storage; 17 | 18 | pub mod util; 19 | 20 | pub mod testutil; 21 | -------------------------------------------------------------------------------- /crates/glaredb_core/src/logical/binder/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod bind_attach; 2 | pub mod bind_context; 3 | pub mod bind_copy; 4 | pub mod bind_create_schema; 5 | pub mod bind_create_table; 6 | pub mod bind_create_view; 7 | pub mod bind_describe; 8 | pub mod bind_discard; 9 | pub mod bind_drop; 10 | pub mod bind_explain; 11 | pub mod bind_insert; 12 | pub mod bind_query; 13 | pub mod bind_set; 14 | pub mod bind_statement; 15 | pub mod column_binder; 16 | pub mod constant_binder; 17 | pub mod expr_binder; 18 | pub mod ident; 19 | pub mod table_list; 20 | -------------------------------------------------------------------------------- /crates/glaredb_core/src/logical/resolver/resolved_cte.rs: -------------------------------------------------------------------------------- 1 | // TODO: This might need some scoping information. 2 | #[derive(Debug, Clone, PartialEq)] 3 | pub struct ResolvedCte { 4 | /// Normalized name for the CTE. 5 | pub name: String, 6 | /// Depth this CTE was found at. 7 | pub depth: usize, 8 | } 9 | 10 | // TODO: Proto conv 11 | -------------------------------------------------------------------------------- /crates/glaredb_core/src/runtime/handle.rs: -------------------------------------------------------------------------------- 1 | use std::fmt::Debug; 2 | 3 | use glaredb_error::Result; 4 | 5 | use super::profile_buffer::ProfileBuffer; 6 | use crate::catalog::profile::ExecutionProfile; 7 | -------------------------------------------------------------------------------- /crates/glaredb_core/src/runtime/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod filesystem; 2 | pub mod pipeline; 3 | pub mod profile_buffer; 4 | pub mod system; 5 | pub mod time; 6 | -------------------------------------------------------------------------------- /crates/glaredb_core/src/runtime/system.rs: -------------------------------------------------------------------------------- 1 | use std::fmt::Debug; 2 | 3 | use super::filesystem::dispatch::FileSystemDispatch; 4 | use super::time::RuntimeInstant; 5 | 6 | /// Provides sytem dependencies. 7 | // TODO: Do I want Clone? 8 | // TODO: Should this be global to the engine or per-session? 9 | pub trait SystemRuntime: Debug + Sync + Send + Clone + 'static { 10 | /// The time instant type to use. 11 | type Instant: RuntimeInstant; 12 | 13 | /// Get a reference the filesystem dispatch. 14 | fn filesystem_dispatch(&self) -> &FileSystemDispatch; 15 | } 16 | -------------------------------------------------------------------------------- /crates/glaredb_core/src/statistics/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod hll; 2 | pub mod tdigest; 3 | pub mod value; 4 | 5 | pub mod assumptions { 6 | //! Assumptions when we don't have complete statistics available to us. 7 | 8 | /// Selectivity with '='. 9 | pub const EQUALITY_SELECTIVITY: f64 = 0.1; 10 | /// Selectivity with other comparison operators like '<', '>', '!=' etc. 11 | pub const INEQUALITY_SELECTIVITY: f64 = 0.3; 12 | /// Default selectivity to use if neither of the above apply. 13 | pub const DEFAULT_SELECTIVITY: f64 = 0.2; 14 | } 15 | -------------------------------------------------------------------------------- /crates/glaredb_core/src/storage/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod datatable; 2 | pub mod projections; 3 | pub mod scan_filter; 4 | pub mod storage_manager; 5 | -------------------------------------------------------------------------------- /crates/glaredb_core/src/util/fmt/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod displayable; 2 | -------------------------------------------------------------------------------- /crates/glaredb_core/src/util/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod cell; 2 | pub mod fmt; 3 | pub mod future; 4 | pub mod iter; 5 | pub mod marker; 6 | pub mod task; 7 | -------------------------------------------------------------------------------- /crates/glaredb_error/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "glaredb_error" 3 | version = { workspace = true } 4 | edition = { workspace = true } 5 | 6 | [lints] 7 | workspace = true 8 | 9 | [dependencies] 10 | -------------------------------------------------------------------------------- /crates/glaredb_http/src/gcs/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod credentials; 2 | pub mod directory; 3 | pub mod filesystem; 4 | 5 | mod list; 6 | -------------------------------------------------------------------------------- /crates/glaredb_http/src/lib.rs: -------------------------------------------------------------------------------- 1 | pub mod client; 2 | pub mod filesystem; 3 | pub mod gcs; 4 | pub mod handle; 5 | pub mod s3; 6 | 7 | mod list; 8 | 9 | // Re-export some types to use with the http client. 10 | pub use reqwest::header::HeaderMap; 11 | pub use reqwest::{Method, Request, StatusCode}; 12 | -------------------------------------------------------------------------------- /crates/glaredb_http/src/s3/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod credentials; 2 | pub mod directory; 3 | pub mod filesystem; 4 | 5 | mod hex; 6 | mod list; 7 | -------------------------------------------------------------------------------- /crates/glaredb_parser/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "glaredb_parser" 3 | version = { workspace = true } 4 | edition = { workspace = true } 5 | 6 | [lints] 7 | workspace = true 8 | 9 | [dependencies] 10 | glaredb_error = { path = '../glaredb_error' } 11 | glaredb_proto = { path = '../glaredb_proto' } 12 | unicase = "2.8.1" 13 | tracing = { workspace = true } 14 | serde = { workspace = true } 15 | 16 | [dev-dependencies] 17 | pretty_assertions = "1.4.0" 18 | -------------------------------------------------------------------------------- /crates/glaredb_parser/src/lib.rs: -------------------------------------------------------------------------------- 1 | //! SQL parser. Heavily inspired by sqlparser-rs. 2 | pub mod ast; 3 | pub mod keywords; 4 | pub mod meta; 5 | pub mod parser; 6 | pub mod statement; 7 | pub mod tokens; 8 | -------------------------------------------------------------------------------- /crates/glaredb_proto/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "glaredb_proto" 3 | version.workspace = true 4 | edition.workspace = true 5 | 6 | [lints] 7 | workspace = true 8 | 9 | [dependencies] 10 | glaredb_error = { path = "../glaredb_error" } 11 | prost = "0.13" 12 | uuid = { workspace = true } 13 | 14 | [build-dependencies] 15 | prost-build = "0.13" 16 | -------------------------------------------------------------------------------- /crates/glaredb_proto/proto/array.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto3"; 2 | 3 | package rayexec.array; 4 | 5 | // IPC-encoded batches using the stream format. 6 | message IpcStreamBatch { 7 | bytes ipc = 1; 8 | } 9 | -------------------------------------------------------------------------------- /crates/glaredb_proto/proto/foreign.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto3"; 2 | 3 | package rayexec.foreign; 4 | 5 | message Uuid { 6 | bytes value = 1; 7 | } 8 | -------------------------------------------------------------------------------- /crates/glaredb_python/README.md: -------------------------------------------------------------------------------- 1 | # GlareDB Python bindings 2 | 3 | Documentation: 4 | -------------------------------------------------------------------------------- /crates/glaredb_python/src/lib.rs: -------------------------------------------------------------------------------- 1 | mod errors; 2 | mod event_loop; 3 | mod print; 4 | mod session; 5 | 6 | use pyo3::types::{PyModule, PyModuleMethods}; 7 | use pyo3::{Bound, PyResult, pymodule, wrap_pyfunction}; 8 | 9 | /// Defines the root python module. 10 | #[pymodule(name = "glaredb")] 11 | fn binding_module(m: &Bound<'_, PyModule>) -> PyResult<()> { 12 | m.add_function(wrap_pyfunction!(session::connect, m)?) 13 | } 14 | -------------------------------------------------------------------------------- /crates/glaredb_rt_native/src/lib.rs: -------------------------------------------------------------------------------- 1 | //! Implementation of the execution runtime using native threads and thread 2 | //! pools. 3 | pub mod runtime; 4 | pub mod threaded; 5 | 6 | mod filesystem; 7 | mod http; 8 | mod time; 9 | -------------------------------------------------------------------------------- /crates/glaredb_rt_native/src/time.rs: -------------------------------------------------------------------------------- 1 | use glaredb_core::runtime::time::RuntimeInstant; 2 | 3 | /// Instant implementation that wraps std Instant. 4 | #[derive(Debug, Clone, PartialEq, Eq)] 5 | pub struct NativeInstant(std::time::Instant); 6 | 7 | impl RuntimeInstant for NativeInstant { 8 | fn now() -> Self { 9 | NativeInstant(std::time::Instant::now()) 10 | } 11 | 12 | fn duration_since(&self, earlier: Self) -> std::time::Duration { 13 | self.0.saturating_duration_since(earlier.0) 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /crates/glaredb_slt/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "glaredb_slt" 3 | version.workspace = true 4 | edition.workspace = true 5 | 6 | [lints] 7 | workspace = true 8 | 9 | [dependencies] 10 | glaredb_error = { path = '../glaredb_error' } 11 | glaredb_core = { path = '../glaredb_core' } 12 | glaredb_rt_native = { path = '../glaredb_rt_native' } 13 | 14 | harness = { path = '../harness' } 15 | 16 | tokio = { version = "1", features = ["full"] } 17 | rand = { workspace = true } 18 | crossterm = "0.29.0" 19 | uuid = { workspace = true } 20 | clap = { workspace = true } 21 | -------------------------------------------------------------------------------- /crates/glaredb_wasm/README.md: -------------------------------------------------------------------------------- 1 | # GlareDB WebAssembly bindings 2 | 3 | Documentation: 4 | -------------------------------------------------------------------------------- /crates/harness/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "harness" 3 | version.workspace = true 4 | edition.workspace = true 5 | 6 | [dependencies] 7 | glaredb_error = { path = '../glaredb_error' } 8 | 9 | clap = { workspace = true } 10 | escape8259 = "0.5.3" 11 | anstream = "0.6.14" 12 | anstyle = "1.0.7" 13 | rand = { workspace = true } 14 | 15 | [lints] 16 | workspace = true 17 | -------------------------------------------------------------------------------- /crates/harness/README.md: -------------------------------------------------------------------------------- 1 | # harness 2 | 3 | Crates containing a shared harness for SQL level testing and benchmarking. 4 | 5 | Significant amounts of code taken from [libtest_mimic] and [sqllogictest-rs]. 6 | 7 | [libtest_mimic]: https://github.com/LukasKalbertodt/libtest-mimic/ 8 | [sqllogictest-rs]: https://github.com/risinglightdb/sqllogictest-rs 9 | 10 | -------------------------------------------------------------------------------- /crates/harness/src/sqlfile/mod.rs: -------------------------------------------------------------------------------- 1 | //! Helpers for parsing a "sqlfile" format shared by the sql logic tests and 2 | //! benchmark files. 3 | 4 | pub mod bench_parser; 5 | pub mod find; 6 | pub mod parser; 7 | pub mod slt_parser; 8 | pub mod vars; 9 | -------------------------------------------------------------------------------- /crates/logutil/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "logutil" 3 | version.workspace = true 4 | edition.workspace = true 5 | 6 | [lints] 7 | workspace = true 8 | 9 | [dependencies] 10 | tracing = { workspace = true } 11 | tracing-subscriber = {version = "0.3", features = ["std", "fmt", "json", "env-filter"] } 12 | -------------------------------------------------------------------------------- /docs/development/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Development 3 | order: 9999 4 | --- 5 | -------------------------------------------------------------------------------- /docs/extensions/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Extensions 3 | order: 90 4 | --- 5 | -------------------------------------------------------------------------------- /docs/get-started/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Get Started 3 | order: 10 4 | --- 5 | -------------------------------------------------------------------------------- /docs/reference/filesystems/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: File Systems 3 | order: 10 4 | --- 5 | -------------------------------------------------------------------------------- /docs/reference/functions/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Functions 3 | order: 3 4 | --- 5 | -------------------------------------------------------------------------------- /docs/reference/functions/table.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Table Functions 3 | --- 4 | 5 | # Table Function Reference 6 | 7 | 8 | 9 | ## `generate_series` 10 | 11 | Generate a series of values from 'start' to 'end' incrementing by a step of 1. 'start' and 'end' are both inclusive. 12 | 13 | ## `glob` 14 | 15 | List file names that match the provided glob. 16 | 17 | ## `memory_scan` 18 | 19 | Scans a memory table in the database. 20 | 21 | ## `read_text` 22 | 23 | Read the content of a file. 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/reference/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Reference 3 | order: 80 4 | --- 5 | -------------------------------------------------------------------------------- /docs/reference/sql/commands/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Commands 3 | order: 3 4 | --- 5 | -------------------------------------------------------------------------------- /docs/reference/sql/expressions/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Expressions 3 | order: 1 4 | --- 5 | -------------------------------------------------------------------------------- /docs/reference/sql/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: SQL 3 | order: 2 4 | --- 5 | -------------------------------------------------------------------------------- /docs/reference/sql/query-syntax/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Query Syntax 3 | order: 0 4 | --- 5 | -------------------------------------------------------------------------------- /rustfmt.toml: -------------------------------------------------------------------------------- 1 | edition = "2024" 2 | comment_width = 100 3 | combine_control_expr = true 4 | format_code_in_doc_comments = true 5 | condense_wildcard_suffixes = false 6 | format_strings = false 7 | normalize_comments = false 8 | wrap_comments = false 9 | hard_tabs = false 10 | reorder_impl_items = false 11 | imports_layout = "HorizontalVertical" 12 | imports_granularity = "Module" 13 | newline_style = "Unix" 14 | group_imports = "StdExternalCrate" 15 | blank_lines_lower_bound = 0 16 | blank_lines_upper_bound = 1 17 | 18 | -------------------------------------------------------------------------------- /scripts/ci_run_python_tests.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -e 4 | 5 | python -m venv ./.venv 6 | 7 | export VIRTUAL_ENV="${PWD}/.venv" 8 | export PATH="$VIRTUAL_ENV/bin:$PATH" 9 | 10 | pip install maturin 11 | 12 | maturin develop --manifest-path ./crates/glaredb_python/Cargo.toml 13 | 14 | pip install pytest 15 | 16 | pytest ./crates/glaredb_python/tests 17 | -------------------------------------------------------------------------------- /scripts/format.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -xeuo pipefail 4 | 5 | cargo +nightly fmt 6 | -------------------------------------------------------------------------------- /scripts/install_protoc_linux.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -xeuo pipefail 4 | 5 | curl -L "https://github.com/protocolbuffers/protobuf/releases/download/v23.1/protoc-23.1-linux-x86_64.zip" -o protoc.zip 6 | unzip -o protoc.zip 7 | mv bin/protoc /bin 8 | -------------------------------------------------------------------------------- /scripts/install_protoc_linux_arm.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -xeuo pipefail 4 | 5 | # manylinux2014-cross:aarch doesn't have unzip, install it. 6 | apt-get update && apt-get install unzip 7 | 8 | curl -L "https://github.com/protocolbuffers/protobuf/releases/download/v23.1/protoc-23.1-linux-aarch_64.zip" -o protoc.zip 9 | unzip -o protoc.zip 10 | mv bin/protoc /bin 11 | -------------------------------------------------------------------------------- /slt/clickbench/partitioned/q00.slt: -------------------------------------------------------------------------------- 1 | query TT 2 | DESCRIBE SELECT COUNT(*) FROM hits; 3 | ---- 4 | count Int64 5 | 6 | query ? 7 | SELECT COUNT(*) FROM hits; 8 | ---- 9 | 100000 10 | -------------------------------------------------------------------------------- /slt/clickbench/partitioned/q01.slt: -------------------------------------------------------------------------------- 1 | query TT 2 | DESCRIBE SELECT COUNT(*) FROM hits WHERE AdvEngineID <> 0; 3 | ---- 4 | count Int64 5 | 6 | query ? 7 | SELECT COUNT(*) FROM hits WHERE AdvEngineID <> 0; 8 | ---- 9 | 528 10 | -------------------------------------------------------------------------------- /slt/clickbench/partitioned/q02.slt: -------------------------------------------------------------------------------- 1 | query TT 2 | DESCRIBE SELECT SUM(AdvEngineID), COUNT(*), AVG(ResolutionWidth) FROM hits; 3 | ---- 4 | sum Int64 5 | count Int64 6 | avg Float64 7 | 8 | query ??? 9 | SELECT SUM(AdvEngineID), COUNT(*), AVG(ResolutionWidth) FROM hits; 10 | ---- 11 | 6988 100000 1514.96936 12 | -------------------------------------------------------------------------------- /slt/clickbench/partitioned/q03.slt: -------------------------------------------------------------------------------- 1 | query TT 2 | DESCRIBE SELECT AVG(UserID) FROM hits; 3 | ---- 4 | avg Float64 5 | 6 | query ? 7 | SELECT AVG(UserID) FROM hits; 8 | ---- 9 | 1790912656247254000 10 | -------------------------------------------------------------------------------- /slt/clickbench/partitioned/q04.slt: -------------------------------------------------------------------------------- 1 | query TT 2 | DESCRIBE SELECT COUNT(DISTINCT UserID) FROM hits; 3 | ---- 4 | count Int64 5 | 6 | query ? 7 | SELECT COUNT(DISTINCT UserID) FROM hits; 8 | ---- 9 | 19804 10 | -------------------------------------------------------------------------------- /slt/clickbench/partitioned/q05.slt: -------------------------------------------------------------------------------- 1 | query TT 2 | DESCRIBE SELECT COUNT(DISTINCT SearchPhrase) FROM hits; 3 | ---- 4 | count Int64 5 | 6 | query ? 7 | SELECT COUNT(DISTINCT SearchPhrase) FROM hits; 8 | ---- 9 | 8124 10 | -------------------------------------------------------------------------------- /slt/clickbench/partitioned/q06.slt: -------------------------------------------------------------------------------- 1 | query TT 2 | DESCRIBE SELECT MIN(EventDate), MAX(EventDate) FROM hits; 3 | ---- 4 | min Date32 5 | max Date32 6 | 7 | query ?? 8 | SELECT MIN(EventDate), MAX(EventDate) FROM hits; 9 | ---- 10 | 2013-07-02 2013-07-31 11 | -------------------------------------------------------------------------------- /slt/clickbench/partitioned/q07.slt: -------------------------------------------------------------------------------- 1 | query TT 2 | DESCRIBE SELECT AdvEngineID, COUNT(*) FROM hits WHERE AdvEngineID <> 0 GROUP BY AdvEngineID ORDER BY COUNT(*) DESC; 3 | ---- 4 | AdvEngineID Int16 5 | count Int64 6 | 7 | query ?? 8 | SELECT AdvEngineID, COUNT(*) FROM hits WHERE AdvEngineID <> 0 GROUP BY AdvEngineID ORDER BY COUNT(*) DESC; 9 | ---- 10 | 2 337 11 | 45 117 12 | 13 61 13 | 3 7 14 | 27 3 15 | 52 2 16 | 50 1 17 | -------------------------------------------------------------------------------- /slt/clickbench/partitioned/q08.slt: -------------------------------------------------------------------------------- 1 | query TT 2 | DESCRIBE SELECT RegionID, COUNT(DISTINCT UserID) AS u FROM hits GROUP BY RegionID ORDER BY u DESC LIMIT 10; 3 | ---- 4 | RegionID Int32 5 | u Int64 6 | 7 | # Extra ORDER BY 8 | query ?? 9 | SELECT RegionID, COUNT(DISTINCT UserID) AS u FROM hits GROUP BY RegionID ORDER BY u DESC, RegionID LIMIT 10; 10 | ---- 11 | 229 3729 12 | 2 1347 13 | 208 830 14 | 107 597 15 | 169 578 16 | 34 340 17 | 184 298 18 | 1 285 19 | 42 272 20 | 158 264 21 | -------------------------------------------------------------------------------- /slt/clickbench/partitioned/q19.slt: -------------------------------------------------------------------------------- 1 | query TT 2 | DESCRIBE SELECT UserID FROM hits WHERE UserID = 435090932899640449; 3 | ---- 4 | UserID Int64 5 | 6 | # Note this id doesn't exist in the truncated dataset 7 | query ? 8 | SELECT UserID FROM hits WHERE UserID = 435090932899640449; 9 | ---- 10 | 11 | -------------------------------------------------------------------------------- /slt/clickbench/partitioned/q20.slt: -------------------------------------------------------------------------------- 1 | query TT 2 | DESCRIBE SELECT COUNT(*) FROM hits WHERE URL LIKE '%google%'; 3 | ---- 4 | count Int64 5 | 6 | query ? 7 | SELECT COUNT(*) FROM hits WHERE URL LIKE '%google%'; 8 | ---- 9 | 43 10 | -------------------------------------------------------------------------------- /slt/clickbench/partitioned/q27.slt: -------------------------------------------------------------------------------- 1 | query TT 2 | DESCRIBE SELECT CounterID, AVG(length(URL)) AS l, COUNT(*) AS c FROM hits WHERE URL <> '' GROUP BY CounterID HAVING COUNT(*) > 100000 ORDER BY l DESC LIMIT 25; 3 | ---- 4 | CounterID Int32 5 | l Float64 6 | c Int64 7 | 8 | # Zero rows correct for truncated dataset 9 | query ??? 10 | SELECT CounterID, AVG(octet_length(URL)) AS l, COUNT(*) AS c FROM hits WHERE URL <> '' GROUP BY CounterID HAVING COUNT(*) > 100000 ORDER BY l DESC LIMIT 25; 11 | ---- 12 | -------------------------------------------------------------------------------- /slt/clickbench/single/q00.slt: -------------------------------------------------------------------------------- 1 | statement ok 2 | SET verify_optimized_plan TO true; 3 | 4 | query TT 5 | DESCRIBE SELECT COUNT(*) FROM hits; 6 | ---- 7 | count Int64 8 | 9 | query ? 10 | SELECT COUNT(*) FROM hits; 11 | ---- 12 | 10000 13 | -------------------------------------------------------------------------------- /slt/clickbench/single/q01.slt: -------------------------------------------------------------------------------- 1 | statement ok 2 | SET verify_optimized_plan TO true; 3 | 4 | query TT 5 | DESCRIBE SELECT COUNT(*) FROM hits WHERE AdvEngineID <> 0; 6 | ---- 7 | count Int64 8 | 9 | query ? 10 | SELECT COUNT(*) FROM hits WHERE AdvEngineID <> 0; 11 | ---- 12 | 362 13 | -------------------------------------------------------------------------------- /slt/clickbench/single/q02.slt: -------------------------------------------------------------------------------- 1 | statement ok 2 | SET verify_optimized_plan TO true; 3 | 4 | query TT 5 | DESCRIBE SELECT SUM(AdvEngineID), COUNT(*), AVG(ResolutionWidth) FROM hits; 6 | ---- 7 | sum Int64 8 | count Int64 9 | avg Float64 10 | 11 | query ??? 12 | SELECT SUM(AdvEngineID), COUNT(*), AVG(ResolutionWidth) FROM hits; 13 | ---- 14 | 2286 10000 1592.238 15 | -------------------------------------------------------------------------------- /slt/clickbench/single/q03.slt: -------------------------------------------------------------------------------- 1 | statement ok 2 | SET verify_optimized_plan TO true; 3 | 4 | query TT 5 | DESCRIBE SELECT AVG(UserID) FROM hits; 6 | ---- 7 | avg Float64 8 | 9 | query ? 10 | SELECT AVG(UserID) FROM hits; 11 | ---- 12 | -7135061942656019000 13 | -------------------------------------------------------------------------------- /slt/clickbench/single/q04.slt: -------------------------------------------------------------------------------- 1 | statement ok 2 | SET verify_optimized_plan TO true; 3 | 4 | query TT 5 | DESCRIBE SELECT COUNT(DISTINCT UserID) FROM hits; 6 | ---- 7 | count Int64 8 | 9 | query ? 10 | SELECT COUNT(DISTINCT UserID) FROM hits; 11 | ---- 12 | 723 13 | -------------------------------------------------------------------------------- /slt/clickbench/single/q05.slt: -------------------------------------------------------------------------------- 1 | statement ok 2 | SET verify_optimized_plan TO true; 3 | 4 | query TT 5 | DESCRIBE SELECT COUNT(DISTINCT SearchPhrase) FROM hits; 6 | ---- 7 | count Int64 8 | 9 | query ? 10 | SELECT COUNT(DISTINCT SearchPhrase) FROM hits; 11 | ---- 12 | 390 13 | -------------------------------------------------------------------------------- /slt/clickbench/single/q06.slt: -------------------------------------------------------------------------------- 1 | statement ok 2 | SET verify_optimized_plan TO true; 3 | 4 | query TT 5 | DESCRIBE SELECT MIN(EventDate), MAX(EventDate) FROM hits; 6 | ---- 7 | min Date32 8 | max Date32 9 | 10 | query ?? 11 | SELECT MIN(EventDate), MAX(EventDate) FROM hits; 12 | ---- 13 | 2013-07-15 2013-07-15 14 | -------------------------------------------------------------------------------- /slt/clickbench/single/q07.slt: -------------------------------------------------------------------------------- 1 | statement ok 2 | SET verify_optimized_plan TO true; 3 | 4 | query TT 5 | DESCRIBE SELECT AdvEngineID, COUNT(*) FROM hits WHERE AdvEngineID <> 0 GROUP BY AdvEngineID ORDER BY COUNT(*) DESC; 6 | ---- 7 | AdvEngineID Int16 8 | count Int64 9 | 10 | query ?? 11 | SELECT AdvEngineID, COUNT(*) FROM hits WHERE AdvEngineID <> 0 GROUP BY AdvEngineID ORDER BY COUNT(*) DESC; 12 | ---- 13 | 2 220 14 | 13 142 15 | 16 | -------------------------------------------------------------------------------- /slt/clickbench/single/q08.slt: -------------------------------------------------------------------------------- 1 | statement ok 2 | SET verify_optimized_plan TO true; 3 | 4 | query TT 5 | DESCRIBE SELECT RegionID, COUNT(DISTINCT UserID) AS u FROM hits GROUP BY RegionID ORDER BY u DESC LIMIT 10; 6 | ---- 7 | RegionID Int32 8 | u Int64 9 | 10 | # Extra ORDER BY 11 | query ?? 12 | SELECT RegionID, COUNT(DISTINCT UserID) AS u FROM hits GROUP BY RegionID ORDER BY u DESC, RegionID LIMIT 10; 13 | ---- 14 | 229 294 15 | 2 119 16 | 1 38 17 | 208 29 18 | 7 12 19 | 9 9 20 | 11 8 21 | 139 8 22 | 226 8 23 | 14593 7 24 | 25 | -------------------------------------------------------------------------------- /slt/clickbench/single/q10.slt: -------------------------------------------------------------------------------- 1 | statement ok 2 | SET verify_optimized_plan TO true; 3 | 4 | query TT 5 | DESCRIBE SELECT MobilePhoneModel, COUNT(DISTINCT UserID) AS u FROM hits WHERE MobilePhoneModel <> '' GROUP BY MobilePhoneModel ORDER BY u DESC LIMIT 10; 6 | ---- 7 | MobilePhoneModel Utf8 8 | u Int64 9 | 10 | query ?? 11 | SELECT MobilePhoneModel, COUNT(DISTINCT UserID) AS u FROM hits WHERE MobilePhoneModel <> '' GROUP BY MobilePhoneModel ORDER BY u DESC LIMIT 10; 12 | ---- 13 | iPad 22 14 | -------------------------------------------------------------------------------- /slt/clickbench/single/q19.slt: -------------------------------------------------------------------------------- 1 | statement ok 2 | SET verify_optimized_plan TO true; 3 | 4 | query TT 5 | DESCRIBE SELECT UserID FROM hits WHERE UserID = 435090932899640449; 6 | ---- 7 | UserID Int64 8 | 9 | # Note this id doesn't exist in the truncated dataset 10 | query ? 11 | SELECT UserID FROM hits WHERE UserID = 435090932899640449; 12 | ---- 13 | 14 | -------------------------------------------------------------------------------- /slt/clickbench/single/q20.slt: -------------------------------------------------------------------------------- 1 | statement ok 2 | SET verify_optimized_plan TO true; 3 | 4 | query TT 5 | DESCRIBE SELECT COUNT(*) FROM hits WHERE URL LIKE '%google%'; 6 | ---- 7 | count Int64 8 | 9 | # Note doesn't exist in truncated dataset 10 | query ? 11 | SELECT COUNT(*) FROM hits WHERE URL LIKE '%google%'; 12 | ---- 13 | 0 14 | -------------------------------------------------------------------------------- /slt/clickbench/single/q27.slt: -------------------------------------------------------------------------------- 1 | statement ok 2 | SET verify_optimized_plan TO true; 3 | 4 | query TT 5 | DESCRIBE SELECT CounterID, AVG(length(URL)) AS l, COUNT(*) AS c FROM hits WHERE URL <> '' GROUP BY CounterID HAVING COUNT(*) > 100000 ORDER BY l DESC LIMIT 25; 6 | ---- 7 | CounterID Int32 8 | l Float64 9 | c Int64 10 | 11 | # Zero rows correct for truncated dataset 12 | query ??? 13 | SELECT CounterID, AVG(octet_length(URL)) AS l, COUNT(*) AS c FROM hits WHERE URL <> '' GROUP BY CounterID HAVING COUNT(*) > 100000 ORDER BY l DESC LIMIT 25; 14 | ---- 15 | -------------------------------------------------------------------------------- /slt/csv/copy_to.slt: -------------------------------------------------------------------------------- 1 | # Basic COPY TO statements 2 | 3 | halt 4 | 5 | query I 6 | COPY (select 1 as a, 2 as b) TO '__SLT_TMP__/myfile.csv' 7 | ---- 8 | 1 9 | 10 | query TT 11 | describe '__SLT_TMP__/myfile.csv' 12 | ---- 13 | a Int64 14 | b Int64 15 | 16 | query II 17 | select * from '__SLT_TMP__/myfile.csv' 18 | ---- 19 | 1 2 20 | -------------------------------------------------------------------------------- /slt/csv/infer/boolean_values.slt: -------------------------------------------------------------------------------- 1 | statement ok 2 | SET verify_optimized_plan TO true; 3 | 4 | # Testing boolean value inference. Currently not amazing... 5 | 6 | # query TT 7 | # DESCRIBE '../testdata/csv/boolean_values.csv'; 8 | # ---- 9 | # name Utf8 10 | # val1 Int64 11 | # val2 Int64 12 | # val3 Utf8 13 | # val4 Utf8 14 | 15 | # query TIITT 16 | # SELECT * FROM '../testdata/csv/boolean_values.csv' ORDER BY 1; 17 | # ---- 18 | # row1 true 0 true false 19 | # row2 TRUE 0 True False 20 | # row3 t 0 T F 21 | # row4 1 0 yes no 22 | -------------------------------------------------------------------------------- /slt/csv/infer/dup_header_name.slt: -------------------------------------------------------------------------------- 1 | statement ok 2 | SET verify_optimized_plan TO true; 3 | 4 | query TT 5 | DESCRIBE '../testdata/csv/dup_header_name.csv'; 6 | ---- 7 | a Int64 8 | b Utf8 9 | a Utf8 10 | c Int64 11 | c Int64 12 | 13 | query ITTII 14 | SELECT * FROM '../testdata/csv/dup_header_name.csv' ORDER BY 1; 15 | ---- 16 | 123 mario NULL 4 8 17 | 456 luigi cat 5 NULL 18 | 678 peach goose NULL 9 19 | 20 | -------------------------------------------------------------------------------- /slt/csv/infer/empty_first_line.slt: -------------------------------------------------------------------------------- 1 | statement ok 2 | SET verify_optimized_plan TO true; 3 | 4 | query TT 5 | DESCRIBE '../testdata/csv/empty_first_line.csv'; 6 | ---- 7 | column0 Utf8 8 | column1 Utf8 9 | column2 Utf8 10 | column3 Int64 11 | 12 | query TTTI 13 | SELECT * FROM '../testdata/csv/empty_first_line.csv' ORDER BY 4; 14 | ---- 15 | dog cat goose 4 16 | mario wario peach 5 17 | ohio texas alaska 8 18 | 19 | -------------------------------------------------------------------------------- /slt/csv/infer/empty_header_names.slt: -------------------------------------------------------------------------------- 1 | statement ok 2 | SET verify_optimized_plan TO true; 3 | 4 | # TODO: If header name is empty, assign generated name. 5 | 6 | query TT 7 | DESCRIBE '../testdata/csv/empty_header_names.csv'; 8 | ---- 9 | (empty) Int64 10 | (empty) Utf8 11 | (empty) Int64 12 | 13 | query ITI 14 | SELECT * FROM '../testdata/csv/empty_header_names.csv' ORDER BY 1; 15 | ---- 16 | 1 mario 4 17 | 2 peach 8 18 | 3 luigi 12 19 | 20 | -------------------------------------------------------------------------------- /slt/csv/infer/empty_middle_line.slt: -------------------------------------------------------------------------------- 1 | statement ok 2 | SET verify_optimized_plan TO true; 3 | 4 | query TT 5 | DESCRIBE '../testdata/csv/empty_middle_line.csv'; 6 | ---- 7 | column0 Utf8 8 | column1 Utf8 9 | column2 Utf8 10 | column3 Int64 11 | 12 | query TTTI 13 | SELECT * FROM '../testdata/csv/empty_middle_line.csv' ORDER BY 4; 14 | ---- 15 | dog cat goose 4 16 | mario wario peach 5 17 | ohio texas alaska 8 18 | maine montana alaska 12 19 | -------------------------------------------------------------------------------- /slt/csv/infer/escaped_quotes.slt: -------------------------------------------------------------------------------- 1 | statement ok 2 | SET verify_optimized_plan TO true; 3 | 4 | # Testing escaped quotes in CSV 5 | 6 | query TT 7 | DESCRIBE '../testdata/csv/escaped_quotes.csv'; 8 | ---- 9 | column0 Utf8 10 | column1 Utf8 11 | column2 Utf8 12 | 13 | query TTT 14 | SELECT * FROM '../testdata/csv/escaped_quotes.csv' ORDER BY 1; 15 | ---- 16 | text with "quotes" more text text 17 | text with comma, here another "quote" final 18 | -------------------------------------------------------------------------------- /slt/csv/infer/infer_string_lit_as_int.slt: -------------------------------------------------------------------------------- 1 | statement ok 2 | SET verify_optimized_plan TO true; 3 | 4 | query TT 5 | DESCRIBE '../testdata/csv/string_lit_int.csv'; 6 | ---- 7 | column0 Int64 8 | column1 Utf8 9 | column2 Utf8 10 | 11 | query ITT 12 | SELECT * FROM '../testdata/csv/string_lit_int.csv' ORDER BY 1; 13 | ---- 14 | 123 cat dog 15 | 456 goose moose 16 | 789 rooster gooster 17 | 18 | -------------------------------------------------------------------------------- /slt/csv/infer/mixed_type_pipe_delim.slt: -------------------------------------------------------------------------------- 1 | statement ok 2 | SET verify_optimized_plan TO true; 3 | 4 | # Documenting suboptimal, but still expected behavior 5 | 6 | query TT 7 | DESCRIBE '../testdata/csv/mixed_type_pipe_delim.csv'; 8 | ---- 9 | cat Utf8 10 | goose Int64 11 | 4 Utf8 12 | 13 | query TIT 14 | SELECT * FROM '../testdata/csv/mixed_type_pipe_delim.csv' ORDER BY 1; 15 | ---- 16 | dog 5 cow 17 | horse NULL rooster 18 | 19 | -------------------------------------------------------------------------------- /slt/csv/infer/semicolon_delim.slt: -------------------------------------------------------------------------------- 1 | statement ok 2 | SET verify_optimized_plan TO true; 3 | 4 | # Testing CSV with semicolon delimiter 5 | 6 | query TT 7 | DESCRIBE '../testdata/csv/semicolon_delim.csv'; 8 | ---- 9 | column0 Utf8 10 | column1 Int64 11 | column2 Float64 12 | 13 | query TIR 14 | SELECT * FROM '../testdata/csv/semicolon_delim.csv' ORDER BY 2; 15 | ---- 16 | apple 1 3.14 17 | banana 2 6.28 18 | cherry 3 9.42 19 | -------------------------------------------------------------------------------- /slt/csv/infer/single_quotes.slt: -------------------------------------------------------------------------------- 1 | statement ok 2 | SET verify_optimized_plan TO true; 3 | 4 | # Testing CSV with single quotes 5 | 6 | query TT 7 | DESCRIBE '../testdata/csv/single_quotes.csv'; 8 | ---- 9 | column0 Utf8 10 | column1 Utf8 11 | column2 Utf8 12 | 13 | query TTT 14 | SELECT * FROM '../testdata/csv/single_quotes.csv' ORDER BY 1; 15 | ---- 16 | text with, comma some text more text 17 | text1 text2 text3 18 | -------------------------------------------------------------------------------- /slt/csv/infer/tab_delim.slt: -------------------------------------------------------------------------------- 1 | statement ok 2 | SET verify_optimized_plan TO true; 3 | 4 | # Testing CSV with tab delimiter 5 | 6 | query TT 7 | DESCRIBE '../testdata/csv/tab_delim.csv'; 8 | ---- 9 | column0 Utf8 10 | column1 Int64 11 | column2 Float64 12 | 13 | query TIR 14 | SELECT * FROM '../testdata/csv/tab_delim.csv' ORDER BY 2; 15 | ---- 16 | grape 10 2.5 17 | orange 20 3.5 18 | pear 30 4.5 19 | -------------------------------------------------------------------------------- /slt/csv/infer/whitespace_handling.slt: -------------------------------------------------------------------------------- 1 | statement ok 2 | SET verify_optimized_plan TO true; 3 | 4 | # Testing whitespace handling in CSV 5 | 6 | query TT 7 | DESCRIBE '../testdata/csv/whitespace_handling.csv'; 8 | ---- 9 | column0 Utf8 10 | column1 Utf8 11 | column2 Utf8 12 | 13 | query TTT 14 | SELECT * FROM '../testdata/csv/whitespace_handling.csv' ORDER BY 1; 15 | ---- 16 | apple 1 3.14 17 | banana 2 6.28 18 | cherry 3 9.42 19 | -------------------------------------------------------------------------------- /slt/csv/simple.slt: -------------------------------------------------------------------------------- 1 | # Reading 'simple.csv' 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query TT 7 | describe read_csv('../testdata/csv/simple.csv'); 8 | ---- 9 | c1 Int64 10 | c2 Utf8 11 | c3 Float64 12 | 13 | query ITR rowsort 14 | select * from read_csv('../testdata/csv/simple.csv'); 15 | ---- 16 | 1 mario 2.3 17 | 4 wario 5.6 18 | 7 peach 8.9 19 | -------------------------------------------------------------------------------- /slt/delta/simple.slt: -------------------------------------------------------------------------------- 1 | # Simple read 2 | 3 | query TT 4 | describe read_delta('../testdata/delta/table1'); 5 | ---- 6 | a Int32 7 | b Utf8 8 | 9 | query ITR rowsort 10 | select * from read_delta('../testdata/delta/table1'); 11 | ---- 12 | 1 hello 13 | 2 world 14 | 15 | query ITR rowsort 16 | select * from read_delta('s3://glaredb-test-copy/delta/table1', region='us-east-1', key_id='__AWS_KEY__', secret='__AWS_SECRET__'); 17 | ---- 18 | 1 hello 19 | 2 world 20 | 21 | -------------------------------------------------------------------------------- /slt/gcs/public/iceberg_metadata.slt: -------------------------------------------------------------------------------- 1 | # iceberg_metadata function on gcs 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query TT 7 | DESCRIBE SELECT * FROM iceberg_metadata('gs://glaredb-public/testdata/iceberg/wh/default.db/cities'); 8 | ---- 9 | format_version Int32 10 | table_uuid Utf8 11 | location Utf8 12 | 13 | query ITT 14 | SELECT * FROM iceberg_metadata('gs://glaredb-public/testdata/iceberg/wh/default.db/cities') 15 | ---- 16 | 2 3e7c486c-5e5a-426e-aed7-a022fe2b52b6 file://wh/default.db/cities 17 | -------------------------------------------------------------------------------- /slt/http/row_group_metadata_http.slt: -------------------------------------------------------------------------------- 1 | # Read parquet row group metadata over http. 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | statement ok 7 | SET verify_optimized_plan TO true; 8 | 9 | query ????? 10 | SELECT * FROM parquet_rowgroup_metadata('https://github.com/GlareDB/glaredb/raw/main/testdata/parquet/userdata0.parquet'); 11 | ---- 12 | https://github.com/GlareDB/glaredb/raw/main/testdata/parquet/userdata0.parquet 1000 13 112492 0 13 | -------------------------------------------------------------------------------- /slt/hybrid/client_only.slt: -------------------------------------------------------------------------------- 1 | # Examples of queries that execute only on the client. 2 | 3 | query II 4 | select 1, 2; 5 | ---- 6 | 1 2 7 | -------------------------------------------------------------------------------- /slt/hybrid/copy_to.slt: -------------------------------------------------------------------------------- 1 | # COPY TO with remote tables 2 | 3 | statement ok 4 | ATTACH remote_debug1 DATABASE AS remote1; 5 | 6 | query I 7 | COPY remote1.schema1.table1 TO 'myfile' (FORMAT discard_local); 8 | ---- 9 | 2 10 | 11 | query I 12 | COPY (SELECT * FROM remote1.schema1.table1) TO 'myfile' (FORMAT discard_local); 13 | ---- 14 | 2 15 | 16 | # COPY TO to remote side not yet supported 17 | statement error No registered COPY TO function for format 'discard_remote' 18 | COPY (SELECT * FROM remote1.schema1.table1) TO 'myfile' (FORMAT discard_remote); 19 | 20 | -------------------------------------------------------------------------------- /slt/hybrid/create_temp_table_as.slt: -------------------------------------------------------------------------------- 1 | # CREATE TEMP TABLE AS with remote source 2 | 3 | statement error Missing catalog 'remote1' 4 | CREATE TEMP TABLE t1 AS SELECT * FROM remote1.schema1.table1; 5 | 6 | statement ok 7 | ATTACH remote_debug1 DATABASE AS remote1; 8 | 9 | statement ok 10 | CREATE TEMP TABLE t1 AS SELECT * FROM remote1.schema1.table1; 11 | 12 | query IT 13 | SELECT * FROM t1; 14 | ---- 15 | 1 a 16 | 2 b 17 | 18 | -------------------------------------------------------------------------------- /slt/hybrid/insert_into.slt: -------------------------------------------------------------------------------- 1 | # INSERT INTO remote tables 2 | 3 | statement ok 4 | ATTACH remote_debug1 DATABASE AS remote1; 5 | 6 | statement ok 7 | INSERT INTO remote1.schema1.insert_into1 VALUES (8, 'hello'), (9, 'world'); 8 | 9 | # TODO: Fix location stuff 10 | halt 11 | 12 | query IT 13 | SELECT * FROM remote1.schema1.insert_into1 ORDER BY 1; 14 | ---- 15 | 1 a 16 | 2 b 17 | 8 hello 18 | 9 world 19 | 20 | -------------------------------------------------------------------------------- /slt/iceberg/iceberg_metadata.slt: -------------------------------------------------------------------------------- 1 | # iceberg_metadata function 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query TT 7 | DESCRIBE SELECT * FROM iceberg_metadata('../testdata/iceberg/wh/default.db/cities'); 8 | ---- 9 | format_version Int32 10 | table_uuid Utf8 11 | location Utf8 12 | 13 | query ITT 14 | SELECT * FROM iceberg_metadata('../testdata/iceberg/wh/default.db/cities') 15 | ---- 16 | 2 3e7c486c-5e5a-426e-aed7-a022fe2b52b6 file://wh/default.db/cities 17 | -------------------------------------------------------------------------------- /slt/iceberg/iceberg_snapshots.slt: -------------------------------------------------------------------------------- 1 | # iceberg_snapshots function 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query TT 7 | DESCRIBE SELECT * FROM iceberg_snapshots('../testdata/iceberg/wh/default.db/cities'); 8 | ---- 9 | snapshot_id Int64 10 | sequence_number Int64 11 | manifest_list Utf8 12 | 13 | query IIT 14 | SELECT * FROM iceberg_snapshots('../testdata/iceberg/wh/default.db/cities'); 15 | ---- 16 | 8687260678833969554 1 file://wh/default.db/cities/metadata/snap-8687260678833969554-0-6704a04a-3e2e-415f-b173-b21f4c5b78b7.avro 17 | -------------------------------------------------------------------------------- /slt/parquet/parquet-testing/bad/ARROW-GH-41317.slt: -------------------------------------------------------------------------------- 1 | # Test for 'ARROW-GH-41317.parquet' 2 | # 3 | # ARROW-GH-41317.parquet: test case of apache/arrow#41317 where all columns have 4 | # not the same size. 5 | 6 | # TODO 7 | # Error source: query failed: Cannot handle INT32 with logical type Some(Unknown) or converted type NONE 8 | 9 | statement ok 10 | SET verify_optimized_plan TO true; 11 | 12 | # query TT 13 | # DESCRIBE '../submodules/parquet-testing/bad_data/ARROW-GH-41317.parquet' 14 | # ---- 15 | 16 | -------------------------------------------------------------------------------- /slt/parquet/parquet-testing/bad/ARROW-GH-41321.slt: -------------------------------------------------------------------------------- 1 | # Test for 'ARROW-GH-41321.parquet' 2 | # 3 | # ARROW-GH-41321.parquet: test case of apache/arrow#41321 where decoded rep / 4 | # def levels is less than num_values in page_header. 5 | 6 | # TODO 7 | # Error source: query failed: Cannot handle INT32 with logical type Some(Unknown) or converted type NONE 8 | 9 | statement ok 10 | SET verify_optimized_plan TO true; 11 | 12 | # query TT 13 | # DESCRIBE '../submodules/parquet-testing/bad_data/ARROW-GH-41321.parquet' 14 | # ---- 15 | 16 | -------------------------------------------------------------------------------- /slt/parquet/parquet-testing/bad/ARROW-GH-45185.slt: -------------------------------------------------------------------------------- 1 | # Test for 'ARROW-GH-45185.parquet' 2 | # 3 | # ARROW-GH-45185.parquet: test case of apache/arrow#45185 where repetition 4 | # levels start with a 1 instead of 0. 5 | 6 | # TODO 7 | # Error source: query failed: Not yet implemented: Visit LIST with item 8 | 9 | statement ok 10 | SET verify_optimized_plan TO true; 11 | 12 | # query TT 13 | # DESCRIBE '../submodules/parquet-testing/bad_data/ARROW-GH-45185.parquet' 14 | # ---- 15 | 16 | -------------------------------------------------------------------------------- /slt/parquet/parquet-testing/bad/ARROW-RS-GH-6229-LEVELS.slt: -------------------------------------------------------------------------------- 1 | # Test for 'ARROW-RS-GH-6229-LEVELS.parquet' 2 | # 3 | # ARROW-RS-GH-6229-LEVELS.parquet: tests a case where a page has insufficient 4 | # repetition levels. 5 | 6 | # TODO 7 | # Error source: query failed: Not yet implemented: Visit LIST with item 8 | 9 | statement ok 10 | SET verify_optimized_plan TO true; 11 | 12 | # query TT 13 | # DESCRIBE '../submodules/parquet-testing/bad_data/ARROW-RS-GH-6229-LEVELS.parquet' 14 | # ---- 15 | 16 | -------------------------------------------------------------------------------- /slt/parquet/parquet-testing/bad/PARQUET-1481.slt: -------------------------------------------------------------------------------- 1 | # Test for 'PARQUET-1481.parquet' 2 | # 3 | # PARQUET-1481.parquet: tests a case where a schema Thrift value has been 4 | # corrupted. 5 | 6 | statement ok 7 | SET verify_optimized_plan TO true; 8 | 9 | statement error unexpected parquet type: -7 10 | DESCRIBE '../submodules/parquet-testing/bad_data/PARQUET-1481.parquet' 11 | 12 | -------------------------------------------------------------------------------- /slt/parquet/parquet-testing/binary.slt: -------------------------------------------------------------------------------- 1 | # Test for 'binary.parquet' 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query TT 7 | DESCRIBE '../submodules/parquet-testing/data/binary.parquet' 8 | ---- 9 | foo Binary 10 | 11 | query ? 12 | SELECT * FROM '../submodules/parquet-testing/data/binary.parquet'; 13 | ---- 14 | \x00 15 | \x01 16 | \x02 17 | \x03 18 | \x04 19 | \x05 20 | \x06 21 | \x07 22 | \x08 23 | \x09 24 | \x0a 25 | \x0b 26 | -------------------------------------------------------------------------------- /slt/parquet/parquet-testing/byte_array_decimal.slt: -------------------------------------------------------------------------------- 1 | # Test for 'byte_array_decimal.parquet' 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | # query TT 7 | # DESCRIBE '../submodules/parquet-testing/data/byte_array_decimal.parquet' 8 | # ---- 9 | -------------------------------------------------------------------------------- /slt/parquet/parquet-testing/byte_stream_split_extended_gzip.slt: -------------------------------------------------------------------------------- 1 | # Test for 'byte_stream_split_extended.gzip.parquet' 2 | 3 | # TODO: Byte stream split on fixed len byte array 4 | 5 | statement ok 6 | SET verify_optimized_plan TO true; 7 | 8 | # query TT 9 | # DESCRIBE '../submodules/parquet-testing/data/byte_stream_split_extended.gzip.parquet' 10 | # ---- 11 | -------------------------------------------------------------------------------- /slt/parquet/parquet-testing/column_chunk_key_value_metadata.slt: -------------------------------------------------------------------------------- 1 | # Test for 'column_chunk_key_value_metadata.parquet' 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | # query TT 7 | # DESCRIBE '../submodules/parquet-testing/data/column_chunk_key_value_metadata.parquet' 8 | # ---- 9 | -------------------------------------------------------------------------------- /slt/parquet/parquet-testing/data_index_bloom_encoding_stats.slt: -------------------------------------------------------------------------------- 1 | # Test for 'data_index_bloom_encoding_stats.parquet' 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | # query TT 7 | # DESCRIBE '../submodules/parquet-testing/data/data_index_bloom_encoding_stats.parquet' 8 | # ---- 9 | -------------------------------------------------------------------------------- /slt/parquet/parquet-testing/data_index_bloom_encoding_with_length.slt: -------------------------------------------------------------------------------- 1 | # Test for 'data_index_bloom_encoding_with_length.parquet' 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | # query TT 7 | # DESCRIBE '../submodules/parquet-testing/data/data_index_bloom_encoding_with_length.parquet' 8 | # ---- 9 | -------------------------------------------------------------------------------- /slt/parquet/parquet-testing/datapage_v2_empty_datapage_snappy.slt: -------------------------------------------------------------------------------- 1 | # Test for 'datapage_v2_empty_datapage.snappy.parquet' 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query TT 7 | DESCRIBE '../submodules/parquet-testing/data/datapage_v2_empty_datapage.snappy.parquet'; 8 | ---- 9 | value Float32 10 | 11 | query R 12 | SELECT * FROM '../submodules/parquet-testing/data/datapage_v2_empty_datapage.snappy.parquet'; 13 | ---- 14 | NULL 15 | -------------------------------------------------------------------------------- /slt/parquet/parquet-testing/datapage_v2_snappy.slt: -------------------------------------------------------------------------------- 1 | # Test for 'datapage_v2.snappy.parquet' 2 | 3 | # TODO: Error source: query failed: Not yet implemented: Visit LIST with item 4 | 5 | statement ok 6 | SET verify_optimized_plan TO true; 7 | 8 | # query TT 9 | # DESCRIBE '../submodules/parquet-testing/data/datapage_v2.snappy.parquet' 10 | # ---- 11 | -------------------------------------------------------------------------------- /slt/parquet/parquet-testing/dict-page-offset-zero.slt: -------------------------------------------------------------------------------- 1 | # Test for 'dict-page-offset-zero.parquet' 2 | 3 | # TODO 4 | # Error source: query failed: Could not parse metadata 5 | # Error source: protocol error 6 | 7 | statement ok 8 | SET verify_optimized_plan TO true; 9 | 10 | # query TT 11 | # DESCRIBE '../submodules/parquet-testing/data/dict-page-offset-zero.parquet' 12 | # ---- 13 | -------------------------------------------------------------------------------- /slt/parquet/parquet-testing/fixed_length_byte_array.slt: -------------------------------------------------------------------------------- 1 | # Test for 'fixed_length_byte_array.parquet' 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | # query TT 7 | # DESCRIBE '../submodules/parquet-testing/data/fixed_length_byte_array.parquet' 8 | # ---- 9 | -------------------------------------------------------------------------------- /slt/parquet/parquet-testing/fixed_length_decimal.slt: -------------------------------------------------------------------------------- 1 | # Test for 'fixed_length_decimal.parquet' 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | # query TT 7 | # DESCRIBE '../submodules/parquet-testing/data/fixed_length_decimal.parquet' 8 | # ---- 9 | -------------------------------------------------------------------------------- /slt/parquet/parquet-testing/fixed_length_decimal_legacy.slt: -------------------------------------------------------------------------------- 1 | # Test for 'fixed_length_decimal_legacy.parquet' 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | # query TT 7 | # DESCRIBE '../submodules/parquet-testing/data/fixed_length_decimal_legacy.parquet' 8 | # ---- 9 | -------------------------------------------------------------------------------- /slt/parquet/parquet-testing/hadoop_lz4_compressed.slt: -------------------------------------------------------------------------------- 1 | # Test for 'hadoop_lz4_compressed.parquet' 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query TT 7 | DESCRIBE '../submodules/parquet-testing/data/hadoop_lz4_compressed.parquet' 8 | ---- 9 | c0 Int64 10 | c1 Binary 11 | v11 Float64 12 | 13 | query I?R 14 | SELECT c0, c1::TEXT, v11 FROM '../submodules/parquet-testing/data/hadoop_lz4_compressed.parquet' ORDER BY 1; 15 | ---- 16 | 1593604800 abc 42 17 | 1593604800 def 7.7 18 | 1593604801 abc 42.125 19 | 1593604801 def 7.7 20 | 21 | -------------------------------------------------------------------------------- /slt/parquet/parquet-testing/incorrect_map_schema.slt: -------------------------------------------------------------------------------- 1 | # Test for 'incorrect_map_schema.parquet' 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | # query TT 7 | # DESCRIBE '../submodules/parquet-testing/data/incorrect_map_schema.parquet' 8 | # ---- 9 | -------------------------------------------------------------------------------- /slt/parquet/parquet-testing/int96_from_spark.slt: -------------------------------------------------------------------------------- 1 | # Test for 'int96_from_spark.parquet' 2 | 3 | # TODO: Panic 4 | # Info: panicked at crates/ext_parquet/src/column/value_reader/int96.rs:36:26: 5 | # attempt to multiply with overflow 6 | 7 | 8 | statement ok 9 | SET verify_optimized_plan TO true; 10 | 11 | query TT 12 | DESCRIBE '../submodules/parquet-testing/data/int96_from_spark.parquet' 13 | ---- 14 | a Timestamp(ns) 15 | 16 | # query I 17 | # SELECT count(*) FROM '../submodules/parquet-testing/data/int96_from_spark.parquet'; 18 | # ---- 19 | -------------------------------------------------------------------------------- /slt/parquet/parquet-testing/large_string_map_brotli.slt: -------------------------------------------------------------------------------- 1 | # Test for 'large_string_map.brotli.parquet' 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | # query TT 7 | # DESCRIBE '../submodules/parquet-testing/data/large_string_map.brotli.parquet' 8 | # ---- 9 | -------------------------------------------------------------------------------- /slt/parquet/parquet-testing/list_columns.slt: -------------------------------------------------------------------------------- 1 | # Test for 'list_columns.parquet' 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | # query TT 7 | # DESCRIBE '../submodules/parquet-testing/data/list_columns.parquet' 8 | # ---- 9 | -------------------------------------------------------------------------------- /slt/parquet/parquet-testing/lz4_raw_compressed.slt: -------------------------------------------------------------------------------- 1 | # Test for 'lz4_raw_compressed.parquet' 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query TT 7 | DESCRIBE '../submodules/parquet-testing/data/lz4_raw_compressed.parquet' 8 | ---- 9 | c0 Int64 10 | c1 Binary 11 | v11 Float64 12 | 13 | query ITR 14 | SELECT c0, c1::TEXT, v11 FROM '../submodules/parquet-testing/data/lz4_raw_compressed.parquet' ORDER BY 1,2; 15 | ---- 16 | 1593604800 abc 42 17 | 1593604800 def 7.7 18 | 1593604801 abc 42.125 19 | 1593604801 def 7.7 20 | 21 | -------------------------------------------------------------------------------- /slt/parquet/parquet-testing/map_no_value.slt: -------------------------------------------------------------------------------- 1 | # Test for 'map_no_value.parquet' 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | # query TT 7 | # DESCRIBE '../submodules/parquet-testing/data/map_no_value.parquet' 8 | # ---- 9 | -------------------------------------------------------------------------------- /slt/parquet/parquet-testing/nan_in_stats.slt: -------------------------------------------------------------------------------- 1 | # Test for 'nan_in_stats.parquet' 2 | 3 | # Has NaNs 4 | # statement ok 5 | # SET verify_optimized_plan TO true; 6 | 7 | query TT 8 | DESCRIBE '../submodules/parquet-testing/data/nan_in_stats.parquet' 9 | ---- 10 | x Float64 11 | 12 | query R 13 | SELECT * FROM '../submodules/parquet-testing/data/nan_in_stats.parquet' ORDER BY 1; 14 | ---- 15 | 1 16 | NaN 17 | 18 | -------------------------------------------------------------------------------- /slt/parquet/parquet-testing/nation_dict-malformed.slt: -------------------------------------------------------------------------------- 1 | # Test for 'nation.dict-malformed.parquet' 2 | 3 | # TODO: Error source: query failed: chunk buffer not large enough to read from 4 | 5 | statement ok 6 | SET verify_optimized_plan TO true; 7 | 8 | query TT 9 | DESCRIBE '../submodules/parquet-testing/data/nation.dict-malformed.parquet' 10 | ---- 11 | nation_key Int32 12 | name Binary 13 | region_key Int32 14 | comment_col Binary 15 | -------------------------------------------------------------------------------- /slt/parquet/parquet-testing/nested_lists.snappy.slt: -------------------------------------------------------------------------------- 1 | # Test for 'nested_lists.snappy.parquet' 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | # query TT 7 | # DESCRIBE '../submodules/parquet-testing/data/nested_lists.snappy.parquet' 8 | # ---- 9 | -------------------------------------------------------------------------------- /slt/parquet/parquet-testing/nested_maps.snappy.slt: -------------------------------------------------------------------------------- 1 | # Test for 'nested_maps.snappy.parquet' 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | # query TT 7 | # DESCRIBE '../submodules/parquet-testing/data/nested_maps.snappy.parquet' 8 | # ---- 9 | -------------------------------------------------------------------------------- /slt/parquet/parquet-testing/nested_structs_rust.slt: -------------------------------------------------------------------------------- 1 | # Test for 'nested_structs.rust.parquet' 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | # query TT 7 | # DESCRIBE '../submodules/parquet-testing/data/nested_structs.rust.parquet' 8 | # ---- 9 | -------------------------------------------------------------------------------- /slt/parquet/parquet-testing/nonullable_impala.slt: -------------------------------------------------------------------------------- 1 | # Test for 'nonnullable.impala.parquet' 2 | 3 | # TODO Error source: query failed: Not yet implemented: Visit LIST with item 4 | 5 | statement ok 6 | SET verify_optimized_plan TO true; 7 | 8 | # query TT 9 | # DESCRIBE '../submodules/parquet-testing/data/nonnullable.impala.parquet' 10 | # ---- 11 | -------------------------------------------------------------------------------- /slt/parquet/parquet-testing/null_list.slt: -------------------------------------------------------------------------------- 1 | # Test for 'null_list.parquet' 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | # query TT 7 | # DESCRIBE '../submodules/parquet-testing/data/null_list.parquet' 8 | # ---- 9 | -------------------------------------------------------------------------------- /slt/parquet/parquet-testing/nullable_impala.slt: -------------------------------------------------------------------------------- 1 | # Test for 'nullable.impala.parquet' 2 | 3 | # TODO: Error source: query failed: Not yet implemented: Visit LIST with item 4 | 5 | statement ok 6 | SET verify_optimized_plan TO true; 7 | 8 | # query TT 9 | # DESCRIBE '../submodules/parquet-testing/data/nullable.impala.parquet' 10 | # ---- 11 | -------------------------------------------------------------------------------- /slt/parquet/parquet-testing/nulls_snappy.slt: -------------------------------------------------------------------------------- 1 | # Test for 'nulls.snappy.parquet' 2 | 3 | # TODO: Struct reader 4 | 5 | statement ok 6 | SET verify_optimized_plan TO true; 7 | 8 | query TT 9 | DESCRIBE '../submodules/parquet-testing/data/nulls.snappy.parquet' 10 | ---- 11 | b_struct Struct {b_c_int: Int32} 12 | -------------------------------------------------------------------------------- /slt/parquet/parquet-testing/old_list_structure.slt: -------------------------------------------------------------------------------- 1 | # Test for 'old_list_structure.parquet' 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | # query TT 7 | # DESCRIBE '../submodules/parquet-testing/data/old_list_structure.parquet' 8 | # ---- 9 | -------------------------------------------------------------------------------- /slt/parquet/parquet-testing/page_v2_empty_compressed.slt: -------------------------------------------------------------------------------- 1 | # Test for 'page_v2_empty_compressed.parquet' 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query TT 7 | DESCRIBE '../submodules/parquet-testing/data/page_v2_empty_compressed.parquet' 8 | ---- 9 | integer_column Int32 10 | 11 | query I 12 | SELECT * FROM '../submodules/parquet-testing/data/page_v2_empty_compressed.parquet'; 13 | ---- 14 | NULL 15 | NULL 16 | NULL 17 | NULL 18 | NULL 19 | NULL 20 | NULL 21 | NULL 22 | NULL 23 | NULL 24 | -------------------------------------------------------------------------------- /slt/parquet/parquet-testing/plain-dict-uncompressed-checksum.slt: -------------------------------------------------------------------------------- 1 | # Test for 'plain-dict-uncompressed-checksum.parquet' 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query TT 7 | DESCRIBE '../submodules/parquet-testing/data/plain-dict-uncompressed-checksum.parquet' 8 | ---- 9 | long_field Int64 10 | binary_field Binary 11 | 12 | query IT 13 | SELECT DISTINCT long_field, binary_field::TEXT 14 | FROM '../submodules/parquet-testing/data/plain-dict-uncompressed-checksum.parquet'; 15 | ---- 16 | 0 a655fd0e-9949-4059-bcae-fd6a002a4652 17 | -------------------------------------------------------------------------------- /slt/parquet/parquet-testing/repeated_no_annotation.slt: -------------------------------------------------------------------------------- 1 | # Test for 'repeated_no_annotation.parquet' 2 | 3 | # TODO: Struct 4 | 5 | statement ok 6 | SET verify_optimized_plan TO true; 7 | 8 | # query TT 9 | # DESCRIBE '../submodules/parquet-testing/data/repeated_no_annotation.parquet' 10 | # ---- 11 | -------------------------------------------------------------------------------- /slt/parquet/parquet-testing/repeated_primitive_no_list.slt: -------------------------------------------------------------------------------- 1 | # Test for 'repeated_primitive_no_list.parquet' 2 | 3 | # TODO: Struct 4 | 5 | statement ok 6 | SET verify_optimized_plan TO true; 7 | 8 | # query TT 9 | # DESCRIBE '../submodules/parquet-testing/data/repeated_primitive_no_list.parquet' 10 | # ---- 11 | -------------------------------------------------------------------------------- /slt/parquet/parquet-testing/single_nan.slt: -------------------------------------------------------------------------------- 1 | # Test for 'single_nan.parquet' 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query TT 7 | DESCRIBE '../submodules/parquet-testing/data/single_nan.parquet' 8 | ---- 9 | mycol Float64 10 | 11 | # A single _null_ NaN. 12 | query R 13 | SELECT * FROM '../submodules/parquet-testing/data/single_nan.parquet'; 14 | ---- 15 | NULL 16 | -------------------------------------------------------------------------------- /slt/parquet/parquet-testing/sort_columns.slt: -------------------------------------------------------------------------------- 1 | # Test for 'sort_columns.parquet' 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query TT 7 | DESCRIBE '../submodules/parquet-testing/data/sort_columns.parquet' 8 | ---- 9 | a Int64 10 | b Utf8 11 | 12 | query IT 13 | SELECT DISTINCT * FROM '../submodules/parquet-testing/data/sort_columns.parquet' ORDER BY 1; 14 | ---- 15 | 1 c 16 | 2 b 17 | NULL a 18 | 19 | -------------------------------------------------------------------------------- /slt/parquet/parquet-testing/unknown-logical-type.slt: -------------------------------------------------------------------------------- 1 | # Test for 'unknown-logical-type.parquet' 2 | 3 | # TODO 4 | # Error source: query failed: Could not parse metadata 5 | # Error source: bad data 6 | 7 | statement ok 8 | SET verify_optimized_plan TO true; 9 | 10 | # query TT 11 | # DESCRIBE '../submodules/parquet-testing/data/unknown-logical-type.parquet' 12 | # ---- 13 | -------------------------------------------------------------------------------- /slt/postgres/read_postgres.slt: -------------------------------------------------------------------------------- 1 | # read_postgres table func 2 | 3 | query II 4 | select * from read_postgres('postgres://glaredb:password@localhost:5433/glaredb_test', 'public', 't1'); 5 | ---- 6 | 23 45 test 7 | 8 | query II 9 | select b from read_postgres('postgres://glaredb:password@localhost:5433/glaredb_test', 'public', 't1'); 10 | ---- 11 | 45 12 | 13 | query II 14 | select read_postgres.b from read_postgres('postgres://glaredb:password@localhost:5433/glaredb_test', 'public', 't1'); 15 | ---- 16 | 45 17 | 18 | -------------------------------------------------------------------------------- /slt/s3/README.md: -------------------------------------------------------------------------------- 1 | # S3 Tests 2 | 3 | Tests that use real S3 buckets. 4 | 5 | Tests that use public buckets and don't require auth go in `public`. Tests that 6 | use private buckets and require auth go in `private`. 7 | 8 | ## Bucket Configuration 9 | 10 | - `glaredb-public`: `us-east-1`, public 11 | - `glaredb-private`: `us-east-1`, public 12 | - `glaredb-public-eu`: `eu-west-1`, private 13 | - `glaredb-private-eu`: `eu-west-1`, private 14 | 15 | TODO: CORS configuration. Definitely top-10 piece of technology 16 | -------------------------------------------------------------------------------- /slt/s3/private/csv_simple.slt: -------------------------------------------------------------------------------- 1 | # Tests using s3://glaredb-private/simple.csv 2 | 3 | query TT 4 | DESCRIBE read_csv('s3://glaredb-private/simple.csv', access_key_id='__AWS_KEY__', secret_access_key='__AWS_SECRET__'); 5 | ---- 6 | c1 Int64 7 | c2 Utf8 8 | c3 Float64 9 | 10 | query ITR 11 | SELECT * FROM read_csv('s3://glaredb-private/simple.csv', access_key_id='__AWS_KEY__', secret_access_key='__AWS_SECRET__'); 12 | ---- 13 | 1 mario 2.3 14 | 4 wario 5.6 15 | 7 peach 8.9 16 | -------------------------------------------------------------------------------- /slt/s3/public/csv_simple.slt: -------------------------------------------------------------------------------- 1 | # Tests using s3://glaredb-public/simple.csv 2 | 3 | query TT 4 | DESCRIBE read_csv('s3://glaredb-public/simple.csv'); 5 | ---- 6 | c1 Int64 7 | c2 Utf8 8 | c3 Float64 9 | 10 | query ITR 11 | SELECT * FROM read_csv('s3://glaredb-public/simple.csv'); 12 | ---- 13 | 1 mario 2.3 14 | 4 wario 5.6 15 | 7 peach 8.9 16 | -------------------------------------------------------------------------------- /slt/s3/public/iceberg_metadata.slt: -------------------------------------------------------------------------------- 1 | # iceberg_metadata function on s3 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query TT 7 | DESCRIBE SELECT * FROM iceberg_metadata('s3://glaredb-public/testdata/iceberg/wh/default.db/cities'); 8 | ---- 9 | format_version Int32 10 | table_uuid Utf8 11 | location Utf8 12 | 13 | query ITT 14 | SELECT * FROM iceberg_metadata('s3://glaredb-public/testdata/iceberg/wh/default.db/cities') 15 | ---- 16 | 2 3e7c486c-5e5a-426e-aed7-a022fe2b52b6 file://wh/default.db/cities 17 | -------------------------------------------------------------------------------- /slt/s3/public/parquet_metadata_eu.slt: -------------------------------------------------------------------------------- 1 | # Test that we can set the region properly 2 | 3 | query ????? 4 | SELECT * FROM parquet_rowgroup_metadata('s3://glaredb-public-eu/userdata0.parquet', region='eu-west-1') 5 | ---- 6 | https://glaredb-public-eu.s3.eu-west-1.amazonaws.com/userdata0.parquet 1000 13 112492 0 7 | -------------------------------------------------------------------------------- /slt/standard/aggregates/group_by_multiple_cols.slt: -------------------------------------------------------------------------------- 1 | # GROUP BY multiple columns 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | statement ok 7 | create temp table t1 (i bigint, j bigint, k bigint); 8 | 9 | statement ok 10 | insert into t1 values (1, 1, 2), (1, 2, 2), (1, 1, 2), (2, 1, 2), (1, 2, 4), (1, 2, 5); 11 | 12 | query IIIII 13 | select i, j, sum(k), count(*), count(k) from t1 group by i, j order by 1, 2; 14 | ---- 15 | 1 1 4 2 2 16 | 1 2 11 3 3 17 | 2 1 2 1 1 18 | -------------------------------------------------------------------------------- /slt/standard/aggregates/group_by_string.slt: -------------------------------------------------------------------------------- 1 | # GROUP BY string 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | statement ok 7 | create temp table t1 as 8 | select * from (values ('mario', 12), ('yoshi', 13), ('mario', 14)) as v(a, b); 9 | 10 | query TI 11 | select a, sum(b) from t1 group by a order by a; 12 | ---- 13 | mario 26 14 | yoshi 13 15 | -------------------------------------------------------------------------------- /slt/standard/attach/invalid_datasource.slt: -------------------------------------------------------------------------------- 1 | # Try to attach invalid data source 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | halt 7 | 8 | statement error Hybrid execution not enabled. Cannot verify attaching a 'snowbricks' data source 9 | attach snowbricks database as my_db; 10 | -------------------------------------------------------------------------------- /slt/standard/cast/binary.slt: -------------------------------------------------------------------------------- 1 | # Casts to binary 2 | 3 | query TT 4 | DESCRIBE SELECT 'foobar'::BINARY; 5 | ---- 6 | ?column? Binary 7 | 8 | query T 9 | SELECT 'foobar'::BINARY; 10 | ---- 11 | \x666f6f626172 12 | 13 | query T 14 | SELECT NULL::BINARY; 15 | ---- 16 | NULL 17 | -------------------------------------------------------------------------------- /slt/standard/cast/cast_overflow.slt: -------------------------------------------------------------------------------- 1 | # Test the errors we get back when attempting to cast ints that would lead to an 2 | # overflow. 3 | 4 | statement ok 5 | SET verify_optimized_plan TO true; 6 | 7 | # Sanity check 8 | statement ok 9 | SELECT 127::TINYINT; 10 | 11 | statement error Failed to cast value '128' from Int32 to Int8 12 | SELECT 128::TINYINT; 13 | 14 | statement error Failed to cast value '-129' from Int32 to Int8 15 | SELECT (-129)::TINYINT; 16 | 17 | statement error Failed to cast value '2147483648' from Int64 to Int32 18 | SELECT 2147483648::INT; 19 | -------------------------------------------------------------------------------- /slt/standard/cast/f16.slt: -------------------------------------------------------------------------------- 1 | # Cast to/from f16 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query TT 7 | DESCRIBE SELECT 2.0::HALF; 8 | ---- 9 | ?column? Float16 10 | 11 | query R 12 | SELECT 2::HALF; 13 | ---- 14 | 2 15 | 16 | query R 17 | SELECT 2.0::HALF; 18 | ---- 19 | 2 20 | 21 | query R 22 | SELECT '2.0'::HALF; 23 | ---- 24 | 2 25 | 26 | query R 27 | SELECT (2.0 + 1.0)::HALF; 28 | ---- 29 | 3 30 | 31 | -------------------------------------------------------------------------------- /slt/standard/cast/typed_string.slt: -------------------------------------------------------------------------------- 1 | # Type string casts 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query B 7 | select bool 'true'; 8 | ---- 9 | true 10 | 11 | query B 12 | select bool 't'; 13 | ---- 14 | true 15 | 16 | query I 17 | select int '48'; 18 | ---- 19 | 48 20 | 21 | query I 22 | select int '48' + 29; 23 | ---- 24 | 77 25 | 26 | query I 27 | select bigint '48' + 29; 28 | ---- 29 | 77 30 | 31 | # TODO: Unable to cast utf8 array to Utf8 32 | # query T 33 | # select text 'hello'; 34 | # ---- 35 | # hello 36 | -------------------------------------------------------------------------------- /slt/standard/create_schema/create_temp_schema.slt: -------------------------------------------------------------------------------- 1 | # CREATE SCHEMA inside temp catalog 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | statement ok 7 | create schema temp.my_schema1; 8 | 9 | statement error Duplicate schema name: 'my_schema1' 10 | create schema temp.my_schema1; 11 | 12 | statement ok 13 | create schema if not exists temp.my_schema1; 14 | 15 | statement ok 16 | create schema if not exists temp.my_schema2; 17 | 18 | statement error Duplicate schema name: 'my_schema2' 19 | create schema temp.my_schema2; 20 | -------------------------------------------------------------------------------- /slt/standard/create_schema/drop_schema_dependants.slt: -------------------------------------------------------------------------------- 1 | # DROP SCHEMA ... [CASCASE | RESTRICT] 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | statement ok 7 | create schema temp.s1; 8 | 9 | statement ok 10 | drop schema temp.s1 restrict; 11 | 12 | statement ok 13 | create schema temp.s1; 14 | 15 | statement error CASCADE not yet supported 16 | drop schema temp.s1 cascade; 17 | 18 | -------------------------------------------------------------------------------- /slt/standard/create_schema/drop_temp_schema.slt: -------------------------------------------------------------------------------- 1 | # DROP SCHEMA inside temp catalog 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | statement error Missing schema: my_schema 7 | drop schema temp.my_schema; 8 | 9 | statement ok 10 | drop schema if exists temp.my_schema; 11 | 12 | statement ok 13 | create schema temp.my_schema; 14 | 15 | statement ok 16 | drop schema temp.my_schema; 17 | 18 | statement ok 19 | create schema temp.my_schema; 20 | -------------------------------------------------------------------------------- /slt/standard/create_table/create_table.slt: -------------------------------------------------------------------------------- 1 | # Create table 2 | 3 | # Currently don't have a user catalog hooked up. This should be temp until 4 | # lakefront deployed. 5 | 6 | statement ok 7 | SET verify_optimized_plan TO true; 8 | 9 | statement error Persistent tables not yet supported, use CREATE TEMP TABLE 10 | CREATE TABLE t1 (a INT); 11 | -------------------------------------------------------------------------------- /slt/standard/create_table/drop_table.slt: -------------------------------------------------------------------------------- 1 | # DROP [TEMP] TABLE 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | statement ok 7 | create temp table t1 (a int); 8 | 9 | statement ok 10 | drop table t1; 11 | 12 | # TODO: Needs to error 13 | # statement error 14 | # drop table t1; 15 | -------------------------------------------------------------------------------- /slt/standard/cte/insert_cte.slt: -------------------------------------------------------------------------------- 1 | # INSERT with a source CTE 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | statement ok 7 | create temp table t1 (a int, b int); 8 | 9 | statement ok 10 | insert into t1 with cte1 as (select 1, 2) select * from cte1; 11 | 12 | query II 13 | select * from t1; 14 | ---- 15 | 1 2 16 | -------------------------------------------------------------------------------- /slt/standard/describe/describe_table.slt: -------------------------------------------------------------------------------- 1 | # DESCRIBE 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | statement ok 7 | create temp table t1 (a int, b decimal(18, 9), c text); 8 | 9 | query TT 10 | describe t1; 11 | ---- 12 | a Int32 13 | b Decimal64(18,9) 14 | c Utf8 15 | 16 | statement ok 17 | create temp table "a.b.c" (d text, e float, f bigint); 18 | 19 | query TT 20 | describe "a.b.c" 21 | ---- 22 | d Utf8 23 | e Float32 24 | f Int64 25 | -------------------------------------------------------------------------------- /slt/standard/discard.slt: -------------------------------------------------------------------------------- 1 | # Placeholder for DISCARD tests 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | statement error 7 | DISCARD METADATA; 8 | -------------------------------------------------------------------------------- /slt/standard/filter/duplicate_conditions.slt: -------------------------------------------------------------------------------- 1 | # Duplicated conditions in where clause 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | statement ok 7 | CREATE TEMP TABLE t1 (x INT); 8 | 9 | statement ok 10 | INSERT INTO t1 VALUES (1); 11 | 12 | query I 13 | SELECT * 14 | FROM t1 15 | WHERE x = 1 16 | OR x = 1 17 | OR x = 1 18 | OR x = 1; 19 | ---- 20 | 1 21 | 22 | query I 23 | SELECT * 24 | FROM t1 25 | WHERE x = 1 26 | AND x = 1 27 | AND x = 1 28 | AND x = 1; 29 | ---- 30 | 1 31 | -------------------------------------------------------------------------------- /slt/standard/functions/aggregate/avg.slt: -------------------------------------------------------------------------------- 1 | # AVG 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query R 7 | select avg(1); 8 | ---- 9 | 1 10 | 11 | query R 12 | select avg(a) from (values (1), (2)) as v(a); 13 | ---- 14 | 1.5 15 | 16 | query R 17 | select avg(null::int); 18 | ---- 19 | NULL 20 | 21 | query R 22 | select avg(a) from (values (2.1), (4.8)) as v(a); 23 | ---- 24 | 3.45 25 | 26 | query R 27 | select avg(a) from (values ('1.34'::decimal(6,3)), ('3.42'::decimal(6,3))) as v(a); 28 | ---- 29 | 2.38 30 | -------------------------------------------------------------------------------- /slt/standard/functions/aggregate/corr.slt: -------------------------------------------------------------------------------- 1 | # CORR function 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query R 7 | SELECT corr(1, 1); 8 | ---- 9 | NULL 10 | 11 | query RRR 12 | SELECT corr(1, NULL), corr(NULL, 1), corr(NULL, NULL); 13 | ---- 14 | NULL NULL NULL 15 | 16 | query B 17 | SELECT corr(a, b) > 0.65 AND corr(a, b) < 0.66 FROM (VALUES (1.0, 5.0), 18 | (3.0, 9.0), 19 | (4.0, 7.0)) v(a, b) 20 | ---- 21 | true 22 | -------------------------------------------------------------------------------- /slt/standard/functions/aggregate/first_last.slt: -------------------------------------------------------------------------------- 1 | # FIRST and LAST 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query I 7 | SELECT first(4); 8 | ---- 9 | 4 10 | 11 | query I 12 | SELECT first(a) FROM (SELECT * FROM (VALUES (4), (5), (6)) ORDER BY 1) AS t(a); 13 | ---- 14 | 4 15 | 16 | query I 17 | SELECT first(a) FROM (SELECT * FROM (VALUES (NULL), (5), (6)) ORDER BY 1) AS t(a); 18 | ---- 19 | 5 20 | 21 | -------------------------------------------------------------------------------- /slt/standard/functions/operators/bit_and_or_not.slt: -------------------------------------------------------------------------------- 1 | # Bitwise operator tests. 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query III 7 | SELECT 4 | 3, 0 | 0, 1 | 1; 8 | ---- 9 | 7 0 1 10 | 11 | query III 12 | SELECT 4 & 3, 0 & 0, 1 & 1; 13 | ---- 14 | 0 0 1 15 | 16 | query I 17 | SELECT 4 | NULL; 18 | ---- 19 | NULL 20 | 21 | query I 22 | SELECT 4 & NULL; 23 | ---- 24 | NULL 25 | 26 | query I 27 | SELECT ~1; 28 | ---- 29 | -2 30 | -------------------------------------------------------------------------------- /slt/standard/functions/operators/in.slt: -------------------------------------------------------------------------------- 1 | # IN (list) 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query B 7 | SELECT 2 IN (2, 3); 8 | ---- 9 | true 10 | 11 | query B 12 | SELECT 4 IN (2, 3); 13 | ---- 14 | false 15 | 16 | statement ok 17 | CREATE TEMP TABLE ints (i INT); 18 | 19 | statement ok 20 | INSERT INTO ints VALUES (4), (5), (6), (NULL); 21 | 22 | query IB rowsort 23 | SELECT i, i IN (2, 4, 6) FROM ints; 24 | ---- 25 | 4 true 26 | 5 false 27 | 6 true 28 | NULL NULL 29 | -------------------------------------------------------------------------------- /slt/standard/functions/qualified.slt: -------------------------------------------------------------------------------- 1 | # Ensure we can call functions partially and fully qualified. 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query R 7 | SELECT default.abs(-48); 8 | ---- 9 | 48 10 | 11 | query R 12 | SELECT system.default.abs(-48); 13 | ---- 14 | 48 15 | -------------------------------------------------------------------------------- /slt/standard/functions/scalar/ceil.slt: -------------------------------------------------------------------------------- 1 | # ceil functions 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query R 7 | SELECT ceil(1.2); 8 | ---- 9 | 2 10 | -------------------------------------------------------------------------------- /slt/standard/functions/scalar/datetime/date_trunc.slt: -------------------------------------------------------------------------------- 1 | # date_trunc function 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query ? 7 | SELECT date_trunc('second', epoch(1731462995)); 8 | ---- 9 | 2024-11-13 01:56:35 UTC 10 | 11 | query ? 12 | SELECT date_trunc('minute', epoch(1731462995)); 13 | ---- 14 | 2024-11-13 01:56:00 UTC 15 | 16 | query ? 17 | SELECT date_trunc('hour', epoch(1731462995)); 18 | ---- 19 | 2024-11-13 01:00:00 UTC 20 | 21 | query ? 22 | SELECT date_trunc('day', epoch(1731462995)); 23 | ---- 24 | 2024-11-13 00:00:00 UTC 25 | -------------------------------------------------------------------------------- /slt/standard/functions/scalar/datetime/epoch.slt: -------------------------------------------------------------------------------- 1 | # epoch functions 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query ? 7 | SELECT epoch(0); 8 | ---- 9 | 1970-01-01 00:00:00 UTC 10 | 11 | query ? 12 | SELECT epoch(1731462995); 13 | ---- 14 | 2024-11-13 01:56:35 UTC 15 | 16 | query ? 17 | SELECT epoch_ms(0); 18 | ---- 19 | 1970-01-01 00:00:00 UTC 20 | 21 | query ? 22 | SELECT epoch_ms(1731462995637); 23 | ---- 24 | 2024-11-13 01:56:35.637 UTC 25 | -------------------------------------------------------------------------------- /slt/standard/functions/scalar/decimal_arith_sub.slt: -------------------------------------------------------------------------------- 1 | # SUB on decimals 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query TT 7 | DESCRIBE SELECT 8 - '4.20'::DECIMAL 8 | ---- 9 | ?column? Decimal64(18,3) 10 | 11 | query R 12 | SELECT 8 - '4.20'::DECIMAL 13 | ---- 14 | 3.800 15 | 16 | query TT 17 | DESCRIBE SELECT 4.8 - '4.20'::DECIMAL(9,3); 18 | ---- 19 | ?column? Decimal64(10,3) 20 | 21 | query R 22 | SELECT 4.8 - '4.20'::DECIMAL(9,3); 23 | ---- 24 | 0.600 25 | -------------------------------------------------------------------------------- /slt/standard/functions/scalar/ends_with.slt: -------------------------------------------------------------------------------- 1 | # ends_with function 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query B 7 | select ends_with('alphabet', 'bet'); 8 | ---- 9 | true 10 | 11 | query B 12 | select ends_with('alphabet', 'dog'); 13 | ---- 14 | false 15 | 16 | -------------------------------------------------------------------------------- /slt/standard/functions/scalar/floor.slt: -------------------------------------------------------------------------------- 1 | # floor function 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query R 7 | SELECT floor(1.2); 8 | ---- 9 | 1 10 | -------------------------------------------------------------------------------- /slt/standard/functions/scalar/list_extract.slt: -------------------------------------------------------------------------------- 1 | # list_extract function 2 | 3 | query I 4 | select list_extract(list_value(8, 9), 1); 5 | ---- 6 | 8 7 | 8 | query I 9 | select list_extract([8, 9], 1); 10 | ---- 11 | 8 12 | 13 | query I 14 | select list_extract(list_value(8, 9), 3); 15 | ---- 16 | NULL 17 | 18 | # Syntactic sugar 19 | 20 | query R 21 | select [5.1, 2.5, 9.0][2]; 22 | ---- 23 | 2.5 24 | 25 | query R 26 | select [5.1, 2.5, 9.0][2] * 3; 27 | ---- 28 | 7.5 29 | 30 | -------------------------------------------------------------------------------- /slt/standard/functions/scalar/negate.slt: -------------------------------------------------------------------------------- 1 | # NEGATE (unary minus) 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query I 7 | select -4; 8 | ---- 9 | -4 10 | 11 | query I 12 | select -4 * -5; 13 | ---- 14 | 20 15 | 16 | query I 17 | select - 1234 % 12 % 3 * 1545 % 23; 18 | ---- 19 | -4 20 | 21 | query R 22 | select -4.3 * -5; 23 | ---- 24 | 21.5 25 | -------------------------------------------------------------------------------- /slt/standard/functions/scalar/not.slt: -------------------------------------------------------------------------------- 1 | # NOT 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query B 7 | SELECT not(true); 8 | ---- 9 | false 10 | 11 | query B 12 | SELECT not(false); 13 | ---- 14 | true 15 | 16 | query B 17 | SELECT not(NULL); 18 | ---- 19 | NULL 20 | 21 | query BB rowsort 22 | SELECT a, NOT a FROM (VALUES (true), (false), (NULL)) v(a); 23 | ---- 24 | NULL NULL 25 | false true 26 | true false 27 | -------------------------------------------------------------------------------- /slt/standard/functions/scalar/pi.slt: -------------------------------------------------------------------------------- 1 | # pi 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query R 7 | SELECT pi()::DECIMAL(10, 2); 8 | ---- 9 | 3.14 10 | 11 | -------------------------------------------------------------------------------- /slt/standard/functions/scalar/string/ascii.slt: -------------------------------------------------------------------------------- 1 | # ascii function 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | statement ok 7 | CREATE TEMP TABLE strings (v TEXT); 8 | 9 | statement ok 10 | INSERT INTO strings VALUES (''), ('a'), ('abc'), (NULL), ('😤🤝👀'); 11 | 12 | query TI 13 | SELECT v, ascii(v) FROM strings ORDER BY 1; 14 | ---- 15 | (empty) 0 16 | a 97 17 | abc 97 18 | 😤🤝👀 128548 19 | NULL NULL 20 | -------------------------------------------------------------------------------- /slt/standard/functions/scalar/string/ends_with.slt: -------------------------------------------------------------------------------- 1 | # ends_with function 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query B 7 | select ends_with('alphabet', 'bet'); 8 | ---- 9 | true 10 | 11 | query B 12 | select ends_with('alphabet', 'dog'); 13 | ---- 14 | false 15 | 16 | # Alias 17 | query B 18 | select suffix('alphabet', 'bet'); 19 | ---- 20 | true 21 | -------------------------------------------------------------------------------- /slt/standard/functions/scalar/string/lower.slt: -------------------------------------------------------------------------------- 1 | # LOWER 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query T 7 | SELECT lower('abc'); 8 | ---- 9 | abc 10 | 11 | query T 12 | SELECT lower('AbC'); 13 | ---- 14 | abc 15 | 16 | query T 17 | SELECT lower('ὈΔΥΣΣΕΎΣ'); 18 | ---- 19 | ὀδυσσεύς 20 | 21 | query T 22 | SELECT lower('农历新年') 23 | ---- 24 | 农历新年 25 | -------------------------------------------------------------------------------- /slt/standard/functions/scalar/string/reverse.slt: -------------------------------------------------------------------------------- 1 | # reverse 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query T 7 | SELECT reverse('hello'); 8 | ---- 9 | olleh 10 | 11 | query T 12 | SELECT reverse(''); 13 | ---- 14 | (empty) 15 | 16 | query T 17 | SELECT reverse('a'); 18 | ---- 19 | a 20 | 21 | query T 22 | SELECT reverse('😀🙂😊'); 23 | ---- 24 | 😊🙂😀 25 | 26 | query T 27 | SELECT reverse(a) FROM (VALUES ('hello'), (NULL), ('😀🙂😊')) v(a) ORDER BY 1; 28 | ---- 29 | olleh 30 | 😊🙂😀 31 | NULL 32 | -------------------------------------------------------------------------------- /slt/standard/functions/scalar/string/starts_with.slt: -------------------------------------------------------------------------------- 1 | # starts_with function 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query B 7 | select starts_with('alphabet', 'alph'); 8 | ---- 9 | true 10 | 11 | query B 12 | select starts_with('alphabet', 'dog'); 13 | ---- 14 | false 15 | 16 | # Syntactic sugar 17 | 18 | query B 19 | select 'alphabet' ^@ 'alph'; 20 | ---- 21 | true 22 | 23 | # Alias 24 | query B 25 | select prefix('alphabet', 'alph'); 26 | ---- 27 | true 28 | -------------------------------------------------------------------------------- /slt/standard/functions/scalar/string/upper.slt: -------------------------------------------------------------------------------- 1 | # UPPER 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query T 7 | SELECT upper('ABC'); 8 | ---- 9 | ABC 10 | 11 | query T 12 | SELECT upper('aBc'); 13 | ---- 14 | ABC 15 | 16 | query T 17 | SELECT upper('tschüß') 18 | ---- 19 | TSCHÜSS 20 | 21 | query T 22 | SELECT upper('农历新年'); 23 | ---- 24 | 农历新年 25 | -------------------------------------------------------------------------------- /slt/standard/functions/scalar/trunc.slt: -------------------------------------------------------------------------------- 1 | # trunc function 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query R 7 | SELECT trunc(1.9); 8 | ---- 9 | 1 10 | 11 | query R 12 | SELECT trunc(-1.9); 13 | ---- 14 | -1 15 | 16 | query R 17 | SELECT trunc(0.0); 18 | ---- 19 | 0 20 | 21 | query R 22 | SELECT trunc(NULL::FLOAT); 23 | ---- 24 | NULL 25 | -------------------------------------------------------------------------------- /slt/standard/functions/scalar/xor.slt: -------------------------------------------------------------------------------- 1 | # XOR tests 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query IIII 7 | select xor(0, 1), xor(0, 0), xor(1,1), xor(5, 3); 8 | ---- 9 | 1 0 0 6 10 | 11 | # Infix operator 12 | # Ugly, but it's what a postgres person would expect. 13 | query IIII 14 | select 0 # 1, 0 # 0, 1 # 1, 5 # 3; 15 | ---- 16 | 1 0 0 6 17 | 18 | # Alternative infix. 19 | query IIII 20 | SELECT 0 XOR 1, 0 XOR 0, 1 XOR 1, 5 XOR 3; 21 | ---- 22 | 1 0 0 6 23 | -------------------------------------------------------------------------------- /slt/standard/functions/star_is_special.slt: -------------------------------------------------------------------------------- 1 | # Ensure we're only replacing '*' for count. 2 | 3 | statement error Cannot use '*' as an argument to 'sum' 4 | SELECT sum(*) FROM (VALUES (4), (5), (NULL)) v(a); 5 | 6 | # TODO: Assert parser error, also make parser error nice. 7 | statement error 8 | SELECT sum(*, a) FROM (VALUES (4), (5), NULL) v(a); 9 | 10 | query I 11 | SELECT count(*) FROM (VALUES (4), (5), (NULL)) v(a); 12 | ---- 13 | 3 14 | -------------------------------------------------------------------------------- /slt/standard/functions/table/list_database.slt: -------------------------------------------------------------------------------- 1 | # list_databases system function 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query TT 7 | select * from list_databases() where database_name = 'temp'; 8 | ---- 9 | temp ReadWrite 10 | -------------------------------------------------------------------------------- /slt/standard/functions/table/list_tables.slt: -------------------------------------------------------------------------------- 1 | # list_tables function 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | statement ok 7 | CREATE TEMP TABLE hello (a INT); 8 | 9 | query T 10 | SELECT table_name FROM list_tables() WHERE table_name = 'hello'; 11 | ---- 12 | hello 13 | 14 | -------------------------------------------------------------------------------- /slt/standard/functions/table/list_views.slt: -------------------------------------------------------------------------------- 1 | # list_views function 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | statement ok 7 | CREATE TEMP VIEW hello AS SELECT 1; 8 | 9 | query T 10 | SELECT view_name FROM list_views() WHERE view_name = 'hello'; 11 | ---- 12 | hello 13 | -------------------------------------------------------------------------------- /slt/standard/functions/table/read_text_file_list.slt: -------------------------------------------------------------------------------- 1 | # `read_text` using a file list as argument. 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query T 7 | SELECT * FROM 8 | read_text([ 9 | '../testdata/text/glob_simple/aaa.txt', 10 | '../testdata/text/glob_simple/cbb.txt', 11 | ]) 12 | ORDER BY 1; 13 | ---- 14 | aaa 15 | cbb 16 | -------------------------------------------------------------------------------- /slt/standard/insert/insert_invalid.slt: -------------------------------------------------------------------------------- 1 | # INSERT INTO with invalid data 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | statement ok 7 | create temp table t1 (a int, b text); 8 | 9 | # Invalid number of columns 10 | 11 | statement error Invalid number of inputs. Expected 2, got 1 12 | insert into t1 values (1); 13 | 14 | statement error Invalid number of inputs. Expected 2, got 3 15 | insert into t1 values (1, 'hello', 3); 16 | 17 | statement error Invalid number of inputs. Expected 2, got 1 18 | insert into t1 select 2; 19 | 20 | -------------------------------------------------------------------------------- /slt/standard/join/system_join.slt: -------------------------------------------------------------------------------- 1 | # Join system functions 2 | # 3 | # Queries used in the dashboard 4 | 5 | statement ok 6 | SET verify_optimized_plan TO true; 7 | 8 | query I 9 | SELECT count(*) FROM list_databases() d LEFT JOIN list_tables() t ON d.database_name = t.database_name; 10 | ---- 11 | 2 12 | -------------------------------------------------------------------------------- /slt/standard/limit/global_limit.slt: -------------------------------------------------------------------------------- 1 | # Ensure limit is global by producing values from multiple partitions. 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | statement ok 7 | SET partitions TO 2; 8 | 9 | query I 10 | SELECT count(*) FROM ( 11 | SELECT * FROM 12 | generate_series(1, 3) a(a), 13 | generate_series(1, 3) b(b), 14 | generate_series(1, 3) c(c), 15 | generate_series(1, 3) d(d) 16 | GROUP BY a,b,c,d 17 | LIMIT 2 18 | ); 19 | ---- 20 | 2 21 | -------------------------------------------------------------------------------- /slt/standard/limit/limit_union.slt: -------------------------------------------------------------------------------- 1 | # LIMIT with union 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query I 7 | SELECT count(*) FROM ( 8 | SELECT * FROM generate_series(1, 3) UNION SELECT * FROM generate_series(4, 7) LIMIT 4 9 | ) 10 | ---- 11 | 4 12 | -------------------------------------------------------------------------------- /slt/standard/list/create_list_larger_than_batch_size.slt: -------------------------------------------------------------------------------- 1 | # Creates a list array whose underlying buffer exceeds the batch size. 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | halt 7 | 8 | statement ok 9 | SET batch_size TO 4; 10 | 11 | query ? 12 | SELECT [a,b,c] FROM (VALUES (2, 3, 4)) v(a,b,c), generate_series(1, 5); 13 | ---- 14 | -------------------------------------------------------------------------------- /slt/standard/order/basic.slt: -------------------------------------------------------------------------------- 1 | # ORDER BY 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query T 7 | select * from (values ('a'), ('c'), ('b')) order by column1; 8 | ---- 9 | a 10 | b 11 | c 12 | 13 | query T 14 | select * from (values ('a'), ('c'), ('b')) order by column1 desc; 15 | ---- 16 | c 17 | b 18 | a 19 | 20 | query T 21 | select c2 from (values (1, 'a'), (2, 'c'), (3, 'b')) as t(c1, c2) order by c1; 22 | ---- 23 | a 24 | c 25 | b 26 | 27 | -------------------------------------------------------------------------------- /slt/standard/order/order_by_large.slt: -------------------------------------------------------------------------------- 1 | # ORDER BY large number of input rows. 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query T 7 | SELECT a::TEXT AS s FROM generate_series(1, 99999) g(a) ORDER BY s LIMIT 10; 8 | ---- 9 | 1 10 | 10 11 | 100 12 | 1000 13 | 10000 14 | 10001 15 | 10002 16 | 10003 17 | 10004 18 | 10005 19 | -------------------------------------------------------------------------------- /slt/standard/order/order_by_ordinal.slt: -------------------------------------------------------------------------------- 1 | # ORDER BY ordinal 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | statement ok 7 | create temp table t1 (a text, b int); 8 | 9 | statement ok 10 | insert into t1 values ('a', 1), ('c', 2), ('c', 3); 11 | 12 | query T 13 | select a from t1 order by 1; 14 | ---- 15 | a 16 | c 17 | c 18 | 19 | query I 20 | select b + 2 from t1 order by 1; 21 | ---- 22 | 3 23 | 4 24 | 5 25 | 26 | query TI 27 | select a, b + 2 from t1 order by 2; 28 | ---- 29 | a 3 30 | c 4 31 | c 5 32 | -------------------------------------------------------------------------------- /slt/standard/order/order_union.slt: -------------------------------------------------------------------------------- 1 | # ORDER BY of UNION 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | # TODO: Need non-empty select list: https://github.com/glaredb/rayexec/blob/0ca90850d3533ee06f96dd97d914312d57e49d70/crates/rayexec_execution/src/logical/binder/bind_query/bind_setop.rs#L168-L169 7 | # query I 8 | # SELECT * FROM generate_series(1, 3) UNION SELECT * FROM generate_series(4, 7) ORDER BY 1; 9 | # ---- 10 | -------------------------------------------------------------------------------- /slt/standard/select/from_missing.slt: -------------------------------------------------------------------------------- 1 | # Assert error messages when trying to select from tables that don't exist. 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | statement error Missing table or view for reference 'table_does_not_exist' 7 | select * from table_does_not_exist 8 | 9 | statement error Missing table function for reference 'function_does_not_exist' 10 | select * from function_does_not_exist('my_arg'); 11 | -------------------------------------------------------------------------------- /slt/standard/select/from_values_no_parens.slt: -------------------------------------------------------------------------------- 1 | # Assert querying from VALUES without surrounding in parenthesis. 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query TI 7 | SELECT * FROM VALUES ('cat', 2), ('dog', 1) ORDER BY 1; 8 | ---- 9 | cat 2 10 | dog 1 11 | 12 | query T 13 | SELECT v.a FROM VALUES ('cat', 2), ('dog', 1) AS v(a, b) ORDER BY v.b; 14 | ---- 15 | dog 16 | cat 17 | -------------------------------------------------------------------------------- /slt/standard/show/show_databases.slt: -------------------------------------------------------------------------------- 1 | # SHOW DATABASES 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | # TODO: We probably want to prune out what we actually show. 7 | 8 | query T 9 | SHOW DATABASES; 10 | ---- 11 | system 12 | temp 13 | 14 | # statement ok 15 | # ATTACH memory DATABASE AS my_db; 16 | 17 | # query T 18 | # SHOW DATABASES; 19 | # ---- 20 | # my_db 21 | # system 22 | # temp 23 | -------------------------------------------------------------------------------- /slt/standard/show/show_schemas.slt: -------------------------------------------------------------------------------- 1 | # SHOW SCHEMAS 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query T 7 | SHOW SCHEMAS; 8 | ---- 9 | default 10 | information_schema 11 | pg_catalog 12 | temp 13 | 14 | statement ok 15 | CREATE SCHEMA temp.s1; 16 | 17 | query T 18 | SHOW SCHEMAS; 19 | ---- 20 | default 21 | information_schema 22 | pg_catalog 23 | s1 24 | temp 25 | 26 | -------------------------------------------------------------------------------- /slt/standard/show/show_tables.slt: -------------------------------------------------------------------------------- 1 | # SHOW TABLES 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | # No asserts yet, need to be able to filter out tables to make testing 7 | # consistent. 8 | 9 | statement ok 10 | SHOW TABLES 11 | -------------------------------------------------------------------------------- /slt/standard/subqueries/any_all.slt: -------------------------------------------------------------------------------- 1 | # ANY/ALL subqueries 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | statement ok 7 | CREATE TEMP TABLE ints (i INT); 8 | 9 | statement ok 10 | INSERT INTO ints VALUES (4), (5), (6), (NULL); 11 | 12 | query B 13 | SELECT 5 = ANY(SELECT * FROM ints); 14 | ---- 15 | true 16 | 17 | query B 18 | SELECT 9 = ANY(SELECT * FROM ints); 19 | ---- 20 | false 21 | 22 | -------------------------------------------------------------------------------- /slt/standard/subqueries/in.slt: -------------------------------------------------------------------------------- 1 | # IN subqueries 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | statement ok 7 | CREATE TEMP TABLE ints (i INT); 8 | 9 | statement ok 10 | INSERT INTO ints VALUES (4), (5), (6), (NULL); 11 | 12 | query B 13 | SELECT 4 IN (SELECT * FROM ints); 14 | ---- 15 | true 16 | 17 | query B 18 | SELECT 8 IN (SELECT * FROM ints); 19 | ---- 20 | false 21 | 22 | query B 23 | SELECT 4 IN (SELECT * FROM ints) FROM generate_series(1, 3); 24 | ---- 25 | true 26 | true 27 | true 28 | -------------------------------------------------------------------------------- /slt/standard/time/date_arith.slt: -------------------------------------------------------------------------------- 1 | # Date arithmetic 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query ? 7 | SELECT date '2001-09-28' + 7; 8 | ---- 9 | 2001-10-05 10 | 11 | query ? 12 | SELECT 7 + date '2001-09-28'; 13 | ---- 14 | 2001-10-05 15 | -------------------------------------------------------------------------------- /slt/standard/values/implicit_cast.slt: -------------------------------------------------------------------------------- 1 | # Implicit casting in VALUES to ensure every row has the same types. 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | query TT 7 | DESCRIBE SELECT * FROM (VALUES (4), (NULL)); 8 | ---- 9 | column1 Int32 10 | 11 | query I rowsort 12 | SELECT * FROM (VALUES (4), (NULL)); 13 | ---- 14 | 4 15 | NULL 16 | 17 | query TT 18 | DESCRIBE SELECT * FROM (VALUES (NULL), (4)); 19 | ---- 20 | column1 Int32 21 | 22 | 23 | query I rowsort 24 | SELECT * FROM (VALUES (NULL), (4)); 25 | ---- 26 | 4 27 | NULL 28 | -------------------------------------------------------------------------------- /slt/standard/values/num_columns.slt: -------------------------------------------------------------------------------- 1 | # Test different numbers of columns per row. 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | # TODO: Could have a Display impl for the tokens to make these sorts of messages 7 | # a bit cleaner. 8 | statement error Unexpected token 'RightParen'. Expected expression. 9 | SELECT * FROM (VALUES ()); 10 | 11 | statement error All rows in VALUES clause must have the same number of columns 12 | SELECT * FROM (VALUES (1), (2, 3)); 13 | -------------------------------------------------------------------------------- /slt/standard/vars/reset.slt: -------------------------------------------------------------------------------- 1 | # RESET 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | statement ok 7 | reset application_name; 8 | 9 | query T 10 | show application_name; 11 | ---- 12 | (empty) 13 | 14 | statement ok 15 | set application_name to 'test'; 16 | 17 | statement ok 18 | reset application_name; 19 | 20 | query T 21 | show application_name; 22 | ---- 23 | (empty) 24 | 25 | statement ok 26 | set application_name to 'test'; 27 | 28 | statement ok 29 | reset all; 30 | 31 | query T 32 | show application_name; 33 | ---- 34 | (empty) 35 | -------------------------------------------------------------------------------- /slt/standard/vars/set_batch_size.slt: -------------------------------------------------------------------------------- 1 | # Verify validation of batch size. 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | statement error Batch size cannot be less than 1 7 | SET batch_size TO 0; 8 | 9 | statement ok 10 | SET batch_size TO 1; 11 | 12 | statement error Batch size cannot be greater than 8192 13 | SET batch_size = 8193; 14 | 15 | statement ok 16 | SET batch_size = 8192; 17 | -------------------------------------------------------------------------------- /slt/standard/vars/set_partitions.slt: -------------------------------------------------------------------------------- 1 | # Verify validation of setting partitons. 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | statement error Partition count cannot be less than 1 7 | SET partitions TO 0; 8 | 9 | statement ok 10 | SET partitions TO 1; 11 | 12 | statement error Partition count cannot be greater than 512 13 | SET partitions TO 513; 14 | 15 | statement ok 16 | SET partitions TO 512; 17 | 18 | -------------------------------------------------------------------------------- /slt/standard/views/create_view.slt: -------------------------------------------------------------------------------- 1 | # Create view 2 | 3 | # Similar to tables, persistent views not yet supported. 4 | 5 | statement ok 6 | SET verify_optimized_plan TO true; 7 | 8 | statement error Persistent views not yet supported, use CREATE TEMP VIEW 9 | CREATE VIEW v AS SELECT 1; 10 | -------------------------------------------------------------------------------- /slt/standard/window/basic.slt: -------------------------------------------------------------------------------- 1 | # Basic WINDOW tests 2 | 3 | statement ok 4 | SET verify_optimized_plan TO true; 5 | 6 | halt 7 | 8 | query I 9 | SELECT sum(a) OVER () FROM (VALUES (1), (2), (3)) v(a); 10 | ---- 11 | 6 12 | 6 13 | 6 14 | -------------------------------------------------------------------------------- /slt/tpcds/q96.slt: -------------------------------------------------------------------------------- 1 | # Error source: query failed: Missing column for reference: time_dim.t_time_sk 2 | query TT 3 | DESCRIBE SELECT count(*) 4 | FROM store_sales , 5 | household_demographics, 6 | time_dim, 7 | store 8 | WHERE ss_sold_time_sk = time_dim.t_time_sk 9 | AND ss_hdemo_sk = household_demographics.hd_demo_sk 10 | AND ss_store_sk = s_store_sk 11 | AND time_dim.t_hour = 20 12 | AND time_dim.t_minute >= 30 13 | AND household_demographics.hd_dep_count = 7 14 | AND store.s_store_name = 'ese' 15 | ORDER BY count(*) 16 | LIMIT 100; 17 | ---- 18 | -------------------------------------------------------------------------------- /slt/tpch_gen/linitem.slt: -------------------------------------------------------------------------------- 1 | # Lineitem sanity checks 2 | 3 | query ?? 4 | SELECT min(l_shipdate), max(l_shipdate) FROM tpch_gen.lineitem(1); 5 | ---- 6 | 1992-01-02 1998-12-01 7 | 8 | query ?? 9 | SELECT min(l_commitdate), max(l_commitdate) FROM tpch_gen.lineitem(1); 10 | ---- 11 | 1992-01-31 1998-10-31 12 | 13 | query ?? 14 | SELECT min(l_receiptdate), max(l_receiptdate) FROM tpch_gen.lineitem(1); 15 | ---- 16 | 1992-01-04 1998-12-31 17 | -------------------------------------------------------------------------------- /slt/tpch_gen/orders.slt: -------------------------------------------------------------------------------- 1 | # Orders sanity checks 2 | 3 | query ?? 4 | SELECT min(o_orderdate), max(o_orderdate) FROM tpch_gen.orders(1); 5 | ---- 6 | 1992-01-01 1998-08-02 7 | -------------------------------------------------------------------------------- /slt/unity_catalog/attach.slt: -------------------------------------------------------------------------------- 1 | # ATTACH unity catalog 2 | 3 | statement ok 4 | ATTACH unity DATABASE AS my_unity (endpoint 'http://localhost:8080', catalog 'unity'); 5 | 6 | query T 7 | SHOW CATALOGS; 8 | ---- 9 | my_unity 10 | system 11 | temp 12 | 13 | -------------------------------------------------------------------------------- /slt/unity_catalog/list_schemas.slt: -------------------------------------------------------------------------------- 1 | # unity_list_schemas function 2 | 3 | query TT 4 | DESCRIBE unity_list_schemas('http://localhost:8080', 'unity'); 5 | ---- 6 | name Utf8 7 | catalog_name Utf8 8 | comment Utf8 9 | 10 | query TTT 11 | SELECT * FROM unity_list_schemas('http://localhost:8080', 'unity'); 12 | ---- 13 | default unity Default schema 14 | -------------------------------------------------------------------------------- /submodules/README.md: -------------------------------------------------------------------------------- 1 | # Submodules 2 | 3 | ## Arrow 4 | 5 | The upstream arrow project. Used to generate Rust code from the arrow 6 | flatbuffers definitions. 7 | -------------------------------------------------------------------------------- /testdata/cli/create_view_v1.sql: -------------------------------------------------------------------------------- 1 | CREATE TEMP VIEW v1 2 | AS SELECT * FROM generate_series(1, 5) g(a); 3 | -------------------------------------------------------------------------------- /testdata/cli/query_view_v1.sql: -------------------------------------------------------------------------------- 1 | SELECT * FROM v1; 2 | -------------------------------------------------------------------------------- /testdata/csv/all_null_with_header.csv: -------------------------------------------------------------------------------- 1 | a,b,c,d,e,f,g,h 2 | ,,,,,,, 3 | ,,,,,,, 4 | ,,,,,,, 5 | ,,,,,,, 6 | -------------------------------------------------------------------------------- /testdata/csv/boolean_values.csv: -------------------------------------------------------------------------------- 1 | name,val1,val2,val3,val4 2 | row1,true,false,true,false 3 | row2,TRUE,FALSE,True,False 4 | row3,t,f,T,F 5 | row4,1,0,yes,no 6 | -------------------------------------------------------------------------------- /testdata/csv/dup_header_name.csv: -------------------------------------------------------------------------------- 1 | a,b,a,c,c 2 | 123,mario,,4,8 3 | 456,luigi,cat,5, 4 | 678,peach,goose,,9 5 | -------------------------------------------------------------------------------- /testdata/csv/empty_first_line.csv: -------------------------------------------------------------------------------- 1 | 2 | dog,cat,goose,4 3 | mario,wario,peach,5 4 | ohio,texas,alaska,8 5 | -------------------------------------------------------------------------------- /testdata/csv/empty_header_names.csv: -------------------------------------------------------------------------------- 1 | ,, 2 | 1,mario,4 3 | 2,peach,8 4 | 3,luigi,12 5 | -------------------------------------------------------------------------------- /testdata/csv/empty_middle_line.csv: -------------------------------------------------------------------------------- 1 | dog,cat,goose,4 2 | mario,wario,peach,5 3 | 4 | ohio,texas,alaska,8 5 | maine,montana,alaska,12 6 | -------------------------------------------------------------------------------- /testdata/csv/escaped_quotes.csv: -------------------------------------------------------------------------------- 1 | "text with ""quotes""",more text,text 2 | "text with comma, here","another ""quote""",final 3 | -------------------------------------------------------------------------------- /testdata/csv/glob_num_cols/2_cols.csv: -------------------------------------------------------------------------------- 1 | food,count 2 | pasta,4 3 | apples,3 4 | salsa,2 5 | charcuterie board,8 6 | -------------------------------------------------------------------------------- /testdata/csv/glob_num_cols/3_cols.csv: -------------------------------------------------------------------------------- 1 | movie,happiness,times_watched 2 | Star Wars,8,16 3 | The Empire Strikes Back,7,8 4 | Return of the Jedi,8,10 5 | The Rise of Skywalker,1,2 6 | -------------------------------------------------------------------------------- /testdata/csv/glob_numbers/README.md: -------------------------------------------------------------------------------- 1 | # Glob numbers 2 | 3 | A set of csv files and nested csv files each containing 100 numbers. E.g. file 4 | '200.csv' will contain 200 through 299. 5 | 6 | This file is also significant -- it allows us to ensure we can match by file 7 | extension. 8 | 9 | -------------------------------------------------------------------------------- /testdata/csv/glob_numbers/deep/my_favorite_numbers.csv: -------------------------------------------------------------------------------- 1 | numbers 2 | 1 3 | 2 4 | 4 5 | 8 6 | 16 7 | 32 8 | 64 9 | 128 10 | 256 11 | 512 12 | 1024 13 | 2048 14 | 4096 15 | -------------------------------------------------------------------------------- /testdata/csv/mixed_type_pipe_delim.csv: -------------------------------------------------------------------------------- 1 | cat|goose|4 2 | "dog"|5|cow 3 | horse||rooster 4 | -------------------------------------------------------------------------------- /testdata/csv/semicolon_delim.csv: -------------------------------------------------------------------------------- 1 | apple;1;3.14 2 | banana;2;6.28 3 | cherry;3;9.42 4 | -------------------------------------------------------------------------------- /testdata/csv/simple.csv: -------------------------------------------------------------------------------- 1 | c1,c2,c3 2 | 1,mario,2.3 3 | 4,wario,5.6 4 | 7,peach,8.9 5 | -------------------------------------------------------------------------------- /testdata/csv/single_quotes.csv: -------------------------------------------------------------------------------- 1 | 'text with, comma',some text,more text 2 | text1,text2,text3 3 | -------------------------------------------------------------------------------- /testdata/csv/special_float_values.csv: -------------------------------------------------------------------------------- 1 | row,name,value 2 | 1,normal,123.456 3 | 2,inf,Inf 4 | 3,minus_inf,-Inf 5 | 4,nan,NaN 6 | -------------------------------------------------------------------------------- /testdata/csv/string_lit_int.csv: -------------------------------------------------------------------------------- 1 | 123,cat,dog 2 | 456,goose,moose 3 | "789",rooster,gooster 4 | -------------------------------------------------------------------------------- /testdata/csv/tab_delim.csv: -------------------------------------------------------------------------------- 1 | grape 10 2.5 2 | orange 20 3.5 3 | pear 30 4.5 4 | -------------------------------------------------------------------------------- /testdata/csv/tpch_small/region.csv: -------------------------------------------------------------------------------- 1 | r_regionkey,r_name,r_comment 2 | 0,AFRICA,ar packages. regular excuses among the ironic requests cajole fluffily blithely final requests. furiously express p 3 | 1,AMERICA,s are. furiously even pinto bea 4 | 2,ASIA,"c, special dependencies around " 5 | 3,EUROPE,e dolphins are furiously about the carefully 6 | 4,MIDDLE EAST, foxes boost furiously along the carefully dogged tithes. slyly regular orbits according to the special epit 7 | -------------------------------------------------------------------------------- /testdata/csv/tsv_small.tsv: -------------------------------------------------------------------------------- 1 | benchmark_identifier count time_millis 2 | bench/micro/functions/trim_large_inputs_small_patterns.bench 1 63 3 | bench/micro/functions/trim_large_inputs_small_patterns.bench 2 59 4 | bench/micro/functions/trim_large_inputs_small_patterns.bench 3 54 5 | -------------------------------------------------------------------------------- /testdata/csv/whitespace_handling.csv: -------------------------------------------------------------------------------- 1 | apple , 1 , 3.14 2 | banana, 2, 6.28 3 | cherry ,3 ,9.42 4 | -------------------------------------------------------------------------------- /testdata/delta/table1/_delta_log/00000000000000000001.json: -------------------------------------------------------------------------------- 1 | {"add":{"path":"part-00001-15c5f284-3ffd-40a3-8618-0065cac3840a-c000.snappy.parquet","size":761,"partitionValues":{},"modificationTime":1689710090691,"dataChange":true,"stats":"{\"numRecords\":1,\"minValues\":{\"a\":1,\"b\":\"hello\"},\"maxValues\":{\"a\":1,\"b\":\"hello\"},\"nullCount\":{\"b\":0,\"a\":0}}","tags":null}} 2 | {"commitInfo":{"timestamp":1689710090691,"operation":"WRITE","operationParameters":{"mode":"Append"},"clientVersion":"delta-rs.0.13.0"}} -------------------------------------------------------------------------------- /testdata/delta/table1/_delta_log/00000000000000000002.json: -------------------------------------------------------------------------------- 1 | {"add":{"path":"part-00001-0b80d78e-bee2-4230-917d-96a93ff4ea47-c000.snappy.parquet","size":761,"partitionValues":{},"modificationTime":1689710097314,"dataChange":true,"stats":"{\"numRecords\":1,\"minValues\":{\"b\":\"world\",\"a\":2},\"maxValues\":{\"b\":\"world\",\"a\":2},\"nullCount\":{\"b\":0,\"a\":0}}","tags":null}} 2 | {"commitInfo":{"timestamp":1689710097314,"operation":"WRITE","operationParameters":{"mode":"Append"},"clientVersion":"delta-rs.0.13.0"}} -------------------------------------------------------------------------------- /testdata/delta/table1/part-00001-0b80d78e-bee2-4230-917d-96a93ff4ea47-c000.snappy.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/delta/table1/part-00001-0b80d78e-bee2-4230-917d-96a93ff4ea47-c000.snappy.parquet -------------------------------------------------------------------------------- /testdata/delta/table1/part-00001-15c5f284-3ffd-40a3-8618-0065cac3840a-c000.snappy.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/delta/table1/part-00001-15c5f284-3ffd-40a3-8618-0065cac3840a-c000.snappy.parquet -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_partitioned/data/l_shipmode=AIR/.00000-5-4ab0cc8a-b1c5-4c5c-8ca9-0dee868f96bc-00001.parquet.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v1/lineitem_partitioned/data/l_shipmode=AIR/.00000-5-4ab0cc8a-b1c5-4c5c-8ca9-0dee868f96bc-00001.parquet.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_partitioned/data/l_shipmode=AIR/00000-5-4ab0cc8a-b1c5-4c5c-8ca9-0dee868f96bc-00001.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v1/lineitem_partitioned/data/l_shipmode=AIR/00000-5-4ab0cc8a-b1c5-4c5c-8ca9-0dee868f96bc-00001.parquet -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_partitioned/data/l_shipmode=FOB/.00000-5-4ab0cc8a-b1c5-4c5c-8ca9-0dee868f96bc-00007.parquet.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v1/lineitem_partitioned/data/l_shipmode=FOB/.00000-5-4ab0cc8a-b1c5-4c5c-8ca9-0dee868f96bc-00007.parquet.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_partitioned/data/l_shipmode=FOB/00000-5-4ab0cc8a-b1c5-4c5c-8ca9-0dee868f96bc-00007.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v1/lineitem_partitioned/data/l_shipmode=FOB/00000-5-4ab0cc8a-b1c5-4c5c-8ca9-0dee868f96bc-00007.parquet -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_partitioned/data/l_shipmode=MAIL/.00000-5-4ab0cc8a-b1c5-4c5c-8ca9-0dee868f96bc-00002.parquet.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v1/lineitem_partitioned/data/l_shipmode=MAIL/.00000-5-4ab0cc8a-b1c5-4c5c-8ca9-0dee868f96bc-00002.parquet.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_partitioned/data/l_shipmode=MAIL/00000-5-4ab0cc8a-b1c5-4c5c-8ca9-0dee868f96bc-00002.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v1/lineitem_partitioned/data/l_shipmode=MAIL/00000-5-4ab0cc8a-b1c5-4c5c-8ca9-0dee868f96bc-00002.parquet -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_partitioned/data/l_shipmode=RAIL/.00000-5-4ab0cc8a-b1c5-4c5c-8ca9-0dee868f96bc-00003.parquet.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v1/lineitem_partitioned/data/l_shipmode=RAIL/.00000-5-4ab0cc8a-b1c5-4c5c-8ca9-0dee868f96bc-00003.parquet.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_partitioned/data/l_shipmode=RAIL/00000-5-4ab0cc8a-b1c5-4c5c-8ca9-0dee868f96bc-00003.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v1/lineitem_partitioned/data/l_shipmode=RAIL/00000-5-4ab0cc8a-b1c5-4c5c-8ca9-0dee868f96bc-00003.parquet -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_partitioned/data/l_shipmode=REG+AIR/.00000-5-4ab0cc8a-b1c5-4c5c-8ca9-0dee868f96bc-00006.parquet.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v1/lineitem_partitioned/data/l_shipmode=REG+AIR/.00000-5-4ab0cc8a-b1c5-4c5c-8ca9-0dee868f96bc-00006.parquet.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_partitioned/data/l_shipmode=REG+AIR/00000-5-4ab0cc8a-b1c5-4c5c-8ca9-0dee868f96bc-00006.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v1/lineitem_partitioned/data/l_shipmode=REG+AIR/00000-5-4ab0cc8a-b1c5-4c5c-8ca9-0dee868f96bc-00006.parquet -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_partitioned/data/l_shipmode=SHIP/.00000-5-4ab0cc8a-b1c5-4c5c-8ca9-0dee868f96bc-00004.parquet.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v1/lineitem_partitioned/data/l_shipmode=SHIP/.00000-5-4ab0cc8a-b1c5-4c5c-8ca9-0dee868f96bc-00004.parquet.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_partitioned/data/l_shipmode=SHIP/00000-5-4ab0cc8a-b1c5-4c5c-8ca9-0dee868f96bc-00004.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v1/lineitem_partitioned/data/l_shipmode=SHIP/00000-5-4ab0cc8a-b1c5-4c5c-8ca9-0dee868f96bc-00004.parquet -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_partitioned/data/l_shipmode=TRUCK/.00000-5-4ab0cc8a-b1c5-4c5c-8ca9-0dee868f96bc-00005.parquet.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v1/lineitem_partitioned/data/l_shipmode=TRUCK/.00000-5-4ab0cc8a-b1c5-4c5c-8ca9-0dee868f96bc-00005.parquet.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_partitioned/data/l_shipmode=TRUCK/00000-5-4ab0cc8a-b1c5-4c5c-8ca9-0dee868f96bc-00005.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v1/lineitem_partitioned/data/l_shipmode=TRUCK/00000-5-4ab0cc8a-b1c5-4c5c-8ca9-0dee868f96bc-00005.parquet -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_partitioned/metadata/.157b2954-35a0-4a5d-946e-76723d3f153c-m0.avro.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v1/lineitem_partitioned/metadata/.157b2954-35a0-4a5d-946e-76723d3f153c-m0.avro.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_partitioned/metadata/.snap-7556422720324607284-1-157b2954-35a0-4a5d-946e-76723d3f153c.avro.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v1/lineitem_partitioned/metadata/.snap-7556422720324607284-1-157b2954-35a0-4a5d-946e-76723d3f153c.avro.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_partitioned/metadata/.v1.metadata.json.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v1/lineitem_partitioned/metadata/.v1.metadata.json.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_partitioned/metadata/.version-hint.text.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v1/lineitem_partitioned/metadata/.version-hint.text.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_partitioned/metadata/157b2954-35a0-4a5d-946e-76723d3f153c-m0.avro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v1/lineitem_partitioned/metadata/157b2954-35a0-4a5d-946e-76723d3f153c-m0.avro -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_partitioned/metadata/snap-7556422720324607284-1-157b2954-35a0-4a5d-946e-76723d3f153c.avro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v1/lineitem_partitioned/metadata/snap-7556422720324607284-1-157b2954-35a0-4a5d-946e-76723d3f153c.avro -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_partitioned/metadata/version-hint.text: -------------------------------------------------------------------------------- 1 | 1 -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_simple/data/.00000-1-f1cb7836-febe-45ef-b786-56a1ff4aefc1-00001.parquet.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v1/lineitem_simple/data/.00000-1-f1cb7836-febe-45ef-b786-56a1ff4aefc1-00001.parquet.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_simple/data/00000-1-f1cb7836-febe-45ef-b786-56a1ff4aefc1-00001.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v1/lineitem_simple/data/00000-1-f1cb7836-febe-45ef-b786-56a1ff4aefc1-00001.parquet -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_simple/metadata/.bb767407-7be5-4a32-9b5e-63a8ed6d8f2a-m0.avro.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v1/lineitem_simple/metadata/.bb767407-7be5-4a32-9b5e-63a8ed6d8f2a-m0.avro.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_simple/metadata/.snap-924970080087887963-1-bb767407-7be5-4a32-9b5e-63a8ed6d8f2a.avro.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v1/lineitem_simple/metadata/.snap-924970080087887963-1-bb767407-7be5-4a32-9b5e-63a8ed6d8f2a.avro.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_simple/metadata/.v1.metadata.json.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v1/lineitem_simple/metadata/.v1.metadata.json.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_simple/metadata/.version-hint.text.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v1/lineitem_simple/metadata/.version-hint.text.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_simple/metadata/bb767407-7be5-4a32-9b5e-63a8ed6d8f2a-m0.avro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v1/lineitem_simple/metadata/bb767407-7be5-4a32-9b5e-63a8ed6d8f2a-m0.avro -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_simple/metadata/snap-924970080087887963-1-bb767407-7be5-4a32-9b5e-63a8ed6d8f2a.avro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v1/lineitem_simple/metadata/snap-924970080087887963-1-bb767407-7be5-4a32-9b5e-63a8ed6d8f2a.avro -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_simple/metadata/version-hint.text: -------------------------------------------------------------------------------- 1 | 1 -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_versioned/data/.00000-6-b94b5d8e-1a35-4fde-8b1a-b5c766e3cba4-00001.parquet.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v1/lineitem_versioned/data/.00000-6-b94b5d8e-1a35-4fde-8b1a-b5c766e3cba4-00001.parquet.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_versioned/data/.00000-7-8fd3874c-9aca-444c-a2b1-77840d9c3030-00001.parquet.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v1/lineitem_versioned/data/.00000-7-8fd3874c-9aca-444c-a2b1-77840d9c3030-00001.parquet.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_versioned/data/00000-6-b94b5d8e-1a35-4fde-8b1a-b5c766e3cba4-00001.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v1/lineitem_versioned/data/00000-6-b94b5d8e-1a35-4fde-8b1a-b5c766e3cba4-00001.parquet -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_versioned/data/00000-7-8fd3874c-9aca-444c-a2b1-77840d9c3030-00001.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v1/lineitem_versioned/data/00000-7-8fd3874c-9aca-444c-a2b1-77840d9c3030-00001.parquet -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_versioned/metadata/.0ee4d240-0ce1-4762-9fcd-3e66602c4df4-m0.avro.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v1/lineitem_versioned/metadata/.0ee4d240-0ce1-4762-9fcd-3e66602c4df4-m0.avro.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_versioned/metadata/.4e566a81-8be3-455d-a275-e116c633931e-m0.avro.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v1/lineitem_versioned/metadata/.4e566a81-8be3-455d-a275-e116c633931e-m0.avro.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_versioned/metadata/.snap-5059858397763322359-1-4e566a81-8be3-455d-a275-e116c633931e.avro.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v1/lineitem_versioned/metadata/.snap-5059858397763322359-1-4e566a81-8be3-455d-a275-e116c633931e.avro.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_versioned/metadata/.snap-7891046191617315941-1-0ee4d240-0ce1-4762-9fcd-3e66602c4df4.avro.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v1/lineitem_versioned/metadata/.snap-7891046191617315941-1-0ee4d240-0ce1-4762-9fcd-3e66602c4df4.avro.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_versioned/metadata/.v1.metadata.json.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v1/lineitem_versioned/metadata/.v1.metadata.json.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_versioned/metadata/.v2.metadata.json.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v1/lineitem_versioned/metadata/.v2.metadata.json.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_versioned/metadata/.version-hint.text.crc: -------------------------------------------------------------------------------- 1 | crcվ -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_versioned/metadata/0ee4d240-0ce1-4762-9fcd-3e66602c4df4-m0.avro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v1/lineitem_versioned/metadata/0ee4d240-0ce1-4762-9fcd-3e66602c4df4-m0.avro -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_versioned/metadata/4e566a81-8be3-455d-a275-e116c633931e-m0.avro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v1/lineitem_versioned/metadata/4e566a81-8be3-455d-a275-e116c633931e-m0.avro -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_versioned/metadata/snap-5059858397763322359-1-4e566a81-8be3-455d-a275-e116c633931e.avro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v1/lineitem_versioned/metadata/snap-5059858397763322359-1-4e566a81-8be3-455d-a275-e116c633931e.avro -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_versioned/metadata/snap-7891046191617315941-1-0ee4d240-0ce1-4762-9fcd-3e66602c4df4.avro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v1/lineitem_versioned/metadata/snap-7891046191617315941-1-0ee4d240-0ce1-4762-9fcd-3e66602c4df4.avro -------------------------------------------------------------------------------- /testdata/iceberg/tables-v1/lineitem_versioned/metadata/version-hint.text: -------------------------------------------------------------------------------- 1 | 2 -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_partitioned/data/l_shipmode=AIR/.00000-5-ee7de033-60a3-43ac-98bd-eacd7a2d8b31-00001.parquet.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v2/lineitem_partitioned/data/l_shipmode=AIR/.00000-5-ee7de033-60a3-43ac-98bd-eacd7a2d8b31-00001.parquet.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_partitioned/data/l_shipmode=AIR/00000-5-ee7de033-60a3-43ac-98bd-eacd7a2d8b31-00001.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v2/lineitem_partitioned/data/l_shipmode=AIR/00000-5-ee7de033-60a3-43ac-98bd-eacd7a2d8b31-00001.parquet -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_partitioned/data/l_shipmode=FOB/.00000-5-ee7de033-60a3-43ac-98bd-eacd7a2d8b31-00007.parquet.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v2/lineitem_partitioned/data/l_shipmode=FOB/.00000-5-ee7de033-60a3-43ac-98bd-eacd7a2d8b31-00007.parquet.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_partitioned/data/l_shipmode=FOB/00000-5-ee7de033-60a3-43ac-98bd-eacd7a2d8b31-00007.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v2/lineitem_partitioned/data/l_shipmode=FOB/00000-5-ee7de033-60a3-43ac-98bd-eacd7a2d8b31-00007.parquet -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_partitioned/data/l_shipmode=MAIL/.00000-5-ee7de033-60a3-43ac-98bd-eacd7a2d8b31-00002.parquet.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v2/lineitem_partitioned/data/l_shipmode=MAIL/.00000-5-ee7de033-60a3-43ac-98bd-eacd7a2d8b31-00002.parquet.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_partitioned/data/l_shipmode=MAIL/00000-5-ee7de033-60a3-43ac-98bd-eacd7a2d8b31-00002.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v2/lineitem_partitioned/data/l_shipmode=MAIL/00000-5-ee7de033-60a3-43ac-98bd-eacd7a2d8b31-00002.parquet -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_partitioned/data/l_shipmode=RAIL/.00000-5-ee7de033-60a3-43ac-98bd-eacd7a2d8b31-00003.parquet.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v2/lineitem_partitioned/data/l_shipmode=RAIL/.00000-5-ee7de033-60a3-43ac-98bd-eacd7a2d8b31-00003.parquet.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_partitioned/data/l_shipmode=RAIL/00000-5-ee7de033-60a3-43ac-98bd-eacd7a2d8b31-00003.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v2/lineitem_partitioned/data/l_shipmode=RAIL/00000-5-ee7de033-60a3-43ac-98bd-eacd7a2d8b31-00003.parquet -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_partitioned/data/l_shipmode=REG+AIR/.00000-5-ee7de033-60a3-43ac-98bd-eacd7a2d8b31-00006.parquet.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v2/lineitem_partitioned/data/l_shipmode=REG+AIR/.00000-5-ee7de033-60a3-43ac-98bd-eacd7a2d8b31-00006.parquet.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_partitioned/data/l_shipmode=REG+AIR/00000-5-ee7de033-60a3-43ac-98bd-eacd7a2d8b31-00006.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v2/lineitem_partitioned/data/l_shipmode=REG+AIR/00000-5-ee7de033-60a3-43ac-98bd-eacd7a2d8b31-00006.parquet -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_partitioned/data/l_shipmode=SHIP/.00000-5-ee7de033-60a3-43ac-98bd-eacd7a2d8b31-00004.parquet.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v2/lineitem_partitioned/data/l_shipmode=SHIP/.00000-5-ee7de033-60a3-43ac-98bd-eacd7a2d8b31-00004.parquet.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_partitioned/data/l_shipmode=SHIP/00000-5-ee7de033-60a3-43ac-98bd-eacd7a2d8b31-00004.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v2/lineitem_partitioned/data/l_shipmode=SHIP/00000-5-ee7de033-60a3-43ac-98bd-eacd7a2d8b31-00004.parquet -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_partitioned/data/l_shipmode=TRUCK/.00000-5-ee7de033-60a3-43ac-98bd-eacd7a2d8b31-00005.parquet.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v2/lineitem_partitioned/data/l_shipmode=TRUCK/.00000-5-ee7de033-60a3-43ac-98bd-eacd7a2d8b31-00005.parquet.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_partitioned/data/l_shipmode=TRUCK/00000-5-ee7de033-60a3-43ac-98bd-eacd7a2d8b31-00005.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v2/lineitem_partitioned/data/l_shipmode=TRUCK/00000-5-ee7de033-60a3-43ac-98bd-eacd7a2d8b31-00005.parquet -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_partitioned/metadata/.520ee581-12e1-4e5f-8059-8738d531e3ff-m0.avro.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v2/lineitem_partitioned/metadata/.520ee581-12e1-4e5f-8059-8738d531e3ff-m0.avro.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_partitioned/metadata/.snap-4597973029942958420-1-520ee581-12e1-4e5f-8059-8738d531e3ff.avro.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v2/lineitem_partitioned/metadata/.snap-4597973029942958420-1-520ee581-12e1-4e5f-8059-8738d531e3ff.avro.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_partitioned/metadata/.v1.metadata.json.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v2/lineitem_partitioned/metadata/.v1.metadata.json.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_partitioned/metadata/.version-hint.text.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v2/lineitem_partitioned/metadata/.version-hint.text.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_partitioned/metadata/520ee581-12e1-4e5f-8059-8738d531e3ff-m0.avro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v2/lineitem_partitioned/metadata/520ee581-12e1-4e5f-8059-8738d531e3ff-m0.avro -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_partitioned/metadata/snap-4597973029942958420-1-520ee581-12e1-4e5f-8059-8738d531e3ff.avro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v2/lineitem_partitioned/metadata/snap-4597973029942958420-1-520ee581-12e1-4e5f-8059-8738d531e3ff.avro -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_partitioned/metadata/version-hint.text: -------------------------------------------------------------------------------- 1 | 1 -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_simple/data/.00000-1-3a276b7e-f8ff-4d24-a026-22621c010f34-00001.parquet.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v2/lineitem_simple/data/.00000-1-3a276b7e-f8ff-4d24-a026-22621c010f34-00001.parquet.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_simple/data/00000-1-3a276b7e-f8ff-4d24-a026-22621c010f34-00001.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v2/lineitem_simple/data/00000-1-3a276b7e-f8ff-4d24-a026-22621c010f34-00001.parquet -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_simple/metadata/.3cc1cd4c-4ca7-41ba-8dbe-9b7111df1363-m0.avro.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v2/lineitem_simple/metadata/.3cc1cd4c-4ca7-41ba-8dbe-9b7111df1363-m0.avro.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_simple/metadata/.snap-7108035762376929897-1-3cc1cd4c-4ca7-41ba-8dbe-9b7111df1363.avro.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v2/lineitem_simple/metadata/.snap-7108035762376929897-1-3cc1cd4c-4ca7-41ba-8dbe-9b7111df1363.avro.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_simple/metadata/.v1.metadata.json.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v2/lineitem_simple/metadata/.v1.metadata.json.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_simple/metadata/.version-hint.text.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v2/lineitem_simple/metadata/.version-hint.text.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_simple/metadata/3cc1cd4c-4ca7-41ba-8dbe-9b7111df1363-m0.avro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v2/lineitem_simple/metadata/3cc1cd4c-4ca7-41ba-8dbe-9b7111df1363-m0.avro -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_simple/metadata/snap-7108035762376929897-1-3cc1cd4c-4ca7-41ba-8dbe-9b7111df1363.avro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v2/lineitem_simple/metadata/snap-7108035762376929897-1-3cc1cd4c-4ca7-41ba-8dbe-9b7111df1363.avro -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_simple/metadata/version-hint.text: -------------------------------------------------------------------------------- 1 | 1 -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_versioned/data/.00000-6-1f2f0cb8-148f-4b08-bc6d-c938928f2147-00001.parquet.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v2/lineitem_versioned/data/.00000-6-1f2f0cb8-148f-4b08-bc6d-c938928f2147-00001.parquet.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_versioned/data/.00000-7-e5c4c121-5e7e-4054-915d-c7fc36c715a3-00001.parquet.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v2/lineitem_versioned/data/.00000-7-e5c4c121-5e7e-4054-915d-c7fc36c715a3-00001.parquet.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_versioned/data/00000-6-1f2f0cb8-148f-4b08-bc6d-c938928f2147-00001.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v2/lineitem_versioned/data/00000-6-1f2f0cb8-148f-4b08-bc6d-c938928f2147-00001.parquet -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_versioned/data/00000-7-e5c4c121-5e7e-4054-915d-c7fc36c715a3-00001.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v2/lineitem_versioned/data/00000-7-e5c4c121-5e7e-4054-915d-c7fc36c715a3-00001.parquet -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_versioned/metadata/.2ac95fc0-5767-4a0a-a986-8575ef5defd0-m0.avro.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v2/lineitem_versioned/metadata/.2ac95fc0-5767-4a0a-a986-8575ef5defd0-m0.avro.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_versioned/metadata/.a231e3a9-517c-4ce7-9f5e-27c0703f16ad-m0.avro.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v2/lineitem_versioned/metadata/.a231e3a9-517c-4ce7-9f5e-27c0703f16ad-m0.avro.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_versioned/metadata/.snap-2480368519522897709-1-a231e3a9-517c-4ce7-9f5e-27c0703f16ad.avro.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v2/lineitem_versioned/metadata/.snap-2480368519522897709-1-a231e3a9-517c-4ce7-9f5e-27c0703f16ad.avro.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_versioned/metadata/.snap-6529358792917324964-1-2ac95fc0-5767-4a0a-a986-8575ef5defd0.avro.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v2/lineitem_versioned/metadata/.snap-6529358792917324964-1-2ac95fc0-5767-4a0a-a986-8575ef5defd0.avro.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_versioned/metadata/.v1.metadata.json.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v2/lineitem_versioned/metadata/.v1.metadata.json.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_versioned/metadata/.v2.metadata.json.crc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v2/lineitem_versioned/metadata/.v2.metadata.json.crc -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_versioned/metadata/.version-hint.text.crc: -------------------------------------------------------------------------------- 1 | crcվ -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_versioned/metadata/2ac95fc0-5767-4a0a-a986-8575ef5defd0-m0.avro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v2/lineitem_versioned/metadata/2ac95fc0-5767-4a0a-a986-8575ef5defd0-m0.avro -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_versioned/metadata/a231e3a9-517c-4ce7-9f5e-27c0703f16ad-m0.avro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v2/lineitem_versioned/metadata/a231e3a9-517c-4ce7-9f5e-27c0703f16ad-m0.avro -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_versioned/metadata/snap-2480368519522897709-1-a231e3a9-517c-4ce7-9f5e-27c0703f16ad.avro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v2/lineitem_versioned/metadata/snap-2480368519522897709-1-a231e3a9-517c-4ce7-9f5e-27c0703f16ad.avro -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_versioned/metadata/snap-6529358792917324964-1-2ac95fc0-5767-4a0a-a986-8575ef5defd0.avro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/tables-v2/lineitem_versioned/metadata/snap-6529358792917324964-1-2ac95fc0-5767-4a0a-a986-8575ef5defd0.avro -------------------------------------------------------------------------------- /testdata/iceberg/tables-v2/lineitem_versioned/metadata/version-hint.text: -------------------------------------------------------------------------------- 1 | 2 -------------------------------------------------------------------------------- /testdata/iceberg/wh/default.db/cities/data/00000-0-6704a04a-3e2e-415f-b173-b21f4c5b78b7.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/wh/default.db/cities/data/00000-0-6704a04a-3e2e-415f-b173-b21f4c5b78b7.parquet -------------------------------------------------------------------------------- /testdata/iceberg/wh/default.db/cities/metadata/6704a04a-3e2e-415f-b173-b21f4c5b78b7-m0.avro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/wh/default.db/cities/metadata/6704a04a-3e2e-415f-b173-b21f4c5b78b7-m0.avro -------------------------------------------------------------------------------- /testdata/iceberg/wh/default.db/cities/metadata/snap-8687260678833969554-0-6704a04a-3e2e-415f-b173-b21f4c5b78b7.avro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/iceberg/wh/default.db/cities/metadata/snap-8687260678833969554-0-6704a04a-3e2e-415f-b173-b21f4c5b78b7.avro -------------------------------------------------------------------------------- /testdata/parquet/capital_column_names.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/parquet/capital_column_names.parquet -------------------------------------------------------------------------------- /testdata/parquet/glob_numbers/100.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/parquet/glob_numbers/100.parquet -------------------------------------------------------------------------------- /testdata/parquet/glob_numbers/200.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/parquet/glob_numbers/200.parquet -------------------------------------------------------------------------------- /testdata/parquet/glob_numbers/300.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/parquet/glob_numbers/300.parquet -------------------------------------------------------------------------------- /testdata/parquet/glob_numbers/400.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/parquet/glob_numbers/400.parquet -------------------------------------------------------------------------------- /testdata/parquet/glob_numbers/500.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/parquet/glob_numbers/500.parquet -------------------------------------------------------------------------------- /testdata/parquet/glob_numbers/README.md: -------------------------------------------------------------------------------- 1 | # Glob numbers 2 | 3 | A set of parquet files and nested parquet files each containing 100 numbers. 4 | E.g. file '200.parquet' will contain 200 through 299. 5 | 6 | This file is also significant -- it allows us to ensure we can match by file 7 | extension. 8 | 9 | -------------------------------------------------------------------------------- /testdata/parquet/glob_numbers/deep/my_favorite_numbers.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/parquet/glob_numbers/deep/my_favorite_numbers.parquet -------------------------------------------------------------------------------- /testdata/parquet/glob_numbers/deep/nested1/100.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/parquet/glob_numbers/deep/nested1/100.parquet -------------------------------------------------------------------------------- /testdata/parquet/glob_numbers/deep/nested1/200.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/parquet/glob_numbers/deep/nested1/200.parquet -------------------------------------------------------------------------------- /testdata/parquet/glob_numbers/deep/nested1/300.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/parquet/glob_numbers/deep/nested1/300.parquet -------------------------------------------------------------------------------- /testdata/parquet/glob_numbers/deep/nested1/400.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/parquet/glob_numbers/deep/nested1/400.parquet -------------------------------------------------------------------------------- /testdata/parquet/glob_numbers/deep/nested1/500.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/parquet/glob_numbers/deep/nested1/500.parquet -------------------------------------------------------------------------------- /testdata/parquet/glob_numbers/deep/nested2/100.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/parquet/glob_numbers/deep/nested2/100.parquet -------------------------------------------------------------------------------- /testdata/parquet/glob_numbers/deep/nested2/200.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/parquet/glob_numbers/deep/nested2/200.parquet -------------------------------------------------------------------------------- /testdata/parquet/glob_numbers/deep/nested2/300.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/parquet/glob_numbers/deep/nested2/300.parquet -------------------------------------------------------------------------------- /testdata/parquet/glob_numbers/deep/nested2/400.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/parquet/glob_numbers/deep/nested2/400.parquet -------------------------------------------------------------------------------- /testdata/parquet/glob_numbers/deep/nested2/500.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/parquet/glob_numbers/deep/nested2/500.parquet -------------------------------------------------------------------------------- /testdata/parquet/glob_numbers/nested1/100.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/parquet/glob_numbers/nested1/100.parquet -------------------------------------------------------------------------------- /testdata/parquet/glob_numbers/nested1/200.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/parquet/glob_numbers/nested1/200.parquet -------------------------------------------------------------------------------- /testdata/parquet/glob_numbers/nested1/300.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/parquet/glob_numbers/nested1/300.parquet -------------------------------------------------------------------------------- /testdata/parquet/glob_numbers/nested1/400.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/parquet/glob_numbers/nested1/400.parquet -------------------------------------------------------------------------------- /testdata/parquet/glob_numbers/nested1/500.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/parquet/glob_numbers/nested1/500.parquet -------------------------------------------------------------------------------- /testdata/parquet/glob_numbers/nested2/100.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/parquet/glob_numbers/nested2/100.parquet -------------------------------------------------------------------------------- /testdata/parquet/glob_numbers/nested2/200.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/parquet/glob_numbers/nested2/200.parquet -------------------------------------------------------------------------------- /testdata/parquet/glob_numbers/nested2/300.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/parquet/glob_numbers/nested2/300.parquet -------------------------------------------------------------------------------- /testdata/parquet/glob_numbers/nested2/400.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/parquet/glob_numbers/nested2/400.parquet -------------------------------------------------------------------------------- /testdata/parquet/glob_numbers/nested2/500.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/parquet/glob_numbers/nested2/500.parquet -------------------------------------------------------------------------------- /testdata/parquet/small.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/parquet/small.parquet -------------------------------------------------------------------------------- /testdata/parquet/userdata0.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/parquet/userdata0.parquet -------------------------------------------------------------------------------- /testdata/text/empty.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GlareDB/glaredb/f572a43b7a71086fc11066e3f1f9aa8909882628/testdata/text/empty.txt -------------------------------------------------------------------------------- /testdata/text/glob_simple/aaa.txt: -------------------------------------------------------------------------------- 1 | aaa -------------------------------------------------------------------------------- /testdata/text/glob_simple/aab.txt: -------------------------------------------------------------------------------- 1 | aab -------------------------------------------------------------------------------- /testdata/text/glob_simple/bbb.txt: -------------------------------------------------------------------------------- 1 | bbb -------------------------------------------------------------------------------- /testdata/text/glob_simple/cbb.txt: -------------------------------------------------------------------------------- 1 | cbb -------------------------------------------------------------------------------- /testdata/text/glob_simple/ccc.txt: -------------------------------------------------------------------------------- 1 | ccc -------------------------------------------------------------------------------- /testdata/text/same_content_different_name/1.txt: -------------------------------------------------------------------------------- 1 | cbb -------------------------------------------------------------------------------- /testdata/text/same_content_different_name/2.txt: -------------------------------------------------------------------------------- 1 | cbb --------------------------------------------------------------------------------