QueryEntity design

2018-03-07 Thread Nikolay Izhikov
Hello, Igniters. I'm working on IGNITE-7691 [1] The goal of ticket is provide scale and precision info about DECIMAL columns. I see that QueryEntity has a separate collection for each type of meta information: * not null fields - [2] * default values - [3] Why we have such class design? It see

Re: QueryEntity design

2018-03-07 Thread Vladimir Ozerov
Hi Nikolay, The answer is simple - legacy. QueryEntity was introduced long before we had rich SQL support. At this point we should consider both QueryEntity and our SQL API obsolete. There is a ticket to design new SQL API [1] and new "QueryEntity" should be it's integral part. If you have any ide

Re: QueryEntity design

2018-03-07 Thread Nikolay Izhikov
Vladimir. Thank you, it's clear now. I also wonder, why we provide access to internal HashMaps through getters? Should we wrap internal maps into `Collections.unmodifiableMap`? ``` public Map getDefaultFieldValues() { return defaultFieldValues; } ``` В Ср, 07/03/2018 в 14:36 +0

Re: QueryEntity design

2018-03-07 Thread Vladimir Ozerov
I do not think it is a big problem. We copy these values when starting node anyway, so subsequent changes doesn't affect node's behavior. On the other hand, this might be convenient to users in some cases. On Wed, Mar 7, 2018 at 3:13 PM, Nikolay Izhikov wrote: > Vladimir. > > Thank you, it's cle