package bdb import "github.com/vattle/sqlboiler/strmangle" // Column holds information about a database column. // Types are Go types, converted by TranslateColumnType. type Column struct { // ArrType is the underlying data type of the Postgres // ARRAY type. See here: // https://www.postgresql.org/docs/9.1/static/infoschema-element-types.html ArrType *string UDTName string Name string Type string DBType string Default string Nullable bool Unique bool Validated bool } // ColumnNames of the columns. func ColumnNames(cols []Column) []string { names := make([]string, len(cols)) for i, c := range cols { names[i] = c.Name } return names } // ColumnDBTypes of the columns. func ColumnDBTypes(cols []Column) map[string]string { types := map[string]string{} for _, c := range cols { types[strmangle.TitleCase(c.Name)] = c.DBType } return types } // FilterColumnsByDefault generates the list of columns that have default values func FilterColumnsByDefault(defaults bool, columns []Column) []Column { var cols []Column for _, c := range columns { if (defaults && len(c.Default) != 0) || (!defaults && len(c.Default) == 0) { cols = append(cols, c) } } return cols }