Skip to content

Commit ce45b98

Browse files
orisanokyleconroy
andauthored
fix(engine/sqlite): fix join_operator rule (#2434)
* fix(engine/sqlite): fix join_operator rule fix #1919 * test: add endtoend * chore: v1.19.1 * Update parser code --------- Co-authored-by: Kyle Conroy <kyle@sqlc.dev>
1 parent c236b74 commit ce45b98

File tree

8 files changed

+1255
-1131
lines changed

8 files changed

+1255
-1131
lines changed

internal/endtoend/testdata/full_outer_join/sqlite/go/db.go

Lines changed: 31 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/endtoend/testdata/full_outer_join/sqlite/go/models.go

Lines changed: 17 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/endtoend/testdata/full_outer_join/sqlite/go/query.sql.go

Lines changed: 36 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
-- Example queries for sqlc
2+
CREATE TABLE authors (
3+
id INTEGER PRIMARY KEY,
4+
name text NOT NULL
5+
);
6+
7+
CREATE TABLE books (
8+
id INTEGER PRIMARY KEY,
9+
title text NOT NULL
10+
);
11+
12+
-- name: GetAuthor :one
13+
SELECT * FROM authors AS a
14+
FULL OUTER JOIN books AS b
15+
ON a.id = b.id
16+
WHERE a.id = ? LIMIT 1;
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"version": "1", "packages": [{"path": "go", "engine": "sqlite", "schema": "query.sql", "queries": "query.sql", "name": "querytest"}]}

internal/engine/sqlite/parser/SQLiteParser.g4

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -449,7 +449,8 @@ result_column:
449449

450450
join_operator:
451451
COMMA
452-
| NATURAL_? (LEFT_ OUTER_? | INNER_ | CROSS_)? JOIN_
452+
| NATURAL_? (((LEFT_ | RIGHT_ | FULL_) OUTER_?) | INNER_)? JOIN_
453+
| CROSS_ JOIN_
453454
;
454455

455456
join_constraint:

internal/engine/sqlite/parser/SQLiteParser.interp

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

internal/engine/sqlite/parser/sqlite_parser.go

Lines changed: 1151 additions & 1129 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)