From bb16d46ba93e233d3e86477053d349eb5491145f Mon Sep 17 00:00:00 2001 From: TimelordUK Date: Thu, 1 Oct 2026 08:19:25 +0100 Subject: [PATCH] fix(parser): accept quoted column after alias qualifier (alias."col name") Qualified column references only accepted a bare identifier after the dot, so l."name.official" failed with "Expected identifier after '.'". Accept a QuotedIdentifier there and build a quoted ColumnRef carrying the table prefix; resolution in SELECT/WHERE/JOIN/GROUP BY/CTEs already works. Not yet handled: fully quoted "l"."col" form. Co-Authored-By: Claude Opus 5.5 (1M context) --- src/sql/parser/expressions/primary.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/sql/parser/expressions/primary.rs b/src/sql/parser/expressions/primary.rs index 27aa8eb5..b93a7d78 100644 --- a/src/sql/parser/expressions/primary.rs +++ b/src/sql/parser/expressions/primary.rs @@ -134,6 +134,14 @@ where ); Ok(SqlExpression::Column(col_ref)) } + } else if let Token::QuotedIdentifier(next_id) = + ExpressionParser::current_token(parser) + { + // Qualified quoted column: alias."Column Name" + let mut col_ref = ColumnRef::quoted(next_id.clone()); + col_ref.table_prefix = Some(id_clone); + ExpressionParser::advance(parser); + Ok(SqlExpression::Column(col_ref)) } else { Err("Expected identifier after '.'".to_string()) }