From 754c21ab294b2b353f098bc4dcd49b58db3dad59 Mon Sep 17 00:00:00 2001 From: wispem-wantex Date: Sat, 23 Aug 2025 14:10:57 -0700 Subject: [PATCH] Move sql views to a `.sql` file --- pkg/schema/parse.go | 27 +++++---------------------- pkg/schema/views.sql | 20 ++++++++++++++++++++ 2 files changed, 25 insertions(+), 22 deletions(-) create mode 100644 pkg/schema/views.sql diff --git a/pkg/schema/parse.go b/pkg/schema/parse.go index b1a53ab..d6b5d5d 100644 --- a/pkg/schema/parse.go +++ b/pkg/schema/parse.go @@ -1,6 +1,7 @@ package schema import ( + _ "embed" "strings" "github.com/jinzhu/inflection" @@ -10,32 +11,14 @@ import ( "git.offline-twitter.com/offline-labs/gas-stack/pkg/textutils" ) +//go:embed views.sql +var create_views string + // InitDB creates an in-memory DB from a given schema string. func InitDB(sql_schema string) *sqlx.DB { db := sqlx.MustOpen("sqlite3", ":memory:") db.MustExec(sql_schema) - db.MustExec(` - create temporary view tables as - select l.schema, l.name, l.type, l.ncol, l.wr, l.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 as is_primary_key, - 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; - `) + db.MustExec(create_views) return db } diff --git a/pkg/schema/views.sql b/pkg/schema/views.sql new file mode 100644 index 0000000..9936124 --- /dev/null +++ b/pkg/schema/views.sql @@ -0,0 +1,20 @@ +create temporary view tables as + select l.schema, l.name, l.type, l.ncol, l.wr, l.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 as is_primary_key, + 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;