File 111179650a5fd3455171f31b10fdbab159f9163d.patch of Package unixODBC.29685
Revert
commit 111179650a5fd3455171f31b10fdbab159f9163d
Author: lurcher <nick@lurcher.org>
Date: Mon Nov 18 13:47:13 2019 +0000
Try using W error functions first if we have them
Index: unixODBC-2.3.9/DriverManager/__info.c
===================================================================
--- unixODBC-2.3.9.orig/DriverManager/__info.c
+++ unixODBC-2.3.9/DriverManager/__info.c
@@ -4942,25 +4942,47 @@ void extract_error_from_driver( EHEAD *
hstmt_drv = handle_diag_extract;
}
- /* If we have the W functions may as well use them */
-
- if ( CHECK_SQLGETDIAGFIELDW( hdbc ) &&
- CHECK_SQLGETDIAGRECW( hdbc ))
- {
- extractdiagfunc = extract_diag_error_w;
- }
- else if ( CHECK_SQLERRORW( hdbc ))
+ if ( hdbc->unicode_driver )
{
- extracterrorfunc = extract_sql_error_w;
+ if ( CHECK_SQLGETDIAGFIELDW( hdbc ) &&
+ CHECK_SQLGETDIAGRECW( hdbc ))
+ {
+ extractdiagfunc = extract_diag_error_w;
+ }
+ else if ( CHECK_SQLERRORW( hdbc ))
+ {
+ extracterrorfunc = extract_sql_error_w;
+ }
+ else if ( CHECK_SQLGETDIAGFIELD( hdbc ) &&
+ CHECK_SQLGETDIAGREC( hdbc ))
+ {
+ extractdiagfunc = extract_diag_error;
+ }
+ else if ( CHECK_SQLERROR( hdbc ))
+ {
+ extracterrorfunc = extract_sql_error;
+ }
}
- else if ( CHECK_SQLGETDIAGFIELD( hdbc ) &&
- CHECK_SQLGETDIAGREC( hdbc ))
- {
- extractdiagfunc = extract_diag_error;
- }
- else if ( CHECK_SQLERROR( hdbc ))
+ else
{
- extracterrorfunc = extract_sql_error;
+ if ( CHECK_SQLGETDIAGFIELD( hdbc ) &&
+ CHECK_SQLGETDIAGREC( hdbc ))
+ {
+ extractdiagfunc = extract_diag_error;
+ }
+ else if ( CHECK_SQLERROR( hdbc ))
+ {
+ extracterrorfunc = extract_sql_error;
+ }
+ else if ( CHECK_SQLGETDIAGFIELDW( hdbc ) &&
+ CHECK_SQLGETDIAGRECW( hdbc ))
+ {
+ extractdiagfunc = extract_diag_error_w;
+ }
+ else if ( CHECK_SQLERRORW( hdbc ))
+ {
+ extracterrorfunc = extract_sql_error_w;
+ }
}
if ( extractdiagfunc )
@@ -4987,6 +5009,7 @@ void extract_error_from_driver( EHEAD *
ERROR_HY000, "Driver returned SQL_ERROR or SQL_SUCCESS_WITH_INFO but no error reporting API found",
hdbc->environment->requested_version );
}
+
}