MCPcopy Create free account
hub / github.com/MaterializeInc/materialize / fold_column_name

Method fold_column_name

src/sql/src/names.rs:1766–1840  ·  view source on GitHub ↗
(&mut self, column_name: ast::ColumnName<Raw>)

Source from the content-addressed store, hash-verified

1764 }
1765
1766 fn fold_column_name(&mut self, column_name: ast::ColumnName<Raw>) -> ast::ColumnName<Aug> {
1767 let item_name = self.resolve_item_name(
1768 column_name.relation,
1769 ItemResolutionConfig {
1770 functions: false,
1771 types: true,
1772 relations: true,
1773 },
1774 );
1775
1776 match &item_name {
1777 ResolvedItemName::Item {
1778 id,
1779 full_name,
1780 version,
1781 qualifiers: _,
1782 print_id: _,
1783 } => {
1784 let item = self.catalog.get_item(id).at_version(*version);
1785 let name = normalize::column_name(column_name.column.clone());
1786
1787 let maybe_desc = match item.type_details() {
1788 Some(details) => match details.typ.desc(self.catalog) {
1789 Ok(desc) => desc.map(Cow::Owned),
1790 Err(e) => {
1791 if self.status.is_ok() {
1792 self.status = Err(e);
1793 }
1794 return ast::ColumnName {
1795 relation: ResolvedItemName::Error,
1796 column: ResolvedColumnReference::Error,
1797 };
1798 }
1799 },
1800 None => item.relation_desc(),
1801 };
1802 let Some(desc) = maybe_desc else {
1803 if self.status.is_ok() {
1804 self.status = Err(PlanError::ItemWithoutColumns {
1805 name: full_name.to_string(),
1806 item_type: item.item_type(),
1807 });
1808 }
1809 return ast::ColumnName {
1810 relation: ResolvedItemName::Error,
1811 column: ResolvedColumnReference::Error,
1812 };
1813 };
1814
1815 let Some((index, _typ)) = desc.get_by_name(&name) else {
1816 if self.status.is_ok() {
1817 let similar = desc.iter_similar_names(&name).cloned().collect();
1818 self.status = Err(PlanError::UnknownColumn {
1819 table: Some(full_name.clone().into()),
1820 column: name,
1821 similar,
1822 })
1823 }

Callers 1

Calls 14

column_nameFunction · 0.85
get_by_nameMethod · 0.80
iter_similar_namesMethod · 0.80
resolve_item_nameMethod · 0.45
at_versionMethod · 0.45
get_itemMethod · 0.45
cloneMethod · 0.45
type_detailsMethod · 0.45
descMethod · 0.45
mapMethod · 0.45
relation_descMethod · 0.45
to_stringMethod · 0.45

Tested by

no test coverage detected