(c *Completer)
| 160 | } |
| 161 | |
| 162 | func (m CompletionMap) insertAllColumns(c *Completer) { |
| 163 | _, databaseMeta, err := c.metadataGetter(c.ctx, c.instanceID, c.defaultDatabase) |
| 164 | if err != nil { |
| 165 | return |
| 166 | } |
| 167 | for _, schema := range databaseMeta.ListSchemaNames() { |
| 168 | schemaMeta := databaseMeta.GetSchemaMetadata(schema) |
| 169 | if schemaMeta == nil { |
| 170 | continue |
| 171 | } |
| 172 | for _, table := range schemaMeta.ListTableNames() { |
| 173 | tableMeta := schemaMeta.GetTable(table) |
| 174 | if tableMeta == nil { |
| 175 | continue |
| 176 | } |
| 177 | for _, column := range tableMeta.GetProto().GetColumns() { |
| 178 | columnID := getColumnID(c.defaultDatabase, schema, table, column.Name) |
| 179 | if _, ok := m[columnID]; !ok { |
| 180 | definition := fmt.Sprintf("%s.%s.%s | %s", c.defaultDatabase, schema, table, column.Type) |
| 181 | if !column.Nullable { |
| 182 | definition += ", NOT NULL" |
| 183 | } |
| 184 | m[columnID] = base.Candidate{ |
| 185 | Type: base.CandidateTypeColumn, |
| 186 | Text: c.quotedIdentifierIfNeeded(column.Name), |
| 187 | Definition: definition, |
| 188 | Comment: column.Comment, |
| 189 | Priority: c.getPriority(c.defaultDatabase, schema, table), |
| 190 | } |
| 191 | } |
| 192 | } |
| 193 | } |
| 194 | } |
| 195 | } |
| 196 | |
| 197 | func (c *Completer) getPriority(database string, schema string, table string) int { |
| 198 | if database == "" { |
no test coverage detected