18670 {
18671 switch (sql_type.id()) {
18672 case LogicalTypeId::BOOLEAN:
18673 return std::is_same<T, bool>();
18674 case LogicalTypeId::TINYINT:
18675 return std::is_same<T, int8_t>();
18676 case LogicalTypeId::SMALLINT:
18677 return std::is_same<T, int16_t>();
18678 case LogicalTypeId::INTEGER:
18679 return std::is_same<T, int32_t>();
18680 case LogicalTypeId::BIGINT:
18681 return std::is_same<T, int64_t>();
18682 case LogicalTypeId::DATE:
18683 return std::is_same<T, date_t>();
18684 case LogicalTypeId::TIME:
18685 return std::is_same<T, dtime_t>();
18686 case LogicalTypeId::TIME_NS:
18687 return std::is_same<T, dtime_ns_t>();
18688 case LogicalTypeId::TIME_TZ:
18689 return std::is_same<T, dtime_tz_t>();
18690 case LogicalTypeId::TIMESTAMP:
18691 case LogicalTypeId::TIMESTAMP_MS:
18693 case LogicalTypeId::TIMESTAMP_SEC:
18694 case LogicalTypeId::TIMESTAMP_TZ:
18695 return std::is_same<T, timestamp_t>();
18696 case LogicalTypeId::FLOAT:
18697 return std::is_same<T, float>();
18698 case LogicalTypeId::DOUBLE:
18699 return std::is_same<T, double>();
18700 case LogicalTypeId::VARCHAR:
18701 case LogicalTypeId::CHAR:
18702 case LogicalTypeId::BLOB:
18703 return std::is_same<T, string_t>();
18704 default:
18705 throw std::runtime_error("Type is not supported!");
18706 }
18707 }