MCPcopy
hub / github.com/uber/aresdb / preCreateEnumNodes

Function preCreateEnumNodes

controller/mutators/etcd/schema_mutator.go:281–297  ·  view source on GitHub ↗
(txn *kvstore.Transaction, namespace string, table *metaCom.Table, startColumnID int, endColumnID int)

Source from the content-addressed store, hash-verified

279}
280
281func preCreateEnumNodes(txn *kvstore.Transaction, namespace string, table *metaCom.Table, startColumnID int, endColumnID int) {
282 for columnID := startColumnID; columnID < endColumnID; columnID++ {
283 if table.Columns[columnID].IsEnumColumn() {
284 var firstEnumCases []string
285 if table.Columns[columnID].DefaultValue != nil {
286 defaultValue := *table.Columns[columnID].DefaultValue
287 // default value be first enum case
288 firstEnumCases = append(firstEnumCases, defaultValue)
289 }
290
291 // enum node list
292 txn.AddKeyValue(utils.EnumNodeListKey(namespace, table.Name, table.Incarnation, columnID), kv.UninitializedVersion, &pb.EnumNodeList{NumEnumNodes: 1}).
293 // first node for enum column
294 AddKeyValue(utils.EnumNodeKey(namespace, table.Name, table.Incarnation, columnID, 0), kv.UninitializedVersion, &pb.EnumCases{Cases: firstEnumCases})
295 }
296 }
297}
298
299func (m *tableSchemaMutator) GetHash(namespace string) (hash string, err error) {
300 return getHash(m.txnStore, utils.SchemaListKey(namespace))

Callers 2

CreateTableMethod · 0.85
UpdateTableMethod · 0.85

Calls 4

EnumNodeListKeyFunction · 0.92
EnumNodeKeyFunction · 0.92
IsEnumColumnMethod · 0.80
AddKeyValueMethod · 0.80

Tested by

no test coverage detected