@@ -24,19 +24,20 @@ use mz_catalog::builtin::{
2424 MZ_INTERNAL_CLUSTER_REPLICAS , MZ_KAFKA_CONNECTIONS , MZ_KAFKA_SINKS , MZ_KAFKA_SOURCE_TABLES ,
2525 MZ_KAFKA_SOURCES , MZ_LICENSE_KEYS , MZ_LIST_TYPES , MZ_MAP_TYPES ,
2626 MZ_MATERIALIZED_VIEW_REFRESH_STRATEGIES , MZ_MATERIALIZED_VIEWS , MZ_MYSQL_SOURCE_TABLES ,
27- MZ_NETWORK_POLICIES , MZ_NETWORK_POLICY_RULES , MZ_OBJECT_DEPENDENCIES , MZ_OPERATORS ,
28- MZ_PENDING_CLUSTER_REPLICAS , MZ_POSTGRES_SOURCE_TABLES , MZ_POSTGRES_SOURCES , MZ_PSEUDO_TYPES ,
29- MZ_ROLE_AUTH , MZ_ROLE_MEMBERS , MZ_ROLE_PARAMETERS , MZ_ROLES , MZ_SCHEMAS , MZ_SECRETS ,
30- MZ_SESSIONS , MZ_SINKS , MZ_SOURCE_REFERENCES , MZ_SOURCES , MZ_SQL_SERVER_SOURCE_TABLES ,
31- MZ_SSH_TUNNEL_CONNECTIONS , MZ_STORAGE_USAGE_BY_SHARD , MZ_SUBSCRIPTIONS , MZ_SYSTEM_PRIVILEGES ,
32- MZ_TABLES , MZ_TYPE_PG_METADATA , MZ_TYPES , MZ_VIEWS , MZ_WEBHOOKS_SOURCES ,
27+ MZ_NETWORK_POLICIES , MZ_NETWORK_POLICY_RULES , MZ_OBJECT_DEPENDENCIES , MZ_OBJECT_GLOBAL_IDS ,
28+ MZ_OPERATORS , MZ_PENDING_CLUSTER_REPLICAS , MZ_POSTGRES_SOURCE_TABLES , MZ_POSTGRES_SOURCES ,
29+ MZ_PSEUDO_TYPES , MZ_ROLE_AUTH , MZ_ROLE_MEMBERS , MZ_ROLE_PARAMETERS , MZ_ROLES , MZ_SCHEMAS ,
30+ MZ_SECRETS , MZ_SESSIONS , MZ_SINKS , MZ_SOURCE_REFERENCES , MZ_SOURCES ,
31+ MZ_SQL_SERVER_SOURCE_TABLES , MZ_SSH_TUNNEL_CONNECTIONS , MZ_STORAGE_USAGE_BY_SHARD ,
32+ MZ_SUBSCRIPTIONS , MZ_SYSTEM_PRIVILEGES , MZ_TABLES , MZ_TYPE_PG_METADATA , MZ_TYPES , MZ_VIEWS ,
33+ MZ_WEBHOOKS_SOURCES ,
3334} ;
3435use mz_catalog:: config:: AwsPrincipalContext ;
3536use mz_catalog:: durable:: SourceReferences ;
3637use mz_catalog:: memory:: error:: { Error , ErrorKind } ;
3738use mz_catalog:: memory:: objects:: {
38- CatalogItem , ClusterVariant , Connection , ContinualTask , DataSourceDesc , Func , Index ,
39- MaterializedView , Sink , Table , TableDataSource , Type , View ,
39+ CatalogEntry , CatalogItem , ClusterVariant , Connection , ContinualTask , DataSourceDesc , Func ,
40+ Index , MaterializedView , Sink , Table , TableDataSource , Type , View ,
4041} ;
4142use mz_controller:: clusters:: {
4243 ManagedReplicaAvailabilityZones , ManagedReplicaLocation , ReplicaLocation ,
@@ -900,9 +901,26 @@ impl CatalogState {
900901 updates. push ( self . pack_history_retention_strategy_update ( id, cw, diff) ) ;
901902 }
902903
904+ updates. extend ( Self :: pack_item_global_id_update ( entry, diff) ) ;
905+
903906 updates
904907 }
905908
909+ fn pack_item_global_id_update (
910+ entry : & CatalogEntry ,
911+ diff : Diff ,
912+ ) -> impl Iterator < Item = BuiltinTableUpdate < & ' static BuiltinTable > > + use < ' _ > {
913+ let id = entry. id ( ) . to_string ( ) ;
914+ let global_ids = entry. global_ids ( ) ;
915+ global_ids. map ( move |global_id| {
916+ BuiltinTableUpdate :: row (
917+ & * MZ_OBJECT_GLOBAL_IDS ,
918+ Row :: pack_slice ( & [ Datum :: String ( & id) , Datum :: String ( & global_id. to_string ( ) ) ] ) ,
919+ diff,
920+ )
921+ } )
922+ }
923+
906924 fn pack_history_retention_strategy_update (
907925 & self ,
908926 id : CatalogItemId ,
0 commit comments