{"record":{"id":"e41b8e27222e593b","repo":"t8y2/dbx","slug":"unsupported-iotdb-sql-dialect-s","errorCode":null,"errorMessage":"unsupported IoTDB SQL dialect: %s","messagePattern":"unsupported IoTDB SQL dialect: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"agents/drivers/iotdb/driver.go","lineNumber":160,"sourceCode":"\t\t}\n\t\tquery = parsed.Query()\n\t}\n\tif raw := strings.TrimSpace(params.URLParams); raw != \"\" {\n\t\tvalues, err := url.ParseQuery(strings.TrimPrefix(raw, \"?\"))\n\t\tif err != nil {\n\t\t\treturn connectionConfig{}, fmt.Errorf(\"parse IoTDB URL parameters: %w\", err)\n\t\t}\n\t\tfor key, entries := range values {\n\t\t\tquery[key] = entries\n\t\t}\n\t}\n\n\tif dialect := strings.ToLower(strings.TrimSpace(firstQueryValue(query, \"sql_dialect\", \"dialect\"))); dialect != \"\" {\n\t\tswitch dialect {\n\t\tcase client.TreeSqlDialect, client.TableSqlDialect:\n\t\t\tconfig.Dialect = dialect\n\t\tdefault:\n\t\t\treturn connectionConfig{}, fmt.Errorf(\"unsupported IoTDB SQL dialect: %s\", dialect)\n\t\t}\n\t}\n\tif database := strings.TrimSpace(firstQueryValue(query, \"database\", \"db\")); database != \"\" {\n\t\tconfig.Database = database\n\t}\n\tif value := firstQueryValue(query, \"fetch_size\", \"fetchSize\"); value != \"\" {\n\t\tparsed, err := positiveInt(value, \"fetch_size\")\n\t\tif err != nil {\n\t\t\treturn connectionConfig{}, err\n\t\t}\n\t\tconfig.FetchSize = int32(parsed)\n\t}\n\tif value := firstQueryValue(query, \"time_zone\", \"timezone\", \"zone_id\"); value != \"\" {\n\t\tconfig.TimeZone = value\n\t}\n\tif value := firstQueryValue(query, \"connect_retry_max\", \"connectRetryMax\"); value != \"\" {\n\t\tparsed, err := positiveInt(value, \"connect_retry_max\")\n\t\tif err != nil {","sourceCodeStart":142,"sourceCodeEnd":178,"githubUrl":"https://github.com/t8y2/dbx/blob/c0390bff16418b651f4728520d99adf8ce48829a/agents/drivers/iotdb/driver.go#L142-L178","documentation":"parseConnectionConfig reads the sql_dialect (or dialect) query parameter, lowercases it, and only accepts client.TreeSqlDialect (tree) or client.TableSqlDialect (table). Any other value aborts connection setup with 'unsupported IoTDB SQL dialect: %s'.","triggerScenarios":"Passing sql_dialect=tree_model, dialect=TREE-MODEL, dialect=relational, or any typo'd/unknown value in the connection string query or URLParams.","commonSituations":"Users coming from JDBC docs write dialect values the IoTDB Go client doesn't recognize; server versions with different dialect naming; users assume the value matches the server-side config property name.","solutions":["Use exactly 'tree' or 'table' (case-insensitive) as the sql_dialect/dialect value.","Remove the dialect parameter to fall back to the default tree dialect.","Verify your IoTDB server version supports the chosen dialect (table model requires 2.x).","Compare against the client constants client.TreeSqlDialect / client.TableSqlDialect."],"exampleFix":"// before\n\"iotdb://root:root@127.0.0.1:6667?sql_dialect=treemodel\"\n// after\n\"iotdb://root:root@127.0.0.1:6667?sql_dialect=table\"","handlingStrategy":"validation","validationCode":"func validDialect(params connectParams) error {\n    for _, v := range []string{params.URLParams} {\n        q, err := url.ParseQuery(strings.TrimPrefix(v, \"?\"))\n        if err != nil {\n            continue\n        }\n        for _, key := range []string{\"sql_dialect\", \"dialect\"} {\n            if d := strings.ToLower(strings.TrimSpace(q.Get(key))); d != \"\" && d != \"tree\" && d != \"table\" {\n                return fmt.Errorf(\"dialect %q must be tree or table\", d)\n            }\n        }\n    }\n    return nil\n}","typeGuard":null,"tryCatchPattern":"_, err := newServer(params)\nif err != nil && strings.Contains(err.Error(), \"unsupported IoTDB SQL dialect\") {\n    params.URLParams = stripParam(params.URLParams, \"sql_dialect\") // fall back to default tree dialect\n    _, err = newServer(params)\n}","preventionTips":["Only use the literals 'tree' or 'table' for sql_dialect.","Omit the parameter when the default (tree) dialect is fine.","Centralize connection-string construction in one validated helper."],"tags":["go","configuration","sql-dialect","iotdb"],"backgroundTag":"unsupported-configuration-value","analyzedSha":"c0390bff16418b651f4728520d99adf8ce48829a","analyzedAt":"2026-09-05T23:05:10.900Z","contentChangedAt":"2026-09-05T23:05:10.900Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}