getDatabases gets all databases of an instance.
(ctx context.Context)
| 316 | |
| 317 | // getDatabases gets all databases of an instance. |
| 318 | func (d *Driver) getDatabases(ctx context.Context) ([]*storepb.DatabaseSchemaMetadata, error) { |
| 319 | var databases []*storepb.DatabaseSchemaMetadata |
| 320 | rows, err := d.db.QueryContext(ctx, "SELECT datname, pg_encoding_to_char(encoding), datcollate, pg_catalog.pg_get_userbyid(datdba) as db_owner FROM pg_database;") |
| 321 | if err != nil { |
| 322 | return nil, err |
| 323 | } |
| 324 | defer rows.Close() |
| 325 | |
| 326 | for rows.Next() { |
| 327 | database := &storepb.DatabaseSchemaMetadata{} |
| 328 | if err := rows.Scan(&database.Name, &database.CharacterSet, &database.Collation, &database.Owner); err != nil { |
| 329 | return nil, err |
| 330 | } |
| 331 | databases = append(databases, database) |
| 332 | } |
| 333 | if err := rows.Err(); err != nil { |
| 334 | return nil, err |
| 335 | } |
| 336 | return databases, nil |
| 337 | } |
| 338 | |
| 339 | // GetSearchPath gets the current search path of the database. |
| 340 | // It returns the search path as a raw comma-separated string of schema names. |
no test coverage detected