gas-stack/pkg/schema/views.sql
wispem-wantex 89db9e14e2
All checks were successful
CI / build-docker (push) Successful in 16s
CI / build-docker-bootstrap (push) Has been skipped
CI / release-test (push) Successful in 47s
fix: parser no longer breaks on encountering indexes that contain expression columns
2025-12-12 21:54:46 -08:00

41 lines
1.4 KiB
SQL

create temporary view tables as
select l.schema,
l.name,
l.type,
l.wr as is_without_rowid,
l.strict as is_strict
from sqlite_schema s
left join pragma_table_list l on s.name = l.name
where s.type = 'table';
create temporary view columns as
select tables.name as table_name,
table_info.name as column_name,
lower(table_info.type) as column_type,
"notnull",
dflt_value is not null as has_default_value,
ifnull(dflt_value, 0) dflt_value,
pk != 0 as is_primary_key,
pk as primary_key_rank,
fk."table" is not null as is_foreign_key,
ifnull(fk."table", '') as fk_target_table,
ifnull(fk."to", '') as fk_target_column
from tables
join pragma_table_info(tables.name) as table_info
left join pragma_foreign_key_list(tables.name) as fk on fk."from" = column_name;
create temporary view indexes as
select idx.name as index_name,
tables.name as table_name,
idx."unique" as is_unique
from tables
join pragma_index_list(tables.name) idx;
create temporary view index_columns as
select indexes.index_name,
idx_cols.cid as column_idx,
ifnull(idx_cols.name, '') as column_name,
idx_cols.seqno as rank
from indexes
join pragma_index_info(indexes.index_name) as idx_cols;