DataTypePtr removeNullable(const DataTypePtr & type) { if (type->isNullable()) return static_cast<const DataTypeNullable &>(*type).getNestedType(); return type; }
DataTypePtr makeNullable(const DataTypePtr & type) { if (type->isNullable()) return type; return std::make_shared<DataTypeNullable>(type); }