in src/util/odbc_helper.cc [163:189]
void OdbcHelper::LogMessage(const std::string& log_message, SQLHANDLE handle, int32_t handle_type) {
SQLTCHAR sqlstate[MAX_STATE_LENGTH];
SQLTCHAR message[MAX_MSG_LENGTH];
SQLINTEGER nativeerror;
SQLSMALLINT textlen;
SQLRETURN ret;
SQLSMALLINT recno = 0;
LOG(ERROR) << log_message;
do {
recno++;
ret = SQLGetDiagRec(handle_type, handle, recno, sqlstate, &nativeerror,
message, sizeof(message), &textlen);
if (ret == SQL_INVALID_HANDLE) {
LOG(ERROR) << "Invalid handle";
} else if (SQL_SUCCEEDED(ret)) {
LOG(ERROR) << StringHelper::ToString(sqlstate) << ": "
<< StringHelper::ToString(message);
}
} while (ret == SQL_SUCCESS);
if (ret == SQL_NO_DATA && recno == 1) {
LOG(ERROR) << "No error information";
}
}