Simplify error handling in generator.

This commit is contained in:
go-jet 2019-09-20 18:20:26 +02:00
parent f5287628aa
commit 50bda95da2
10 changed files with 92 additions and 208 deletions

View file

@ -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
}