wispem-wantex 654585256c
Some checks failed
CI / release-test (push) Failing after 4s
Initial commit: create table, column and schemaparse
2025-07-04 19:42:30 -07:00

41 lines
1.1 KiB
Go

package sqlgenerate
import (
_ "embed"
_ "github.com/mattn/go-sqlite3"
)
// Column represents a single column in a table.
type Column struct {
TableName string `db:"table_name"`
Name string `db:"column_name"`
Type string `db:"column_type"`
IsNotNull bool `db:"notnull"`
HasDefaultValue bool `db:"has_default_value"`
DefaultValue string `db:"dflt_value"`
IsPrimaryKey bool `db:"is_primary_key"`
IsForeignKey bool `db:"is_foreign_key"`
ForeignKeyTargetTable string `db:"fk_target_table"`
ForeignKeyTargetColumn string `db:"fk_target_column"`
}
// IsNullableForeignKey is a helper function.
func (c Column) IsNullableForeignKey() bool {
return !c.IsNotNull && !c.IsPrimaryKey && c.IsForeignKey
}
// Table is a single SQLite table.
type Table struct {
TableName string `db:"name"`
IsStrict bool `db:"strict"`
Columns []Column
TypeIDName string
VarName string
TypeName string
}
// Schema is a container for a bunch of Tables, indexed by table name.
type Schema map[string]Table