Sub-task CORE-2435 - Recreate DataTypeUtilBase::makeFromList
Documentation for datatype deduction for lists (makeFromList):
The output type is figured out as based on this order:
1) If any datatype is blob, returns blob;
2) If any datatype is a) varying or b) any text and another datatype, returns varying;
3) If any datatype is text or cstring, returns text;
4) If any datatype is approximate numeric then each datatype in the list shall be numeric (
otherwise an error is thrown), returns approximate numeric;
5) If any datatype is a date/time/timestamp then each datatype in the list shall be the same
date/time/timestamp (otherwise an error is thrown), returns a date/time/timestamp.
If a blob is returned, and there is a binary blob in the list, a binary blob is returned.
If a blob/text is returned, the returned charset is figured out as based on this order:
1) If there is a OCTETS blob/string, returns OCTETS;
2) If there is a non-(NONE/ASCII) blob/string, returns it charset;
3) If there is a ASCII blob/string, a numeric or a date/time/timestamp, returns ASCII;
4) Otherwise, returns NONE.
2. Added new types of clumplets to ClumpletReader and ClupmletWriter.
3. Applied modified ClumpletReader and ClupmletWriter to /remote and partially /jrd.
4. Added active protection from remote brute-force attack to services API.
The issues are:
1) '1.5' / '0.5' doesn't work in Dialect 1
2) avg ('1.5') doesn't work in Dialect 1
3) 5 * '1.5' produces INT result instead of DOUBLE PRECISION in Dialect 1
4) sum ('1.5') produces NUMERIC(15, 2) result instead of DOUBLE PRECISION in Dialect 1
5) - '1.5' doesn't work in Dialect 1
6) '1.5' * '0.5' and '1.5' / '0.5' are not forbidden in Dialect 3