in modules/platforms/cpp/ignite/odbc/common_types.cpp [112:165]
sql_state response_status_to_sql_state(int32_t status) {
switch (response_status(status)) {
case response_status::PARSING_FAILURE:
case response_status::KEY_UPDATE:
case response_status::UNEXPECTED_OPERATION:
return sql_state::S42000_SYNTAX_ERROR_OR_ACCESS_VIOLATION;
case response_status::UNSUPPORTED_OPERATION:
return sql_state::SHYC00_OPTIONAL_FEATURE_NOT_IMPLEMENTED;
case response_status::UNEXPECTED_ELEMENT_TYPE:
return sql_state::SHY004_INVALID_SQL_DATA_TYPE;
case response_status::DUPLICATE_KEY:
case response_status::NULL_KEY:
case response_status::NULL_VALUE:
return sql_state::S23000_INTEGRITY_CONSTRAINT_VIOLATION;
case response_status::TABLE_NOT_FOUND:
return sql_state::S42S02_TABLE_OR_VIEW_NOT_FOUND;
case response_status::INDEX_ALREADY_EXISTS:
return sql_state::S42S11_INDEX_ALREADY_EXISTS;
case response_status::INDEX_NOT_FOUND:
return sql_state::S42S12_INDEX_NOT_FOUND;
case response_status::TABLE_ALREADY_EXISTS:
return sql_state::S42S01_TABLE_OR_VIEW_ALREADY_EXISTS;
case response_status::COLUMN_NOT_FOUND:
return sql_state::S42S22_COLUMN_NOT_FOUND;
case response_status::COLUMN_ALREADY_EXISTS:
return sql_state::S42S21_COLUMN_ALREADY_EXISTS;
case response_status::TRANSACTION_COMPLETED:
return sql_state::S25000_INVALID_TRANSACTION_STATE;
case response_status::TRANSACTION_SERIALIZATION_ERROR:
return sql_state::S40001_SERIALIZATION_FAILURE;
case response_status::CACHE_NOT_FOUND:
case response_status::NULL_TABLE_DESCRIPTOR:
case response_status::CONVERSION_FAILED:
case response_status::CONCURRENT_UPDATE:
case response_status::ENTRY_PROCESSING:
case response_status::TABLE_DROP_FAILED:
case response_status::STMT_TYPE_MISMATCH:
case response_status::UNKNOWN_ERROR:
default:
return sql_state::SHY000_GENERAL_ERROR;
}
}