> «Why SQL sets both fields? I just want to set the key object field!»

The solution from IGNITE-12807 has backward compatible API: you have to
explicitly specify fields having same name inside the Key and Value.
Otherwise the semantics is as is.

Denis's solution (that I like) is a new API not changing the K/V API at all.

> We want to make Ignite(or any database) too smart.

I agree that introducing a new feature or even a new small configuration
setting often makes a product more complex: more expensive to learn and
maintain. One should think hard whether benefits of some new function
overweight added complexity to the product.

To me in this case complexity and costs of the new configuration setting
(KeyValue field list in QueryEntity and CREATE TABLE params) justifies the
value for the users. 

In my experience "just rename the fields" is a huge inconvenience for real
applications:

 - Many are the existing (legacy) apps adding Ignite as one of the pieces.
Many are large enterprise apps with many thousands lines of code deployed in
mission critical PROD environments. Such apps already have a domain model
used by other enterprise components. "Renaming a field" in the domain model
entities is just not a practical solution for them. They will choose
developing a data access layer to map domain model to K/Vs.

 - As for having the user to always develop a data access layer - I already
mentioned popular problems should be solved in re-usable parts, which is
Ignite in this case. Besides, additional layers have performance and memory
impact and the suggested solution has none. 






--
Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/

Reply via email to