use crate::catalog::DETACHED;
use crate::name::QualifiedName;
#[derive(Debug, Clone)]
pub struct View {
name: QualifiedName,
sql: String,
aliases: Vec<String>,
oid: i64,
}
impl View {
#[must_use]
pub fn new(name: QualifiedName, sql: String, aliases: Vec<String>) -> Self {
Self { name, sql, aliases, oid: DETACHED }
}
#[must_use]
pub fn oid(&self) -> i64 {
self.oid
}
pub(crate) fn stamp(&mut self, oid: i64) {
self.oid = oid;
}
#[must_use]
pub fn name(&self) -> &QualifiedName {
&self.name
}
#[must_use]
pub fn sql(&self) -> &str {
&self.sql
}
#[must_use]
pub fn aliases(&self) -> &[String] {
&self.aliases
}
}