snapshot of https://github.com/sqlc-dev/sqlc.git (main, 2026-09-16; blobs > 131072B omitted)
Some checks failed
kotlin / test (push) Has been skipped
python / test (push) Has been skipped
typescript / test (push) Has been skipped
go / build darwin/amd64 (push) Has been cancelled
go / build linux/amd64 (push) Has been cancelled
go / build windows/amd64 (push) Has been cancelled
go / build darwin/arm64 (push) Has been cancelled
go / build linux/arm64 (push) Has been cancelled
go / build windows/arm64 (push) Has been cancelled
go / test (push) Has been cancelled
go / vuln_check (push) Has been cancelled
Some checks failed
kotlin / test (push) Has been skipped
python / test (push) Has been skipped
typescript / test (push) Has been skipped
go / build darwin/amd64 (push) Has been cancelled
go / build linux/amd64 (push) Has been cancelled
go / build windows/amd64 (push) Has been cancelled
go / build darwin/arm64 (push) Has been cancelled
go / build linux/arm64 (push) Has been cancelled
go / build windows/arm64 (push) Has been cancelled
go / test (push) Has been cancelled
go / vuln_check (push) Has been cancelled
This commit is contained in:
5
internal/endtoend/testdata/analyze_dml/duckdb/exec.json
vendored
Normal file
5
internal/endtoend/testdata/analyze_dml/duckdb/exec.json
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"command": "analyze",
|
||||
"args": ["--dialect", "duckdb", "--schema", "schema.sql", "query.sql"],
|
||||
"contexts": ["base"]
|
||||
}
|
||||
13
internal/endtoend/testdata/analyze_dml/duckdb/query.sql
vendored
Normal file
13
internal/endtoend/testdata/analyze_dml/duckdb/query.sql
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
-- name: CreateAuthor :one
|
||||
INSERT INTO authors (id, name, bio) VALUES ($1, $2, $3) RETURNING id;
|
||||
|
||||
-- name: UpdateAuthor :exec
|
||||
UPDATE authors SET name = $name, bio = $bio WHERE id = $id;
|
||||
|
||||
-- name: DeleteBooksByAuthor :exec
|
||||
DELETE FROM books USING authors a WHERE books.author_id = a.id AND a.name = $1;
|
||||
|
||||
-- name: TitlesFromBooks :many
|
||||
INSERT INTO books (id, author_id, title)
|
||||
SELECT id + 1000, author_id, upper(title) FROM books WHERE price > $min_price
|
||||
RETURNING id, title;
|
||||
12
internal/endtoend/testdata/analyze_dml/duckdb/schema.sql
vendored
Normal file
12
internal/endtoend/testdata/analyze_dml/duckdb/schema.sql
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
CREATE TABLE authors (
|
||||
id BIGINT PRIMARY KEY,
|
||||
name TEXT NOT NULL,
|
||||
bio TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE books (
|
||||
id BIGINT PRIMARY KEY,
|
||||
author_id BIGINT NOT NULL,
|
||||
title TEXT NOT NULL,
|
||||
price DECIMAL(10,2)
|
||||
);
|
||||
144
internal/endtoend/testdata/analyze_dml/duckdb/stdout.json
vendored
Normal file
144
internal/endtoend/testdata/analyze_dml/duckdb/stdout.json
vendored
Normal file
@@ -0,0 +1,144 @@
|
||||
[
|
||||
{
|
||||
"name": "CreateAuthor",
|
||||
"cmd": ":one",
|
||||
"columns": [
|
||||
{
|
||||
"name": "id",
|
||||
"type": {
|
||||
"name": "bigint"
|
||||
},
|
||||
"table": "authors"
|
||||
}
|
||||
],
|
||||
"params": [
|
||||
{
|
||||
"number": 1,
|
||||
"column": {
|
||||
"name": "id",
|
||||
"type": {
|
||||
"name": "bigint"
|
||||
},
|
||||
"table": "authors"
|
||||
}
|
||||
},
|
||||
{
|
||||
"number": 2,
|
||||
"column": {
|
||||
"name": "name",
|
||||
"type": {
|
||||
"name": "varchar"
|
||||
},
|
||||
"table": "authors"
|
||||
}
|
||||
},
|
||||
{
|
||||
"number": 3,
|
||||
"column": {
|
||||
"name": "bio",
|
||||
"type": {
|
||||
"name": "varchar",
|
||||
"nullable": true
|
||||
},
|
||||
"table": "authors"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "UpdateAuthor",
|
||||
"cmd": ":exec",
|
||||
"columns": [],
|
||||
"params": [
|
||||
{
|
||||
"number": 1,
|
||||
"column": {
|
||||
"name": "name",
|
||||
"type": {
|
||||
"name": "varchar"
|
||||
},
|
||||
"table": "authors"
|
||||
}
|
||||
},
|
||||
{
|
||||
"number": 2,
|
||||
"column": {
|
||||
"name": "bio",
|
||||
"type": {
|
||||
"name": "varchar",
|
||||
"nullable": true
|
||||
},
|
||||
"table": "authors"
|
||||
}
|
||||
},
|
||||
{
|
||||
"number": 3,
|
||||
"column": {
|
||||
"name": "id",
|
||||
"type": {
|
||||
"name": "bigint"
|
||||
},
|
||||
"table": "authors"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "DeleteBooksByAuthor",
|
||||
"cmd": ":exec",
|
||||
"columns": [],
|
||||
"params": [
|
||||
{
|
||||
"number": 1,
|
||||
"column": {
|
||||
"name": "name",
|
||||
"type": {
|
||||
"name": "varchar"
|
||||
},
|
||||
"table": "authors"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "TitlesFromBooks",
|
||||
"cmd": ":many",
|
||||
"columns": [
|
||||
{
|
||||
"name": "id",
|
||||
"type": {
|
||||
"name": "bigint"
|
||||
},
|
||||
"table": "books"
|
||||
},
|
||||
{
|
||||
"name": "title",
|
||||
"type": {
|
||||
"name": "varchar"
|
||||
},
|
||||
"table": "books"
|
||||
}
|
||||
],
|
||||
"params": [
|
||||
{
|
||||
"number": 1,
|
||||
"column": {
|
||||
"name": "price",
|
||||
"type": {
|
||||
"name": "decimal",
|
||||
"nullable": true,
|
||||
"args": [
|
||||
{
|
||||
"int": 10
|
||||
},
|
||||
{
|
||||
"int": 2
|
||||
}
|
||||
]
|
||||
},
|
||||
"table": "books"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
5
internal/endtoend/testdata/analyze_dml/googlesql/exec.json
vendored
Normal file
5
internal/endtoend/testdata/analyze_dml/googlesql/exec.json
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"command": "analyze",
|
||||
"args": ["--dialect", "googlesql", "--schema", "schema.sql", "query.sql"],
|
||||
"contexts": ["base"]
|
||||
}
|
||||
17
internal/endtoend/testdata/analyze_dml/googlesql/query.sql
vendored
Normal file
17
internal/endtoend/testdata/analyze_dml/googlesql/query.sql
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
-- name: CreateUser :exec
|
||||
INSERT INTO users (id, name, bio) VALUES (@id, @name, @bio);
|
||||
|
||||
-- name: CreateUserReturning :one
|
||||
INSERT INTO users (id, name) VALUES (@id, @name) THEN RETURN id, name;
|
||||
|
||||
-- name: UpdateBio :exec
|
||||
UPDATE users SET bio = @bio WHERE id = @id;
|
||||
|
||||
-- name: UpdateNameReturning :one
|
||||
UPDATE users SET name = @name WHERE id = @id THEN RETURN id, name;
|
||||
|
||||
-- name: DeleteUser :exec
|
||||
DELETE FROM users WHERE id = @id;
|
||||
|
||||
-- name: DeleteUserReturning :one
|
||||
DELETE FROM users WHERE id = @id THEN RETURN id;
|
||||
5
internal/endtoend/testdata/analyze_dml/googlesql/schema.sql
vendored
Normal file
5
internal/endtoend/testdata/analyze_dml/googlesql/schema.sql
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
CREATE TABLE users (
|
||||
id INT64 NOT NULL,
|
||||
name STRING(MAX) NOT NULL,
|
||||
bio STRING(MAX),
|
||||
) PRIMARY KEY (id);
|
||||
229
internal/endtoend/testdata/analyze_dml/googlesql/stdout.json
vendored
Normal file
229
internal/endtoend/testdata/analyze_dml/googlesql/stdout.json
vendored
Normal file
@@ -0,0 +1,229 @@
|
||||
[
|
||||
{
|
||||
"name": "CreateUser",
|
||||
"cmd": ":exec",
|
||||
"columns": [],
|
||||
"params": [
|
||||
{
|
||||
"number": 1,
|
||||
"column": {
|
||||
"name": "id",
|
||||
"type": {
|
||||
"name": "int64"
|
||||
},
|
||||
"table": "users"
|
||||
}
|
||||
},
|
||||
{
|
||||
"number": 2,
|
||||
"column": {
|
||||
"name": "name",
|
||||
"type": {
|
||||
"name": "string",
|
||||
"args": [
|
||||
{
|
||||
"ident": "max"
|
||||
}
|
||||
]
|
||||
},
|
||||
"table": "users"
|
||||
}
|
||||
},
|
||||
{
|
||||
"number": 3,
|
||||
"column": {
|
||||
"name": "bio",
|
||||
"type": {
|
||||
"name": "string",
|
||||
"nullable": true,
|
||||
"args": [
|
||||
{
|
||||
"ident": "max"
|
||||
}
|
||||
]
|
||||
},
|
||||
"table": "users"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "CreateUserReturning",
|
||||
"cmd": ":one",
|
||||
"columns": [
|
||||
{
|
||||
"name": "id",
|
||||
"type": {
|
||||
"name": "int64"
|
||||
},
|
||||
"table": "users"
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"type": {
|
||||
"name": "string",
|
||||
"args": [
|
||||
{
|
||||
"ident": "max"
|
||||
}
|
||||
]
|
||||
},
|
||||
"table": "users"
|
||||
}
|
||||
],
|
||||
"params": [
|
||||
{
|
||||
"number": 1,
|
||||
"column": {
|
||||
"name": "id",
|
||||
"type": {
|
||||
"name": "int64"
|
||||
},
|
||||
"table": "users"
|
||||
}
|
||||
},
|
||||
{
|
||||
"number": 2,
|
||||
"column": {
|
||||
"name": "name",
|
||||
"type": {
|
||||
"name": "string",
|
||||
"args": [
|
||||
{
|
||||
"ident": "max"
|
||||
}
|
||||
]
|
||||
},
|
||||
"table": "users"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "UpdateBio",
|
||||
"cmd": ":exec",
|
||||
"columns": [],
|
||||
"params": [
|
||||
{
|
||||
"number": 1,
|
||||
"column": {
|
||||
"name": "bio",
|
||||
"type": {
|
||||
"name": "string",
|
||||
"nullable": true,
|
||||
"args": [
|
||||
{
|
||||
"ident": "max"
|
||||
}
|
||||
]
|
||||
},
|
||||
"table": "users"
|
||||
}
|
||||
},
|
||||
{
|
||||
"number": 2,
|
||||
"column": {
|
||||
"name": "id",
|
||||
"type": {
|
||||
"name": "int64"
|
||||
},
|
||||
"table": "users"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "UpdateNameReturning",
|
||||
"cmd": ":one",
|
||||
"columns": [
|
||||
{
|
||||
"name": "id",
|
||||
"type": {
|
||||
"name": "int64"
|
||||
},
|
||||
"table": "users"
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"type": {
|
||||
"name": "string",
|
||||
"args": [
|
||||
{
|
||||
"ident": "max"
|
||||
}
|
||||
]
|
||||
},
|
||||
"table": "users"
|
||||
}
|
||||
],
|
||||
"params": [
|
||||
{
|
||||
"number": 1,
|
||||
"column": {
|
||||
"name": "name",
|
||||
"type": {
|
||||
"name": "string",
|
||||
"args": [
|
||||
{
|
||||
"ident": "max"
|
||||
}
|
||||
]
|
||||
},
|
||||
"table": "users"
|
||||
}
|
||||
},
|
||||
{
|
||||
"number": 2,
|
||||
"column": {
|
||||
"name": "id",
|
||||
"type": {
|
||||
"name": "int64"
|
||||
},
|
||||
"table": "users"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "DeleteUser",
|
||||
"cmd": ":exec",
|
||||
"columns": [],
|
||||
"params": [
|
||||
{
|
||||
"number": 1,
|
||||
"column": {
|
||||
"name": "id",
|
||||
"type": {
|
||||
"name": "int64"
|
||||
},
|
||||
"table": "users"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "DeleteUserReturning",
|
||||
"cmd": ":one",
|
||||
"columns": [
|
||||
{
|
||||
"name": "id",
|
||||
"type": {
|
||||
"name": "int64"
|
||||
},
|
||||
"table": "users"
|
||||
}
|
||||
],
|
||||
"params": [
|
||||
{
|
||||
"number": 1,
|
||||
"column": {
|
||||
"name": "id",
|
||||
"type": {
|
||||
"name": "int64"
|
||||
},
|
||||
"table": "users"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
5
internal/endtoend/testdata/analyze_dml/mssql/exec.json
vendored
Normal file
5
internal/endtoend/testdata/analyze_dml/mssql/exec.json
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"command": "analyze",
|
||||
"args": ["--dialect", "mssql", "--schema", "schema.sql", "query.sql"],
|
||||
"contexts": ["base"]
|
||||
}
|
||||
11
internal/endtoend/testdata/analyze_dml/mssql/query.sql
vendored
Normal file
11
internal/endtoend/testdata/analyze_dml/mssql/query.sql
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
-- name: CreateAuthor :one
|
||||
INSERT INTO authors (name, bio) OUTPUT INSERTED.id VALUES (@name, @bio);
|
||||
|
||||
-- name: UpdateAuthorAlias :exec
|
||||
UPDATE a SET name = @name FROM authors a WHERE a.id = @id;
|
||||
|
||||
-- name: UpdateBookPrices :exec
|
||||
UPDATE b SET price = @price FROM books b JOIN authors a ON b.author_id = a.id WHERE a.name = @author;
|
||||
|
||||
-- name: DeleteBooksByAuthor :exec
|
||||
DELETE b FROM books b INNER JOIN authors a ON b.author_id = a.id WHERE a.name = @name;
|
||||
12
internal/endtoend/testdata/analyze_dml/mssql/schema.sql
vendored
Normal file
12
internal/endtoend/testdata/analyze_dml/mssql/schema.sql
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
CREATE TABLE authors (
|
||||
id BIGINT IDENTITY(1,1) PRIMARY KEY,
|
||||
name NVARCHAR(100) NOT NULL,
|
||||
bio NVARCHAR(MAX)
|
||||
);
|
||||
|
||||
CREATE TABLE books (
|
||||
id BIGINT IDENTITY(1,1) PRIMARY KEY,
|
||||
author_id BIGINT NOT NULL,
|
||||
title NVARCHAR(200) NOT NULL,
|
||||
price DECIMAL(10,2)
|
||||
);
|
||||
143
internal/endtoend/testdata/analyze_dml/mssql/stdout.json
vendored
Normal file
143
internal/endtoend/testdata/analyze_dml/mssql/stdout.json
vendored
Normal file
@@ -0,0 +1,143 @@
|
||||
[
|
||||
{
|
||||
"name": "CreateAuthor",
|
||||
"cmd": ":one",
|
||||
"columns": [
|
||||
{
|
||||
"name": "id",
|
||||
"type": {
|
||||
"name": "bigint"
|
||||
},
|
||||
"table": "authors"
|
||||
}
|
||||
],
|
||||
"params": [
|
||||
{
|
||||
"number": 1,
|
||||
"column": {
|
||||
"name": "name",
|
||||
"type": {
|
||||
"name": "nvarchar",
|
||||
"args": [
|
||||
{
|
||||
"int": 100
|
||||
}
|
||||
]
|
||||
},
|
||||
"table": "authors"
|
||||
}
|
||||
},
|
||||
{
|
||||
"number": 2,
|
||||
"column": {
|
||||
"name": "bio",
|
||||
"type": {
|
||||
"name": "nvarchar",
|
||||
"nullable": true,
|
||||
"args": [
|
||||
{
|
||||
"ident": "max"
|
||||
}
|
||||
]
|
||||
},
|
||||
"table": "authors"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "UpdateAuthorAlias",
|
||||
"cmd": ":exec",
|
||||
"columns": [],
|
||||
"params": [
|
||||
{
|
||||
"number": 1,
|
||||
"column": {
|
||||
"name": "name",
|
||||
"type": {
|
||||
"name": "nvarchar",
|
||||
"args": [
|
||||
{
|
||||
"int": 100
|
||||
}
|
||||
]
|
||||
},
|
||||
"table": "authors"
|
||||
}
|
||||
},
|
||||
{
|
||||
"number": 2,
|
||||
"column": {
|
||||
"name": "id",
|
||||
"type": {
|
||||
"name": "bigint"
|
||||
},
|
||||
"table": "authors"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "UpdateBookPrices",
|
||||
"cmd": ":exec",
|
||||
"columns": [],
|
||||
"params": [
|
||||
{
|
||||
"number": 1,
|
||||
"column": {
|
||||
"name": "price",
|
||||
"type": {
|
||||
"name": "decimal",
|
||||
"nullable": true,
|
||||
"args": [
|
||||
{
|
||||
"int": 10
|
||||
},
|
||||
{
|
||||
"int": 2
|
||||
}
|
||||
]
|
||||
},
|
||||
"table": "books"
|
||||
}
|
||||
},
|
||||
{
|
||||
"number": 2,
|
||||
"column": {
|
||||
"name": "name",
|
||||
"type": {
|
||||
"name": "nvarchar",
|
||||
"args": [
|
||||
{
|
||||
"int": 100
|
||||
}
|
||||
]
|
||||
},
|
||||
"table": "authors"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "DeleteBooksByAuthor",
|
||||
"cmd": ":exec",
|
||||
"columns": [],
|
||||
"params": [
|
||||
{
|
||||
"number": 1,
|
||||
"column": {
|
||||
"name": "name",
|
||||
"type": {
|
||||
"name": "nvarchar",
|
||||
"args": [
|
||||
{
|
||||
"int": 100
|
||||
}
|
||||
]
|
||||
},
|
||||
"table": "authors"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
5
internal/endtoend/testdata/analyze_dml/mysql/exec.json
vendored
Normal file
5
internal/endtoend/testdata/analyze_dml/mysql/exec.json
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"command": "analyze",
|
||||
"args": ["--dialect", "mysql", "--schema", "schema.sql", "query.sql"],
|
||||
"contexts": ["base"]
|
||||
}
|
||||
11
internal/endtoend/testdata/analyze_dml/mysql/query.sql
vendored
Normal file
11
internal/endtoend/testdata/analyze_dml/mysql/query.sql
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
-- name: CreateUser :exec
|
||||
INSERT INTO users (id, name, bio) VALUES (?, ?, ?);
|
||||
|
||||
-- name: UpdateBio :exec
|
||||
UPDATE users SET bio = ? WHERE id = ?;
|
||||
|
||||
-- name: DeleteUser :exec
|
||||
DELETE FROM users WHERE id = ?;
|
||||
|
||||
-- name: DeleteUserPosts :exec
|
||||
DELETE p FROM posts p JOIN users u ON u.id = p.user_id WHERE u.name = ?;
|
||||
12
internal/endtoend/testdata/analyze_dml/mysql/schema.sql
vendored
Normal file
12
internal/endtoend/testdata/analyze_dml/mysql/schema.sql
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
CREATE TABLE users (
|
||||
id BIGINT PRIMARY KEY,
|
||||
name VARCHAR(255) NOT NULL,
|
||||
bio TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE posts (
|
||||
id BIGINT PRIMARY KEY,
|
||||
user_id BIGINT NOT NULL,
|
||||
title VARCHAR(255),
|
||||
created DATETIME NOT NULL
|
||||
);
|
||||
112
internal/endtoend/testdata/analyze_dml/mysql/stdout.json
vendored
Normal file
112
internal/endtoend/testdata/analyze_dml/mysql/stdout.json
vendored
Normal file
@@ -0,0 +1,112 @@
|
||||
[
|
||||
{
|
||||
"name": "CreateUser",
|
||||
"cmd": ":exec",
|
||||
"columns": [],
|
||||
"params": [
|
||||
{
|
||||
"number": 1,
|
||||
"column": {
|
||||
"name": "id",
|
||||
"type": {
|
||||
"name": "bigint"
|
||||
},
|
||||
"table": "users"
|
||||
}
|
||||
},
|
||||
{
|
||||
"number": 2,
|
||||
"column": {
|
||||
"name": "name",
|
||||
"type": {
|
||||
"name": "varchar",
|
||||
"args": [
|
||||
{
|
||||
"int": 255
|
||||
}
|
||||
]
|
||||
},
|
||||
"table": "users"
|
||||
}
|
||||
},
|
||||
{
|
||||
"number": 3,
|
||||
"column": {
|
||||
"name": "bio",
|
||||
"type": {
|
||||
"name": "text",
|
||||
"nullable": true
|
||||
},
|
||||
"table": "users"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "UpdateBio",
|
||||
"cmd": ":exec",
|
||||
"columns": [],
|
||||
"params": [
|
||||
{
|
||||
"number": 1,
|
||||
"column": {
|
||||
"name": "bio",
|
||||
"type": {
|
||||
"name": "text",
|
||||
"nullable": true
|
||||
},
|
||||
"table": "users"
|
||||
}
|
||||
},
|
||||
{
|
||||
"number": 2,
|
||||
"column": {
|
||||
"name": "id",
|
||||
"type": {
|
||||
"name": "bigint"
|
||||
},
|
||||
"table": "users"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "DeleteUser",
|
||||
"cmd": ":exec",
|
||||
"columns": [],
|
||||
"params": [
|
||||
{
|
||||
"number": 1,
|
||||
"column": {
|
||||
"name": "id",
|
||||
"type": {
|
||||
"name": "bigint"
|
||||
},
|
||||
"table": "users"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "DeleteUserPosts",
|
||||
"cmd": ":exec",
|
||||
"columns": [],
|
||||
"params": [
|
||||
{
|
||||
"number": 1,
|
||||
"column": {
|
||||
"name": "name",
|
||||
"type": {
|
||||
"name": "varchar",
|
||||
"args": [
|
||||
{
|
||||
"int": 255
|
||||
}
|
||||
]
|
||||
},
|
||||
"table": "users"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
5
internal/endtoend/testdata/analyze_dml/postgresql/exec.json
vendored
Normal file
5
internal/endtoend/testdata/analyze_dml/postgresql/exec.json
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"command": "analyze",
|
||||
"args": ["--dialect", "postgresql", "--schema", "schema.sql", "query.sql"],
|
||||
"contexts": ["base"]
|
||||
}
|
||||
14
internal/endtoend/testdata/analyze_dml/postgresql/query.sql
vendored
Normal file
14
internal/endtoend/testdata/analyze_dml/postgresql/query.sql
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
-- name: CreateUser :one
|
||||
INSERT INTO users (name, bio) VALUES ($1, $2) RETURNING *;
|
||||
|
||||
-- name: UpdateBio :exec
|
||||
UPDATE users SET bio = $1 WHERE id = $2;
|
||||
|
||||
-- name: UpdateNameReturning :one
|
||||
UPDATE users SET name = $1 WHERE id = $2 RETURNING id, name;
|
||||
|
||||
-- name: DeleteUser :exec
|
||||
DELETE FROM users WHERE id = $1;
|
||||
|
||||
-- name: DeleteUserReturning :one
|
||||
DELETE FROM users WHERE id = $1 RETURNING id;
|
||||
12
internal/endtoend/testdata/analyze_dml/postgresql/schema.sql
vendored
Normal file
12
internal/endtoend/testdata/analyze_dml/postgresql/schema.sql
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
CREATE TABLE users (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
name text NOT NULL,
|
||||
bio text
|
||||
);
|
||||
|
||||
CREATE TABLE posts (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
user_id bigint NOT NULL,
|
||||
title varchar(255),
|
||||
created timestamptz NOT NULL
|
||||
);
|
||||
165
internal/endtoend/testdata/analyze_dml/postgresql/stdout.json
vendored
Normal file
165
internal/endtoend/testdata/analyze_dml/postgresql/stdout.json
vendored
Normal file
@@ -0,0 +1,165 @@
|
||||
[
|
||||
{
|
||||
"name": "CreateUser",
|
||||
"cmd": ":one",
|
||||
"columns": [
|
||||
{
|
||||
"name": "id",
|
||||
"type": {
|
||||
"name": "bigint"
|
||||
},
|
||||
"table": "users"
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"type": {
|
||||
"name": "text"
|
||||
},
|
||||
"table": "users"
|
||||
},
|
||||
{
|
||||
"name": "bio",
|
||||
"type": {
|
||||
"name": "text",
|
||||
"nullable": true
|
||||
},
|
||||
"table": "users"
|
||||
}
|
||||
],
|
||||
"params": [
|
||||
{
|
||||
"number": 1,
|
||||
"column": {
|
||||
"name": "name",
|
||||
"type": {
|
||||
"name": "text"
|
||||
},
|
||||
"table": "users"
|
||||
}
|
||||
},
|
||||
{
|
||||
"number": 2,
|
||||
"column": {
|
||||
"name": "bio",
|
||||
"type": {
|
||||
"name": "text",
|
||||
"nullable": true
|
||||
},
|
||||
"table": "users"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "UpdateBio",
|
||||
"cmd": ":exec",
|
||||
"columns": [],
|
||||
"params": [
|
||||
{
|
||||
"number": 1,
|
||||
"column": {
|
||||
"name": "bio",
|
||||
"type": {
|
||||
"name": "text",
|
||||
"nullable": true
|
||||
},
|
||||
"table": "users"
|
||||
}
|
||||
},
|
||||
{
|
||||
"number": 2,
|
||||
"column": {
|
||||
"name": "id",
|
||||
"type": {
|
||||
"name": "bigint"
|
||||
},
|
||||
"table": "users"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "UpdateNameReturning",
|
||||
"cmd": ":one",
|
||||
"columns": [
|
||||
{
|
||||
"name": "id",
|
||||
"type": {
|
||||
"name": "bigint"
|
||||
},
|
||||
"table": "users"
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"type": {
|
||||
"name": "text"
|
||||
},
|
||||
"table": "users"
|
||||
}
|
||||
],
|
||||
"params": [
|
||||
{
|
||||
"number": 1,
|
||||
"column": {
|
||||
"name": "name",
|
||||
"type": {
|
||||
"name": "text"
|
||||
},
|
||||
"table": "users"
|
||||
}
|
||||
},
|
||||
{
|
||||
"number": 2,
|
||||
"column": {
|
||||
"name": "id",
|
||||
"type": {
|
||||
"name": "bigint"
|
||||
},
|
||||
"table": "users"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "DeleteUser",
|
||||
"cmd": ":exec",
|
||||
"columns": [],
|
||||
"params": [
|
||||
{
|
||||
"number": 1,
|
||||
"column": {
|
||||
"name": "id",
|
||||
"type": {
|
||||
"name": "bigint"
|
||||
},
|
||||
"table": "users"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "DeleteUserReturning",
|
||||
"cmd": ":one",
|
||||
"columns": [
|
||||
{
|
||||
"name": "id",
|
||||
"type": {
|
||||
"name": "bigint"
|
||||
},
|
||||
"table": "users"
|
||||
}
|
||||
],
|
||||
"params": [
|
||||
{
|
||||
"number": 1,
|
||||
"column": {
|
||||
"name": "id",
|
||||
"type": {
|
||||
"name": "bigint"
|
||||
},
|
||||
"table": "users"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
5
internal/endtoend/testdata/analyze_dml/sqlite/exec.json
vendored
Normal file
5
internal/endtoend/testdata/analyze_dml/sqlite/exec.json
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"command": "analyze",
|
||||
"args": ["--dialect", "sqlite", "--schema", "schema.sql", "query.sql"],
|
||||
"contexts": ["base"]
|
||||
}
|
||||
8
internal/endtoend/testdata/analyze_dml/sqlite/query.sql
vendored
Normal file
8
internal/endtoend/testdata/analyze_dml/sqlite/query.sql
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
-- name: CreateUser :one
|
||||
INSERT INTO users (name, bio) VALUES (?, ?) RETURNING *;
|
||||
|
||||
-- name: UpdateBio :exec
|
||||
UPDATE users SET bio = ? WHERE id = ?;
|
||||
|
||||
-- name: DeleteUser :exec
|
||||
DELETE FROM users WHERE id = ?;
|
||||
12
internal/endtoend/testdata/analyze_dml/sqlite/schema.sql
vendored
Normal file
12
internal/endtoend/testdata/analyze_dml/sqlite/schema.sql
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
CREATE TABLE users (
|
||||
id INTEGER PRIMARY KEY,
|
||||
name TEXT NOT NULL,
|
||||
bio TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE posts (
|
||||
id INTEGER PRIMARY KEY,
|
||||
user_id INTEGER NOT NULL,
|
||||
title TEXT,
|
||||
created TEXT NOT NULL
|
||||
);
|
||||
98
internal/endtoend/testdata/analyze_dml/sqlite/stdout.json
vendored
Normal file
98
internal/endtoend/testdata/analyze_dml/sqlite/stdout.json
vendored
Normal file
@@ -0,0 +1,98 @@
|
||||
[
|
||||
{
|
||||
"name": "CreateUser",
|
||||
"cmd": ":one",
|
||||
"columns": [
|
||||
{
|
||||
"name": "id",
|
||||
"type": {
|
||||
"name": "integer"
|
||||
},
|
||||
"table": "users"
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"type": {
|
||||
"name": "text"
|
||||
},
|
||||
"table": "users"
|
||||
},
|
||||
{
|
||||
"name": "bio",
|
||||
"type": {
|
||||
"name": "text",
|
||||
"nullable": true
|
||||
},
|
||||
"table": "users"
|
||||
}
|
||||
],
|
||||
"params": [
|
||||
{
|
||||
"number": 1,
|
||||
"column": {
|
||||
"name": "name",
|
||||
"type": {
|
||||
"name": "text"
|
||||
},
|
||||
"table": "users"
|
||||
}
|
||||
},
|
||||
{
|
||||
"number": 2,
|
||||
"column": {
|
||||
"name": "bio",
|
||||
"type": {
|
||||
"name": "text",
|
||||
"nullable": true
|
||||
},
|
||||
"table": "users"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "UpdateBio",
|
||||
"cmd": ":exec",
|
||||
"columns": [],
|
||||
"params": [
|
||||
{
|
||||
"number": 1,
|
||||
"column": {
|
||||
"name": "bio",
|
||||
"type": {
|
||||
"name": "text",
|
||||
"nullable": true
|
||||
},
|
||||
"table": "users"
|
||||
}
|
||||
},
|
||||
{
|
||||
"number": 2,
|
||||
"column": {
|
||||
"name": "id",
|
||||
"type": {
|
||||
"name": "integer"
|
||||
},
|
||||
"table": "users"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "DeleteUser",
|
||||
"cmd": ":exec",
|
||||
"columns": [],
|
||||
"params": [
|
||||
{
|
||||
"number": 1,
|
||||
"column": {
|
||||
"name": "id",
|
||||
"type": {
|
||||
"name": "integer"
|
||||
},
|
||||
"table": "users"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user