Skip to content

feat(cubestore-driver): Upgrade flatbuffers to 25.9.23#10717

Merged
ovr merged 1 commit intomasterfrom
feat/cubestore-driver-upgrade-flatbuffers
Apr 20, 2026
Merged

feat(cubestore-driver): Upgrade flatbuffers to 25.9.23#10717
ovr merged 1 commit intomasterfrom
feat/cubestore-driver-upgrade-flatbuffers

Conversation

@ovr
Copy link
Copy Markdown
Member

@ovr ovr commented Apr 20, 2026

Bumps flatbuffers from 23.3.3 to 25.9.23 and regenerates the TS bindings from http_message.fbs. Also switches the generator flag from the deprecated --ts-flat-files to --gen-all.

Notable runtime improvement: createString now uses Uint8Array.set instead of a per-byte loop, which is ~2-3x faster for large payloads such as the csv_rows field on inline tables.

Bumps flatbuffers from 23.3.3 to 25.9.23 and regenerates the TS
bindings from http_message.fbs. Also switches the generator flag
from the deprecated --ts-flat-files to --gen-all.

Notable runtime improvement: createString now uses Uint8Array.set
instead of a per-byte loop, which is ~2-3x faster for large payloads
such as the csv_rows field on inline tables.
@ovr ovr requested a review from a team as a code owner April 20, 2026 10:55
@github-actions github-actions Bot added javascript Pull requests that update Javascript code data source driver labels Apr 20, 2026
@claude
Copy link
Copy Markdown
Contributor

claude Bot commented Apr 20, 2026

Claude finished @ovr's task in 1m 17s —— View job


PR Review: Upgrade flatbuffers to 25.9.23

  • Gather context and read changed files
  • Review code quality and correctness
  • Check for security, performance, and testing concerns
  • Post review feedback

Verdict: Looks good

This is a clean, low-risk dependency upgrade. The changes are minimal and well-scoped.

What changed

  1. package.jsonflatbuffers bumped from 23.3.3 to 25.9.23
  2. generate.sh — Deprecated --ts-flat-files flag replaced with --gen-all
  3. 8 codegen *.ts files + index.ts — Only change is a new /* eslint-disable ... */ comment added by the updated flatc compiler
  4. yarn.lock — Updated accordingly

API compatibility

I verified that every symbol consumed by the sole consumer (WebSocketConnection.ts:8-15) is still present with identical signatures in the regenerated code:

Used symbol Still present
HttpMessage.getRootAsHttpMessage, messageId(), commandType(), command() Yes
HttpCommand.HttpError, HttpCommand.HttpQuery, HttpCommand.HttpResultSet Yes
HttpError.error() Yes
HttpResultSet.columnsLength(), columns(), rowsLength(), rows() Yes
HttpRow.valuesLength(), values() Yes
HttpColumnValue.stringValue() Yes
HttpTable.startHttpTable, addName, addColumns, addTypes, addCsvRows, endHttpTable, createColumnsVector Yes
HttpQuery.startHttpQuery, addQuery, addTraceObj, addInlineTables, endHttpQuery, createInlineTablesVector Yes
HttpMessage.createHttpMessage Yes

The FlatBuffers schema (http_message.fbs) is unchanged, so wire compatibility with CubeStore is preserved.

Performance

The PR description's claim about createString using Uint8Array.set instead of a per-byte loop is a runtime library improvement that comes for free with this version bump — particularly relevant for the csv_rows field on HttpTable which can be large.

No concerns

  • Security: No issues — standard version bump of a well-maintained serialization library.
  • Breaking changes: None — generated API surface is identical.
  • Testing: Since the schema and API are unchanged, existing tests cover this adequately.
  • Code quality: The eslint-disable additions are appropriate for auto-generated code that uses patterns like ! assertions and any types by design.

@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 20, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 58.02%. Comparing base (e4ef002) to head (936a65f).
⚠️ Report is 1 commits behind head on master.

❗ There is a different number of reports uploaded between BASE (e4ef002) and HEAD (936a65f). Click for more details.

HEAD has 1 upload less than BASE
Flag BASE (e4ef002) HEAD (936a65f)
cubesql 1 0
Additional details and impacted files
@@             Coverage Diff             @@
##           master   #10717       +/-   ##
===========================================
- Coverage   83.40%   58.02%   -25.39%     
===========================================
  Files         251      215       -36     
  Lines       75297    16688    -58609     
  Branches        0     3358     +3358     
===========================================
- Hits        62802     9683    -53119     
+ Misses      12495     6513     -5982     
- Partials        0      492      +492     
Flag Coverage Δ
cube-backend 58.02% <ø> (?)
cubesql ?

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@ovr ovr merged commit 311a6a8 into master Apr 20, 2026
36 checks passed
@ovr ovr deleted the feat/cubestore-driver-upgrade-flatbuffers branch April 20, 2026 11:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

data source driver javascript Pull requests that update Javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants