Vladimir, I think we have to disallow conditional writes here, because DML should write all the fields, no?
Sergi 2017-04-12 11:07 GMT+03:00 Vladimir Ozerov <voze...@gridgain.com>: > Consider the following code: > > void writeBinary(BinaryWriter w) { > w.writeBoolean("C", c); > > if (c) > w.writeInt("A", a) > else > w.writeInt("B", b) > } > > How are we going to force user to follow the contract in this case? > > On Wed, Apr 12, 2017 at 9:16 AM, Dmitriy Setrakyan <dsetrak...@apache.org> > wrote: > > > I think it is OK for users to do their own sorting, but we should > > definitely validate the correct order and throw an exception if it is > not. > > > > D. > > > > On Tue, Apr 11, 2017 at 11:02 PM, Pavel Tupitsyn <ptupit...@apache.org> > > wrote: > > > > > QueryEntity order is not only harder for the users, it will be > nightmare > > to > > > implement. > > > What if there is no QueryEntity defined? What if the same class is used > > in > > > multiple QueryEntity? > > > I don't think serialization code has to be tied to QueryEntity in any > > way, > > > this violates separation of concerns. > > > > > > So I guess we can agree on sorting fields alphabetically. > > > > > > Let's get to the initial question: > > > * Should we do the sorting for the user (performance hit)? > > > * Should we at least validate user-defined order? > > > > > > On Wed, Apr 12, 2017 at 2:12 AM, Dmitriy Setrakyan < > > dsetrak...@apache.org> > > > wrote: > > > > > > > On Tue, Apr 11, 2017 at 1:28 PM, Sergi Vladykin < > > > sergi.vlady...@gmail.com> > > > > wrote: > > > > > > > > > I'm just trying to understand the current state of things and > risks. > > > May > > > > be > > > > > we need to do some adjustments here before 2.0 to be on the safe > > side. > > > > > > > > > > Actually looks like this not really important, we just have to > > clearly > > > > > document that DML builds keys this way and require from user to do > > the > > > > same > > > > > to be able to use cache API. > > > > > > > > > > > > > > > > > I think it is important from the usability stand point. A user can > > always > > > > sort fields alphabetically in his or her mind. However, trying to > > > remember > > > > the field order from some QueryEntity is a lot harder. > > > > > > > > > >