-record(select_statement, { select_items :: list(sqlode@query_ir:select_item()), from :: list(sqlode@query_ir:from_item()), joins :: list(sqlode@query_ir:join_clause()), where_tokens :: gleam@option:option(list(sqlode@lexer:token())), group_by_tokens :: gleam@option:option(list(sqlode@lexer:token())), having_tokens :: gleam@option:option(list(sqlode@lexer:token())), order_by_tokens :: gleam@option:option(list(sqlode@lexer:token())), limit_tokens :: gleam@option:option(list(sqlode@lexer:token())) }).