Simplify error handling in generator.
This commit is contained in:
parent
f5287628aa
commit
50bda95da2
10 changed files with 92 additions and 208 deletions
|
|
@ -142,13 +142,10 @@ func (c ColumnMetaData) GoModelTag(isPrimaryKey bool) string {
|
|||
return ""
|
||||
}
|
||||
|
||||
func getColumnsMetaData(db *sql.DB, querySet DialectQuerySet, schemaName, tableName string) ([]ColumnMetaData, error) {
|
||||
func getColumnsMetaData(db *sql.DB, querySet DialectQuerySet, schemaName, tableName string) []ColumnMetaData {
|
||||
|
||||
rows, err := db.Query(querySet.ListOfColumnsQuery(), schemaName, tableName)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
utils.PanicOnError(err)
|
||||
defer rows.Close()
|
||||
|
||||
ret := []ColumnMetaData{}
|
||||
|
|
@ -157,19 +154,13 @@ func getColumnsMetaData(db *sql.DB, querySet DialectQuerySet, schemaName, tableN
|
|||
var name, isNullable, dataType, enumName string
|
||||
var isUnsigned bool
|
||||
err := rows.Scan(&name, &isNullable, &dataType, &enumName, &isUnsigned)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
utils.PanicOnError(err)
|
||||
|
||||
ret = append(ret, NewColumnMetaData(name, isNullable == "YES", dataType, enumName, isUnsigned))
|
||||
}
|
||||
|
||||
err = rows.Err()
|
||||
utils.PanicOnError(err)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return ret, nil
|
||||
return ret
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,5 +11,5 @@ type DialectQuerySet interface {
|
|||
ListOfColumnsQuery() string
|
||||
ListOfEnumsQuery() string
|
||||
|
||||
GetEnumsMetaData(db *sql.DB, schemaName string) ([]MetaData, error)
|
||||
GetEnumsMetaData(db *sql.DB, schemaName string) []MetaData
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package metadata
|
|||
import (
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"github.com/go-jet/jet/internal/utils"
|
||||
)
|
||||
|
||||
// SchemaMetaData struct
|
||||
|
|
@ -23,25 +24,11 @@ const (
|
|||
)
|
||||
|
||||
// GetSchemaMetaData returns schema information from db connection.
|
||||
func GetSchemaMetaData(db *sql.DB, schemaName string, querySet DialectQuerySet) (schemaInfo SchemaMetaData, err error) {
|
||||
func GetSchemaMetaData(db *sql.DB, schemaName string, querySet DialectQuerySet) (schemaInfo SchemaMetaData) {
|
||||
|
||||
schemaInfo.TablesMetaData, err = getTablesMetaData(db, querySet, schemaName, baseTable)
|
||||
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
schemaInfo.ViewsMetaData, err = getTablesMetaData(db, querySet, schemaName, view)
|
||||
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
schemaInfo.EnumsMetaData, err = querySet.GetEnumsMetaData(db, schemaName)
|
||||
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
schemaInfo.TablesMetaData = getTablesMetaData(db, querySet, schemaName, baseTable)
|
||||
schemaInfo.ViewsMetaData = getTablesMetaData(db, querySet, schemaName, view)
|
||||
schemaInfo.EnumsMetaData = querySet.GetEnumsMetaData(db, schemaName)
|
||||
|
||||
fmt.Println(" FOUND", len(schemaInfo.TablesMetaData), "table(s),", len(schemaInfo.ViewsMetaData), "view(s),",
|
||||
len(schemaInfo.EnumsMetaData), "enum(s)")
|
||||
|
|
@ -49,13 +36,10 @@ func GetSchemaMetaData(db *sql.DB, schemaName string, querySet DialectQuerySet)
|
|||
return
|
||||
}
|
||||
|
||||
func getTablesMetaData(db *sql.DB, querySet DialectQuerySet, schemaName, tableType string) ([]MetaData, error) {
|
||||
func getTablesMetaData(db *sql.DB, querySet DialectQuerySet, schemaName, tableType string) []MetaData {
|
||||
|
||||
rows, err := db.Query(querySet.ListOfTablesQuery(), schemaName, tableType)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
utils.PanicOnError(err)
|
||||
defer rows.Close()
|
||||
|
||||
ret := []MetaData{}
|
||||
|
|
@ -63,24 +47,15 @@ func getTablesMetaData(db *sql.DB, querySet DialectQuerySet, schemaName, tableTy
|
|||
var tableName string
|
||||
|
||||
err = rows.Scan(&tableName)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
utils.PanicOnError(err)
|
||||
|
||||
tableInfo, err := GetTableMetaData(db, querySet, schemaName, tableName)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
tableInfo := GetTableMetaData(db, querySet, schemaName, tableName)
|
||||
|
||||
ret = append(ret, tableInfo)
|
||||
}
|
||||
|
||||
err = rows.Err()
|
||||
utils.PanicOnError(err)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return ret, nil
|
||||
return ret
|
||||
}
|
||||
|
|
|
|||
|
|
@ -68,45 +68,31 @@ func (t TableMetaData) GoStructName() string {
|
|||
}
|
||||
|
||||
// GetTableMetaData returns table info metadata
|
||||
func GetTableMetaData(db *sql.DB, querySet DialectQuerySet, schemaName, tableName string) (tableInfo TableMetaData, err error) {
|
||||
func GetTableMetaData(db *sql.DB, querySet DialectQuerySet, schemaName, tableName string) (tableInfo TableMetaData) {
|
||||
|
||||
tableInfo.SchemaName = schemaName
|
||||
tableInfo.name = tableName
|
||||
|
||||
tableInfo.PrimaryKeys, err = getPrimaryKeys(db, querySet, schemaName, tableName)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
tableInfo.Columns, err = getColumnsMetaData(db, querySet, schemaName, tableName)
|
||||
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
tableInfo.PrimaryKeys = getPrimaryKeys(db, querySet, schemaName, tableName)
|
||||
tableInfo.Columns = getColumnsMetaData(db, querySet, schemaName, tableName)
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func getPrimaryKeys(db *sql.DB, querySet DialectQuerySet, schemaName, tableName string) (map[string]bool, error) {
|
||||
func getPrimaryKeys(db *sql.DB, querySet DialectQuerySet, schemaName, tableName string) map[string]bool {
|
||||
|
||||
rows, err := db.Query(querySet.PrimaryKeysQuery(), schemaName, tableName)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
utils.PanicOnError(err)
|
||||
|
||||
primaryKeyMap := map[string]bool{}
|
||||
|
||||
for rows.Next() {
|
||||
primaryKey := ""
|
||||
err := rows.Scan(&primaryKey)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
utils.PanicOnError(err)
|
||||
|
||||
primaryKeyMap[primaryKey] = true
|
||||
}
|
||||
|
||||
return primaryKeyMap, nil
|
||||
return primaryKeyMap
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue