Skip to content

Latest commit

 

History

History
123 lines (109 loc) · 19 KB

File metadata and controls

123 lines (109 loc) · 19 KB

DuckDB Clickhouse System Table emulator for chsql

This project loosely emulates ClickHouse system tables within DuckDB for client compatibility

The chsql_system extension provides a subset of system functions:

Table Views

  • system.databases
  • system.tables
  • system.columns
  • system.functions
  • system.uptime
  • system.disks

Scalar

  • uptime()

Installation

coming soon

Usage

D -- List all databases in scope
D SELECT * FROM system.databases;
┌─────────┬─────────┬───────────┬───────────────┬──────────────────────────────────────┬─────────────┬─────────┐
│  name   │ engine  │ data_path │ metadata_path │                 uuid                 │ engine_full │ comment │
│ varcharvarcharvarcharvarchar    │                 uuid                 │   varcharvarchar │
├─────────┼─────────┼───────────┼───────────────┼──────────────────────────────────────┼─────────────┼─────────┤
│ memory  │ duckdb  │ NULL      │               │ 80000000-0000-0000-0000-000000000000 │ DuckDB      │ NULL    │
│ test    │ duckdb  │ test.db   │               │ 80000000-0000-0000-0000-000000000000 │ DuckDB      │ NULL    │
│ system  │ duckdb  │ NULL      │               │ 80000000-0000-0000-0000-000000000000 │ DuckDB      │ NULL    │
│ temp    │ duckdb  │ NULL      │               │ 80000000-0000-0000-0000-000000000000 │ DuckDB      │ NULL    │
└─────────┴─────────┴───────────┴───────────────┴──────────────────────────────────────┴─────────────┴─────────┘

D -- List all tables in scope
D SELECT * FROM system.tables;
┌──────────┬──────────────┬──────────────────────────────────────┬────────────┬──────────────┬───────────┬───────────────┬────────────────────────────┬──────────────────┬────────────────────────────────────────┐
│ database │     name     │                 uuid                 │   engine   │ is_temporary │ data_path │ metadata_path │ metadata_modification_time │ metadata_version │           create_table_query           │
│ varcharvarchar    │                 uuid                 │  varcharbooleanvarcharvarchartimestamp          │      int32       │                varchar                 │
├──────────┼──────────────┼──────────────────────────────────────┼────────────┼──────────────┼───────────┼───────────────┼────────────────────────────┼──────────────────┼────────────────────────────────────────┤
│ test     │ remote_table │ 80000000-0000-0000-0000-000000000000 │ BASE TABLE │ false        │           │               │ 1970-01-01 00:00:000 │ CREATE TABLE remote_table(id INTEGER); │
└──────────┴──────────────┴──────────────────────────────────────┴────────────┴──────────────┴───────────┴───────────────┴────────────────────────────┴──────────────────┴────────────────────────────────────────┘
 
