<test>
    <create_query>
        CREATE TABLE hits_wide AS hits_10m_single ENGINE = MergeTree()
        PARTITION BY toYYYYMM(EventDate)
        ORDER BY (CounterID, EventDate, intHash32(UserID))
        SAMPLE BY intHash32(UserID)
        SETTINGS min_rows_for_wide_part = 0, min_bytes_for_wide_part = 0
    </create_query>
    <create_query>
        CREATE TABLE hits_compact AS hits_10m_single ENGINE = MergeTree()
        PARTITION BY toYYYYMM(EventDate)
        ORDER BY (CounterID, EventDate, intHash32(UserID))
        SAMPLE BY intHash32(UserID)
        SETTINGS min_bytes_for_wide_part = '10M'
    </create_query>
    <create_query>
        CREATE TABLE hits_memory AS hits_10m_single ENGINE = MergeTree()
        PARTITION BY toYYYYMM(EventDate)
        ORDER BY (CounterID, EventDate, intHash32(UserID))
        SAMPLE BY intHash32(UserID)
        SETTINGS min_bytes_for_compact_part = '1M', min_bytes_for_wide_part = '10M', in_memory_parts_enable_wal = 1
    </create_query>
    <create_query>
       CREATE TABLE hits_buffer AS hits_10m_single 
       ENGINE = Buffer(default, hits_wide, 1, 0, 0, 10000, 10000, 0, 0)
    </create_query>

    <!-- Emulate writing many parts with 1 row, because single insert query is too fast -->
    <settings>
        <max_block_size>1</max_block_size>
        <min_insert_block_size_rows>1</min_insert_block_size_rows>
    </settings>

    <!-- 100 parts -->
    <query>INSERT INTO hits_wide(UserID)    SELECT rand() FROM  numbers(100)</query>
    <query>INSERT INTO hits_compact(UserID) SELECT rand() FROM numbers(1000)</query>
    <query>INSERT INTO hits_buffer(UserID)  SELECT rand() FROM numbers(100)</query>

    <drop_query>DROP TABLE IF EXISTS hits_wide</drop_query>
    <drop_query>DROP TABLE IF EXISTS hits_compact</drop_query>
    <drop_query>DROP TABLE IF EXISTS hits_memory</drop_query>
    <drop_query>DROP TABLE IF EXISTS hits_buffer</drop_query>
</test>