* More precise overflow check in readIntTextImpl
* writeDateTimeText now always writes sub-second part for DateTime64
* comment for validateFunctionArgumentTypes
* DateTime64-related fixes for FunctionConvertFromString
* other minoe fixes: comments, removed commented out code, variable
renamings, etc.
* put functions in DecimalFunctions into DecimalUtils namespace
* fixed possible buffer overflow in parseDateTimeBestEffortImpl
* fixed readDateTimeTextImpl not to require fractional part separator
(if fractional part is missing)
* Tests for code from DecimalFunctions.h
* Fixed serializing DateTime64 to string with writeDateTimeText(), fixed tests
Due to the async nature of SYSTEM RELOAD DICTIONARY/DICTIONARIES the
test can fail, if the reload will happen after the dictGet*():
.862801 [ 36 ] {61df55ee-4a17-4bf3-8cfb-9478490393c3} <Debug> executeQuery: (from [::1]:37422) SYSTEM RELOAD DICTIONARY `foo 1234.dict`
.863681 [ 36 ] {cd55d9f9-d176-4b19-bc97-d25575da2d15} <Debug> executeQuery: (from [::1]:37422) SELECT query_count FROM system.dictionaries WHERE (database = 'foo 1234') AND ...
.863678 [ 54 ] {} <Debug> executeQuery: (internal) SELECT `key`, `val` FROM `foo 1234`.`dict_data`;
This is just a hotfix, long-term solution will be to make SYSTEM RELOAD
DICTIONARY syncronous (by adding another command or making already
existing).
Refs: #7916
* Research commit
* Created Output EachRow Format
* Fixed bugs
* Created output format JSONCompactEachRowWithNamesAndTypes without totals
* Fixed bugs
* Fixed bugs
* Totals for JSONCompactEachRowWithNamesAndTypes
* Deleted needless debug
* Working commit
* Working commit
* Working commit
* Working commit
* Working commit
* Working commit
* Working commit
* Working commit
* Working commit
* Working commit
* Working commit
* Working commit
* Tests added
* Input Format for JSONCompactEachRow
* Fixed bugs for JSONCompactEachRow Input format
* Fixed bugs for JSONCompactEachRowRowInputFormat.cpp
* JSONCompactEachRow and JSONCompactEachRowWithNamesAndTypes united
* Created input format for both formats
* fixed bugs
* fixed bugs
* Working commit
* Working commit
* Working commit
* Working commit
* tests
* Working commit
* Final tests
* Performance tests added
This extras includes:
- server revision
- query settings
- query
Otherwise the code can try to interpret data, and got for instance
std::length_error exception, which is not catched (to mark the part as
broken). Also this will protect from the corruptions on disk.
And add a simple test, since dbms/tests/integration/test_insert_into_distributed too complex.
Also simplify the code by using readStringBinary() over
readVarUInt()+b.readStrict() (this also gains additional checks that
string is not bigger then 1GB).
Refs: #4852 (8ef7f3589a)
v2: avoid ABI breakage (suggested by @vitlibar)
v3: minor code fixes (suggested by @vitlibar) and as a consequence clang-8 build fix
v4: drop DBMS_MIN_REVISION_WITH_EXTRAS_CHECKSUM_IN_DIST_BATCH and also
revert some renames to make the patch cleaner