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

feat: add support for bool fields #63

Open
chrissuozzo opened this issue Dec 4, 2023 · 1 comment · May be fixed by #64
Open

feat: add support for bool fields #63

chrissuozzo opened this issue Dec 4, 2023 · 1 comment · May be fixed by #64

Comments

@chrissuozzo
Copy link
Contributor

The proposed feature would allow a table containing BOOLEAN columns to be represented as bool fields within a user's row structure. For example, if you have this table with the BOOLEAN column bool_value:

CREATE TABLE sometable (
  id INTEGER NOT NULL,
  bool_value BOOLEAN NOT NULL,
  PRIMARY KEY (id)
);

You could then represent the row as:

#[derive(Debug, serde::Deserialize)]
struct SomeTableRow {
  id: i64,
  bool_value: bool,
}

The following query would then work as expected:

let rows = db
     .execute("SELECT * FROM sometable")
     .await?
     .rows
     .iter()
     .map(de::from_row)
     .collect::<Result<Vec<SomeTableRow>, _>>()?;

Currently, the above query will result in a runtime error due to the inability to coerce the native 0/1 integer value to bool:

Error: invalid type: integer `1`, expected a boolean
error: process didn't exit successfully: `target\debug\test.exe` (exit code: 1)
@chrissuozzo chrissuozzo linked a pull request Dec 4, 2023 that will close this issue
@chrissuozzo
Copy link
Contributor Author

#64 for your consideration...

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 a pull request may close this issue.

1 participant