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 );
     }
+
 }
 
 
openSUSE Build Service is sponsored by