func (t *TableDef) Insert(db *sql.DB, row rowmessage.RowMessage) error { args := make([]interface{}, len(t.Columns)) for index, column := range t.Columns { args[index] = row.GetValue(column.Name) if args[index] == nil && column.NotNull { return fmt.Errorf("Missing column %s: %s", column.Name, row) } } _, err := db.Exec(t.insertSQL, args...) if err != nil { log.Printf("TableDef.insert: error sql=\"%s\" args=%v", t.insertSQL, args) } return err }