Closed ksaito7 closed 6 years ago
@aaron-tian Thanks for a lot of comments! I modified them and reply each comments. Please check them again.
Thanks for the nice work. IsHybridStore()
could be added and the type of GetColumnOffset()
could be changed if you think it's a good idea, all the others LGTM.
I update them you mentioned. thanks.
This PR updates some issues related to catalog stuff for checkpoints.
- Related Issues
1319 Add column length in ColumnCatalogObject and pg_attribute
1320 Catalog OID collision in checkpoint recovery
1373 Unexpected catalog object might be obtained from CatalogCache
1374 Can't recover tile group from LayoutCatalog in checkpoint recovery
- Fix Points
column_length
feild within pg_attribute and ColumnCatalogObject, and modify related functions in ColumnCatalog.UpdateOid()
function within catalogs using oid_ in order to avoid collision between catalog values added by system and users. And addOID_FOR_USER_OFFSET
(= 10000) variable within catalog_default.cpp to be used forUpdateOid()
function. These are called in last of bootstraps of Catalog and SystemCatalog.GetChachedTableObject()
function andGetChachedIndexObject()
function in order to avoid to acquire an unexpected table from other database. Also fix related functions,GetTableObject()
in TableCatalog andGetIndexObject()
in IndexCatalog.Layout(num_columns, layout_type)
to set appropriate layout oid.CreateTable()
andCreateLayout()
in Catalog class to insert all Layout information including row layout and column layout into pg_layout, LayoutCatalog. These avoid to insert same layout. And also modifyDropLayout()
in Catalog to recreate default layout in pg_catalog in case that it is deleted.default_layout_oid
field within pg_table and TableCatalogObject, and modify related functions in TableCatalog. To support for updating default layout, addUpdateDefaultLayoutOid()
function within TableCatalog. It is used inCreateDefaultLayout()
function andDropLayout()
function.