**Usage**
Postgres, MySQL, and Oracle support the expression `LEFT JOIN ... ON 1 = 1`, but ClickHouse does not.

It may be possible to replace `LEFT JOIN ... ON 1 = 1` with `CROSS JOIN`, but I want to use the query in the same form for lots of databases.

Please support the expression `LEFT JOIN ... ON 1 = 1`.


**Detailed SQL**
```SQL
CREATE TABLE test
(
    `name` Nullable(String),
    `id` int
)
ENGINE = Log();

insert into test values ('a', 1) ('b', 2) (null, 3);

select * from test t1 left join (select * from test ) t2 on 1 = 1   
-- DB::Exception: Not equi-join ON expression: 1 = 1. No columns in one of equality side.: While processing 1 = 1.
```

bool hasOn() const { return table_join.on_expression != nullptr; }
    NamesWithAliases getNamesWithAliases(const NameSet & required_columns) const;
    NamesWithAliases getRequiredColumns(const Block & sample, const Names & action_required_columns) const;
    void deduplicateAndQualifyColumnNames(const NameSet & left_table_columns, const String & right_table_prefix);
    size_t rightKeyInclusion(const String & name) const;
    NameSet requiredRightKeys() const;
    bool leftBecomeNullable(const DataTypePtr & column_type) const;
    bool rightBecomeNullable(const DataTypePtr & column_type) const;
    void addJoinedColumn(const NameAndTypePair & joined_column);
    void addJoinedColumnsAndCorrectTypes(NamesAndTypesList & left_columns, bool correct_nullability);
    
    
    
    std::pair<ActionsDAGPtr, ActionsDAGPtr>
    createConvertingActions(const ColumnsWithTypeAndName & left_sample_columns, const ColumnsWithTypeAndName & right_sample_columns);
    void setAsofInequality(ASOF::Inequality inequality) { asof_inequality = inequality; }