github.com/cockroachdb/cockroach@v20.2.0-alpha.1+incompatible/pkg/ccl/changefeedccl/schemafeed/schematestutils/schema_test_utils.go (about) 1 // Copyright 2018 The Cockroach Authors. 2 // 3 // Licensed as a CockroachDB Enterprise file under the Cockroach Community 4 // License (the "License"); you may not use this file except in compliance with 5 // the License. You may obtain a copy of the License at 6 // 7 // https://github.com/cockroachdb/cockroach/blob/master/licenses/CCL.txt 8 9 // Package schematestutils is a utility package for constructing schema objects 10 // in the context of cdc. 11 package schematestutils 12 13 import ( 14 "strconv" 15 16 "github.com/cockroachdb/cockroach/pkg/sql/sqlbase" 17 "github.com/cockroachdb/cockroach/pkg/sql/types" 18 "github.com/cockroachdb/cockroach/pkg/util/hlc" 19 "github.com/gogo/protobuf/proto" 20 ) 21 22 // MakeTableDesc makes a generic table descriptor with the provided properties. 23 func MakeTableDesc( 24 tableID sqlbase.ID, version sqlbase.DescriptorVersion, modTime hlc.Timestamp, cols int, 25 ) *sqlbase.TableDescriptor { 26 td := &sqlbase.TableDescriptor{ 27 Name: "foo", 28 ID: tableID, 29 Version: version, 30 ModificationTime: modTime, 31 NextColumnID: 1, 32 } 33 for i := 0; i < cols; i++ { 34 td.Columns = append(td.Columns, *MakeColumnDesc(td.NextColumnID)) 35 td.NextColumnID++ 36 } 37 return td 38 } 39 40 // MakeColumnDesc makes a generic column descriptor with the provided id. 41 func MakeColumnDesc(id sqlbase.ColumnID) *sqlbase.ColumnDescriptor { 42 return &sqlbase.ColumnDescriptor{ 43 Name: "c" + strconv.Itoa(int(id)), 44 ID: id, 45 Type: types.Bool, 46 DefaultExpr: proto.String("true"), 47 } 48 } 49 50 // AddColumnDropBackfillMutation adds a mutation to desc to drop a column. 51 func AddColumnDropBackfillMutation(desc *sqlbase.TableDescriptor) *sqlbase.TableDescriptor { 52 desc.Mutations = append(desc.Mutations, sqlbase.DescriptorMutation{ 53 State: sqlbase.DescriptorMutation_DELETE_AND_WRITE_ONLY, 54 Direction: sqlbase.DescriptorMutation_DROP, 55 }) 56 return desc 57 } 58 59 // AddNewColumnBackfillMutation adds a mutation to desc to add a column. 60 func AddNewColumnBackfillMutation(desc *sqlbase.TableDescriptor) *sqlbase.TableDescriptor { 61 desc.Mutations = append(desc.Mutations, sqlbase.DescriptorMutation{ 62 Descriptor_: &sqlbase.DescriptorMutation_Column{Column: MakeColumnDesc(desc.NextColumnID)}, 63 State: sqlbase.DescriptorMutation_DELETE_AND_WRITE_ONLY, 64 Direction: sqlbase.DescriptorMutation_ADD, 65 MutationID: 0, 66 Rollback: false, 67 }) 68 return desc 69 }