-
Notifications
You must be signed in to change notification settings - Fork 29
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
🐞 Prepared statements send the wrong types as parameters to the server #341
Labels
bug
Unwanted / harmful behavior
Comments
consider exposing/adding the debug feature of |
Nicoretti
added a commit
that referenced
this issue
May 24, 2023
* Add hooks for websocket based exasol dialect * Add support for enabling and disabling certificate validation * Add hooks for type conversions between pyexasol and dbapi2 cursor * Add websocket dialect/connector to ci/cd matrix * Update dependencies * Update README.md * Rework dbapi2 types * Restructure the dbapi2 module of the websocket driver * Disable remaining failing SQLA compliance tests - #341 - #342 --- Co-authored-by: Christoph Pirkl <christoph.pirkl@exasol.com> Co-authored-by: Sebastian Bär <redcatbear@ursus-minor.de> Co-authored-by: Torsten Kilias <tkilias@users.noreply.github.com>
Nicoretti
added a commit
that referenced
this issue
Jun 22, 2023
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Summary
Prepared statements using the websocket based dialect seem to not send the correct types required/expected by the server.
Reproducing the Issue
Reproducible: always
Remove the
@ISSUE341
marker from the tests intest/sqlalchemy/test_suite.py
Run the SQLA compliance test suit with the websocket based dialect as target
pytest --log-debug=DEBUG --dropfirst --db exasol-websocket test/integration/sqlalchemy
Have a look at the following tests
test/integration/sqlalchemy/test_suite.py::CastTypeDecoratorTest_exasol+exasol_driver_websocket_dbapi2::test_special_type - sqlalchemy.exc.DBAPIError: (exasol.driver.websocket._errors.Error)
test/integration/sqlalchemy/test_suite.py::ExistsTest_exasol+exasol_driver_websocket_dbapi2::test_select_exists - sqlalchemy.exc.DBAPIError: (exasol.driver.websocket._errors.Error)
test/integration/sqlalchemy/test_suite.py::ExistsTest_exasol+exasol_driver_websocket_dbapi2::test_select_exists_false - sqlalchemy.exc.DBAPIError: (exasol.driver.websocket._errors.Error)
test/integration/sqlalchemy/test_suite.py::InsertBehaviorTest_exasol+exasol_driver_websocket_dbapi2::test_insert_from_select - sqlalchemy.exc.DBAPIError: (exasol.driver.websocket._errors.Error)
test/integration/sqlalchemy/test_suite.py::InsertBehaviorTest_exasol+exasol_driver_websocket_dbapi2::test_insert_from_select_with_defaults - sqlalchemy.exc.DBAPIError: (exasol.driver.websocket._errors.Error)
test/integration/sqlalchemy/test_suite.py::NumericTest_exasol+exasol_driver_websocket_dbapi2::test_float_as_decimal - sqlalchemy.exc.DBAPIError: (exasol.driver.websocket._errors.Error)
test/integration/sqlalchemy/test_suite.py::NumericTest_exasol+exasol_driver_websocket_dbapi2::test_float_as_float - sqlalchemy.exc.DBAPIError: (exasol.driver.websocket._errors.Error)
test/integration/sqlalchemy/test_suite.py::NumericTest_exasol+exasol_driver_websocket_dbapi2::test_float_custom_scale - sqlalchemy.exc.DBAPIError: (exasol.driver.websocket._errors.Error)
Expected Behaviour
Statements (test cases) get executed successfully.
Actual Behaviour
Statements (test cases) fail due to invalid types for the parameters are sent to the server.
e.g.:
Root Cause
Not a 100% identified yet
Context
This is a snippet of the client/server conversation for test case
test/integration/sqlalchemy/test_suite.py::CastTypeDecoratorTest_exasol+exasol_driver_websocket_dbapi2::test_special_type - sqlalchemy.exc.DBAPIError: (exasol.driver.websocket._errors.Error)
Related Issues (optional)
The text was updated successfully, but these errors were encountered: