(c *Completer)
| 312 | } |
| 313 | |
| 314 | func (m CompletionMap) insertAllColumns(c *Completer) { |
| 315 | if _, exists := c.metadataCache[c.defaultDatabase]; !exists { |
| 316 | _, metadata, err := c.getMetadata(c.ctx, c.instanceID, c.defaultDatabase) |
| 317 | if err != nil || metadata == nil { |
| 318 | return |
| 319 | } |
| 320 | c.metadataCache[c.defaultDatabase] = metadata |
| 321 | } |
| 322 | |
| 323 | metadata := c.metadataCache[c.defaultDatabase] |
| 324 | for _, schema := range metadata.ListSchemaNames() { |
| 325 | schemaMeta := metadata.GetSchemaMetadata(schema) |
| 326 | if schemaMeta == nil { |
| 327 | continue |
| 328 | } |
| 329 | for _, table := range schemaMeta.ListTableNames() { |
| 330 | tableMeta := schemaMeta.GetTable(table) |
| 331 | if tableMeta == nil { |
| 332 | continue |
| 333 | } |
| 334 | for _, column := range tableMeta.GetProto().GetColumns() { |
| 335 | definition := fmt.Sprintf("%s | %s", table, column.Type) |
| 336 | if !column.Nullable { |
| 337 | definition += ", NOT NULL" |
| 338 | } |
| 339 | m.Insert(base.Candidate{ |
| 340 | Type: base.CandidateTypeColumn, |
| 341 | Text: c.quotedIdentifierIfNeeded(column.Name), |
| 342 | Definition: definition, |
| 343 | Comment: column.Comment, |
| 344 | }) |
| 345 | } |
| 346 | } |
| 347 | } |
| 348 | } |
| 349 | |
| 350 | func (m CompletionMap) toSlice() []base.Candidate { |
| 351 | var result []base.Candidate |
no test coverage detected