go-sql-driver / mysql

Go MySQL Driver is a MySQL driver for Go's (golang) database/sql package
https://pkg.go.dev/github.com/go-sql-driver/mysql
Mozilla Public License 2.0
14.52k stars 2.32k forks source link

Fix sql.RawBytes corruption issue #1523

Closed shogo82148 closed 10 months ago

shogo82148 commented 10 months ago

Description

cancel() is intended to cancel the execution of rows.Next, but very rarely it cancels the execution of rows.Scan, causing rows.Scan to return an error, resulting in a test failure.

This pull request addresses this issue.

Checklist

Summary by CodeRabbit

coderabbitai[bot] commented 10 months ago

Walkthrough

The changes involve updating a test function in driver_test.go to enhance its robustness. The test now includes a preliminary check to ensure that rows are present before proceeding with scanning operations. Additionally, the management of the rows.Close() call has been optimized within the function's logic, ensuring that resources are handled correctly and potential issues with unclosed rows are mitigated.

Changes

File Path Change Summary
driver_test.go Added a check for row existence and reorganized the rows.Close() call within the TestRawBytesAreNotModified function.

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on X ?


Tips ### Chat with CodeRabbit Bot (`@coderabbitai`) - You can reply to a review comment made by CodeRabbit. - You can tag CodeRabbit on specific lines of code or files in the PR by tagging `@coderabbitai` in a comment. - You can tag `@coderabbitai` in a PR comment and ask one-off questions about the PR and the codebase. Use quoted replies to pass the context for follow-up questions. ### CodeRabbit Commands (invoked as PR comments) - `@coderabbitai pause` to pause the reviews on a PR. - `@coderabbitai resume` to resume the paused reviews. - `@coderabbitai review` to trigger a review. This is useful when automatic reviews are disabled for the repository. - `@coderabbitai resolve` resolve all the CodeRabbit review comments. - `@coderabbitai help` to get help. Additionally, you can add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed. ### CodeRabbit Configration File (`.coderabbit.yaml`) - You can programmatically configure CodeRabbit by adding a `.coderabbit.yaml` file to the root of your repository. - The JSON schema for the configuration file is available [here](https://coderabbit.ai/integrations/coderabbit-overrides.v2.json). - If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: `# yaml-language-server: $schema=https://coderabbit.ai/integrations/coderabbit-overrides.v2.json`
coveralls commented 10 months ago

Coverage Status

coverage: 82.627%. remained the same when pulling 015971fb068a6dccafd0042ebcf26c5b649e8fae on shogo82148:fix-raw-bytes-corruption-issue into fc589cbaba22032382488393c72b9b3b5366917c on go-sql-driver:master.