Skip to main content

Module object_id

Module object_id 

Source
Expand description

Fully qualified database-object identifier type.

ObjectId is the canonical way to refer to a database object throughout project compilation and graph analysis. It is used as a map key, dependency graph node, and display type in error messages.

§Invariant

User objects are fully qualified database.schema.object. Objects in Materialize’s system schemas (pg_catalog, mz_catalog, mz_internal, mz_introspection, information_schema, mz_unsafe, mz_catalog_unstable) live at the cluster level and have no database; their ObjectId carries database = None and renders as schema.object. Partially qualified references are resolved into ObjectIds by ObjectId::from_item_name and ObjectId::from_raw_item_name, which fill in missing components from the current file’s database/schema context.

§Resolution Examples

from_item_name("sales", default_db="materialize", default_schema="public")
  → ObjectId::new("materialize", "public", "sales" )

from_item_name("analytics.summary", default_db="materialize", default_schema="public")
  → ObjectId::new("materialize", "analytics", "summary" )

from_item_name("mz_catalog.mz_objects", ...)
  → ObjectId { database: None, schema: "mz_catalog", object: "mz_objects" }

from_item_name("other_db.staging.events", ...)
  → ObjectId::new("other_db", "staging", "events" )

Structs§

ObjectId
A canonical object identifier.