in internal/database/postgres/postgres.go [119:147]
func (h postgresHandler) ListTables(db *database.DB) ([]string, error) {
query := `
SELECT table_name
FROM information_schema.tables
WHERE table_schema = 'public'
AND table_type = 'BASE TABLE'
ORDER BY table_name;`
rows, err := db.Query(query)
if err != nil {
return nil, fmt.Errorf("error querying tables: %w", err)
}
defer rows.Close()
var tables []string
for rows.Next() {
var tableName string
if err := rows.Scan(&tableName); err != nil {
return nil, fmt.Errorf("error scanning table name: %w", err)
}
tables = append(tables, tableName)
}
if err := rows.Err(); err != nil {
return nil, fmt.Errorf("error iterating table rows: %w", err)
}
return tables, nil
}