{"record":{"id":"1adca888192a35ce","repo":"t8y2/dbx","slug":"show-databases-failed-v-hiveserver2-metadata-f-1adca8","errorCode":null,"errorMessage":"SHOW DATABASES failed (%v); HiveServer2 metadata fallback failed: %w","messagePattern":"SHOW DATABASES failed \\((.+?)\\); HiveServer2 metadata fallback failed: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"agents/drivers/hive-go/metadata.go","lineNumber":248,"sourceCode":"\t\t\t\"productVersion\":         version,\n\t\t\t\"unquotedIdentifierCase\": \"mixed\",\n\t\t\t\"quotedIdentifierCase\":   \"mixed\",\n\t\t\t\"driverName\":             driverName,\n\t\t\t\"driverVersion\":          \"gohive-v2.1.0\",\n\t\t},\n\t}, nil\n}\n\nfunc (server *server) listDatabases() ([]databaseInfo, error) {\n\tresult, err := server.executeQuery(queryOptions{SQL: \"SHOW DATABASES\", MaxRows: metadataQueryLimit})\n\tif err == nil {\n\t\treturn databaseInfoFromQueryRows(result.Rows), nil\n\t}\n\tmetadataResult, metadataErr := server.hiveMetadata(func(ctx context.Context, provider gohive.MetadataProvider) (gohive.MetadataResult, error) {\n\t\treturn provider.GetHiveSchemas(ctx, \"%\")\n\t})\n\tif metadataErr != nil {\n\t\treturn nil, fmt.Errorf(\"SHOW DATABASES failed (%v); HiveServer2 metadata fallback failed: %w\", err, metadataErr)\n\t}\n\trows := newHiveMetadataRows(metadataResult)\n\tvalues := make([]databaseInfo, 0, len(rows.rows))\n\tseen := map[string]bool{}\n\tfor _, row := range rows.rows {\n\t\tname := metadataString(rows.value(row, \"TABLE_SCHEM\", \"SCHEMA_NAME\"))\n\t\tif name == \"\" || seen[name] {\n\t\t\tcontinue\n\t\t}\n\t\tseen[name] = true\n\t\tvalues = append(values, databaseInfo{Name: name})\n\t}\n\tsort.Slice(values, func(first, second int) bool { return values[first].Name < values[second].Name })\n\treturn values, nil\n}\n\nfunc databaseInfoFromQueryRows(rows [][]any) []databaseInfo {\n\tvalues := make([]databaseInfo, 0, len(rows))","sourceCodeStart":230,"sourceCodeEnd":266,"githubUrl":"https://github.com/t8y2/dbx/blob/c0390bff16418b651f4728520d99adf8ce48829a/agents/drivers/hive-go/metadata.go#L230-L266","documentation":"listDatabases first tries 'SHOW DATABASES' via SQL. If that fails, it falls back to HiveServer2 JDBC metadata (GetHiveSchemas). This error is raised only when BOTH paths fail, embedding the original SHOW DATABASES error (%v) and wrapping the metadata fallback error (%w).","triggerScenarios":"Calling list_databases (or list_schemas, which delegates) when the connection can neither run SHOW DATABASES (permissions, unsupported statement) nor complete the GetHiveSchemas metadata call (transport failure, permission on metadata API).","commonSituations":"User lacks permission to list databases; connection dropped mid-metadata call; restricted HiveServer2 policy blocking both SQL and metadata catalog access; Impala/older Hive with quirks in both paths.","solutions":["Fix the root cause in the first parenthesized error (SHOW DATABASES failure) — it usually indicates permissions or connectivity","Check the wrapped metadata error for HiveServer2 transport/auth issues","Grant the connecting user rights to list databases, or configure a visible_schemas allowlist","Reconnect — if both paths failed it may be a dropped connection rather than authorization"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"dbs, err := server.listDatabases()\nif err != nil {\n    if strings.Contains(err.Error(), \"SHOW DATABASES failed\") {\n        log.Printf(\"cannot enumerate databases: %v\", err)\n    }\n    return err\n}","preventionTips":["Verify the connect user can run SHOW DATABASES in beeline first","Configure explicit visible_schemas if catalog listing is restricted","Keep connections healthy so the metadata fallback isn't racing a dead socket"],"tags":["hive","metadata","permissions","sql"],"backgroundTag":"metadata-query-failed","analyzedSha":"c0390bff16418b651f4728520d99adf8ce48829a","analyzedAt":"2026-09-05T23:05:10.900Z","contentChangedAt":"2026-09-05T23:05:10.900Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}