odbc_native_type to_driver_type()

in modules/platforms/cpp/ignite/odbc/type_traits.cpp [279:350]


odbc_native_type to_driver_type(std::int16_t type) {
    switch (type) {
        case SQL_C_CHAR:
            return odbc_native_type::AI_CHAR;

        case SQL_C_WCHAR:
            return odbc_native_type::AI_WCHAR;

        case SQL_C_SSHORT:
        case SQL_C_SHORT:
            return odbc_native_type::AI_SIGNED_SHORT;

        case SQL_C_USHORT:
            return odbc_native_type::AI_UNSIGNED_SHORT;

        case SQL_C_SLONG:
        case SQL_C_LONG:
            return odbc_native_type::AI_SIGNED_LONG;

        case SQL_C_ULONG:
            return odbc_native_type::AI_UNSIGNED_LONG;

        case SQL_C_FLOAT:
            return odbc_native_type::AI_FLOAT;

        case SQL_C_DOUBLE:
            return odbc_native_type::AI_DOUBLE;

        case SQL_C_BIT:
            return odbc_native_type::AI_BIT;

        case SQL_C_STINYINT:
        case SQL_C_TINYINT:
            return odbc_native_type::AI_SIGNED_TINYINT;

        case SQL_C_UTINYINT:
            return odbc_native_type::AI_UNSIGNED_TINYINT;

        case SQL_C_SBIGINT:
            return odbc_native_type::AI_SIGNED_BIGINT;

        case SQL_C_UBIGINT:
            return odbc_native_type::AI_UNSIGNED_BIGINT;

        case SQL_C_BINARY:
            return odbc_native_type::AI_BINARY;

        case SQL_C_DATE:
        case SQL_C_TYPE_DATE:
            return odbc_native_type::AI_TDATE;

        case SQL_C_TIME:
        case SQL_C_TYPE_TIME:
            return odbc_native_type::AI_TTIME;

        case SQL_C_TIMESTAMP:
        case SQL_C_TYPE_TIMESTAMP:
            return odbc_native_type::AI_TTIMESTAMP;

        case SQL_C_NUMERIC:
            return odbc_native_type::AI_NUMERIC;

        case SQL_C_GUID:
            return odbc_native_type::AI_GUID;

        case SQL_C_DEFAULT:
            return odbc_native_type::AI_DEFAULT;

        default:
            return odbc_native_type::AI_UNSUPPORTED;
    }
}