Skip to content
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
7849100
fix(hogql): group by all
georgemunyoro Mar 23, 2026
712a418
column type expressions
georgemunyoro Mar 9, 2026
5bc5960
pivot columns
georgemunyoro Mar 9, 2026
a798dcf
fix(hogql): pivot resolution
georgemunyoro Mar 23, 2026
c2e6320
ORDER BY clause in function calls
georgemunyoro Mar 9, 2026
f7db884
feat(hogql): add support for ORDER BY in function calls and enhance t…
georgemunyoro Mar 23, 2026
7562a8c
feat: enhance parser and printer with FILTER and INCLUDE NULLS support
georgemunyoro Mar 9, 2026
e61b525
tests
georgemunyoro Mar 23, 2026
8cb778e
cte handling in nested select statements
georgemunyoro Mar 9, 2026
d0ab004
Enhance HogQL Parser and Printer with New Join and Column Expressions
georgemunyoro Mar 10, 2026
97f188e
tests
georgemunyoro Mar 23, 2026
9788de3
Add support for JOIN with PIVOT and IGNORE NULLS expressions in HogQL
georgemunyoro Mar 10, 2026
9abd039
tests
georgemunyoro Mar 23, 2026
fa7b173
Add support for JOIN UNPIVOT expression in HogQL parser
georgemunyoro Mar 10, 2026
d191291
tests
georgemunyoro Mar 23, 2026
e0cc2c8
hex escape
georgemunyoro Mar 10, 2026
136d07f
tests
georgemunyoro Mar 23, 2026
5b047f6
Enhance JSON handling in HogQL parser and deserializer with special f…
georgemunyoro Mar 10, 2026
35a7555
asof
georgemunyoro Mar 10, 2026
0fecdd3
mypy is no friend of mine
georgemunyoro Mar 23, 2026
2732e67
Merge branch 'master' of github.com:PostHog/posthog into feat/hogql-f…
georgemunyoro Mar 23, 2026
7726b99
bot review
georgemunyoro Mar 23, 2026
dcec54a
bot review
georgemunyoro Mar 23, 2026
768f80f
bot review
georgemunyoro Mar 24, 2026
7116a6c
bump pypi package version
georgemunyoro Mar 24, 2026
4ba0052
chore: bump npm package version
georgemunyoro Mar 24, 2026
ca15a27
Use new @posthog/hogql-parser npm version
github-actions[bot] Mar 24, 2026
7323365
Merge branch 'master' of github.com:PostHog/posthog into feat/hogql-f…
georgemunyoro Mar 24, 2026
bf1e341
Merge branch 'feat/hogql-final-quack-2' of github.com:PostHog/posthog…
georgemunyoro Mar 24, 2026
909542a
chore: upgrade hogql parsers
georgemunyoro Mar 24, 2026
9747a1a
fix(hogql): failing test
georgemunyoro Mar 24, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,302 changes: 653 additions & 649 deletions common/hogql_parser/HogQLLexer.cpp

Large diffs are not rendered by default.

