sqlc icon indicating copy to clipboard operation
sqlc copied to clipboard

Relation does not exists when name is surrounded by ` character

Open Codebreaker101 opened this issue 11 months ago • 2 comments

Version

1.28.0

What happened?

I'm using this sqlite3 command to export schema from the database: sqlite3 db/data.db '.schema authors' > ./db/schema.sql and it generates an sql schema where all table and column names are surrounded with a backtick character. This schema cannot be parsed by sqlc . Removing the backtick characters using command sed -i "s/\`//g" db/schema.sql allows sqlc to generate the code.

Relevant log output

# package db
db/query.sql:6:1: relation "authors" does not exist

Database schema

CREATE TABLE `authors` (
  `id`   INTEGER PRIMARY KEY,
  `name` text    NOT NULL,
  `bio`  text
);

SQL queries

-- name: GetAuthor :one
SELECT * FROM authors WHERE id = ? LIMIT 1;

Configuration

version: "2"
sql:
  - engine: "sqlite"
    queries: "db/query.sql"
    schema: "db/schema.sql"
    gen:
      go:
        package: "db"
        out: "db"

Playground URL

https://play.sqlc.dev/p/5d35e2538160c53e61fe204c3a2f05fe489687ac10a8d74304a82c2d7ec95871

What operating system are you using?

Linux

What database engines are you using?

SQLite

What type of code are you generating?

Go

Codebreaker101 avatar Jan 21 '25 06:01 Codebreaker101

Commenting here since it seems related to the same issue, potentially caused by #3657. I see the same issue with non-backtick-quoted identifiers in UPDATE statements.

I noticed that this issue is not present with 3657.patch reverted (ignoring testdata conflicts) on tag v1.28.0:

git apply -R 3657.patch --exclude="internal/endtoend/testdata/*"

Version

1.28.0

Relevant log output

# package 
queries.sql:1:1: relation "Foo" does not exist

Database schema

CREATE TABLE Foo (id TEXT PRIMARY KEY);

SQL queries

-- name: UpdateFoo :one
UPDATE Foo SET id = ? WHERE id = ? RETURNING *;

Configuration

version: "2"
sql:
- engine: sqlite
  schema:
    - schema.sql
  queries:
    - queries.sql
  gen:
    go:
      out: db

What operating system are you using?

macOS

What database engines are you using?

SQLite

What type of code are you generating?

Go

thomasquinn avatar Jan 22 '25 02:01 thomasquinn

I can verify that the issue still exists

kaaax0815 avatar Jun 12 '25 08:06 kaaax0815