sqlsift-lsp 0.1.2 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -7,6 +7,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.1.4](https://github.com/yukikotani231/sqlsift/compare/v0.1.3...v0.1.4) - 2026-03-04
11
+
12
+ ### Added
13
+
14
+ - implement E0004 null-violation diagnostics ([#66](https://github.com/yukikotani231/sqlsift/pull/66))
15
+
16
+ ## [0.1.3](https://github.com/yukikotani231/sqlsift/compare/v0.1.2...v0.1.3) - 2026-03-04
17
+
18
+ ### Added
19
+
20
+ - validate set operations and wire CLI runtime flags ([#65](https://github.com/yukikotani231/sqlsift/pull/65))
21
+
22
+ ### Other
23
+
24
+ - refresh outdated capability notes ([#63](https://github.com/yukikotani231/sqlsift/pull/63))
25
+
10
26
  ## [0.1.2](https://github.com/yukikotani231/sqlsift/compare/v0.1.1...v0.1.2) - 2026-02-19
11
27
 
12
28
  ### Added
package/README.md CHANGED
@@ -123,7 +123,7 @@ sqlsift check --schema schema/*.sql queries/**/*.sql
123
123
  | E0001 | table-not-found | Referenced table does not exist in schema | ✅ Implemented |
124
124
  | E0002 | column-not-found | Referenced column does not exist in table | ✅ Implemented |
125
125
  | E0003 | type-mismatch | Type incompatibility in expressions (comparisons, arithmetic) | ✅ Implemented |
126
- | E0004 | potential-null-violation | Possible NOT NULL constraint violation | 🚧 Reserved |
126
+ | E0004 | potential-null-violation | Potential NOT NULL violation (explicit NULL assignment) | Implemented |
127
127
  | E0005 | column-count-mismatch | INSERT column count doesn't match values | ✅ Implemented |
128
128
  | E0006 | ambiguous-column | Column reference is ambiguous across tables | ✅ Implemented |
129
129
  | E0007 | join-type-mismatch | JOIN condition compares incompatible types | ✅ Implemented |
@@ -134,15 +134,17 @@ sqlsift check --schema schema/*.sql queries/**/*.sql
134
134
  - ✅ WHERE clause comparisons (`WHERE id = 'text'`)
135
135
  - ✅ Arithmetic operations (`SELECT name + 10`)
136
136
  - ✅ JOIN conditions (`ON users.id = orders.user_name`)
137
+ - ✅ Set operations column validation (`UNION` / `INTERSECT` / `EXCEPT` column count and type compatibility)
138
+ - ✅ Potential NOT NULL violation checks for explicit `NULL` assignment in `INSERT` / `UPDATE` (`E0004`)
137
139
  - ✅ INSERT value type mismatches (`INSERT INTO users (id) VALUES ('text')`)
138
140
  - ✅ UPDATE assignment type mismatches (`UPDATE users SET id = 'text'`)
141
+ - ✅ CAST expression type inference (`CAST(name AS INTEGER)`)
142
+ - ✅ Function return type inference (e.g., `COUNT`, `SUM`, `UPPER`, `LENGTH`, `COALESCE`)
139
143
  - ✅ Nested expressions (`WHERE (a + b) * 2 = 'text'`)
140
144
  - ✅ All comparison operators (=, !=, <, >, <=, >=)
141
145
  - ✅ Numeric type compatibility (INTEGER, BIGINT, DECIMAL, etc.)
142
146
 
143
147
  **Not Yet Detected:**
144
- - ⏳ CAST expression type inference
145
- - ⏳ Function return types (COUNT, SUM, AVG, etc.)
146
148
  - ⏳ CASE expression type consistency
147
149
  - ⏳ Subquery/CTE column type inference
148
150
 
@@ -181,9 +183,9 @@ Options:
181
183
  --disable <RULE> Disable specific rules (e.g., E0001, E0002)
182
184
  -d, --dialect <NAME> SQL dialect [default: postgresql]
183
185
  -f, --format <FORMAT> Output format: human, json, sarif [default: human]
184
- --max-errors <N> Maximum number of errors before stopping [default: 100]
185
- -v, --verbose Enable verbose output
186
- -q, --quiet Suppress non-error output
186
+ --max-errors <N> Maximum number of errors before stopping [default: 100, 0 = unlimited]
187
+ -v, --verbose Enable verbose logging (-vv for debug)
188
+ -q, --quiet Suppress summary/non-error output
187
189
  -h, --help Print help
188
190
  ```
189
191
 
@@ -295,8 +297,6 @@ Use the `--dialect` flag to specify the dialect.
295
297
  - [x] LSP server for editor integration (VS Code extension)
296
298
 
297
299
  ### Planned
298
- - [ ] CAST expression type inference
299
- - [ ] Function return type inference (COUNT, SUM, AVG, etc.)
300
300
  - [ ] CASE expression type consistency checking
301
301
  - [ ] Subquery/CTE column type inference
302
302
  - [ ] Custom rule plugins
@@ -23,7 +23,7 @@
23
23
  "hasInstallScript": true,
24
24
  "license": "MIT",
25
25
  "name": "sqlsift-lsp",
26
- "version": "0.1.2"
26
+ "version": "0.1.4"
27
27
  },
28
28
  "node_modules/@isaacs/balanced-match": {
29
29
  "engines": {
@@ -515,5 +515,5 @@
515
515
  }
516
516
  },
517
517
  "requires": true,
518
- "version": "0.1.2"
518
+ "version": "0.1.4"
519
519
  }
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "artifactDownloadUrl": "https://github.com/yukikotani231/sqlsift/releases/download/v0.1.2",
2
+ "artifactDownloadUrl": "https://github.com/yukikotani231/sqlsift/releases/download/v0.1.4",
3
3
  "bin": {
4
4
  "sqlsift-lsp": "run-sqlsift-lsp.js"
5
5
  },
@@ -91,7 +91,7 @@
91
91
  "zipExt": ".tar.xz"
92
92
  }
93
93
  },
94
- "version": "0.1.2",
94
+ "version": "0.1.4",
95
95
  "volta": {
96
96
  "node": "18.14.1",
97
97
  "npm": "9.5.0"