47 changes: 24 additions & 23 deletions common/hogql_parser/HogQLLexer.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,29 +29,30 @@ class HogQLLexer : public antlr4::Lexer {
LEADING = 57, LEFT = 58, LET = 59, LIKE = 60, LIMIT = 61, MATERIALIZED = 62,
MINUTE = 63, MONTH = 64, NAME = 65, NAN_SQL = 66, NOT = 67, NULL_SQL = 68,
NULLS = 69, OFFSET = 70, ON = 71, OR = 72, ORDER = 73, OUTER = 74, OVER = 75,
PARTITION = 76, PRECEDING = 77, PREWHERE = 78, QUALIFY = 79, QUARTER = 80,
RANGE = 81, RECURSIVE = 82, REPLACE = 83, RETURN = 84, RIGHT = 85, ROLLUP = 86,
ROW = 87, ROWS = 88, SAMPLE = 89, SECOND = 90, SELECT = 91, SEMI = 92,
SETS = 93, SETTINGS = 94, SUBSTRING = 95, THEN = 96, THROW = 97, TIES = 98,
TIMESTAMP = 99, TO = 100, TOP = 101, TOTALS = 102, TRAILING = 103, TRIM = 104,
TRUNCATE = 105, TRY = 106, TRY_CAST = 107, UNBOUNDED = 108, UNION = 109,
UNPIVOT = 110, USING = 111, VALUES = 112, WEEK = 113, WHEN = 114, WHERE = 115,
WHILE = 116, WINDOW = 117, WITH = 118, WITHIN = 119, YEAR = 120, ESCAPE_CHAR_COMMON = 121,
IDENTIFIER = 122, FLOATING_LITERAL = 123, OCTAL_LITERAL = 124, DECIMAL_LITERAL = 125,
HEXADECIMAL_LITERAL = 126, STRING_LITERAL = 127, ARROW = 128, ASTERISK = 129,
BACKQUOTE = 130, BACKSLASH = 131, DOUBLECOLON = 132, COLONEQUALS = 133,
COLON = 134, COMMA = 135, CONCAT = 136, DASH = 137, DOLLAR = 138, DOT = 139,
EQ_DOUBLE = 140, EQ_SINGLE = 141, GT_EQ = 142, GT = 143, HASH = 144,
IREGEX_SINGLE = 145, IREGEX_DOUBLE = 146, LBRACE = 147, LBRACKET = 148,
LPAREN = 149, LT_EQ = 150, LT = 151, LT_SLASH = 152, NOT_EQ = 153, NOT_IREGEX = 154,
NOT_REGEX = 155, NULL_PROPERTY = 156, NULLISH = 157, PERCENT = 158,
PLUS = 159, QUERY = 160, QUOTE_DOUBLE = 161, QUOTE_SINGLE_TEMPLATE = 162,
QUOTE_SINGLE_TEMPLATE_FULL = 163, QUOTE_SINGLE = 164, REGEX_SINGLE = 165,
REGEX_DOUBLE = 166, RBRACE = 167, RBRACKET = 168, RPAREN = 169, SEMICOLON = 170,
SLASH = 171, SLASH_GT = 172, UNDERSCORE = 173, MULTI_LINE_COMMENT = 174,
SINGLE_LINE_COMMENT = 175, WHITESPACE = 176, STRING_TEXT = 177, STRING_ESCAPE_TRIGGER = 178,
FULL_STRING_TEXT = 179, FULL_STRING_ESCAPE_TRIGGER = 180, TAG_WS = 181,
TAGC_WS = 182, HOGQLX_TEXT_TEXT = 183, HOGQLX_TEXT_WS = 184
PARTITION = 76, PIVOT = 77, PRECEDING = 78, PREWHERE = 79, QUALIFY = 80,
QUARTER = 81, RANGE = 82, RECURSIVE = 83, REPLACE = 84, RETURN = 85,
RIGHT = 86, ROLLUP = 87, ROW = 88, ROWS = 89, SAMPLE = 90, SECOND = 91,
SELECT = 92, SEMI = 93, SETS = 94, SETTINGS = 95, SUBSTRING = 96, THEN = 97,
THROW = 98, TIES = 99, TIMESTAMP = 100, TO = 101, TOP = 102, TOTALS = 103,
TRAILING = 104, TRIM = 105, TRUNCATE = 106, TRY = 107, TRY_CAST = 108,
UNBOUNDED = 109, UNION = 110, UNPIVOT = 111, USING = 112, VALUES = 113,
WEEK = 114, WHEN = 115, WHERE = 116, WHILE = 117, WINDOW = 118, WITH = 119,
WITHIN = 120, YEAR = 121, ESCAPE_CHAR_COMMON = 122, IDENTIFIER = 123,
FLOATING_LITERAL = 124, OCTAL_LITERAL = 125, DECIMAL_LITERAL = 126,
HEXADECIMAL_LITERAL = 127, STRING_LITERAL = 128, ARROW = 129, ASTERISK = 130,
BACKQUOTE = 131, BACKSLASH = 132, DOUBLECOLON = 133, COLONEQUALS = 134,
COLON = 135, COMMA = 136, CONCAT = 137, DASH = 138, DOLLAR = 139, DOT = 140,
EQ_DOUBLE = 141, EQ_SINGLE = 142, GT_EQ = 143, GT = 144, HASH = 145,
IREGEX_SINGLE = 146, IREGEX_DOUBLE = 147, LBRACE = 148, LBRACKET = 149,
LPAREN = 150, LT_EQ = 151, LT = 152, LT_SLASH = 153, NOT_EQ = 154, NOT_IREGEX = 155,
NOT_REGEX = 156, NULL_PROPERTY = 157, NULLISH = 158, PERCENT = 159,
PLUS = 160, QUERY = 161, QUOTE_DOUBLE = 162, QUOTE_SINGLE_TEMPLATE = 163,
QUOTE_SINGLE_TEMPLATE_FULL = 164, QUOTE_SINGLE = 165, REGEX_SINGLE = 166,
REGEX_DOUBLE = 167, RBRACE = 168, RBRACKET = 169, RPAREN = 170, SEMICOLON = 171,
SLASH = 172, SLASH_GT = 173, UNDERSCORE = 174, MULTI_LINE_COMMENT = 175,
SINGLE_LINE_COMMENT = 176, WHITESPACE = 177, STRING_TEXT = 178, STRING_ESCAPE_TRIGGER = 179,
FULL_STRING_TEXT = 180, FULL_STRING_ESCAPE_TRIGGER = 181, TAG_WS = 182,
TAGC_WS = 183, HOGQLX_TEXT_TEXT = 184, HOGQLX_TEXT_WS = 185
};

