GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Add Boolean Conversion Support to JasyncRow by Sung-Heon · Pull Request #431 · jasync-sql/jasync-sql

Conversation

@Sung-Heon

@Sung-Heon Sung-Heon commented May 18, 2025 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor

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.

All reactions
Sung-Heon added 2 commits May 18, 2025 23:56
@Sung-Heon
Add Boolean type conversion support in JasyncRow
e447eab
@Sung-Heon
Add unit tests for Boolean type conversion in JasyncRow
3922c34
@oshai

oshai commented May 19, 2025

Copy link
Copy Markdown
Contributor

Thanks!

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@Sung-Heon
Refactor JasyncRowTest to remove unnecessary blank lines
7fe6c61
@Sung-Heon

Sung-Heon commented May 19, 2025

Copy link
Copy Markdown
Contributor Author

I refactored. please run workflow again?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@oshai
oshai merged commit 4fe7c77 into jasync-sql:master May 27, 2025
@oshai

oshai commented May 27, 2025

Copy link
Copy Markdown
Contributor

Thanks!

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

No reviews

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

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.

2 participants

@Sung-Heon @oshai
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.
You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.