@@ -1902,7 +1902,7 @@ impl fmt::Display for TableFactor {
19021902 write ! ( f, " {sample}" ) ?;
19031903 }
19041904 if let Some ( alias) = alias {
1905- write ! ( f, " AS {alias}" ) ?;
1905+ write ! ( f, " {alias}" ) ?;
19061906 }
19071907 if !index_hints. is_empty ( ) {
19081908 write ! ( f, " {}" , display_separated( index_hints, " " ) ) ?;
@@ -1932,7 +1932,7 @@ impl fmt::Display for TableFactor {
19321932 NewLine . fmt ( f) ?;
19331933 f. write_str ( ")" ) ?;
19341934 if let Some ( alias) = alias {
1935- write ! ( f, " AS {alias}" ) ?;
1935+ write ! ( f, " {alias}" ) ?;
19361936 }
19371937 Ok ( ( ) )
19381938 }
@@ -1948,14 +1948,14 @@ impl fmt::Display for TableFactor {
19481948 write ! ( f, "{name}" ) ?;
19491949 write ! ( f, "({})" , display_comma_separated( args) ) ?;
19501950 if let Some ( alias) = alias {
1951- write ! ( f, " AS {alias}" ) ?;
1951+ write ! ( f, " {alias}" ) ?;
19521952 }
19531953 Ok ( ( ) )
19541954 }
19551955 TableFactor :: TableFunction { expr, alias } => {
19561956 write ! ( f, "TABLE({expr})" ) ?;
19571957 if let Some ( alias) = alias {
1958- write ! ( f, " AS {alias}" ) ?;
1958+ write ! ( f, " {alias}" ) ?;
19591959 }
19601960 Ok ( ( ) )
19611961 }
@@ -1973,13 +1973,13 @@ impl fmt::Display for TableFactor {
19731973 }
19741974
19751975 if let Some ( alias) = alias {
1976- write ! ( f, " AS {alias}" ) ?;
1976+ write ! ( f, " {alias}" ) ?;
19771977 }
19781978 if * with_offset {
19791979 write ! ( f, " WITH OFFSET" ) ?;
19801980 }
19811981 if let Some ( alias) = with_offset_alias {
1982- write ! ( f, " AS {alias}" ) ?;
1982+ write ! ( f, " {alias}" ) ?;
19831983 }
19841984 Ok ( ( ) )
19851985 }
@@ -1995,7 +1995,7 @@ impl fmt::Display for TableFactor {
19951995 columns = display_comma_separated( columns)
19961996 ) ?;
19971997 if let Some ( alias) = alias {
1998- write ! ( f, " AS {alias}" ) ?;
1998+ write ! ( f, " {alias}" ) ?;
19991999 }
20002000 Ok ( ( ) )
20012001 }
@@ -2014,7 +2014,7 @@ impl fmt::Display for TableFactor {
20142014 write ! ( f, " WITH ({})" , display_comma_separated( columns) ) ?;
20152015 }
20162016 if let Some ( alias) = alias {
2017- write ! ( f, " AS {alias}" ) ?;
2017+ write ! ( f, " {alias}" ) ?;
20182018 }
20192019 Ok ( ( ) )
20202020 }
@@ -2024,7 +2024,7 @@ impl fmt::Display for TableFactor {
20242024 } => {
20252025 write ! ( f, "({table_with_joins})" ) ?;
20262026 if let Some ( alias) = alias {
2027- write ! ( f, " AS {alias}" ) ?;
2027+ write ! ( f, " {alias}" ) ?;
20282028 }
20292029 Ok ( ( ) )
20302030 }
@@ -2051,8 +2051,8 @@ impl fmt::Display for TableFactor {
20512051 write ! ( f, " DEFAULT ON NULL ({expr})" ) ?;
20522052 }
20532053 write ! ( f, ")" ) ?;
2054- if alias . is_some ( ) {
2055- write ! ( f, " AS {}" , alias . as_ref ( ) . unwrap ( ) ) ?;
2054+ if let Some ( alias ) = alias {
2055+ write ! ( f, " {alias}" ) ?;
20562056 }
20572057 Ok ( ( ) )
20582058 }
@@ -2075,8 +2075,8 @@ impl fmt::Display for TableFactor {
20752075 name,
20762076 display_comma_separated( columns)
20772077 ) ?;
2078- if alias . is_some ( ) {
2079- write ! ( f, " AS {}" , alias . as_ref ( ) . unwrap ( ) ) ?;
2078+ if let Some ( alias ) = alias {
2079+ write ! ( f, " {alias}" ) ?;
20802080 }
20812081 Ok ( ( ) )
20822082 }
@@ -2109,8 +2109,8 @@ impl fmt::Display for TableFactor {
21092109 }
21102110 write ! ( f, "PATTERN ({pattern}) " ) ?;
21112111 write ! ( f, "DEFINE {})" , display_comma_separated( symbols) ) ?;
2112- if alias . is_some ( ) {
2113- write ! ( f, " AS {}" , alias . as_ref ( ) . unwrap ( ) ) ?;
2112+ if let Some ( alias ) = alias {
2113+ write ! ( f, " {alias}" ) ?;
21142114 }
21152115 Ok ( ( ) )
21162116 }
@@ -2135,7 +2135,7 @@ impl fmt::Display for TableFactor {
21352135 columns = display_comma_separated( columns)
21362136 ) ?;
21372137 if let Some ( alias) = alias {
2138- write ! ( f, " AS {alias}" ) ?;
2138+ write ! ( f, " {alias}" ) ?;
21392139 }
21402140 Ok ( ( ) )
21412141 }
@@ -2168,7 +2168,7 @@ impl fmt::Display for TableFactor {
21682168 write ! ( f, ")" ) ?;
21692169
21702170 if let Some ( alias) = alias {
2171- write ! ( f, " AS {alias}" ) ?;
2171+ write ! ( f, " {alias}" ) ?;
21722172 }
21732173
21742174 Ok ( ( ) )
@@ -2181,13 +2181,17 @@ impl fmt::Display for TableFactor {
21812181#[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
21822182#[ cfg_attr( feature = "visitor" , derive( Visit , VisitMut ) ) ]
21832183pub struct TableAlias {
2184+ /// Tells whether the alias was introduced with an explicit, preceding "AS"
2185+ /// keyword, e.g. `AS name`. Typically, the keyword is preceding the name
2186+ /// (e.g. `.. FROM table AS t ..`).
2187+ pub explicit : bool ,
21842188 pub name : Ident ,
21852189 pub columns : Vec < TableAliasColumnDef > ,
21862190}
21872191
21882192impl fmt:: Display for TableAlias {
21892193 fn fmt ( & self , f : & mut fmt:: Formatter ) -> fmt:: Result {
2190- write ! ( f, "{}" , self . name) ?;
2194+ write ! ( f, "{}{}" , if self . explicit { "AS " } else { "" } , self . name) ?;
21912195 if !self . columns . is_empty ( ) {
21922196 write ! ( f, " ({})" , display_comma_separated( & self . columns) ) ?;
21932197 }
0 commit comments