MCPcopy
hub / github.com/github/gh-ost / GetTableColumns

Function GetTableColumns

go/mysql/utils.go:213–241  ·  view source on GitHub ↗

GetTableColumns reads column list from given table

(db *gosql.DB, databaseName, tableName string)

Source from the content-addressed store, hash-verified

211
212// GetTableColumns reads column list from given table
213func GetTableColumns(db *gosql.DB, databaseName, tableName string) (*sql.ColumnList, *sql.ColumnList, error) {
214 query := fmt.Sprintf(`
215 show columns from %s.%s
216 `,
217 sql.EscapeName(databaseName),
218 sql.EscapeName(tableName),
219 )
220 columnNames := []string{}
221 virtualColumnNames := []string{}
222 err := sqlutils.QueryRowsMap(db, query, func(rowMap sqlutils.RowMap) error {
223 columnName := rowMap.GetString("Field")
224 columnNames = append(columnNames, columnName)
225 if strings.Contains(rowMap.GetString("Extra"), " GENERATED") {
226 log.Debugf("%s is a generated column", columnName)
227 virtualColumnNames = append(virtualColumnNames, columnName)
228 }
229 return nil
230 })
231 if err != nil {
232 return nil, nil, err
233 }
234 if len(columnNames) == 0 {
235 return nil, nil, log.Errorf("found 0 columns on %s.%s. Bailing out",
236 sql.EscapeName(databaseName),
237 sql.EscapeName(tableName),
238 )
239 }
240 return sql.NewColumnList(columnNames), sql.NewColumnList(virtualColumnNames), nil
241}
242
243// Kill executes a KILL QUERY by connection id
244func Kill(db *gosql.DB, connectionID string) error {

Callers 1

Calls 4

EscapeNameFunction · 0.92
NewColumnListFunction · 0.92
DebugfMethod · 0.65
ErrorfMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…