Added database schema to foreign keys

This commit is contained in:
Zach Musgrave
2024-04-12 15:40:31 -07:00
parent 37f3798762
commit ceaec05aee
4 changed files with 58 additions and 8 deletions
+47 -1
View File
@@ -307,7 +307,41 @@ func (rcv *ForeignKey) UnresolvedParentColumnsLength() int {
return 0
}
const ForeignKeyNumFields = 11
func (rcv *ForeignKey) ChildTableDatabaseSchema(j int) []byte {
o := flatbuffers.UOffsetT(rcv._tab.Offset(26))
if o != 0 {
a := rcv._tab.Vector(o)
return rcv._tab.ByteVector(a + flatbuffers.UOffsetT(j*4))
}
return nil
}
func (rcv *ForeignKey) ChildTableDatabaseSchemaLength() int {
o := flatbuffers.UOffsetT(rcv._tab.Offset(26))
if o != 0 {
return rcv._tab.VectorLen(o)
}
return 0
}
func (rcv *ForeignKey) ParentTableDatabaseSchema(j int) []byte {
o := flatbuffers.UOffsetT(rcv._tab.Offset(28))
if o != 0 {
a := rcv._tab.Vector(o)
return rcv._tab.ByteVector(a + flatbuffers.UOffsetT(j*4))
}
return nil
}
func (rcv *ForeignKey) ParentTableDatabaseSchemaLength() int {
o := flatbuffers.UOffsetT(rcv._tab.Offset(28))
if o != 0 {
return rcv._tab.VectorLen(o)
}
return 0
}
const ForeignKeyNumFields = 13
func ForeignKeyStart(builder *flatbuffers.Builder) {
builder.StartObject(ForeignKeyNumFields)
@@ -357,6 +391,18 @@ func ForeignKeyAddUnresolvedParentColumns(builder *flatbuffers.Builder, unresolv
func ForeignKeyStartUnresolvedParentColumnsVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT {
return builder.StartVector(4, numElems, 4)
}
func ForeignKeyAddChildTableDatabaseSchema(builder *flatbuffers.Builder, childTableDatabaseSchema flatbuffers.UOffsetT) {
builder.PrependUOffsetTSlot(11, flatbuffers.UOffsetT(childTableDatabaseSchema), 0)
}
func ForeignKeyStartChildTableDatabaseSchemaVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT {
return builder.StartVector(4, numElems, 4)
}
func ForeignKeyAddParentTableDatabaseSchema(builder *flatbuffers.Builder, parentTableDatabaseSchema flatbuffers.UOffsetT) {
builder.PrependUOffsetTSlot(12, flatbuffers.UOffsetT(parentTableDatabaseSchema), 0)
}
func ForeignKeyStartParentTableDatabaseSchemaVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT {
return builder.StartVector(4, numElems, 4)
}
func ForeignKeyEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT {
return builder.EndObject()
}
+5 -5
View File
@@ -144,7 +144,7 @@ func (rcv *RootValue) MutateCollation(n Collation) bool {
return rcv._tab.MutateUint16Slot(10, uint16(n))
}
func (rcv *RootValue) TrySchemas(obj *DatabaseSchemaTableStore, j int) (bool, error) {
func (rcv *RootValue) TrySchemaTables(obj *DatabaseSchemaTableStore, j int) (bool, error) {
o := flatbuffers.UOffsetT(rcv._tab.Offset(12))
if o != 0 {
x := rcv._tab.Vector(o)
@@ -159,7 +159,7 @@ func (rcv *RootValue) TrySchemas(obj *DatabaseSchemaTableStore, j int) (bool, er
return false, nil
}
func (rcv *RootValue) SchemasLength() int {
func (rcv *RootValue) SchemaTablesLength() int {
o := flatbuffers.UOffsetT(rcv._tab.Offset(12))
if o != 0 {
return rcv._tab.VectorLen(o)
@@ -190,10 +190,10 @@ func RootValueStartForeignKeyAddrVector(builder *flatbuffers.Builder, numElems i
func RootValueAddCollation(builder *flatbuffers.Builder, collation Collation) {
builder.PrependUint16Slot(3, uint16(collation), 0)
}
func RootValueAddSchemas(builder *flatbuffers.Builder, schemas flatbuffers.UOffsetT) {
builder.PrependUOffsetTSlot(4, flatbuffers.UOffsetT(schemas), 0)
func RootValueAddSchemaTables(builder *flatbuffers.Builder, schemaTables flatbuffers.UOffsetT) {
builder.PrependUOffsetTSlot(4, flatbuffers.UOffsetT(schemaTables), 0)
}
func RootValueStartSchemasVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT {
func RootValueStartSchemaTablesVector(builder *flatbuffers.Builder, numElems int) flatbuffers.UOffsetT {
return builder.StartVector(4, numElems, 4)
}
func RootValueEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT {
+4
View File
@@ -48,6 +48,10 @@ table ForeignKey {
// unresolved details
unresolved_child_columns:[string];
unresolved_parent_columns:[string];
// For tables in the non-default schema, these fields are set
child_table_database_schema:[string];
parent_table_database_schema:[string];
}
// KEEP THIS IN SYNC WITH fileidentifiers.go
+2 -2
View File
@@ -27,9 +27,9 @@ table RootValue {
collation:Collation;
// schemas is used for table storage in any non-default database schema. Databases with a single schema
// schema_tables is used for table storage in any non-default database schema. Databases with a single schema
// (the default) only use the normal tables field. Entries are stored in sorted order by schema name.
schemas:[DatabaseSchemaTableStore];
schema_tables:[DatabaseSchemaTableStore];
}
table DatabaseSchemaTableStore {