Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix D1 exports to properly pad HEX strings for binary values #7701

Merged
merged 2 commits into from
Jan 9, 2025

Conversation

lambrospetrou
Copy link
Contributor

@lambrospetrou lambrospetrou commented Jan 8, 2025

Fixes #6452

The export logic was corrupting data when a binary value was being converted into HEX strings, and one of the bytes had a leading zero.

Also fixed in the internal version used in production (CFSQL-1166).


  • Tests
    • TODO (before merge)
    • Tests included
    • Tests not necessary because: same fix applied and tested internally.
  • E2E Tests CI Job required? (Use "e2e" label or ask maintainer to run separately)
    • I don't know
    • Required
    • Not required because: same fix applied and tested internally.
  • Public documentation
    • TODO (before merge)
    • Cloudflare docs PR(s):
    • Documentation not necessary because: no API change, this is a bugfix.

@lambrospetrou lambrospetrou requested a review from a team as a code owner January 8, 2025 14:51
Copy link

changeset-bot bot commented Jan 8, 2025

🦋 Changeset detected

Latest commit: 169c8fd

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 4 packages
Name Type
miniflare Patch
@cloudflare/pages-shared Patch
@cloudflare/vitest-pool-workers Patch
wrangler Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

Copy link
Contributor

github-actions bot commented Jan 8, 2025

A wrangler prerelease is available for testing. You can install this latest build in your project with:

npm install --save-dev https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/12688317519/npm-package-wrangler-7701

You can reference the automatically updated head of this PR with:

npm install --save-dev https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/prs/7701/npm-package-wrangler-7701

Or you can use npx with this latest build directly:

npx https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/12688317519/npm-package-wrangler-7701 dev path/to/script.js
Additional artifacts:
wget https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/12688317519/npm-package-cloudflare-workers-bindings-extension-7701 -O ./cloudflare-workers-bindings-extension.0.0.0-vedc0f7a84.vsix && code --install-extension ./cloudflare-workers-bindings-extension.0.0.0-vedc0f7a84.vsix
npx https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/12688317519/npm-package-create-cloudflare-7701 --no-auto-update
npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/12688317519/npm-package-cloudflare-kv-asset-handler-7701
npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/12688317519/npm-package-miniflare-7701
npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/12688317519/npm-package-cloudflare-pages-shared-7701
npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/12688317519/npm-package-cloudflare-unenv-preset-7701
npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/12688317519/npm-package-cloudflare-vitest-pool-workers-7701
npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/12688317519/npm-package-cloudflare-workers-editor-shared-7701
npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/12688317519/npm-package-cloudflare-workers-shared-7701
npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/12688317519/npm-package-cloudflare-workflows-shared-7701

Note that these links will no longer work once the GitHub Actions artifact expires.


wrangler@3.100.0 includes the following runtime dependencies:

Package Constraint Resolved
miniflare workspace:* 3.20241230.0
workerd 1.20241230.0 1.20241230.0
workerd --version 1.20241230.0 2024-12-30

Please ensure constraints are pinned, and miniflare/workerd minor versions match.

@penalosa penalosa force-pushed the lambros/fix-d1-export-binary-data branch from 364e740 to 3c50744 Compare January 8, 2025 20:03
lambrospetrou and others added 2 commits January 9, 2025 10:43
The export logic was corrupting data when a binary value was being converted into HEX strings, and one of the bytes had a leading zero.

Closes #6452
@lambrospetrou lambrospetrou force-pushed the lambros/fix-d1-export-binary-data branch from 3c50744 to 169c8fd Compare January 9, 2025 10:43
@lambrospetrou lambrospetrou merged commit 2c76887 into main Jan 9, 2025
29 checks passed
@lambrospetrou lambrospetrou deleted the lambros/fix-d1-export-binary-data branch January 9, 2025 11:40
@workers-devprod workers-devprod mentioned this pull request Jan 9, 2025
@cloudflare cloudflare deleted a comment from MORTEZAMIRSALI Jan 10, 2025
penalosa pushed a commit that referenced this pull request Jan 10, 2025
* Fix D1 exports to properly pad HEX strings for binary values

The export logic was corrupting data when a binary value was being converted into HEX strings, and one of the bytes had a leading zero.

Closes #6452

* Create green-dodos-push.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

🐛 BUG: D1 export corrupts data in X strings
3 participants