MCPcopy Index your code
hub / github.com/bytebase/bytebase / buildCompletionCatalog

Function buildCompletionCatalog

backend/plugin/parser/redshift/completion.go:93–153  ·  view source on GitHub ↗
(ctx context.Context, cCtx base.CompletionContext)

Source from the content-addressed store, hash-verified

91}
92
93func buildCompletionCatalog(ctx context.Context, cCtx base.CompletionContext) *redshiftcatalog.Catalog {
94 if cCtx.Metadata == nil || cCtx.DefaultDatabase == "" {
95 return nil
96 }
97
98 _, metadata, err := cCtx.Metadata(ctx, cCtx.InstanceID, cCtx.DefaultDatabase)
99 if err != nil || metadata == nil {
100 return nil
101 }
102
103 cat := redshiftcatalog.New()
104 for _, schemaName := range metadata.ListSchemaNames() {
105 schemaMeta := metadata.GetSchemaMetadata(schemaName)
106 if schemaMeta == nil {
107 continue
108 }
109 execCompletionDDL(cat, fmt.Sprintf("CREATE SCHEMA IF NOT EXISTS %s;", quoteIdent(schemaName)))
110
111 for _, tableName := range schemaMeta.ListTableNames() {
112 tableMeta := schemaMeta.GetTable(tableName)
113 if tableMeta == nil {
114 continue
115 }
116 execCompletionDDL(cat, createTableDDL(schemaName, tableName, tableMeta.GetProto().GetColumns()))
117 }
118 for _, tableName := range schemaMeta.ListForeignTableNames() {
119 tableMeta := schemaMeta.GetExternalTable(tableName)
120 if tableMeta == nil {
121 continue
122 }
123 execCompletionDDL(cat, createTableDDL(schemaName, tableName, tableMeta.GetProto().GetColumns()))
124 }
125 for _, viewName := range schemaMeta.ListViewNames() {
126 viewMeta := schemaMeta.GetView(viewName)
127 if viewMeta == nil {
128 continue
129 }
130 execCompletionDDL(cat, createViewDDL("VIEW", schemaName, viewName, viewMeta.GetColumns()))
131 }
132 for _, viewName := range schemaMeta.ListMaterializedViewNames() {
133 viewMeta := schemaMeta.GetMaterializedView(viewName)
134 if viewMeta == nil {
135 continue
136 }
137 cat.SetSearchPath([]string{schemaName, "public"})
138 if viewMeta.GetDefinition() == "" || !execCompletionDDL(cat, createMaterializedViewDDL(schemaName, viewName, viewMeta.GetDefinition())) {
139 execCompletionDDL(cat, createViewDDL("MATERIALIZED VIEW", schemaName, viewName, nil))
140 }
141 }
142 for _, sequenceName := range schemaMeta.ListSequenceNames() {
143 execCompletionDDL(cat, fmt.Sprintf("CREATE SEQUENCE %s.%s;", quoteIdent(schemaName), quoteIdent(sequenceName)))
144 }
145 }
146
147 searchPath := []string{"public"}
148 if cCtx.DefaultSchema != "" {
149 searchPath = []string{cCtx.DefaultSchema, "public"}
150 }

Callers 1

CompletionFunction · 0.70

Calls 15

execCompletionDDLFunction · 0.85
createTableDDLFunction · 0.85
createViewDDLFunction · 0.85
ListSchemaNamesMethod · 0.80
GetSchemaMetadataMethod · 0.80
ListTableNamesMethod · 0.80
ListForeignTableNamesMethod · 0.80
GetExternalTableMethod · 0.80
ListViewNamesMethod · 0.80
GetMaterializedViewMethod · 0.80

Tested by

no test coverage detected