@@ -1908,7 +1908,7 @@ impl fmt::Display for TableFactor {
19081908 write ! ( f, " {sample}" ) ?;
19091909 }
19101910 if let Some ( alias) = alias {
1911- write ! ( f, " AS {alias}" ) ?;
1911+ write ! ( f, " {alias}" ) ?;
19121912 }
19131913 if !index_hints. is_empty ( ) {
19141914 write ! ( f, " {}" , display_separated( index_hints, " " ) ) ?;
@@ -1938,7 +1938,7 @@ impl fmt::Display for TableFactor {
19381938 NewLine . fmt ( f) ?;
19391939 f. write_str ( ")" ) ?;
19401940 if let Some ( alias) = alias {
1941- write ! ( f, " AS {alias}" ) ?;
1941+ write ! ( f, " {alias}" ) ?;
19421942 }
19431943 Ok ( ( ) )
19441944 }
@@ -1961,14 +1961,14 @@ impl fmt::Display for TableFactor {
19611961 write ! ( f, "{name}" ) ?;
19621962 write ! ( f, "({})" , display_comma_separated( args) ) ?;
19631963 if let Some ( alias) = alias {
1964- write ! ( f, " AS {alias}" ) ?;
1964+ write ! ( f, " {alias}" ) ?;
19651965 }
19661966 Ok ( ( ) )
19671967 }
19681968 TableFactor :: TableFunction { expr, alias } => {
19691969 write ! ( f, "TABLE({expr})" ) ?;
19701970 if let Some ( alias) = alias {
1971- write ! ( f, " AS {alias}" ) ?;
1971+ write ! ( f, " {alias}" ) ?;
19721972 }
19731973 Ok ( ( ) )
19741974 }
@@ -1986,13 +1986,13 @@ impl fmt::Display for TableFactor {
19861986 }
19871987
19881988 if let Some ( alias) = alias {
1989- write ! ( f, " AS {alias}" ) ?;
1989+ write ! ( f, " {alias}" ) ?;
19901990 }
19911991 if * with_offset {
19921992 write ! ( f, " WITH OFFSET" ) ?;
19931993 }
19941994 if let Some ( alias) = with_offset_alias {
1995- write ! ( f, " AS {alias}" ) ?;
1995+ write ! ( f, " {alias}" ) ?;
19961996 }
19971997 Ok ( ( ) )
19981998 }
@@ -2008,7 +2008,7 @@ impl fmt::Display for TableFactor {
20082008 columns = display_comma_separated( columns)
20092009 ) ?;
20102010 if let Some ( alias) = alias {
2011- write ! ( f, " AS {alias}" ) ?;
2011+ write ! ( f, " {alias}" ) ?;
20122012 }
20132013 Ok ( ( ) )
20142014 }
@@ -2027,7 +2027,7 @@ impl fmt::Display for TableFactor {
20272027 write ! ( f, " WITH ({})" , display_comma_separated( columns) ) ?;
20282028 }
20292029 if let Some ( alias) = alias {
2030- write ! ( f, " AS {alias}" ) ?;
2030+ write ! ( f, " {alias}" ) ?;
20312031 }
20322032 Ok ( ( ) )
20332033 }
@@ -2037,7 +2037,7 @@ impl fmt::Display for TableFactor {
20372037 } => {
20382038 write ! ( f, "({table_with_joins})" ) ?;
20392039 if let Some ( alias) = alias {
2040- write ! ( f, " AS {alias}" ) ?;
2040+ write ! ( f, " {alias}" ) ?;
20412041 }
20422042 Ok ( ( ) )
20432043 }
@@ -2064,8 +2064,8 @@ impl fmt::Display for TableFactor {
20642064 write ! ( f, " DEFAULT ON NULL ({expr})" ) ?;
20652065 }
20662066 write ! ( f, ")" ) ?;
2067- if alias . is_some ( ) {
2068- write ! ( f, " AS {}" , alias . as_ref ( ) . unwrap ( ) ) ?;
2067+ if let Some ( alias ) = alias {
2068+ write ! ( f, " {alias}" ) ?;
20692069 }
20702070 Ok ( ( ) )
20712071 }
@@ -2088,8 +2088,8 @@ impl fmt::Display for TableFactor {
20882088 name,
20892089 display_comma_separated( columns)
20902090 ) ?;
2091- if alias . is_some ( ) {
2092- write ! ( f, " AS {}" , alias . as_ref ( ) . unwrap ( ) ) ?;
2091+ if let Some ( alias ) = alias {
2092+ write ! ( f, " {alias}" ) ?;
20932093 }
20942094 Ok ( ( ) )
20952095 }
@@ -2122,8 +2122,8 @@ impl fmt::Display for TableFactor {
21222122 }
21232123 write ! ( f, "PATTERN ({pattern}) " ) ?;
21242124 write ! ( f, "DEFINE {})" , display_comma_separated( symbols) ) ?;
2125- if alias . is_some ( ) {
2126- write ! ( f, " AS {}" , alias . as_ref ( ) . unwrap ( ) ) ?;
2125+ if let Some ( alias ) = alias {
2126+ write ! ( f, " {alias}" ) ?;
21272127 }
21282128 Ok ( ( ) )
21292129 }
@@ -2148,7 +2148,7 @@ impl fmt::Display for TableFactor {
21482148 columns = display_comma_separated( columns)
21492149 ) ?;
21502150 if let Some ( alias) = alias {
2151- write ! ( f, " AS {alias}" ) ?;
2151+ write ! ( f, " {alias}" ) ?;
21522152 }
21532153 Ok ( ( ) )
21542154 }
@@ -2181,7 +2181,7 @@ impl fmt::Display for TableFactor {
21812181 write ! ( f, ")" ) ?;
21822182
21832183 if let Some ( alias) = alias {
2184- write ! ( f, " AS {alias}" ) ?;
2184+ write ! ( f, " {alias}" ) ?;
21852185 }
21862186
21872187 Ok ( ( ) )
@@ -2194,13 +2194,17 @@ impl fmt::Display for TableFactor {
21942194#[ cfg_attr( feature = "serde" , derive( Serialize , Deserialize ) ) ]
21952195#[ cfg_attr( feature = "visitor" , derive( Visit , VisitMut ) ) ]
21962196pub struct TableAlias {
2197+ /// Tells whether the alias was introduced with an explicit, preceding "AS"
2198+ /// keyword, e.g. `AS name`. Typically, the keyword is preceding the name
2199+ /// (e.g. `.. FROM table AS t ..`).
2200+ pub explicit : bool ,
21972201 pub name : Ident ,
21982202 pub columns : Vec < TableAliasColumnDef > ,
21992203}
22002204
22012205impl fmt:: Display for TableAlias {
22022206 fn fmt ( & self , f : & mut fmt:: Formatter ) -> fmt:: Result {
2203- write ! ( f, "{}" , self . name) ?;
2207+ write ! ( f, "{}{}" , if self . explicit { "AS " } else { "" } , self . name) ?;
22042208 if !self . columns . is_empty ( ) {
22052209 write ! ( f, " ({})" , display_comma_separated( & self . columns) ) ?;
22062210 }
0 commit comments