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

Function GetResources

backend/component/export/resources.go:19–49  ·  view source on GitHub ↗

GetResources extracts the resource list from the statement for exporting results as SQL. It analyzes the SQL query to determine which database tables/views are being queried.

(
	ctx context.Context,
	storeInstance *store.Store,
	engine storepb.Engine,
	databaseName string,
	statement string,
	instance *store.InstanceMessage,
	getDatabaseMetadataFunc base.GetDatabaseMetadataFunc,
	listDatabaseNamesFunc base.ListDatabaseNamesFunc,
	getLinkedDatabaseMetadataFunc base.GetLinkedDatabaseMetadataFunc,
)

Source from the content-addressed store, hash-verified

17// GetResources extracts the resource list from the statement for exporting results as SQL.
18// It analyzes the SQL query to determine which database tables/views are being queried.
19func GetResources(
20 ctx context.Context,
21 storeInstance *store.Store,
22 engine storepb.Engine,
23 databaseName string,
24 statement string,
25 instance *store.InstanceMessage,
26 getDatabaseMetadataFunc base.GetDatabaseMetadataFunc,
27 listDatabaseNamesFunc base.ListDatabaseNamesFunc,
28 getLinkedDatabaseMetadataFunc base.GetLinkedDatabaseMetadataFunc,
29) ([]base.SchemaResource, error) {
30 switch engine {
31 case storepb.Engine_MYSQL, storepb.Engine_MARIADB, storepb.Engine_OCEANBASE, storepb.Engine_TIDB:
32 return getResourcesForMySQL(ctx, storeInstance, engine, databaseName, statement, instance, getDatabaseMetadataFunc, listDatabaseNamesFunc, getLinkedDatabaseMetadataFunc)
33 case storepb.Engine_POSTGRES:
34 return getResourcesForPostgres(ctx, storeInstance, engine, databaseName, statement, instance, "public", getDatabaseMetadataFunc, listDatabaseNamesFunc, getLinkedDatabaseMetadataFunc)
35 case storepb.Engine_REDSHIFT:
36 return getResourcesForRedshift(ctx, storeInstance, engine, databaseName, statement, instance, "public", getDatabaseMetadataFunc, listDatabaseNamesFunc, getLinkedDatabaseMetadataFunc)
37 case storepb.Engine_ORACLE:
38 return getResourcesForOracle(ctx, storeInstance, engine, databaseName, statement, instance, getDatabaseMetadataFunc, listDatabaseNamesFunc, getLinkedDatabaseMetadataFunc)
39 case storepb.Engine_SNOWFLAKE:
40 return getResourcesForSnowflake(ctx, storeInstance, engine, databaseName, statement, instance, getDatabaseMetadataFunc, listDatabaseNamesFunc, getLinkedDatabaseMetadataFunc)
41 case storepb.Engine_MSSQL:
42 return getResourcesForMSSQL(ctx, storeInstance, engine, databaseName, statement, instance, getDatabaseMetadataFunc, listDatabaseNamesFunc, getLinkedDatabaseMetadataFunc)
43 default:
44 if databaseName == "" {
45 return nil, errors.Errorf("database must be specified")
46 }
47 return []base.SchemaResource{{Database: databaseName}}, nil
48 }
49}
50
51func getResourcesForMySQL(
52 ctx context.Context,

Callers 4

exportSQLWithContextMethod · 0.92
exportSQLWithContextFunction · 0.92
TestGetResourcesTiDBFunction · 0.85

Calls 7

getResourcesForMySQLFunction · 0.85
getResourcesForPostgresFunction · 0.85
getResourcesForRedshiftFunction · 0.85
getResourcesForOracleFunction · 0.85
getResourcesForSnowflakeFunction · 0.85
getResourcesForMSSQLFunction · 0.85
ErrorfMethod · 0.80

Tested by 1

TestGetResourcesTiDBFunction · 0.68