@@ -1096,8 +1096,17 @@ func (p *Parser) parseSettingsExpr(pos Pos) (*SettingExpr, error) {
10961096 return nil , err
10971097 }
10981098 expr = m
1099+ case p .matchKeyword (KeywordTrue ), p .matchKeyword (KeywordFalse ):
1100+ // Handle TRUE/FALSE keywords as boolean literals
1101+ lastToken := p .last ()
1102+ _ = p .lexer .consumeToken ()
1103+ expr = & BoolLiteral {
1104+ LiteralPos : lastToken .Pos ,
1105+ LiteralEnd : lastToken .End ,
1106+ Literal : lastToken .String ,
1107+ }
10991108 default :
1100- return nil , fmt .Errorf ("unexpected token: %q, expected <number> or <string>" , p .last ().String )
1109+ return nil , fmt .Errorf ("unexpected token: %q, expected <number>, <bool> or <string>" , p .last ().String )
11011110 }
11021111
11031112 return & SettingExpr {
@@ -1232,6 +1241,8 @@ func (p *Parser) parseStmt(pos Pos) (Expr, error) {
12321241 expr , err = p .parseUseStmt (pos )
12331242 case p .matchKeyword (KeywordSet ):
12341243 expr , err = p .parseSetStmt (pos )
1244+ case p .matchKeyword (KeywordSettings ):
1245+ expr , err = p .parseSettingsStmt (pos )
12351246 case p .matchKeyword (KeywordSystem ):
12361247 expr , err = p .parseSystemStmt (pos )
12371248 case p .matchKeyword (KeywordOptimize ):
0 commit comments