GeezerVison is showing github.com — Add Boolean Conversion Support to JasyncRow by Sung-Heon · Pull Request #431 · jasync-sql/jasync-sql
Conversation
Sung-Heon
commented
May 18, 2025
•
edited
Loading
Uh oh!
There was an error while loading. Please reload this page.
Description
This PR adds support for boolean type conversion in the JasyncRow class. Previously, the class supported conversions for various data types but did not explicitly handle boolean values. With these changes, the class can now properly convert various input data types (Numbers, Strings, Booleans) to Boolean values.
This enhancement is particularly important for MySQL databases, which represent boolean values as TINYINT(1) where 0 means false and any non-zero value (typically 1) means true. Our implementation correctly handles this MySQL-specific behavior by treating any non-zero numeric value as true.
Changes Made
- Extended the get method in JasyncRow to handle boolean conversions with the following mapping:
- Numbers: 0 → false, non-zero → true (aligned with MySQL's TINYINT(1) representation of booleans)
- Strings: Using Kotlin's built-in Boolean parsing
- Boolean values: Preserved as-is
- Added proper handling for primitive boolean type
- Added comprehensive test cases in JasyncRowTest to validate all conversion scenarios
Testing
- Created a dedicated test class JasyncRowTest with a test method testBooleanConversion that verifies:
- Boolean to Boolean conversion
- Number to Boolean conversion (0 → false, non-zero → true)
- String to Boolean conversion ("true" → true, "false" → false)
- Accessing Boolean values by index
- Tests pass successfully, confirming the implementation works as expected
Related Issue
#430
Additional Notes
This change enables more flexible type handling in the database access layer, making it easier to work with boolean values returned from MySQL queries. Since MySQL stores boolean values as TINYINT(1), this implementation ensures a seamless conversion between the database representation and the application-level Boolean type, improving type safety and code readability.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
|
I refactored. please run workflow again?
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Assignees
No one assigned
Milestone
No milestone
Development
Successfully merging this pull request may close these issues.
Uh oh!
There was an error while loading. Please reload this page.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.