enum {
Expand Down
5 changes: 4 additions & 1 deletion common/hogql_parser/HogQLLexer.interp

Large diffs are not rendered by default.

301 changes: 151 additions & 150 deletions common/hogql_parser/HogQLLexer.tokens
Original file line number Diff line number Diff line change
Expand Up @@ -74,153 +74,154 @@ ORDER=73
OUTER=74
OVER=75
PARTITION=76
PRECEDING=77
PREWHERE=78
QUALIFY=79
QUARTER=80
RANGE=81
RECURSIVE=82
REPLACE=83
RETURN=84
RIGHT=85
ROLLUP=86
ROW=87
ROWS=88
SAMPLE=89
SECOND=90
SELECT=91
SEMI=92
SETS=93
SETTINGS=94
SUBSTRING=95
THEN=96
THROW=97
TIES=98
TIMESTAMP=99
TO=100
TOP=101
TOTALS=102
TRAILING=103
TRIM=104
TRUNCATE=105
TRY=106
TRY_CAST=107
UNBOUNDED=108
UNION=109
UNPIVOT=110
USING=111
VALUES=112
WEEK=113
WHEN=114
WHERE=115
WHILE=116
WINDOW=117
WITH=118
WITHIN=119
YEAR=120
ESCAPE_CHAR_COMMON=121
IDENTIFIER=122
FLOATING_LITERAL=123
OCTAL_LITERAL=124
DECIMAL_LITERAL=125
HEXADECIMAL_LITERAL=126
STRING_LITERAL=127
ARROW=128
ASTERISK=129
BACKQUOTE=130
BACKSLASH=131
DOUBLECOLON=132
COLONEQUALS=133
COLON=134
COMMA=135
CONCAT=136
DASH=137
DOLLAR=138
DOT=139
EQ_DOUBLE=140
EQ_SINGLE=141
GT_EQ=142
GT=143
HASH=144
IREGEX_SINGLE=145
IREGEX_DOUBLE=146
LBRACE=147
LBRACKET=148
LPAREN=149
LT_EQ=150
LT=151
LT_SLASH=152
NOT_EQ=153
NOT_IREGEX=154
NOT_REGEX=155
NULL_PROPERTY=156
NULLISH=157
PERCENT=158
PLUS=159
QUERY=160
QUOTE_DOUBLE=161
QUOTE_SINGLE_TEMPLATE=162
QUOTE_SINGLE_TEMPLATE_FULL=163
QUOTE_SINGLE=164
REGEX_SINGLE=165
REGEX_DOUBLE=166
RBRACE=167
RBRACKET=168
RPAREN=169
SEMICOLON=170
SLASH=171
SLASH_GT=172
UNDERSCORE=173
MULTI_LINE_COMMENT=174
SINGLE_LINE_COMMENT=175
WHITESPACE=176
STRING_TEXT=177
STRING_ESCAPE_TRIGGER=178
FULL_STRING_TEXT=179
FULL_STRING_ESCAPE_TRIGGER=180
TAG_WS=181
TAGC_WS=182
HOGQLX_TEXT_TEXT=183
HOGQLX_TEXT_WS=184
'->'=128
'*'=129
'`'=130
'\\'=131
'::'=132
':='=133
':'=134
','=135
'||'=136
'-'=137
'$'=138
'.'=139
'=='=140
'>='=142
'#'=144
'~*'=145
'=~*'=146
'{'=147
'['=148
'('=149
'<='=150
'<'=151
'</'=152
'!~*'=154
'!~'=155
'?.'=156
'??'=157
'%'=158
'+'=159
'?'=160
'"'=161
'f\''=162
'F\''=163
'\''=164
'~'=165
'=~'=166
'}'=167
']'=168
')'=169
';'=170
'/'=171
'_'=173
PIVOT=77
PRECEDING=78
PREWHERE=79
QUALIFY=80
QUARTER=81
RANGE=82
RECURSIVE=83
REPLACE=84
RETURN=85
RIGHT=86
ROLLUP=87
ROW=88
ROWS=89
SAMPLE=90
SECOND=91
SELECT=92
SEMI=93
SETS=94
SETTINGS=95
SUBSTRING=96
THEN=97
THROW=98
TIES=99
TIMESTAMP=100
TO=101
TOP=102
TOTALS=103
TRAILING=104
TRIM=105
TRUNCATE=106
TRY=107
TRY_CAST=108
UNBOUNDED=109
UNION=110
UNPIVOT=111
USING=112
VALUES=113
WEEK=114
WHEN=115
WHERE=116
WHILE=117
WINDOW=118
WITH=119
WITHIN=120
YEAR=121
ESCAPE_CHAR_COMMON=122
IDENTIFIER=123
FLOATING_LITERAL=124
OCTAL_LITERAL=125
DECIMAL_LITERAL=126
HEXADECIMAL_LITERAL=127
STRING_LITERAL=128
ARROW=129
ASTERISK=130
BACKQUOTE=131
BACKSLASH=132
DOUBLECOLON=133
COLONEQUALS=134
COLON=135
COMMA=136
CONCAT=137
DASH=138
DOLLAR=139
DOT=140
EQ_DOUBLE=141
EQ_SINGLE=142
GT_EQ=143
GT=144
HASH=145
IREGEX_SINGLE=146
IREGEX_DOUBLE=147
LBRACE=148
LBRACKET=149
LPAREN=150
LT_EQ=151
LT=152
LT_SLASH=153
NOT_EQ=154
NOT_IREGEX=155
NOT_REGEX=156
NULL_PROPERTY=157
NULLISH=158
PERCENT=159
PLUS=160
QUERY=161
QUOTE_DOUBLE=162
QUOTE_SINGLE_TEMPLATE=163
QUOTE_SINGLE_TEMPLATE_FULL=164
QUOTE_SINGLE=165
REGEX_SINGLE=166
REGEX_DOUBLE=167
RBRACE=168
RBRACKET=169
RPAREN=170
SEMICOLON=171
SLASH=172
SLASH_GT=173
UNDERSCORE=174
MULTI_LINE_COMMENT=175
SINGLE_LINE_COMMENT=176
WHITESPACE=177
STRING_TEXT=178
STRING_ESCAPE_TRIGGER=179
FULL_STRING_TEXT=180
FULL_STRING_ESCAPE_TRIGGER=181
TAG_WS=182
TAGC_WS=183
HOGQLX_TEXT_TEXT=184
HOGQLX_TEXT_WS=185
'->'=129
'*'=130
'`'=131
'\\'=132
'::'=133
':='=134
':'=135
','=136
'||'=137
'-'=138
'$'=139
'.'=140
'=='=141
'>='=143
'#'=145
'~*'=146
'=~*'=147
'{'=148
'['=149
'('=150
'<='=151
'<'=152
'</'=153
'!~*'=155
'!~'=156
'?.'=157
'??'=158
'%'=159
'+'=160
'?'=161
'"'=162
'f\''=163
'F\''=164
'\''=165
'~'=166
'=~'=167
'}'=168
']'=169
')'=170
';'=171
'/'=172
'_'=174
Loading
Loading