```
drop table IF EXISTS numbers_indexed;
drop table IF EXISTS squares;

create table numbers_indexed Engine=MergeTree ORDER BY number PARTITION BY bitShiftRight(number,8) SETTINGS index_granularity=8 AS SELECT * FROM numbers(16384); 

CREATE VIEW squares AS WITH number*2 AS square_number SELECT number, square_number FROM numbers_indexed;

SET max_rows_to_read=8, read_overflow_mode='throw';

-- ok
WITH number*2 AS square_number SELECT number, square_number FROM numbers_indexed WHERE number = 999;

-- fail
SELECT * FROM squares WHERE number = 999;
```
#pragma once
#include <Core/SettingsCollection.h>
#include <Core/Defines.h>
namespace Poco
{
    namespace Util
    {
        class AbstractConfiguration;
    }
}
namespace boost
{
    namespace program_options
    {
        class options_description;
    }
}
namespace DB
{
class IColumn;
/** Settings of query execution.
  * These settings go to users.xml.
  */
struct Settings : public SettingsCollection<Settings>
{
    
    
    Settings() {}
    /** List of settings: type, name, default value, description, flags