D -- List all columns in scope
D SELECT * FROM system.columns;
┌──────────┬───────────┬────────────────────────────┬───────────┬──────────┬─────────┐
│ database │   table   │            name            │   type    │ position │ comment │
│ varcharvarcharvarcharvarchar  │  int32   │ varchar │
├──────────┼───────────┼────────────────────────────┼───────────┼──────────┼─────────┤
│ memory   │ columns   │ database                   │ VARCHAR0 │         │
│ memory   │ columns   │ table                      │ VARCHAR1 │         │
│ memory   │ columns   │ name                       │ VARCHAR2 │         │
│ memory   │ columns   │ type                       │ VARCHAR3 │         │
│ memory   │ columns   │ position                   │ INTEGER4 │         │
│ memory   │ columns   │ comment                    │ VARCHAR5 │         │
│ memory   │ databases │ name                       │ VARCHAR0 │         │
│ memory   │ databases │ engine                     │ VARCHAR1 │         │
│ memory   │ databases │ data_path                  │ VARCHAR2 │         │
│ memory   │ databases │ metadata_path              │ VARCHAR3 │         │
│ memory   │ databases │ uuid                       │ UUID      │        4 │         │
│ memory   │ databases │ engine_full                │ VARCHAR5 │         │
│ memory   │ databases │ comment                    │ VARCHAR6 │         │
│ memory   │ functions │ name                       │ VARCHAR0 │         │
│ memory   │ functions │ is_aggregate               │ BOOLEAN1 │         │
│ memory   │ functions │ case_insensitive           │ BOOLEAN2 │         │
│ memory   │ functions │ description                │ VARCHAR3 │         │
│ memory   │ tables    │ database                   │ VARCHAR0 │         │
│ memory   │ tables    │ name                       │ VARCHAR1 │         │
│ memory   │ tables    │ uuid                       │ UUID      │        2 │         │
│ memory   │ tables    │ engine                     │ VARCHAR3 │         │
│ memory   │ tables    │ is_temporary               │ BOOLEAN4 │         │
│ memory   │ tables    │ data_path                  │ VARCHAR5 │         │
│ memory   │ tables    │ metadata_path              │ VARCHAR6 │         │
│ memory   │ tables    │ metadata_modification_time │ TIMESTAMP7 │         │
│ memory   │ tables    │ metadata_version           │ INTEGER8 │         │
│ memory   │ tables    │ create_table_query         │ VARCHAR9 │         │
├──────────┴───────────┴────────────────────────────┴───────────┴──────────┴─────────┤
│ 27 rows                                                                  6 columns │
└────────────────────────────────────────────────────────────────────────────────────┘

 
D -- List all functions in scope
D SELECT * FROM system.functions;
┌──────────────────────────────────────────┬──────────────┬──────────────────┬─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│                   name                   │ is_aggregate │ case_insensitive │                                                                   description                                                                   │
│                 varcharbooleanbooleanvarchar                                                                     │
├──────────────────────────────────────────┼──────────────┼──────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ test_all_types                           │ false        │ false            │ NULL                                                                                                                                            │
│ pragma_version                           │ false        │ false            │ NULL                                                                                                                                            │
│ duckdb_sequences                         │ false        │ false            │ NULL                                                                                                                                            │
│ duckdb_functions                         │ false        │ false            │ NULL                                                                                                                                            │
│ duckdb_extensions                        │ false        │ false            │ NULL                                                                                                                                            │
│ duckdb_constraints                       │ false        │ false            │ NULL                                                                                                                                            │
│ system_columns                           │ false        │ false            │ NULL                                                                                                                                            │                         │
│  ·                                       │   ·          │   ·              │  ·                                                                                                                                              │
│  ·                                       │   ·          │   ·              │  ·                                                                                                                                              │
│  ·                                       │   ·          │   ·              │  ·                                                                                                                                              │
│ format_type                              │ false        │ false            │ NULL                                                                                                                                            │
│ has_column_privilege                     │ false        │ false            │ NULL                                                                                                                                            │
│ inet_client_port                         │ false        │ false            │ NULL                                                                                                                                            │
├──────────────────────────────────────────┴──────────────┴──────────────────┴─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ 692 rows (40 shown)                                                                                                                                                                                                4 columns │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

D -- List all attached databases and blocks as disks
D SELECT * FROM system.disks;
┌──────────┬──────────────┬────────────┬─────────────┬──────────────────┬─────────────────┬─────────┬─────────────────────┬───────────────┬──────────────┬──────────────┬───────────────┬───────────┬───────────┬────────────┐
│   name   │     path     │ free_space │ total_space │ unreserved_space │ keep_free_space │  type   │ object_storage_type │ metadata_type │ is_encrypted │ is_read_only │ is_write_once │ is_remote │ is_broken │ cache_path │
│ varcharvarchar    │   int64    │    int64    │      int64       │      int64      │ varcharvarcharvarcharbooleanbooleanbooleanbooleanbooleanvarchar   │
├──────────┼──────────────┼────────────┼─────────────┼──────────────────┼─────────────────┼─────────┼─────────────────────┼───────────────┼──────────────┼──────────────┼───────────────┼───────────┼───────────┼────────────┤
│ localdb  │ test.db026214400 │ Local   │ None                │ None          │ false        │ false        │ false         │ false     │ false     │            │
│ memory   │ NULL0000 │ Local   │ None                │ None          │ false        │ false        │ false         │ false     │ false     │            │
│ testduck │ /tmp/duck.db2621447864322621440 │ Local   │ None                │ None          │ false        │ false        │ false         │ false     │ false     │            │
└──────────┴──────────────┴────────────┴─────────────┴──────────────────┴─────────────────┴─────────┴─────────────────────┴───────────────┴──────────────┴──────────────┴───────────────┴───────────┴───────────┴────────────┘

Note

Don't use this unless you need ClickHouse client compatibility. Rely on pure DuckDB functions to build your applications.