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
Simple query mode callable statement test broken in omni CI #2399
Comments
Looked into this a bit and it's an odd one. I think the driver is messing up parsing JDBC function calls without parameters and there's a server bug (feature?) that allows it to work correctly but only in extended query protocol. I don't see anything special in the code that would have broken this in simple mode either. I think the new test created by @marschall just exposed the existing error. The JDBC call syntax for But what's odd is that it works fine in extended mode. My guess is that the extra parse step is treating the parameter as I haven't dug through the server code to confirm how this works but a manual PREPARE / EXECUTE v.s. directly executing the function in psql seems to match:
Next places to look are why the driver JDBC call parsing is adding a |
Ya, I thought there was something funky with it. |
Disables the JDBC function call syntax callable statement tests with no arguments when running the test suite in simple query mode. The new tests fail with simple query mode as internal JDBC-to-native query parser generates SQL that contains the out parameters in the SQL body which is only ignored by the server when processed in an extended parse, bind, execute sequence. When executed as a simple query command the server does not ignore the extra parameters and the query fails. This commit does not fix anything yet. It simply skips the new failing test in simple query mode so that the rest of the quite can execute. The behavior of the driver has not changed in the recent additions either, the new tests simply brought to light an existing issue with simple query mode. See pgjdbc#2399 for more details.
Disables the JDBC function call syntax callable statement tests with no arguments when running the test suite in simple query mode. The new tests fail with simple query mode as internal JDBC-to-native query parser generates SQL that contains the out parameters in the SQL body which is only ignored by the server when processed in an extended parse, bind, execute sequence. When executed as a simple query command the server does not ignore the extra parameters and the query fails. This commit does not fix anything yet. It simply skips the new failing test in simple query mode so that the rest of the quite can execute. The behavior of the driver has not changed in the recent additions either, the new tests simply brought to light an existing issue with simple query mode. See #2399 for more details.
The Omni CI matrix build for simple query mode is broken: https://github.com/pgjdbc/pgjdbc/runs/4757699941?check_suite_focus=true#step:11:341
I think it's a change in the test, not the code itself that's broken though. The only recent change touching that part of the driver is #2386.
@marschall Can you check it out? If not I'll circle back to this later today or tomorrow.
You can reproduce it locally via:
The text was updated successfully, but these errors were encountered: