sqldelight icon indicating copy to clipboard operation
sqldelight copied to clipboard

False positive on 'COLUMN XY is defined AS NOT NULL'

Open vanniktech opened this issue 2 years ago • 0 comments

SQLDelight Version

2.0.0

IDE Version

2023.2.1

Dialect

SQLite

Describe the Bug

This is the warning I'm getting. It's technically correct the column is NOT NULL, however by using the left joins, it can indeed be null:

Screenshot 2023-09-04 at 20 28 36

Sql to reproduce:

CREATE TABLE coachee (
  id TEXT NOT NULL PRIMARY KEY
);

CREATE TABLE chat (
  id TEXT NOT NULL PRIMARY KEY,
  coacheeId TEXT NOT NULL
);

CREATE TABLE coachTagCoachee (
  coachTagId TEXT NOT NULL,
  coacheeId TEXT NOT NULL,
  PRIMARY KEY (coachTagId, coacheeId)
);

CREATE TABLE coachTag (
  id TEXT NOT NULL PRIMARY KEY,
  name TEXT NOT NULL
);

repro:
SELECT
  chat.id AS chatId
FROM chat
JOIN coachee
  ON chat.coacheeId = coachee.id
LEFT JOIN coachTagCoachee
  ON coachTagCoachee.coacheeId = coachee.id
WHERE coachTagCoachee.coachTagId IS NULL
GROUP BY chat.id
;

Stacktrace

No response

vanniktech avatar Sep 04 '23 19:09 vanniktech