sql_fun_sqlast/sem/problem/name_resolution/
column_not_found.rs1use crate::sem::{
2 AnalysisProblem, ColumnName, CteName, TableName, ViewName, data_source::AliasName,
3};
4
5use super::NameResolution;
6
7impl NameResolution {
8 pub(crate) fn column_not_found_in_view(view_name: &ViewName, column: &ColumnName) -> Self {
9 Self::ColumnNotFoundInView(view_name.clone(), column.clone())
10 }
11
12 pub(crate) fn column_not_found_in_cte(cte_name: &CteName, column: &ColumnName) -> Self {
13 Self::ColumnNotFoundInCte(cte_name.clone(), column.clone())
14 }
15
16 pub(crate) fn column_not_found_in_table(table_name: &TableName, column: &ColumnName) -> Self {
17 Self::ColumnNotFoundInTable(table_name.clone(), column.clone())
18 }
19
20 pub(crate) fn column_not_found_in_subquery(
21 alias_name: &AliasName,
22 column: &ColumnName,
23 ) -> Self {
24 Self::ColumnNotFoundInSubQuery(alias_name.clone(), column.clone())
25 }
26
27 pub(crate) fn column_not_found_in_source(column: &ColumnName) -> Self {
28 Self::ColumnNotFoundInSource(column.clone())
29 }
30
31 pub fn column_not_found_in_table_function(alias: &AliasName, column: &ColumnName) -> Self {
33 Self::ColumnNotFoundInTableFunction(alias.clone(), column.clone())
34 }
35}
36
37impl AnalysisProblem {
38 #[must_use]
40 pub fn column_not_found_in_view(view_name: &ViewName, column: &ColumnName) -> Self {
41 Self::NameResolution(NameResolution::column_not_found_in_view(view_name, column))
42 }
43
44 #[tracing::instrument()]
46 pub fn column_not_found_in_subquery(alias: &AliasName, column: &ColumnName) -> Self {
47 Self::NameResolution(NameResolution::column_not_found_in_subquery(alias, column))
48 }
49
50 #[tracing::instrument()]
52 pub fn column_not_found_in_table(table_name: &TableName, col_name: &ColumnName) -> Self {
53 Self::NameResolution(NameResolution::column_not_found_in_table(
54 table_name, col_name,
55 ))
56 }
57
58 #[tracing::instrument()]
60 pub fn column_not_found_in_cte(cte_name: &CteName, column: &ColumnName) -> Self {
61 Self::NameResolution(NameResolution::column_not_found_in_cte(cte_name, column))
62 }
63
64 #[tracing::instrument()]
66 pub fn column_not_found_in_source(column: &ColumnName) -> Self {
67 Self::NameResolution(NameResolution::column_not_found_in_source(column))
68 }
69
70 #[tracing::instrument()]
72 pub fn column_not_found_in_table_function(alias: &AliasName, column: &ColumnName) -> Self {
73 Self::NameResolution(NameResolution::column_not_found_in_table_function(
74 alias, column,
75 ))
76 }
77}