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

Fixed row converter to properly handle nullable values #53

Merged
merged 1 commit into from
Mar 13, 2024

Conversation

nfx
Copy link
Collaborator

@nfx nfx commented Mar 13, 2024

No description provided.

Copy link

codecov bot commented Mar 13, 2024

Codecov Report

Attention: Patch coverage is 66.66667% with 11 lines in your changes are missing coverage. Please review.

Project coverage is 82.95%. Comparing base (da7274a) to head (dee8dd9).

Files Patch % Lines
src/databricks/labs/lsql/core.py 66.66% 6 Missing and 5 partials ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #53      +/-   ##
==========================================
- Coverage   83.17%   82.95%   -0.22%     
==========================================
  Files           7        7              
  Lines         529      534       +5     
  Branches      105      105              
==========================================
+ Hits          440      443       +3     
- Misses         54       55       +1     
- Partials       35       36       +1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link

✅ 18/18 passed, 1 skipped, 25m42s total

Running from acceptance #17

@nfx nfx merged commit 56277a2 into main Mar 13, 2024
7 of 9 checks passed
@nfx nfx deleted the fix/type-factories branch March 13, 2024 15:08
nfx added a commit that referenced this pull request Mar 13, 2024
* Fixed row converter to properly handle nullable values ([#53](#53)). In this release, the row converter in the `databricks.labs.lsql.core` module has been updated to handle nullable values correctly. A new method `StatementExecutionExt` has been added, which manages the handling of nullable values during SQL statement execution. The `Row` class has also been modified to include nullable values, improving the robustness and flexibility of SQL execution in dealing with various data types, including null values. These enhancements increase the overall reliability of the system, making it more production-ready.
* Improved integration test coverage ([#52](#52)). In this release, the project's integration test coverage has been significantly improved through several changes. A new function, `make_random()`, has been added to the `conftest.py` file to generate a random string of fixed length, aiding in the creation of more meaningful and readable random strings for integration tests. A new file, `test_deployment.py`, has been introduced, containing a test function for deploying a database schema and verifying successful data retrieval via a view. The `test_integration.py` file has been renamed to `test_core.py`, with updates to the `test_fetch_one` function to test the `fetch_one` method using a SQL query with an aliased value. Additionally, a new `Foo` dataclass has been added to the `tests/integration/views/__init__.py` file, supporting integration test coverage. Lastly, a new SQL query has been added to the integration test suite, located in the `some.sql` file, which retrieves data from a table named `foo` in the `inventory` schema. These changes aim to enhance the overall stability, reliability, and coverage of the project's integration tests. Note: The changes to the `.gitignore` file and the improvements to the `StatementExecutionBackend` class in the `backends.py` file are not included in this summary, as they were described in the opening statement.
* Rely on `hatch` being present on the build machine ([#54](#54)). In this release, we have made significant changes to how we manage our build process and toolchain configuration. We have removed the need to manually install `hatch` version 1.7.0 in the build machine, and instead, rely on its presence, adding it to the list of required tools in the toolchain configuration. The command to create a virtual environment using `hatch` has also been added, and the `pre_setup` section no longer includes installing `hatch`, assuming its availability. We have also updated the `hatch` package version from 1.7.0 to 1.9.4, which may include bug fixes, performance improvements, or new features. This change may impact the behavior of any existing functionality that relies on `hatch`. The `pyproject.toml` file has been modified to update the `fmt` and `verify` sections, with `ruff check . --fix` replacing `ruff . --fix` and the removal of `black --check .` and `isort . --check-only`. A new configuration for `isort` has also been added to specify the `databricks.labs.blueprint` package as a known first-party package, enabling more precise management of imports related to that package. These changes simplify the build process and ensure that the project is using a more recent version of the `hatch` package for packaging and distributing Python projects.
* Updated sqlglot requirement from ~=22.3.1 to >=22.3.1,<22.5.0 ([#51](#51)). In this release, we have updated the version constraint for the `sqlglot` package in our project's `pyproject.toml` file. Previously, we had set the constraint to `~=22.3.1`, allowing for any version with the same major and minor numbers but different patch numbers. With this update, we have changed the constraint to `>=22.3.1,<22.5.0`. This change enables our project to utilize bug fixes and improvements made in the latest patch versions of `sqlglot`, while still preventing it from inadvertently using any breaking changes introduced in version 22.5.0 or later versions. This modification allows us to take advantage of the latest features and improvements in `sqlglot` while maintaining compatibility and stability in our project.

Dependency updates:

 * Updated sqlglot requirement from ~=22.3.1 to >=22.3.1,<22.5.0 ([#51](#51)).
@nfx nfx mentioned this pull request Mar 13, 2024
nfx added a commit that referenced this pull request Mar 13, 2024
* Fixed row converter to properly handle nullable values
([#53](#53)). In this
release, the row converter in the `databricks.labs.lsql.core` module has
been updated to handle nullable values correctly. A new method
`StatementExecutionExt` has been added, which manages the handling of
nullable values during SQL statement execution. The `Row` class has also
been modified to include nullable values, improving the robustness and
flexibility of SQL execution in dealing with various data types,
including null values. These enhancements increase the overall
reliability of the system, making it more production-ready.
* Improved integration test coverage
([#52](#52)). In this
release, the project's integration test coverage has been significantly
improved through several changes. A new function, `make_random()`, has
been added to the `conftest.py` file to generate a random string of
fixed length, aiding in the creation of more meaningful and readable
random strings for integration tests. A new file, `test_deployment.py`,
has been introduced, containing a test function for deploying a database
schema and verifying successful data retrieval via a view. The
`test_integration.py` file has been renamed to `test_core.py`, with
updates to the `test_fetch_one` function to test the `fetch_one` method
using a SQL query with an aliased value. Additionally, a new `Foo`
dataclass has been added to the `tests/integration/views/__init__.py`
file, supporting integration test coverage. Lastly, a new SQL query has
been added to the integration test suite, located in the `some.sql`
file, which retrieves data from a table named `foo` in the `inventory`
schema. These changes aim to enhance the overall stability, reliability,
and coverage of the project's integration tests. Note: The changes to
the `.gitignore` file and the improvements to the
`StatementExecutionBackend` class in the `backends.py` file are not
included in this summary, as they were described in the opening
statement.
* Rely on `hatch` being present on the build machine
([#54](#54)). In this
release, we have made significant changes to how we manage our build
process and toolchain configuration. We have removed the need to
manually install `hatch` version 1.7.0 in the build machine, and
instead, rely on its presence, adding it to the list of required tools
in the toolchain configuration. The command to create a virtual
environment using `hatch` has also been added, and the `pre_setup`
section no longer includes installing `hatch`, assuming its
availability. We have also updated the `hatch` package version from
1.7.0 to 1.9.4, which may include bug fixes, performance improvements,
or new features. This change may impact the behavior of any existing
functionality that relies on `hatch`. The `pyproject.toml` file has been
modified to update the `fmt` and `verify` sections, with `ruff check .
--fix` replacing `ruff . --fix` and the removal of `black --check .` and
`isort . --check-only`. A new configuration for `isort` has also been
added to specify the `databricks.labs.blueprint` package as a known
first-party package, enabling more precise management of imports related
to that package. These changes simplify the build process and ensure
that the project is using a more recent version of the `hatch` package
for packaging and distributing Python projects.
* Updated sqlglot requirement from ~=22.3.1 to >=22.3.1,<22.5.0
([#51](#51)). In this
release, we have updated the version constraint for the `sqlglot`
package in our project's `pyproject.toml` file. Previously, we had set
the constraint to `~=22.3.1`, allowing for any version with the same
major and minor numbers but different patch numbers. With this update,
we have changed the constraint to `>=22.3.1,<22.5.0`. This change
enables our project to utilize bug fixes and improvements made in the
latest patch versions of `sqlglot`, while still preventing it from
inadvertently using any breaking changes introduced in version 22.5.0 or
later versions. This modification allows us to take advantage of the
latest features and improvements in `sqlglot` while maintaining
compatibility and stability in our project.

Dependency updates:

* Updated sqlglot requirement from ~=22.3.1 to >=22.3.1,<22.5.0
([#51](#51)).
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.

1 participant