Commit Graph

4761 Commits

Author SHA1 Message Date
alexey-milovidov
ea4aa34697
Little bit more pretty 2020-08-25 20:09:35 +03:00
Javi Santana
4942d85090 adds some info to the exception about zookeeper path 2020-08-25 18:09:22 +02:00
alesapin
9ca8c5e77a Rename DefaultCompression to simple Default 2020-08-25 18:53:06 +03:00
alesapin
7bf0b74293 Fix style 2020-08-25 18:22:21 +03:00
Alexander Tokmakov
59d879b1fe fix "no space left" extra info for Poco::Exception 2020-08-25 18:06:24 +03:00
alesapin
1180bad3a7 Add ability to specify DefaultCompression codec which correspond to settings specified in config.xml 2020-08-25 18:02:32 +03:00
BohuTANG
d01f4d38eb ISSUES-4006 fix fast build warning and remove binlog file name 2020-08-25 17:44:23 +08:00
BohuTANG
d8e88499a5 ISSUES-4006 remove old BinlogDump style 2020-08-25 16:01:51 +08:00
BohuTANG
80af056cb4 ISSUES-4006 change the error code from UNKNOWN_EXCEPTION to LOGICAL_ERROR 2020-08-25 15:49:47 +08:00
BohuTANG
0876ab63ec ISSUES-4006 change to UUID type 2020-08-25 15:44:38 +08:00
Alexey Milovidov
b0908144b3 Fix clang-tidy 2020-08-25 01:20:43 +03:00
Alexey Milovidov
31240aa243 Minor modifications 2020-08-24 23:35:38 +03:00
bharatnc
70d00abe4f try and fix gcc-9 build.
This tries to fix the failing gcc-9 unbundled build:

https://clickhouse-builds.s3.yandex.net/13880/e437d85b927a47da69b8bdc4dde95917c2261cbe/clickhouse_build_check/build_log_753740668_1598037713.txt
2020-08-24 23:31:21 +03:00
bharatnc
a44a90fe99 remove older script that generated tz data 2020-08-24 23:30:41 +03:00
Alexey Milovidov
b504b9a917 Fix conflict + minor modification. 2020-08-24 23:29:56 +03:00
bharatnc
b85bcc5b8b add time_zones tables
This table adds a new table called the `time_zones` table:

```
:) select * from system.time_zones limit 10;

SELECT *
FROM system.time_zones
LIMIT 10

┌─time_zone──────────┐
│ Africa/Abidjan     │
│ Africa/Accra       │
│ Africa/Addis_Ababa │
│ Africa/Algiers     │
│ Africa/Asmara      │
│ Africa/Asmera      │
│ Africa/Bamako      │
│ Africa/Bangui      │
│ Africa/Banjul      │
│ Africa/Bissau      │
└────────────────────┘

10 rows in set. Elapsed: 0.012 sec.
```

