```
┌───────────────now()─┬─event────────────────┬────────────────value─┐
│ 2022-10-28 08:09:26 │ UserTimeMicroseconds │ 13760641375459361349 │
│ 2022-10-28 08:11:57 │ UserTimeMicroseconds │ 17081055181340065261 │
│ 2022-10-28 08:13:31 │ UserTimeMicroseconds │  2803275110436731712 │
│ 2022-10-28 08:14:19 │ UserTimeMicroseconds │  4039206916108154442 │
│ 2022-10-28 08:15:49 │ UserTimeMicroseconds │  5422712665390374116 │
└─────────────────────┴──────────────────────┴──────────────────────┘
```

It can not grow so fast. 

```
SELECT formatReadableTimeDelta((17081055181340065261 - 13760641375459361349) / 1000000)

Query id: 7bbb071d-6204-413d-ba7a-222c89aca743

┌─formatReadableTimeDelta(divide(minus(17081055181340065261, 13760641375459361349), 1000000))─┐
│ 105289 years, 7 months, 16 days, 20 hours and 18 minutes                                    │
└─────────────────────────────────────────────────────────────────────────────────────────────┘
```
UInt64 master_thread_id = 0;
    LogsLevel client_logs_level = LogsLevel::none;
    String query;
    
    
    
    String one_line_query;
    UInt64 normalized_query_hash = 0;
    std::vector<ProfileEventsCountersAndMemory> finished_threads_counters_memory;
    std::vector<ProfileEventsCountersAndMemory> getProfileEventsCountersAndMemoryForThreads();
};
using ThreadGroupStatusPtr = std::shared_ptr<ThreadGroupStatus>;
/**
 * We use **constinit** here to tell the compiler the current_thread variable is initialized.
 * If we didn't help the compiler, then it would most likely add a check before every use of the variable to initialize it if needed.
 * Instead it will trust that we are doing the right thing (and we do initialize it to nullptr) and emit more optimal code.
 * This is noticeable in functions like CurrentMemoryTracker::free and CurrentMemoryTracker::allocImpl
 * See also:
 * - https://en.cppreference.com/w/cpp/language/constinit
 * - https://github.com/ClickHouse/ClickHouse/pull/40078
 */
extern thread_local constinit ThreadStatus * current_thread;
/** Encapsulates all per-thread info (ProfileEvents, MemoryTracker, query_id, query context, etc.).
  * The object must be created in thread function and destroyed in the same thread before the exit.
  * It is accessed through thread-local pointer.
  *
  * This object should be used only via "CurrentThread", see CurrentThread.h
  */
class ThreadStatus : public boost::noncopyable