| 1 | #pragma once |
|---|---|
| 2 | |
| 3 | #include <Core/Types.h> |
| 4 | #include <Poco/Util/XMLConfiguration.h> |
| 5 | |
| 6 | namespace DB |
| 7 | { |
| 8 | |
| 9 | using ConfigurationPtr = Poco::AutoPtr<Poco::Util::AbstractConfiguration>; |
| 10 | |
| 11 | /// A set of supported stop conditions. |
| 12 | struct StopConditionsSet |
| 13 | { |
| 14 | void loadFromConfig(const ConfigurationPtr & stop_conditions_view); |
| 15 | void reset(); |
| 16 | |
| 17 | /// Note: only conditions with UInt64 minimal thresholds are supported. |
| 18 | /// I.e. condition is fulfilled when value is exceeded. |
| 19 | struct StopCondition |
| 20 | { |
| 21 | UInt64 value = 0; |
| 22 | bool fulfilled = false; |
| 23 | }; |
| 24 | |
| 25 | void report(UInt64 value, StopCondition & condition); |
| 26 | |
| 27 | StopCondition total_time_ms; |
| 28 | StopCondition rows_read; |
| 29 | StopCondition bytes_read_uncompressed; |
| 30 | StopCondition iterations; |
| 31 | StopCondition min_time_not_changing_for_ms; |
| 32 | StopCondition max_speed_not_changing_for_ms; |
| 33 | StopCondition average_speed_not_changing_for_ms; |
| 34 | |
| 35 | size_t initialized_count = 0; |
| 36 | size_t fulfilled_count = 0; |
| 37 | }; |
| 38 | |
| 39 | } |
| 40 |