Commit Graph

4317 Commits

Author SHA1 Message Date
chertus
8c9ca6891f fix 'There's no column' error for materialized and alias columns 2019-12-13 21:46:55 +03:00
alexey-milovidov
8727f30ef8
Merge pull request #7790 from bgranvea/simple-aggregate-function-fix
Fix "Sizes of columns doesn't match" error with SimpleAggregateFunction
2019-12-13 20:56:03 +03:00
Nikita Mikhaylov
9936fd2bc4 fix added 2019-12-13 19:44:33 +03:00
hcz
6171e8b70c Rename roundBankers 2019-12-13 22:50:14 +08:00
Boris Granveaud
3502e3858a provide test case 2019-12-13 14:10:49 +01:00
Nikolai Kochetov
bd2517343d Fi rand and randConstant for nullable types. 2019-12-13 16:10:02 +03:00
philip.han
fe7ae014d8 Fixed bloom_filter bug that counting error for Array(Nullable(String)). 2019-12-13 18:38:03 +09:00
Konstantin Malanchev
4eae32d438 Add h3IsValid function 2019-12-13 11:39:50 +03:00
Konstantin Malanchev
947fb39d5e Add h3getResolution function 2019-12-13 11:39:50 +03:00
root
63aaf64e93 Merge branch 'master' of https://github.com/ClickHouse/ClickHouse into lulu-master1 2019-12-13 16:12:43 +08:00
zhangxiao018
8a2b8647e4 add test. 2019-12-13 11:59:51 +08:00
alexey-milovidov
399995d60b
Merge pull request #7812 from infinivision/fix_part_mutation
fix part mutation
2019-12-13 03:45:59 +03:00
alexey-milovidov
ad76a1bafb
Merge pull request #8185 from vitlibar/fix-drop-dictionary-if-exists
Fix DROP DICTIONARY IF EXISTS
2019-12-13 02:47:06 +03:00
alexey-milovidov
989671cffe
Update 01046_materialized_view_with_join_over_distributed.sql 2019-12-13 00:01:33 +03:00
Mikhail Filimonov
32cd2912b7 Test for https://github.com/ClickHouse/ClickHouse/issues/5142 2019-12-12 21:49:45 +01:00
alexey-milovidov
0dc62d20e1
Merge pull request #8149 from zhang2014/feature/array_zip
Add arrayZip function
2019-12-12 22:00:39 +03:00
Vitaly Baranov
f81d9b4e73 Fix DROP DICTIONARY IF EXISTS db.dict - now it doesn't throw exceptions
even if db doesn't exist.
2019-12-12 21:37:44 +03:00
alexey-milovidov
51ed10ed78
Merge pull request #8011 from Jokser/aws-s3-sdk-integration
AWS SDK S3 integration
2019-12-12 20:43:16 +03:00
hcz
c0028c3942 Add aggregate function categoricalInformationValue (#8117)
* Add categorical iv aggregate function with tests
2019-12-12 16:28:28 +03:00
CurtizJ
d17f785260 fix tests 2019-12-12 00:51:06 +03:00
CurtizJ
d6058322e5 add test for special engines with order by 2019-12-11 23:07:41 +03:00
zhang2014
194ab5526d add arrayZip function 2019-12-12 00:22:14 +08:00
Vasily Nemkov
f8fec0402b Merge commit 'e7540dcf686936a490f89d0735f74c2f5f009821' into DateTime64 2019-12-11 17:38:32 +03:00
alesapin
4385aab4a1 Merge branch 'master' into restrictions_for_external_dictionaries_from_ddl 2019-12-11 12:29:55 +03:00
Vasily Nemkov
c781908e6d Post-PR fixes
* 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.
2019-12-11 12:20:05 +03:00
Vasily Nemkov
f56b2b64f2 Post-review refactoring and tests for DateTime64 and Decimal.
* 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
2019-12-11 06:58:49 +03:00
hcz
2f276c2bb7 Rename bankerRound as bankersRound 2019-12-11 10:43:47 +08:00
Zhichang Yu
ff1b8d46e2 fixed part mutation, added test_backup_restore integration test case 2019-12-11 09:31:37 +08:00
alexey-milovidov
e73e19dc97
Merge pull request #8111 from azat/dictionary-reload-test-hotfix
Fix async nature of reload in 01036_no_superfluous_dict_reload_on_create_database*
2019-12-11 04:20:17 +03:00
alesapin
ea8994b9e4 Add restrections for several sources of external dictionaries 2019-12-10 20:27:29 +03:00
Pavel Kovalenko
c4b3cce847 AWS SDK integration - move s3 storage syntax tests to integration. 2019-12-10 19:11:13 +03:00
alesapin
3cc3bd2fea Merge branch 'master' of github.com:ClickHouse/ClickHouse 2019-12-10 12:54:42 +03:00
hcz
8ed416ed41 Add bankerRound 2019-12-10 14:13:05 +08:00
Azat Khuzhin
65572a23fe Fix async nature of reload in 01036_no_superfluous_dict_reload_on_create_database*
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
2019-12-10 08:31:51 +03:00
Alexey Milovidov
285139585c Updated test 2019-12-09 23:08:19 +03:00
alesapin
ab485430e3 Merge branch 'master' of github.com:ClickHouse/ClickHouse 2019-12-09 22:37:33 +03:00
Alexey Milovidov
67fd108848 Added a test for "greatCircleAngle" 2019-12-09 22:34:00 +03:00
alesapin
642ce2d751 Fix escaping and add string expressions support 2019-12-09 17:05:58 +03:00
Alexey Milovidov
2afdb4f6a8 Added a test 2019-12-09 03:20:34 +03:00
alexey-milovidov
a7f5ac7099
Merge pull request #8081 from errx/master
Added new function JSONExtractArrayRaw
2019-12-08 23:52:56 +03:00
Oleg Matrokhin
36303a82f7 add tests 2019-12-08 17:24:37 +03:00
alesapin
af7b8f9274
Merge pull request #8051 from ClickHouse/fix_collations_behaviour
Fix several bugs with collations.
2019-12-08 11:10:23 +03:00
alesapin
5b828a6cbf Better test 2019-12-07 01:25:14 +03:00
alesapin
3881a85c39 Review fixes 2019-12-07 01:22:12 +03:00
Mikhail Korotov
f63fe65e53 Simple tests added 2019-12-06 20:23:41 +03:00
Mikhail Korotov
cb05dee547 Merge branch 'master' into hashes_from_values_of_UUID_type 2019-12-06 18:24:41 +03:00
Nikita Mikhaylov
34d20a0ef4
updating test after resolving conflicts 2019-12-06 13:17:51 +03:00
Nikita Mikhaylov
6fc5248a27
Merge branch 'master' into limit_with_ties 2019-12-06 13:16:54 +03:00
alesapin
de6cd490ef
Merge pull request #8037 from vitlibar/system-reload-dictionary-causes-complete-reloading
SYSTEM RELOAD DICTIONARY reloads a dictionary completely
2019-12-06 12:55:41 +03:00
Vitaly Baranov
2133492598
Merge pull request #7257 from vitlibar/RBAC-2
RBAC-2
2019-12-06 03:19:39 +03:00
Nikita Mikhaylov
88027947a1
update test after resolving conflicts 2019-12-05 21:59:30 +03:00
Nikita Mikhaylov
4946409a78
Merge branch 'master' into limit_with_ties 2019-12-05 21:58:47 +03:00
Nikita Mikhaylov
de2d996063
Merge pull request #7786 from nikitamikhaylov/incorrect_count
Incorrect count() with condition query result for SummingMergeTree.
2019-12-05 21:56:54 +03:00
Nikita Mikhaylov
5e60e0661f
delete useless reference 2019-12-05 21:54:18 +03:00
Nikita Mikhaylov
826a675974
delete useless reference 2019-12-05 21:53:44 +03:00
Nikita Mikhaylov
7783475aaa
delete useless test 2019-12-05 21:53:26 +03:00
alesapin
6afafef86c
Merge pull request #8047 from ClickHouse/fix_check_query_again
Fix bug in checkDataPart
2019-12-05 21:31:36 +03:00
Vitaly Baranov
6306e2ab91 Add DCL to manage quotas. 2019-12-05 21:03:57 +03:00
Vitaly Baranov
4d784d6f44 Add test. 2019-12-05 20:07:33 +03:00
alesapin
772bb0b70b Fix collation locales 2019-12-05 18:35:09 +03:00
alesapin
227d0ba9d6 Add one more test 2019-12-05 15:39:02 +03:00
alesapin
cd43debd79 Test with non adaptive parts 2019-12-05 15:18:18 +03:00
alesapin
ee46a73d25 Fix bug in checkDataPart when last granule has same number of rows as in .mrk file 2019-12-05 15:01:36 +03:00
Nikolai Kochetov
26e415736a
Merge pull request #7665 from 4ertus2/joins
New ANY, SEMI, ANTI JOIN (HashJoin only)
2019-12-05 14:38:20 +03:00
Mikhail Korotov
88e37020e0 JSONCompactEachRow and JSONCompactEachRowWithNamesAndTypes (#7841)
* 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
2019-12-05 13:13:40 +03:00
Nikita Mikhaylov
a3f3a333e2 better test 2019-12-05 12:55:06 +03:00
Nikita Mikhaylov
9d005d1565 true changes 2019-12-05 12:50:42 +03:00
Vitaly Baranov
2cc78413ed
Merge pull request #7914 from azat/dist-send-extra-checksum
Add checksum for extra info/query in distributed sends
2019-12-05 11:43:08 +03:00
alesapin
a524e82a7f
Merge pull request #8029 from ClickHouse/fix_dict_partially_update_failover
Fix external dictionaries failover, when they have invalidate_query.
2019-12-05 11:12:17 +03:00
chertus
d3d2e39955 fix SEMI RIGHT JOIN 2019-12-04 23:23:07 +03:00
Azat Khuzhin
3a72e1c12a Add checksum for extra info/query in distributed sends
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
2019-12-04 22:54:38 +03:00
alesapin
172bbb1a2f Fix flappy test, because dictionaries are loaded lazily 2019-12-04 21:30:47 +03:00
alesapin
3128b62f0e Create dictionary if not exists 2019-12-04 18:11:36 +03:00
alesapin
a41764cccc Reload dictionary with invalidate query if it has exception 2019-12-04 17:45:56 +03:00
alesapin
ce05cea192 Add sleep for test 2019-12-04 17:22:49 +03:00
alesapin
711fb5e667 Added tests for external dictionary invalidate query failover 2019-12-04 16:53:05 +03:00
alesapin
ace44e0717 Add test for incorrect settings 2019-12-04 12:34:05 +03:00
alexey-milovidov
f09c29a2b6
Merge pull request #7992 from ClickHouse/excitoon-favorites-s3auth
Merging #7623
2019-12-03 15:21:12 +03:00
alexey-milovidov
0c904f1484
Merge pull request #7721 from 4ertus2/decimal
Basic GatherUtils support for Decimals
2019-12-03 05:15:38 +03:00
alexey-milovidov
0734d4695b
Merge pull request #7724 from 4ertus2/some
Missing array functions for Decimals
2019-12-03 05:14:33 +03:00
alexey-milovidov
812df3aef3
Merge pull request #7755 from nikitamikhaylov/storage_set
Using the Set engine happen Exception: Method read is not supported by storage Set
2019-12-03 05:09:47 +03:00
alexey-milovidov
f1d75d9722
Update 01030_storage_set_supports_read.sql 2019-12-03 05:09:33 +03:00
Alexey Milovidov
0da80b3c7b Merge branch 'master' of github.com:yandex/ClickHouse into enable-experimental-indices-and-make-settings-obsolete 2019-12-03 04:35:42 +03:00
alexey-milovidov
f5e88f8cd5
Merge pull request #7307 from ClickHouse/new-branch-for-new-geodist
Speed up greatCircleDistance function with test
2019-12-03 04:34:35 +03:00
Alexey Milovidov
eef44d3fc5 Merge branch 'master' into enable-experimental-indices-and-make-settings-obsolete 2019-12-03 04:31:08 +03:00
alexey-milovidov
edede563c9
Merge pull request #7747 from hczhcz/patch-1113
Fix empty array handling in arraySplit
2019-12-03 04:00:31 +03:00
Alexey Milovidov
d70b73f033 Merge branch 's3auth' of https://github.com/excitoon-favorites/ClickHouse into excitoon-favorites-s3auth 2019-12-03 03:06:01 +03:00
Alexey Milovidov
9d099bde8e Merge branch 'master' into fix_check_table_with_empty_pk 2019-12-03 02:36:21 +03:00
alexey-milovidov
3355492f02
Merge pull request #7983 from ClickHouse/fix_dictionary_lifetime
Fix bug with minimal dictionary lifetime equals zero
2019-12-03 02:32:38 +03:00
Alexey Milovidov
166e9e414c Fixed bad test 2019-12-03 02:26:15 +03:00
Alexey Milovidov
07d7fd413f Fixed bad test 2019-12-03 02:25:08 +03:00
Alexey Milovidov
272715cb71 Merge branch 'lc_empty_part_bug' of https://github.com/filimonov/ClickHouse into filimonov-lc_empty_part_bug 2019-12-03 01:58:41 +03:00
alexey-milovidov
bd72b570a3
Update 01035_lc_empty_part_bug.sql 2019-12-03 01:56:37 +03:00
Alexey Milovidov
034ef665f1 Merge branch 'master' of github.com:yandex/ClickHouse into enable-experimental-indices-and-make-settings-obsolete 2019-12-03 00:36:31 +03:00
chertus
a179c5025f Merge branch 'master' into joins 2019-12-02 21:08:39 +03:00
chertus
5ce65546e9 semi & anti join 2019-12-02 21:08:04 +03:00
Mikhail Filimonov
5228f5f2eb Test case for altering to LowCardinality when data part is empty 2019-12-02 16:11:28 +01:00
alesapin
7410d17892 Fix bug with minimal dictionary lifetime equals zero 2019-12-02 16:05:43 +03:00
Vitaly Baranov
b2685a3710
Merge pull request #7727 from kekekekule/master
Added lifetime to system.dictionaries #6820
2019-12-02 15:15:44 +03:00
alesapin
a4ca30b5fd Fix bug in check table for tables without primary key 2019-12-02 13:30:04 +03:00
alesapin
af85eb8f80
Merge pull request #7916 from azat/dict-avoid-RELOAD-on-CREATE-DATABASE
Do not reload *all* dictionaries on CREATE DATABASE
2019-12-02 11:50:44 +03:00
Vladimir Chebotarev
03ec61fff3 Fixed 01030_storage_s3_syntax stateless test. 2019-12-01 15:35:04 +03:00
Артем Стрельцов
95124e910a Fixed test for lifetime 2019-12-01 03:40:59 +03:00
Alexey Milovidov
8916b8f2e6 Make data skipping indices non-experimental. Make settings about data skipping indices, multiple JOINs and CROSS to INNER JOIN conversion obsolete, 2019-11-30 23:41:02 +03:00
Vasily Nemkov
70512f8289 Merge remote-tracking branch 'upstream/master' into DateTime64 2019-11-30 21:49:15 +03:00
Nikolay Degterinsky
b0eabb690b Test added 2019-11-29 21:46:26 +03:00
Vladimir Chebotarev
ecaa98e4e4 Allowed to use constant TTL expressions, updated tests. 2019-11-27 13:11:17 +03:00
Vladimir Chebotarev
fa79b7cf7d Updated test checking that constant TTL expression works. 2019-11-27 13:11:17 +03:00
Nikolai Kochetov
4f79476511
Merge pull request #7929 from ClickHouse/fix-union-with-diff-columns
Fix union with diff columns
2019-11-26 19:40:45 +03:00
Nikita Mikhaylov
a4189b85e2 done 2019-11-26 17:57:33 +03:00
Olga Khvostikova
4d6214d33e
Merge pull request #7908 from CurtizJ/enum_conversion
Fix enum conversion in native format for backward compatibility.
2019-11-26 17:53:47 +03:00
Nikolai Kochetov
c161a486f1 Added test. 2019-11-26 15:07:07 +03:00
Olga Khvostikova
0f517648b1
Merge pull request #7722 from ClickHouse/java-hash-non-bmp
Added a test of javaHashUTF16LE for non BMP code points
2019-11-26 13:30:18 +03:00
Olga Khvostikova
47e499d71b
Merge pull request #7833 from excitoon-favorites/detachedparts
Added disk info to `system.detached_parts`
2019-11-26 11:56:50 +03:00
Azat Khuzhin
4530adee76 Do not reload *all* dictionaries on CREATE DATABASE
This ignores any lifetime, while dictionaries can be quite big.

Fixes: c7cd911305 ("Merge pull request #7360")
Refs: https://github.com/ClickHouse/ClickHouse/pull/7360#discussion_r345207682
2019-11-26 10:33:25 +03:00
alexey-milovidov
18a70ba70e
Merge pull request #7911 from ClickHouse/prewhere_alias
Fix reading empty set with prewhere dependent on alias column.
2019-11-26 09:38:47 +03:00
alexey-milovidov
fed4d56df8
Merge pull request #7913 from ClickHouse/prewhere_max_parallel_replicas
Fix prewhere with max_parallel_replicas.
2019-11-26 09:29:49 +03:00
alexey-milovidov
23f848993d
Update 01034_prewhere_max_parallel_replicas.sql 2019-11-26 09:27:25 +03:00
Nikolai Kochetov
867fded9fd Fix prewhere with max_parallel_replicas. 2019-11-25 21:29:02 +03:00
Nikolai Kochetov
f90a8cebfd Add test with remote, final and max_parallel_replicas. 2019-11-25 18:44:15 +03:00
Nikolai Kochetov
1a0f17cb2c Fix reading empty set with prewhere dependent on alias column. 2019-11-25 17:33:54 +03:00
CurtizJ
c223281d5d fix enum coversion in native format for backward compatibility 2019-11-25 17:06:44 +03:00
Nikolai Kochetov
6587a87267 Added test with sample and final. 2019-11-25 16:09:44 +03:00
Andrei Bodrov
b676a292d4 avgWeighted 2019-11-23 10:48:22 +03:00
Nikita Mikhaylov
728ede25f9
Merge pull request #7840 from apbodrov/read_write_gzip
Gzip read/write to file/s3/url/hdfs
2019-11-22 11:48:58 +03:00
Nikita Mikhaylov
762d295ab0
Merge pull request #7780 from ClickHouse/aku/parallel-parsing
Merging parallel format parsing
2019-11-22 01:54:47 +03:00
Vasily Nemkov
824b1016b8 Updated 00927_asof_join_other_types.reference 2019-11-21 07:47:15 +03:00
Alexander Tokmakov
61783e1e17 fix bytes count in PeekableReadBuffer 2019-11-21 01:04:57 +03:00
Vasily Nemkov
23e9a582f2 Fixed using DecimalX and DateTime64 with ASOF JOIN
With tests
2019-11-20 12:00:10 +03:00
Nikita Mikhaylov
e0e551c61d Merge branch 'master' of github.com:ClickHouse/ClickHouse into storage_set 2019-11-19 19:12:33 +03:00
Nikita Mikhaylov
02b0101fc8 Merge branch 'master' of github.com:ClickHouse/ClickHouse into limit_with_ties 2019-11-19 18:00:16 +03:00
Nikita Mikhaylov
b9ad1fc79a better 2019-11-19 17:29:52 +03:00
Nikita Mikhaylov
37b8497747 add more tests 2019-11-19 17:28:57 +03:00
Alexander Kuzmenkov
7e5731d64e Merge remote-tracking branch 'origin/master' into HEAD 2019-11-19 16:15:47 +03:00
Andrei Bodrov
8cbc52e711 add gzip read/write to file/s3/url/hdfs 2019-11-19 15:46:07 +03:00
Mikhail Korotov
e66cd371c8 Merge branch 'hashes_from_values_of_UUID_type' of https://github.com/millb/ClickHouse into hashes_from_values_of_UUID_type 2019-11-19 14:42:20 +03:00
Mikhail Korotov
79714e7678 Merge branch 'master' into hashes_from_values_of_UUID_type 2019-11-19 14:40:59 +03:00
Vladimir Chebotarev
67d2703d30 Fixed tests to support disk name in system.detached_parts. 2019-11-19 14:29:52 +03:00
alexey-milovidov
3735a7e210
Merge pull request #7758 from 4ertus2/ast
Check if table has qualified column
2019-11-18 01:37:48 +03:00
alexey-milovidov
4dd66385b5
Merge pull request #7789 from zhang2014/fix/ISSUES-7784
ISSUES-7784 disabled predicate optimize for WITH FILL expression
2019-11-17 23:36:42 +03:00
Nikolai Kochetov
5cc14e6d66
Merge pull request #7777 from ClickHouse/fix-array-intersect-overflow
Fix array intersect overflow
2019-11-16 18:43:16 +03:00
zhang2014
15b20e0b96 ISSUES-7784 disabled predicate optimize for WITH FILL expression 2019-11-15 22:10:36 +08:00
Nikita Mikhaylov
797820a993
empty commit 2019-11-15 15:44:09 +03:00
Nikita Mikhaylov
b380f8d53c bug test added 2019-11-15 14:30:19 +03:00
Alexander Kuzmenkov
7f34c0089c Merge remote-tracking branch 'origin/master' into HEAD 2019-11-14 18:53:36 +03:00
Nikolai Kochetov
fa6ec1a39d Update tests. 2019-11-14 16:40:07 +03:00
chertus
8286bbf913 Merge branch 'master' into joins 2019-11-14 16:16:52 +03:00
Mikhail Korotov
df3310e670
Update 01032_cityHash64_for_decimal.sql 2019-11-13 18:18:01 +03:00
Mikhail Korotov
96c0392b3f
Update 01032_cityHash64_for_UUID.sql 2019-11-13 18:17:42 +03:00
Mikhail Korotov
2e0af1a8a6 Added tests 2019-11-13 18:16:26 +03:00