func TestAllocateIDs(t *testing.T) { defer leaktest.AfterTest(t) desc := sql.TableDescriptor{ ID: keys.MaxReservedDescID + 2, ParentID: keys.MaxReservedDescID + 1, Name: "foo", Columns: []sql.ColumnDescriptor{ {Name: "a"}, {Name: "b"}, {Name: "c"}, }, PrimaryIndex: sql.IndexDescriptor{Name: "c", ColumnNames: []string{"a", "b"}}, Indexes: []sql.IndexDescriptor{ {Name: "d", ColumnNames: []string{"b", "a"}}, {Name: "e", ColumnNames: []string{"b"}}, }, Privileges: sql.NewDefaultPrivilegeDescriptor(), } if err := desc.AllocateIDs(); err != nil { t.Fatal(err) } expected := sql.TableDescriptor{ ID: keys.MaxReservedDescID + 2, ParentID: keys.MaxReservedDescID + 1, Version: 1, Name: "foo", Columns: []sql.ColumnDescriptor{ {ID: 1, Name: "a"}, {ID: 2, Name: "b"}, {ID: 3, Name: "c"}, }, PrimaryIndex: sql.IndexDescriptor{ ID: 1, Name: "c", ColumnIDs: []sql.ColumnID{1, 2}, ColumnNames: []string{"a", "b"}}, Indexes: []sql.IndexDescriptor{ {ID: 2, Name: "d", ColumnIDs: []sql.ColumnID{2, 1}, ColumnNames: []string{"b", "a"}}, {ID: 3, Name: "e", ColumnIDs: []sql.ColumnID{2}, ColumnNames: []string{"b"}, ImplicitColumnIDs: []sql.ColumnID{1}}, }, Privileges: sql.NewDefaultPrivilegeDescriptor(), NextColumnID: 4, NextIndexID: 4, } if !reflect.DeepEqual(expected, desc) { a, _ := json.MarshalIndent(expected, "", " ") b, _ := json.MarshalIndent(desc, "", " ") t.Fatalf("expected %s, but found %s", a, b) } if err := desc.AllocateIDs(); err != nil { t.Fatal(err) } if !reflect.DeepEqual(expected, desc) { a, _ := json.MarshalIndent(expected, "", " ") b, _ := json.MarshalIndent(desc, "", " ") t.Fatalf("expected %s, but found %s", a, b) } }
func TestAllocateIDs(t *testing.T) { defer leaktest.AfterTest(t) desc := sql.TableDescriptor{ ID: sql.MaxReservedDescID + 1, Name: "foo", Columns: []sql.ColumnDescriptor{ {Name: "a"}, {Name: "b"}, }, PrimaryIndex: sql.IndexDescriptor{Name: "c", ColumnNames: []string{"a"}}, Indexes: []sql.IndexDescriptor{ {Name: "d", ColumnNames: []string{"b", "a"}}, }, Privileges: sql.NewDefaultDatabasePrivilegeDescriptor(), } if err := desc.AllocateIDs(); err != nil { t.Fatal(err) } expected := sql.TableDescriptor{ ID: sql.MaxReservedDescID + 1, Name: "foo", Columns: []sql.ColumnDescriptor{ {ID: 1, Name: "a"}, {ID: 2, Name: "b"}, }, PrimaryIndex: sql.IndexDescriptor{ID: 1, Name: "c", ColumnIDs: []sql.ColumnID{1}, ColumnNames: []string{"a"}}, Indexes: []sql.IndexDescriptor{ {ID: 2, Name: "d", ColumnIDs: []sql.ColumnID{2, 1}, ColumnNames: []string{"b", "a"}}, }, Privileges: sql.NewDefaultDatabasePrivilegeDescriptor(), NextColumnID: 3, NextIndexID: 3, } if !reflect.DeepEqual(expected, desc) { t.Fatalf("expected %+v, but found %+v", expected, desc) } }