Repository navigation
Conversation
Signed-off-by: lazerg <lazerg2@gmail.com> Assisted-by: Claude Code
|
Review requested:
|
|
Caution AgentScan found account activity patterns that may be consistent with automation. This is a heuristic, not proof that this pull request was opened by an agent or violates policy. AI-assisted contributions are permitted, but automated tooling must not open pull requests without advance approval, and contributors must personally understand, test, verify, and take responsibility for every submitted change. See the AgentScan analysis, AI use policy, and automation policy for additional context. |
Signed-off-by: lazerg <lazerg2@gmail.com> Assisted-by: Claude Code
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #66498 +/- ##
==========================================
+ Coverage 90.43% 90.44% +0.01%
==========================================
Files 790 791 +1
Lines 275435 276520 +1085
Branches 52823 53096 +273
==========================================
+ Hits 249082 250094 +1012
- Misses 16769 16837 +68
- Partials 9584 9589 +5
🚀 New features to boost your workflow:
|
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
|
The new tests cover
Each one aborts v26.10.0, so a test would fail without this change. With this change, the first two should throw // 'é' is one byte per character in V8 and two bytes in UTF-8.
const n = (constants.MAX_STRING_LENGTH >>> 1) + 1;
db.prepare(`SELECT length('${'é'.repeat(n)}') AS len`).sourceSQL;
db.prepare(`SELECT length('${'é'.repeat(n)}')`).get(); // column nameThe fallback repro is in #66487. Measured with #66385 rewrites the column-name cache, so a column-name test would catch a regression there. If you are leaving these out on purpose, could you say why in the PR description? |
Failed to resume CI
Full Auto Start CI output |
Signed-off-by: lazerg <lazerg2@gmail.com> Assisted-by: Claude Code
|
I added For the fallback, the test sets |
expandedSQL,sourceSQL, result column names and thesqlite.db.querytrace callback passed SQLite text toString::NewFromUtf8()without a length. When that text is longer thanString::kMaxLengthbytes, V8 hits a fatal CHECK instead of returning an empty handle. Passing the length makes the getters and column names throwERR_STRING_TOO_LONG, the same as oversized column values since #66209, and the trace callback skips the event so the statement still runs.NullableSQLiteStringToValue()andCreateSQLiteErrorImpl()have the same problem with huge identifiers, but the authorizer and error message paths need their own handling, so I left them for a follow-up.Fixes: #66487