The available timezones are parsed from under
`ClickHouse/contrib/cctz/testdata/zoneinfo` through a script
and the table content is constructed from the
StorageSystemTimeZones.generated.cpp`.

I was able to test this locally and was able to get a list of time
zones as shown above.
2020-08-24 23:26:00 +03:00
alexey-milovidov
7ea5364299
Merge pull request #13648 from filimonov/tzdata_version2
tzdata improvements
2020-08-24 23:07:37 +03:00
Alexey Milovidov
99009a3468 utils/generate-ya-make/generate-ya-make.sh 2020-08-24 23:02:29 +03:00
Alexey Milovidov
846cdd70fc Merge branch 'patch-0819' of https://github.com/hczhcz/ClickHouse into hczhcz-patch-0819-2 2020-08-24 23:01:59 +03:00
Nikita Mikhaylov
e4fc48254a
Merge pull request #13818 from bharatnc/ncb/quantileExactLowHigh
add functions for quantileExactLow & quantileExactHigh
2020-08-24 23:51:30 +04:00
Alexander Kuzmenkov
e3c919ec19
Merge pull request #13847 from hexiaoting/dev_rmcode
Deprecate ODBCDriver format
2020-08-24 22:34:52 +03:00
alexey-milovidov
2e6ff0c5ec
Merge pull request #13925 from 4ertus2/ast
Rewrite duplicate distinct optimization
2020-08-24 22:33:22 +03:00
alexey-milovidov
6a164634d7
Merge pull request #12550 from myrrc/bug/low-cardinality-arrays-optimisations
Optimising has(), indexOf(), and countEqual() for Array(LowCardinality(T)) and constant right arguments
2020-08-24 22:31:29 +03:00
alexey-milovidov
14400b5b41
Merge pull request #13940 from hczhcz/patch-0821
Fix parser to reject create table as table function with engine
2020-08-24 22:01:40 +03:00
alesapin
d806e0c052
Merge pull request #13450 from ClickHouse/fix_ddl_worker_timeouts
Fix DDL worker timeouts for long queries
2020-08-24 19:23:09 +03:00
Alexey Milovidov
612382b74e Minor modification 2020-08-24 17:45:00 +03:00
Alexey Milovidov
e1ccebe8f3 Minor modification 2020-08-24 17:42:12 +03:00
Alexey Milovidov
1fa4978685 Make the code more clear; add comments 2020-08-24 17:29:31 +03:00
Alexey Milovidov
0a7fb4eb80 Remove strange files 2020-08-24 16:27:47 +03:00
Alexey Milovidov
dfe870e38c Merge branch 'new-branch' of https://github.com/ucasFL/ClickHouse into ucasFL-new-branch 2020-08-24 16:26:08 +03:00
Nikita Mikhaylov
7209809e29 get rid of virtual call 2020-08-24 14:54:04 +03:00
Artem Zuikov
69c77ff229 Merge branch 'master' into ast 2020-08-24 14:09:30 +03:00
Winter Zhang
75af61ea95
Try fix style failure 2020-08-24 18:51:54 +08:00
Anton Popov
93d49e5815
Merge pull request #13237 from vdimir/string-locate-startpos-3776
Support start_pos argument in `position` function
2020-08-24 12:23:19 +03:00
alesapin
0177b35998 Review fixes 2020-08-24 12:07:37 +03:00
alesapin
f5730a3a5f Merge branch 'master' into fix_ddl_worker_timeouts 2020-08-24 11:50:11 +03:00
zhang2014
63868aaed3 Try fix CI 2020-08-24 13:05:59 +08:00
alexey-milovidov
d0b6ba35d1
Merge pull request #8367 from amosbird/scalarfix
fix scalar subquery hash conflicts
2020-08-24 01:14:34 +03:00
bharatnc
64d848f5c8 fix gcc-9 build check error 2020-08-23 10:09:41 -07:00
bharatnc
dd3068e2bb fix file formatting 2020-08-23 10:09:41 -07:00
bharatnc
e1bf87019c add quantileExactLow & quantileExactHigh functions
This PR adds the quantileExactLow and quantileExactHigh
implementations which are equivalent to how the `median_low`
and `median_high` functions are implemented in python.

`median_low`: https://github.com/python/cpython/blob/master/Lib/statistics.py#L438
`median_high`: https://github.com/python/cpython/blob/master/Lib/statistics.py#L460
2020-08-23 10:09:41 -07:00
alexey-milovidov
c633168c51
Merge pull request #13922 from ClickHouse/fix_rename_distributed_table_deadlock
Fix lock order inversion when renaming Distributed table
2020-08-23 16:45:32 +03:00
alexey-milovidov
d7871f3976
Merge pull request #13947 from Felixoid/unlimit_resample
Increase limit in -Resample combinator to 1M
2020-08-23 15:56:44 +03:00
alexey-milovidov
f41118f230
Merge pull request #13929 from Enmk/ConnectionPoolWithFailover_data_race_fix
First attempt to fix data race in ConnectionPoolWithFailover::getStatus()
2020-08-23 15:54:56 +03:00
zhang2014
0e8cb96eb1 Try fix IfAggCombinator with NullAggCombinator 2020-08-22 22:57:46 +08:00
alexey-milovidov
7b53a0ef33 Revert "Added allow_merges option for volumes in multi-disk configuration (#13402)"
This reverts commit 1e2616542a.
2020-08-21 18:44:29 +03:00
alexey-milovidov
b71ef6db22
Update AvroRowInputFormat.cpp 2020-08-21 18:34:15 +03:00
alexey-milovidov
84db9a3a66
Merge pull request #13906 from tomjiang1987/optimize_error_msg_for_null
optimize error msg for null value of TabSeparatedRow format
2020-08-21 16:06:16 +03:00
alexey-milovidov
cda85a7828
Update AggregateFunctionResample.h 2020-08-21 15:05:58 +03:00
Mikhail f. Shiryaev
622c2d7e45
Increase limit in -Resample combinator to 1M 2020-08-21 13:35:19 +02:00
alexey-milovidov
55ac192417
Merge pull request #13928 from ClickHouse/wring-error-for-too-long-query
Fix wrong error for long queries.
2020-08-21 13:18:19 +03:00
Gervasio Varela
a6a18b62f9 AvroConfluent + Kafla: Skip malformed messages that do not contain at least the AvroConfluent magic number and the schema id definition. 2020-08-21 11:11:41 +02:00
Vladimir Chebotarev
1e2616542a
Added allow_merges option for volumes in multi-disk configuration (#13402) 2020-08-21 12:04:13 +03:00
hcz
73c5fbcba5 Fix create table as table function with engine 2020-08-21 16:11:49 +08:00
tao jiang
294aa985e0 fix typo exception name 2020-08-21 08:53:00 +08:00
Nikita Mikhaylov
8f1ba521a0
Merge pull request #13624 from nikitamikhaylov/cache-dictionary-bugfix
cache-dictionary flap
2020-08-21 02:24:26 +04:00
Artem Zuikov
0f49291733 make clang tidy happy 2020-08-21 01:05:06 +03:00
Artem Zuikov
13bb3774ff update tests 2020-08-20 23:50:53 +03:00
Vasily Nemkov
f94f786cc3 First attempt to fix data race in ConnectionPoolWithFailover::getStatus() 2020-08-20 23:25:38 +03:00
Artem Zuikov
f99622be33 minor fix 2020-08-20 22:04:46 +03:00
Nikolai Kochetov
99b31480fd Fix wrong error for long queries. 2020-08-20 21:56:50 +03:00
Artem Zuikov
f4e84d93ba fix indirect distinct with less columns 2020-08-20 21:51:22 +03:00
Artem Zuikov
9f5538c14d fix crash in case of no tables in select 2020-08-20 21:09:48 +03:00
alexey-milovidov
c5a7b1c456
Update RowInputFormatWithDiagnosticInfo.cpp 2020-08-20 20:34:55 +03:00
alexey-milovidov
911946b517
Update TabSeparatedRowInputFormat.cpp 2020-08-20 20:32:49 +03:00
alexey-milovidov
6cf1a61735
Merge pull request #13841 from azat/unknown-packet-fix
Unknown packet fix (for Protocol::Server::Log for distributed queries)
2020-08-20 20:25:58 +03:00
alexey-milovidov
5e24329333
Merge pull request #13896 from azat/executeQuery-lambda-build-fix
Fix gcc10 build by reducing storage of the lambdas in executeQuery
2020-08-20 20:22:00 +03:00
alexey-milovidov
fb0e68f808
Merge pull request #12771 from arenadata/ADQM-109
krb5 + cyrus-sasl + kerberized kafka
2020-08-20 20:13:01 +03:00
Artem Zuikov
911e6efe3e rewrite duplicate distinct optimization 2020-08-20 20:04:42 +03:00
Nikolai Kochetov
7c0fcb2039
Merge pull request #13611 from ClickHouse/array-join-processor
Refactor ARRAY JOIN
2020-08-20 17:56:37 +03:00
Alexander Tokmakov
dd4b8b9663 fix lock order inversion when renaming distributed table 2020-08-20 16:36:22 +03:00
Amos Bird
333ec2e496
fix scalar subquery hash conflicts 2020-08-20 21:19:10 +08:00
Nikita Mikhailov
9a7849e1d7 Merge remote-tracking branch 'upstream/master' into cache-dictionary-bugfix 2020-08-20 14:59:48 +03:00
tao jiang
189c284597 fix if statement code style check 2020-08-20 18:42:14 +08:00
tao jiang
70ef84ee4b fix code style check 2020-08-20 18:06:41 +08:00
Nikolai Kochetov
d3fa5895fb Fix build. 2020-08-20 12:33:16 +03:00
Nikolai Kochetov
5928eab2c4
Fix lgamma race. (#13842)
* Fix lgamma race.
2020-08-20 12:27:29 +03:00
myrrc
d298409660 Merge remote-tracking branch 'upstream/master' into bug/low-cardinality-arrays-optimisations 2020-08-20 12:07:02 +03:00
Jiang Tao
613e3f7247 optimize error msg for null value 2020-08-20 11:25:28 +08:00
hcz
4d093e8e26 Fix type error 2020-08-20 10:50:34 +08:00
Nikolai Kochetov
b3791d7f6e Fix build. 2020-08-19 22:58:23 +03:00
Nikolai Kochetov
5cd4312529 Review fixes. 2020-08-19 22:33:49 +03:00
myrrc
4f96291c35 rewrote the LC spec as a dispatcher 2020-08-19 21:59:39 +03:00
Nikolai Kochetov
322cb241b9
Merge pull request #13887 from ClickHouse/fix-fixed-string-partial-sort
Fix fixed string partial sort
2020-08-19 21:41:25 +03:00
Azat Khuzhin
42dd661b6a Fix gcc10 build by reducing storage of the lambdas in executeQuery
There is no need to capture query AST for the status_info_to_query_log,
since callers already captured it anyway.

gcc10 reports:
    ../src/Interpreters/executeQuery.cpp: In member function ‘void std::__1::function<_Rp(_ArgTypes ...)>::swap(std::__1::function<_Rp(_ArgTypes ...)>&) [with _Rp = void; _ArgTypes = {DB::IBlockInputStream*, DB::IBlockOutputStream*, DB::QueryPipeline*}]’:
    ../src/Interpreters/executeQuery.cpp:490:49: error: array subscript 35 is outside array bounds of ‘std::__1::aligned_storage<32, 16>::type [1]’ [-Werror=array-bounds]
      490 |             auto status_info_to_query_log = [ast](QueryLogElement &element, const QueryStatusInfo &info) mutable
          |                                                 ^
    In file included from ../contrib/libcxx/include/algorithm:644,
                     from ../contrib/libcxx/include/__string:57,
                     from ../contrib/libcxx/include/string_view:175,
                     from ../contrib/libcxx/include/string:504,
                     from ../src/Common/formatReadable.h:3,                                                                                                  from ../src/Interpreters/executeQuery.cpp:1:
    ../contrib/libcxx/include/functional:1877:60: note: while referencing ‘__tempbuf’
     1877 |             typename aligned_storage<sizeof(__buf_)>::type __tempbuf;
          |                                                            ^~~~~~~~~
2020-08-19 21:25:28 +03:00
tavplubix
de3a6d78fc
Merge pull request #13822 from zhang2014/fix/materialize_integration_test
ISSUES-4006 try fix materialize mysql database integration test
2020-08-19 17:32:38 +03:00
Vitaly Baranov
fb5f98e800
Merge pull request #13863 from vitlibar/fix-handling-embedded-config
Fix handling embedded config.
2020-08-19 15:27:51 +03:00
Nikolai Kochetov
8ad82a38a8 Fix ColumnString::updatePermutationWithCollation. 2020-08-19 15:10:14 +03:00
Nikita Mikhaylov
21a50aab30
Merge branch 'master' into cache-dictionary-bugfix 2020-08-19 15:53:23 +04:00
Artem Zuikov
becc186c91
Add support for extended precision integers and decimals (#13097) 2020-08-19 14:52:17 +03:00
tavplubix
3b8ac01ed0
Merge pull request #13756 from ClickHouse/test-drop-database-race
Fix race condition in DROP DATABASE
2020-08-19 13:27:50 +03:00
alexey-milovidov
1a33f6d0b8
Merge pull request #13866 from ClickHouse/remove-useless-code-zkutil
Remove useless code around zkutil
2020-08-19 12:32:08 +03:00
Alexey Milovidov
5a00941303 Fix "Arcadia" 2020-08-19 12:31:28 +03:00
alexey-milovidov
6d72777b6e
Merge pull request #13868 from ClickHouse/stratify-array-compact-nan
Stratify nans comparison in arrayCompact function
2020-08-19 11:53:58 +03:00
hcz
4bbcec3d33 Add defaultValueOfTypeName 2020-08-19 14:44:11 +08:00
BohuTANG
26525a5eb1 Merge remote-tracking branch 'origin/master' into mysql_replica_gtid_issue_4006 2020-08-19 08:04:02 +08:00
myrrc
5ef5c889fd moved the LC stuff to its implementations (some bugs remaining) 2020-08-18 23:09:41 +03:00
alexey-milovidov
23ccb0b6be
Merge pull request #13677 from hagen1778/merge-tree-fail-fast-on-rows-limit
[mergeTree]: fail fast if max_rows_to_read limit exceeded on parts scan
2020-08-18 22:24:39 +03:00
Alexey Milovidov
acf312467e Stratify nans comparison in arrayCompact function 2020-08-18 22:16:53 +03:00
Alexey Milovidov
5c0a9648fb Remove even more useless code 2020-08-18 22:03:23 +03:00
Alexey Milovidov
eeb769d2d4 Remove useless code around zkutil 2020-08-18 22:02:07 +03:00
Alexander Tokmakov
e686616756 add exclusive DDLGuard for database 2020-08-18 18:15:27 +03:00
Vitaly Baranov
c800941ab7 Fix handling embedded config. 2020-08-18 18:08:50 +03:00
BohuTANG
30b8159bb0 ISSUES-4006 fix empty gtid format when sets parse 2020-08-18 23:01:21 +08:00
Mark Papadakis
734f57462b
Update PipelineExecutor.cpp
Should have used back_edges instead of direct_edges
2020-08-18 15:09:23 +03:00
Alexey Milovidov
9615b1f06a Generate ya.make 2020-08-18 12:46:02 +03:00
BohuTANG
a78604db2b ISSUES-4006 add constructor to initialize number member 2020-08-18 11:56:40 +08:00
hexiaoting
ddbfe0ce21 Deprecate ODBCDriver format 2020-08-18 11:29:40 +08:00
BohuTANG
34975d1dd3 ISSUES-4006 try to fix PVS check error 2020-08-18 08:56:18 +08:00
myrrc
3337d206ba some bugs remaining 2020-08-18 01:55:41 +03:00
myrrc
69a0ca2564 checking other const approach 2020-08-18 01:43:20 +03:00
Azat Khuzhin
2e933a94a6 Handle Protocol::Server::Log in the RemoteQueryExecutor::finish()
Even when finish() is called, there can be no EndOfStream sent, so it is
100% correct to handle Log packages there.

W/o fix in RemoteQueryExecutor:

    Code: 100, e.displayText() = DB::Exception: Unknown packet 10 from one of the following replicas: : While executing Remote (version 20.8.1.1) (from [::1]:56960) (in query: select * from remote('127.{2,3}', system.numbers) where number = 10 limit 1; ), Stack trace (when copying this message, always include the lines below):

    0. Common/StackTrace.cpp:291: StackTrace::tryCapture() @ 0x28b80a
    1. Common/StackTrace.cpp:256: StackTrace::StackTrace() @ 0x28b6ab
    2. Common/Exception.cpp:42: DB::Exception::Exception(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int) @ 0x2481ba
    3. Common/Exception.h:28: DB::Exception::Exception<>() @ 0x334d48
    4. DataStreams/RemoteQueryExecutor.cpp:288: DB::RemoteQueryExecutor::finish() @ 0x330314
    5. Processors/Sources/RemoteSource.cpp:46: DB::RemoteSource::generate() @ 0x6fce5
2020-08-17 21:55:09 +03:00
Alexander Tokmakov
f5c14a0766 Merge branch 'master' into fix/materialize_integration_test 2020-08-17 21:47:53 +03:00
Azat Khuzhin
3c6a8ed7be Improve error message on unknown packet for distributed queries
Although replica information is likely already empty (since it was
reseted due to error or disconnect), but let's keep it for now.
2020-08-17 21:38:24 +03:00
Alexey Milovidov
ba4c42abfe Support UUID aliases in normalizeQuery 2020-08-17 21:17:20 +03:00
Artem Zuikov
bc6ddac52c one more unroll for arerage.cpp 2020-08-17 19:23:05 +03:00
BohuTANG
8c9236fefd ISSUES-4006 adapted GTID replication to Materialize MySQL 2020-08-17 22:12:41 +08:00
alexey-milovidov
abf3cb8746
Merge pull request #13816 from ClickHouse/normalize-query
Add function "normalizeQuery"
2020-08-17 16:23:24 +03:00
Vitaly Baranov
695c2aafba
Merge pull request #13425 from vitlibar/user-directories
user_directories in the main config
2020-08-17 15:49:24 +03:00
zhang2014
ead3d34323 ISSUES-4006 try fix build 2020-08-17 18:11:50 +08:00
roman
35e28b4c6b [mergeTree]: make exception message more clear 2020-08-17 09:52:04 +01:00
BohuTANG
c3561cd7e8 ISSUES-4006 add BIT/SET field type support 2020-08-17 16:30:13 +08:00
BohuTANG
ee6ac28773 ISSUES-4006 fix up meta parse 2020-08-17 16:27:34 +08:00
Alexey Milovidov
59b8153506 Fix "Arcadia" and "Unbundled" builds 2020-08-17 11:20:20 +03:00
BohuTANG
6557e706c9 ISSUES-4006 fix special build check errors #4006 2020-08-17 16:01:18 +08:00
Javi Santana
ce64a73342 fixed tests and style 2020-08-17 09:46:38 +02:00
BohuTANG
adc6cce96e ISSUES-4006 fetch executed_gtid_set from replication position #4006 2020-08-17 15:38:09 +08:00
BohuTANG
a8465cfce6 ISSUES-4006 move MySQL command to the PacketsGeneric.h #4006 2020-08-17 15:27:35 +08:00
BohuTANG
cfc1fea619 ISSUES-4006 add startBinlogDumpGTID api for MySQLClient #4006 2020-08-17 15:21:20 +08:00
BohuTANG
059bf166ae ISSUES-4006 add GTID unit tests #4006 2020-08-17 14:45:43 +08:00
zhang2014
2cbc1df3ce ISSUES-4006 try fix bad integration test 2020-08-17 13:14:02 +08:00
BohuTANG
3ccc650995 ISSUES-4006 add position.Dump() #4006 2020-08-17 09:30:16 +08:00
BohuTANG
e90679707a ISSUES-4006 add MySQL replication GTIDEvent #4006 2020-08-17 09:23:54 +08:00
BohuTANG
b4d18b1a52 ISSUES-4006 add MySQL replication GTID module #4006 2020-08-17 09:02:59 +08:00
Alexey Milovidov
ab435f0610 Fix style 2020-08-16 22:50:50 +03:00
Alexey Milovidov
9cd2ddb646 Add normalizedQueryHash function with tests 2020-08-16 22:38:56 +03:00
Azat Khuzhin
0eac96972c Fix topK/topKWeighted merge (wtih non-default parameters) 2020-08-16 22:32:56 +03:00
Alexey Milovidov
e733c0b96a Add function "normalizeQuery" 2020-08-16 21:17:16 +03:00
Vitaly Baranov
29a6558d33 Add system table system.user_directories 2020-08-16 19:15:39 +03:00
Vitaly Baranov
0759dff12b Support <user_directories> section in the main config. 2020-08-16 19:15:38 +03:00
Vitaly Baranov
2909ed1bc0 Better initialization of access storages. Make list of access storages dynamic. 2020-08-16 19:15:34 +03:00
Vitaly Baranov
ad03ff3887 Rename storages users.xml=>users_xml, disk=>local_directory. 2020-08-16 16:42:57 +03:00
Vitaly Baranov
a77b262444 Fix typo. 2020-08-16 16:42:57 +03:00
Vitaly Baranov
25d463f257 Fix renaming in MemoryAccessStorage. 2020-08-16 16:42:57 +03:00
Vitaly Baranov
d1e193f02e Check name of inserted entities in precedent storages. 2020-08-16 16:42:57 +03:00
Vitaly Baranov
35158f8bfe Prefer users from users.xml in case of duplication. 2020-08-16 16:42:57 +03:00
Vitaly Baranov
0caf592941 Remove exception about duplicates when multiple access storages keeps entities with the same name. 2020-08-16 16:42:57 +03:00
alexey-milovidov
810829d5e0
Merge pull request #13513 from ClickHouse/codespell-2
Enable codespell
2020-08-16 16:28:37 +03:00
alexey-milovidov
f3755fecb7
Merge pull request #13793 from amosbird/fnc
Fix set index with const column pred
2020-08-16 15:18:31 +03:00
Alexey Milovidov
09846a92cd Fix typos 2020-08-16 15:09:41 +03:00