Skip to content

Commit 1ecf383

Browse files
authored
Better view caching (#8514)
* Better view caching * fmt fix * zach comments
1 parent c2bb78c commit 1ecf383

File tree

3 files changed

+13
-12
lines changed

3 files changed

+13
-12
lines changed

go/libraries/doltcore/doltdb/root_val.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -901,6 +901,7 @@ func (root *rootValue) putTable(ctx context.Context, tName TableName, ref types.
901901
// certain updates can safely reuse the previous map
902902
ret.schemaHashes = root.schemaHashes
903903
}
904+
904905
return ret, nil
905906
}
906907

go/libraries/doltcore/sqle/database.go

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -633,15 +633,7 @@ func (db Database) getTableInsensitive(ctx *sql.Context, head *doltdb.Commit, ds
633633
if err != nil {
634634
return nil, false, err
635635
}
636-
if backingTable == nil {
637-
dt = NewEmptySchemaTable()
638-
} else {
639-
writeTable := backingTable.(*WritableDoltTable)
640-
dt, err = NewSchemaTable(writeTable)
641-
if err != nil {
642-
return nil, false, err
643-
}
644-
}
636+
dt = NewSchemaTable(backingTable)
645637
}
646638

647639
if found {
@@ -1634,10 +1626,15 @@ func (db Database) GetViewDefinition(ctx *sql.Context, viewName string) (sql.Vie
16341626
return sql.ViewDefinition{Name: viewName, TextDefinition: blameViewTextDef, CreateViewStatement: fmt.Sprintf("CREATE VIEW `%s` AS %s", viewName, blameViewTextDef)}, true, nil
16351627
}
16361628

1637-
key, err := doltdb.NewDataCacheKey(root)
1629+
schTblHash, ok, err := root.GetTableHash(ctx, doltdb.TableName{Name: doltdb.SchemasTableName, Schema: db.schemaName})
16381630
if err != nil {
16391631
return sql.ViewDefinition{}, false, err
16401632
}
1633+
if !ok {
1634+
return sql.ViewDefinition{}, false, nil
1635+
}
1636+
1637+
key := doltdb.DataCacheKey{Hash: schTblHash}
16411638

16421639
ds := dsess.DSessFromSess(ctx.Session)
16431640
dbState, _, err := ds.LookupDbState(ctx, db.RevisionQualifiedName())

go/libraries/doltcore/sqle/schema_table.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -201,8 +201,11 @@ func NewEmptySchemaTable() sql.Table {
201201
return &SchemaTable{}
202202
}
203203

204-
func NewSchemaTable(backingTable *WritableDoltTable) (sql.Table, error) {
205-
return &SchemaTable{backingTable: backingTable}, nil
204+
func NewSchemaTable(backingTable sql.Table) *SchemaTable {
205+
if backingTable == nil {
206+
return &SchemaTable{}
207+
}
208+
return &SchemaTable{backingTable: backingTable.(*WritableDoltTable)}
206209
}
207210

208211
// getOrCreateDoltSchemasTable returns the `dolt_schemas` table in `db`, creating it if it does not already exist.

0 commit comments

Comments
 (0)