Comments (4)
IMO this should be handled by server and that it already is. The driver should send the sql string and params as is to the server.
from hazelcast-jdbc.
@viliam-durina according to the JavaDoc of setter
methods it should validate the parameters. For example for the query SELECT * FROM foo WHERE bar=?
calling statement.setInt(2, 3)
should throw an exception. However, the JDBC is calling the server on execute
after setting the parameter. We decided not to implement it for now, as won't bring much value but will require a lot of effort. But we may need to implement it in the future
from hazelcast-jdbc.
I tested postgresql:
PreparedStatement st = conn.prepareStatement("select * from t");
st.setInt(1, 1); // throws
st = conn.prepareStatement("select * from ?");
st.setInt(1, 1); // does not throw
st = conn.prepareStatement("select * from m /* where a=? */");
st.setInt(1, 1); // throws
// this fails at parsing
st = conn.prepareStatement("select * from m /* where a=?");
This is their parser: org.postgresql.core.Parser.parseSql()
, it's quite large, but it's still best-effort, see the 2nd query. IMO it's fine to always throw in execute
.
from hazelcast-jdbc.
The second one should also throw an exception at the execute
. Agree that we don't need to invest in it, at least for now
from hazelcast-jdbc.
Related Issues (20)
- Update deploy-release.yml for newer github-actions version
- Spring @Bean is not used if present
- JDBC configuration for cloud failure
- Broken code missing tests - UnsupportedOperationException HOT 1
- Incorrect return type for ResultSet.getObject()
- SSL does not work with HZ Cloud HOT 1
- Empty login AND password combination is not treated as no-authentication mode
- Cannot access Kubernetes due to smart-client setting not exposed
- Cannot use JDBC with Viridian
- JDBC connection and a Hazelcast client interoperability
- Implement query cancelation
- Minor: unnecessary synchronization in Driver HOT 1
- PreparedStatement.setNull fails, missing tests for all types HOT 1
- Add tests for all type conversions in ResultSet
- Rename `discoverToken` to `discoveryToken`
- Connection.setSchema() affects previously created Statements
- Add a test for JdbcConnection.setSchema()
- Remove schema from the URL HOT 1
- Reconsider the URL format
- Add tests for streaming queries with Jet HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hazelcast-jdbc.