@@ -618,18 +618,29 @@ impl<'a> Parser<'a> {
618618
619619 let next_token = self . next_token ( ) ;
620620 match next_token. token {
621- Token :: Word ( w) if self . peek_token ( ) . token == Token :: Period => {
622- let mut id_parts: Vec < Ident > = vec ! [ w. to_ident( ) ] ;
623-
624- while self . consume_token ( & Token :: Period ) {
625- let next_token = self . next_token ( ) ;
626- match next_token. token {
627- Token :: Word ( w) => id_parts. push ( w. to_ident ( ) ) ,
628- Token :: Mul => {
629- return Ok ( WildcardExpr :: QualifiedWildcard ( ObjectName ( id_parts) ) ) ;
630- }
631- _ => {
632- return self . expected ( "an identifier or a '*' after '.'" , next_token) ;
621+ t @ ( Token :: Word ( _) | Token :: SingleQuotedString ( _) ) => {
622+ if self . peek_token ( ) . token == Token :: Period {
623+ let mut id_parts: Vec < Ident > = vec ! [ match t {
624+ Token :: Word ( w) => w. to_ident( ) ,
625+ Token :: SingleQuotedString ( s) => Ident :: with_quote( '\'' , s) ,
626+ _ => unreachable!( ) , // We matched above
627+ } ] ;
628+
629+ while self . consume_token ( & Token :: Period ) {
630+ let next_token = self . next_token ( ) ;
631+ match next_token. token {
632+ Token :: Word ( w) => id_parts. push ( w. to_ident ( ) ) ,
633+ Token :: SingleQuotedString ( s) => {
634+ // SQLite has single-quoted identifiers
635+ id_parts. push ( Ident :: with_quote ( '\'' , s) )
636+ }
637+ Token :: Mul => {
638+ return Ok ( WildcardExpr :: QualifiedWildcard ( ObjectName ( id_parts) ) ) ;
639+ }
640+ _ => {
641+ return self
642+ . expected ( "an identifier or a '*' after '.'" , next_token) ;
643+ }
633644 }
634645 }
635646 }
@@ -825,6 +836,9 @@ impl<'a> Parser<'a> {
825836 let next_token = self . next_token ( ) ;
826837 match next_token. token {
827838 Token :: Word ( w) => id_parts. push ( w. to_ident ( ) ) ,
839+ Token :: SingleQuotedString ( s) => {
840+ id_parts. push ( Ident :: with_quote ( '\'' , s) )
841+ }
828842 _ => {
829843 return self
830844 . expected ( "an identifier or a '*' after '.'" , next_token) ;
0 commit comments