-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
Description:
When reading UUID fields without CAST operations (which must be avoided due to Issue #1), the driver logs warnings for every UUID field read.
Warning Message:
fromODBC: invalid type: -11 - list.ListItem{size:0x24, itemType:0x1, data:[]uint8{...}}
Symptoms:
- Warning logged for every UUID field in every row
- Clutters console output and log files
- Does not affect functionality
Example:
func listOrganizations(db *sql.DB) error {
query := `SELECT Org_ID, Org_Name FROM GPC.Organization`
rows, _ := db.Query(query)
defer rows.Close()
for rows.Next() {
var orgID, orgName string
rows.Scan(&orgID, &orgName) // Logs warning for Org_ID field
}
// Console output:
// fromODBC: invalid type: -11 - list.ListItem{...}
// fromODBC: invalid type: -11 - list.ListItem{...}
// fromODBC: invalid type: -11 - list.ListItem{...}
// (repeated for every row)
return nil
}Workaround:
Implement filtered log writer to suppress these warnings:
type FilteredWriter struct {
writer io.Writer
}
func (fw *FilteredWriter) Write(p []byte) (n int, err error) {
logMessage := string(p)
// Filter out IRIS driver UUID warnings
if strings.Contains(logMessage, "fromODBC: invalid type: -11") {
return len(p), nil // Suppress this message
}
// Pass through all other log messages
return fw.writer.Write(p)
}
func main() {
// Set up filtered log output
log.SetOutput(&FilteredWriter{writer: os.Stdout})
// ... rest of application
}Impact: Low - cosmetic only, but significantly clutters logs in production.