pub struct ViewColumn {
pub name: Identifier,
pub column_type: ColumnType,
pub comment: Option<String>,
}Expand description
A single named column in a view or materialized view.
Postgres allows column alias lists on CREATE VIEW to override the
column names derived from the SELECT list. This struct records the
(possibly overridden) column name, its resolved type, and any attached
comment.
§column_type sentinel
When ViewColumn is constructed from an explicit alias list in T3
(parsing), the type is not yet known — it requires resolving the SELECT
body against the catalog. In that case column_type is set to
ColumnType::Other { raw: "unresolved".to_string() }, which serves as
a parser-internal sentinel. T4’s AST canonicalization pass replaces it
with the resolved type. The sentinel must never appear in a serialized
catalog or plan — T4 always runs before serialization.
When ViewColumn is built from the live catalog (T5), column_type is
parsed directly from format_type(a.atttypid, a.atttypmod).
Fields§
§name: IdentifierColumn name as it appears in the view definition (or is aliased).
column_type: ColumnTypeResolved data type of the column.
Set to ColumnType::Other { raw: "unresolved".to_string() } as a
parser-internal sentinel when type resolution has not yet occurred
(T3 → T4 transition). Must be fully resolved before serialization.
comment: Option<String>Optional COMMENT ON COLUMN text.
Trait Implementations§
Source§impl Clone for ViewColumn
impl Clone for ViewColumn
Source§fn clone(&self) -> ViewColumn
fn clone(&self) -> ViewColumn
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ViewColumn
impl Debug for ViewColumn
Source§impl<'de> Deserialize<'de> for ViewColumn
impl<'de> Deserialize<'de> for ViewColumn
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Hash for ViewColumn
impl Hash for ViewColumn
Source§impl PartialEq for ViewColumn
impl PartialEq for ViewColumn
Source§fn eq(&self, other: &ViewColumn) -> bool
fn eq(&self, other: &ViewColumn) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for ViewColumn
impl Serialize for ViewColumn
impl Eq for ViewColumn
impl StructuralPartialEq for ViewColumn
Auto Trait Implementations§
impl Freeze for ViewColumn
impl RefUnwindSafe for ViewColumn
impl Send for ViewColumn
impl Sync for ViewColumn
impl Unpin for ViewColumn
impl UnsafeUnpin for ViewColumn
impl UnwindSafe for ViewColumn
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more