Re: IGNITE-3999: Design discussion

2016-11-07 Thread Denis Magda
I do support Sergi’s proposal. We already set aliases (setAliases(…)) and 
indexes (setIndexes(…)) in a similar way.

—
Denis

> On Nov 7, 2016, at 12:33 AM, Sergi Vladykin  wrote:
> 
> I don't think per field configuration makes a big sense. I would just add
> another property to QueryEntity like setCaseInsensitiveFields(Set
> fields).
> 
> Sergi
> 
> 
> 
> 2016-11-07 9:09 GMT+03:00 Vladimir Ozerov :
> 
>> Hi Amir,
>> 
>> Having POJO class QueryField looks like a good idea to me. Because we will
>> be able to encapsulate more field information into it over time. E.g. we
>> can add "keyField" flag for DML there.
>> 
>> I would even think about removing map from method signature in favor of
>> simple list/array:
>> 
>> void setFields(QueryField...);
>> 
>> Vladimir.
>> 
>> 07 нояб. 2016 г. 7:32 пользователь "Amir Akhmedov" <
>> amir.akhme...@gmail.com>
>> написал:
>> 
>> Hi Igniters,
>> 
>> I was looking into ticket IGNITE-3999 and I have a concern on this, can you
>> please advise what will be the correct way to solve it. As of today, SQL
>> fields are defined as setFields(LinkedHashMap fields),
>> with
>> introduction of case insensitive property need to create a new POJO
>> e.g. QueryField(String
>> type, boolean caseInsensitive). So, to keep backward compatibility we can
>> introduce a new method e.g. setQueryFields(LinkedHashMap> QueryField> fields), in my opinion it looks like counter-intuitive with
>> existing setFields method. Another possible way, this change can be done
>> with changing the generic type of setFields (which will not be backward
>> compatible) and released in Ignite 2.0.
>> Please advise on this, or maybe you have an alternative solutions?
>> 
>> --
>> Sincerely Yours Amir Akhmedov
>> 



Re: IGNITE-3999: Design discussion

2016-11-07 Thread Sergi Vladykin
I don't think per field configuration makes a big sense. I would just add
another property to QueryEntity like setCaseInsensitiveFields(Set
fields).

Sergi



2016-11-07 9:09 GMT+03:00 Vladimir Ozerov :

> Hi Amir,
>
> Having POJO class QueryField looks like a good idea to me. Because we will
> be able to encapsulate more field information into it over time. E.g. we
> can add "keyField" flag for DML there.
>
> I would even think about removing map from method signature in favor of
> simple list/array:
>
> void setFields(QueryField...);
>
> Vladimir.
>
> 07 нояб. 2016 г. 7:32 пользователь "Amir Akhmedov" <
> amir.akhme...@gmail.com>
> написал:
>
> Hi Igniters,
>
> I was looking into ticket IGNITE-3999 and I have a concern on this, can you
> please advise what will be the correct way to solve it. As of today, SQL
> fields are defined as setFields(LinkedHashMap fields),
> with
> introduction of case insensitive property need to create a new POJO
> e.g. QueryField(String
> type, boolean caseInsensitive). So, to keep backward compatibility we can
> introduce a new method e.g. setQueryFields(LinkedHashMap QueryField> fields), in my opinion it looks like counter-intuitive with
> existing setFields method. Another possible way, this change can be done
> with changing the generic type of setFields (which will not be backward
> compatible) and released in Ignite 2.0.
> Please advise on this, or maybe you have an alternative solutions?
>
> --
> Sincerely Yours Amir Akhmedov
>


Re: IGNITE-3999: Design discussion

2016-11-06 Thread Vladimir Ozerov
Hi Amir,

Having POJO class QueryField looks like a good idea to me. Because we will
be able to encapsulate more field information into it over time. E.g. we
can add "keyField" flag for DML there.

I would even think about removing map from method signature in favor of
simple list/array:

void setFields(QueryField...);

Vladimir.

07 нояб. 2016 г. 7:32 пользователь "Amir Akhmedov" 
написал:

Hi Igniters,

I was looking into ticket IGNITE-3999 and I have a concern on this, can you
please advise what will be the correct way to solve it. As of today, SQL
fields are defined as setFields(LinkedHashMap fields), with
introduction of case insensitive property need to create a new POJO
e.g. QueryField(String
type, boolean caseInsensitive). So, to keep backward compatibility we can
introduce a new method e.g. setQueryFields(LinkedHashMap fields), in my opinion it looks like counter-intuitive with
existing setFields method. Another possible way, this change can be done
with changing the generic type of setFields (which will not be backward
compatible) and released in Ignite 2.0.
Please advise on this, or maybe you have an alternative solutions?

--
Sincerely Yours Amir Akhmedov


IGNITE-3999: Design discussion

2016-11-06 Thread Amir Akhmedov
Hi Igniters,

I was looking into ticket IGNITE-3999 and I have a concern on this, can you
please advise what will be the correct way to solve it. As of today, SQL
fields are defined as setFields(LinkedHashMap fields), with
introduction of case insensitive property need to create a new POJO
e.g. QueryField(String
type, boolean caseInsensitive). So, to keep backward compatibility we can
introduce a new method e.g. setQueryFields(LinkedHashMap fields), in my opinion it looks like counter-intuitive with
existing setFields method. Another possible way, this change can be done
with changing the generic type of setFields (which will not be backward
compatible) and released in Ignite 2.0.
Please advise on this, or maybe you have an alternative solutions?

-- 
Sincerely Yours Amir Akhmedov