My clickhouse version is 21.3.9.83,   I want to create table contains a field named `null`, I can create it successfully on local table:
```sql
vm2173 :) CREATE TABLE default.test_table (
:-] `id` Int64 , 
:-] `day` DateTime, 
:-] `null` Int32 ) 
:-] ENGINE = MergeTree() 
:-] PARTITION BY toYYYYMMDD(`day`) 
:-] ORDER BY (`day`, `null`);

CREATE TABLE default.test_table
(
    `id` Int64,
    `day` DateTime,
    `null` Int32
)
ENGINE = MergeTree
PARTITION BY toYYYYMMDD(day)
ORDER BY (day, null)

Query id: 6eb6df0e-1934-4ea3-86cc-742961c7b974

Ok.

0 rows in set. Elapsed: 0.016 sec.
```

but when I create it on cluster, I get error like this: `Column NULL with type Nullable(Nothing) is not allowed in key expression`:
```sql
vm2173 :) CREATE TABLE default.test_table ON CLUSTER eoi (
:-] `id` Int64 , 
:-] `day` DateTime, 
:-] `null` Int32 ) 
:-] ENGINE = MergeTree() 
:-] PARTITION BY toYYYYMMDD(`day`) 
:-] ORDER BY (`day`, `null`);

CREATE TABLE default.test_table ON CLUSTER eoi
(
    `id` Int64,
    `day` DateTime,
    `null` Int32
)
ENGINE = MergeTree
PARTITION BY toYYYYMMDD(day)
ORDER BY (day, null)

Query id: e1afba47-e631-4087-a0b5-944b014d6a8b

┌─host─────┬─port─┬─status─┬─error────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬─num_hosts_remaining─┬─num_hosts_active─┐
│ worker-1 │ 9000 │    549 │ Code: 549, e.displayText() = DB::Exception: Column `NULL` with type Nullable(Nothing) is not allowed in key expression, it's not comparable (version 21.3.9.83 (official build)) │                   2 │                0 │
│ worker-2 │ 9000 │    549 │ Code: 549, e.displayText() = DB::Exception: Column `NULL` with type Nullable(Nothing) is not allowed in key expression, it's not comparable (version 21.3.9.83 (official build)) │                   1 │                0 │
│ vm2173   │ 9000 │    549 │ Code: 549, e.displayText() = DB::Exception: Column `NULL` with type Nullable(Nothing) is not allowed in key expression, it's not comparable (version 21.3.9.83 (official build)) │                   0 │                0 │
└──────────┴──────┴────────┴──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴─────────────────────┴──────────────────┘
→ Progress: 0.00 rows, 0.00 B (0.00 rows/s., 0.00 B/s.)  0%
3 rows in set. Elapsed: 0.112 sec. 

Received exception from server (version 21.3.9):
Code: 549. DB::Exception: Received from localhost:9000. DB::Exception: There was an error on [worker-1:9000]: Code: 549, e.displayText() = DB::Exception: Column `NULL` with type Nullable(Nothing) is not allowed in key expression, it's not comparable (version 21.3.9.83 (official build)).
```

I want to know why it happends.


{
    return detail::endsWith(s, suffix.data(), suffix.size());
}
inline bool startsWith(const std::string & s, const char * prefix)
{
    return detail::startsWith(s, prefix, strlen(prefix));
}
inline bool endsWith(const std::string & s, const char * suffix)
{
    return detail::endsWith(s, suffix, strlen(suffix));
}
template <typename T>
std::string getOrdinalSuffix(T n)
{
    static_assert(std::is_integral_v<T> && std::is_unsigned_v<T>,
        "Unsigned integer value required");
    const auto last_digit = n % 10;
    if ((last_digit < 1 || last_digit > 3)
        || ((n > 10) && (((n / 10) % 10) == 1)))
        return "th";
    switch (last_digit)
    {
        case 1: return "st";
        case 2: return "nd";
        case 3: return "rd";
        default: return "th";
    }
}
inline bool isASCII(char c)