MCPcopy Create free account
hub / github.com/bytebase/bytebase / getDatashareTables

Method getDatashareTables

backend/plugin/db/redshift/sync.go:414–451  ·  view source on GitHub ↗

getDatashareTables gets all tables of a datashare database.

(txn *sql.Tx)

Source from the content-addressed store, hash-verified

412
413// getDatashareTables gets all tables of a datashare database.
414func (d *Driver) getDatashareTables(txn *sql.Tx) (map[string][]*storepb.TableMetadata, error) {
415 columnMap, err := d.getDatashareTableColumns(txn)
416 if err != nil {
417 return nil, errors.Wrap(err, "failed to get table columns")
418 }
419
420 tableMap := make(map[string][]*storepb.TableMetadata)
421
422 // table_type
423 query := `
424 SELECT
425 schema_name,
426 table_name
427 FROM SVV_ALL_TABLES
428 WHERE database_name = $1;`
429 rows, err := txn.Query(query, d.databaseName)
430 if err != nil {
431 return nil, err
432 }
433 defer rows.Close()
434
435 for rows.Next() {
436 table := &storepb.TableMetadata{}
437 var schemaName string
438 if err := rows.Scan(&schemaName, &table.Name); err != nil {
439 return nil, err
440 }
441 key := db.TableKey{Schema: schemaName, Table: table.Name}
442 table.Columns = columnMap[key]
443
444 tableMap[schemaName] = append(tableMap[schemaName], table)
445 }
446 if err := rows.Err(); err != nil {
447 return nil, err
448 }
449
450 return tableMap, nil
451}
452
453// getDatashareTableColumns gets the columns of tables in datashare database.
454func (d *Driver) getDatashareTableColumns(txn *sql.Tx) (map[db.TableKey][]*storepb.ColumnMetadata, error) {

Callers 1

SyncDBSchemaMethod · 0.95

Implementers 15

MockDriverbackend/plugin/advisor/utils_for_tests
Driverbackend/plugin/db/bigquery/bigquery.go
Driverbackend/plugin/db/mongodb/mongodb.go
Driverbackend/plugin/db/trino/trino.go
Driverbackend/plugin/db/redshift/redshift.go
Driverbackend/plugin/db/oracle/oracle.go
Driverbackend/plugin/db/dynamodb/dynamodb.go
Driverbackend/plugin/db/cosmosdb/cosmosdb.go
Driverbackend/plugin/db/spanner/spanner.go
Driverbackend/plugin/db/mssql/mssql.go
Driverbackend/plugin/db/mysql/mysql.go
Driverbackend/plugin/db/pg/pg.go

Calls 5

ScanMethod · 0.80
QueryMethod · 0.65
CloseMethod · 0.65
NextMethod · 0.45

Tested by

no test coverage detected