List:Commits« Previous MessageNext Message »
From:jwinstead Date:August 16 2007 3:34am
Subject:Connector/ODBC 3.51 commit: r652 - in branches/guffert: . driver scripts setup test
View as plain text  
Modified:
   branches/guffert/
   branches/guffert/ChangeLog
   branches/guffert/VersionInfo.h
   branches/guffert/configure.in
   branches/guffert/driver/myodbc3.def
   branches/guffert/driver/utility.c
   branches/guffert/scripts/myodbc3.spec.sh
   branches/guffert/setup/MYODBCSetupDataSourceDialog.cpp
   branches/guffert/setup/MYODBCSetupDataSourceTab2.cpp
   branches/guffert/setup/MYODBCSetupDataSourceTab2.h
   branches/guffert/test/my_catalog.c
   branches/guffert/test/my_result.c
Log:
Merged revisions 636-651 via svnmerge from 
svn+ssh://bk-internal/connectors-svnroot/connector-odbc3/trunk

.......
  r638 | bdegtyariov | 2007-08-06 09:16:30 -0700 (Mon, 06 Aug 2007) | 2 lines
  
  Added SSL options to the GUI setup dialog
.......
  r641 | kboortz | 2007-08-07 13:02:24 -0700 (Tue, 07 Aug 2007) | 1 line
  
  Set RPM release back to 0
.......
  r644 | jwinstead | 2007-08-07 18:44:02 -0700 (Tue, 07 Aug 2007) | 3 lines
  
  Bump version to 3.51.19, updated ChangeLog with 3.51.18 build date and
  final release notes
.......
  r645 | bdegtyariov | 2007-08-08 12:09:53 -0700 (Wed, 08 Aug 2007) | 2 lines
  
  Because of Bug #10491 in the server, character string results were sometimes incorrectly
identified as SQL_VARBINARY. Until this server bug is corrected, the driver will identify
all variable-length strings as SQL_VARCHAR.
.......
  r646 | jwinstead | 2007-08-08 13:28:41 -0700 (Wed, 08 Aug 2007) | 2 lines
  
  Fix wrapping of ChangeLog note, and fill in bug # in comment.
.......
  r647 | jwinstead | 2007-08-08 17:10:39 -0700 (Wed, 08 Aug 2007) | 2 lines
  
  Fix my_colpriv test to clean up after itself (left a user behind)
.......
  r649 | jwinstead | 2007-08-10 12:56:37 -0700 (Fri, 10 Aug 2007) | 2 lines
  
  Bump version number to 3.51.20
.......



Property changes on: branches/guffert
___________________________________________________________________
Name: svnmerge-integrated
   - /trunk:1-635
   + /trunk:1-651

Modified: branches/guffert/ChangeLog
===================================================================
--- branches/guffert/ChangeLog	2007-08-16 01:08:00 UTC (rev 651)
+++ branches/guffert/ChangeLog	2007-08-16 01:34:00 UTC (rev 652)
@@ -33,13 +33,39 @@
 
 ----
 
-3.51.18
+3.51.20
 
   Functionality added or changed:
+
+  Bugs fixed:
+
+----
+
+3.51.19 (8-Aug-2007)
+
+  Functionality added or changed:
+  * Because of Bug #10491 in the server, character string results were
+    sometimes incorrectly identified as SQL_VARBINARY. Until this server
+    bug is corrected, the driver will identify all variable-length
+    strings as SQL_VARCHAR.
+
+----
+
+3.51.18 (6-Aug-2007)
+
+  Functionality added or changed:
+  * An experimental binary package, without an installer, is available
+    for Microsoft Windows x64 Edition.
+  * Binary packages as disk images with installers are now available
+    for Mac OS X.
+  * Binary packages for Sun Solaris are available as PKG packages.
   * Added FLAG_MULTI_STATEMENTS to allow issuing queries that contain
     multiple statements. Also added to the setup GUI. (Bug #7445)
   * Removed support for the TRACE and TRACEFILE DSN options. The standard
     ODBC logging should be used.
+  * Added support for SQL_ATTR_ROW_BIND_OFFSET_PTR in normal cursors.
+    (Bug #6741)
+  * Added SSL options to the GUI setup dialog.
 
   Bugs fixed:
   * SQLColumns() incorrectly reported that an auto-incrementing
@@ -73,7 +99,7 @@
   * SQLConnect() and SQLDriverConnect() were rewritten to eliminate duplicate
     code and ensure all options were supported using both connection methods.
     SQLDriverConnect() now only requires the setup library to be present when
-    it the call requires it.
+    the call requires it.
   * SQLColumns() failed when a catalog was specified due to an
     incorrectly-generated query. (Bug #29888)
   * SQLGetTypeInfo() returned incorrect information for date and time
@@ -84,8 +110,6 @@
   * Tables from the mysql database (catalog) were listed as SYSTEM TABLES
     by SQLTables() even when a different catalog was being queried. This
     also introduced errors due to the fix for Bug #26934.  (Bug #28662)
-  * Added support for SQL_ATTR_ROW_BIND_OFFSET_PTR in normal cursors.
-    (Bug #6741)
 
 ----
 

Modified: branches/guffert/VersionInfo.h
===================================================================
--- branches/guffert/VersionInfo.h	2007-08-16 01:08:00 UTC (rev 651)
+++ branches/guffert/VersionInfo.h	2007-08-16 01:34:00 UTC (rev 652)
@@ -21,11 +21,11 @@
 */
 
 /* When changing, also change configure.in and driver/myodbc3.def */
-#define SETUP_VERSION         "3.51.18"
+#define SETUP_VERSION         "3.51.20"
 #define DRIVER_VERSION        "0" SETUP_VERSION
 
 #define MYODBC_VERSION        SETUP_VERSION
-#define MYODBC_FILEVER        3,51,18,0
+#define MYODBC_FILEVER        3,51,20,0
 #define MYODBC_PRODUCTVER     MYODBC_FILEVER
-#define MYODBC_STRFILEVER     "3, 51, 18, 0\0"
+#define MYODBC_STRFILEVER     "3, 51, 20, 0\0"
 #define MYODBC_STRPRODUCTVER  MYODBC_STRFILEVER

Modified: branches/guffert/configure.in
===================================================================
--- branches/guffert/configure.in	2007-08-16 01:08:00 UTC (rev 651)
+++ branches/guffert/configure.in	2007-08-16 01:34:00 UTC (rev 652)
@@ -42,7 +42,7 @@
 AC_CANONICAL_SYSTEM
 
 # When changing, also change VersionInfo.h and driver/myodbc3.def
-AM_INIT_AUTOMAKE(mysql-connector-odbc,3.51.18)
+AM_INIT_AUTOMAKE(mysql-connector-odbc,3.51.20)
 
 myodbc_version=$VERSION
 ###################################################################

Modified: branches/guffert/driver/myodbc3.def
===================================================================
--- branches/guffert/driver/myodbc3.def	2007-08-16 01:08:00 UTC (rev 651)
+++ branches/guffert/driver/myodbc3.def	2007-08-16 01:34:00 UTC (rev 652)
@@ -32,7 +32,7 @@
 ;****************************************************************************/
 ;
 LIBRARY MYODBC3.DLL
-VERSION 03.51.18
+VERSION 03.51.20
 ;DESCRIPTION "MySQL ODBC 3.51 Driver, (C) Copyright MySQL AB 1995-2006"
 ;CODE MOVEABLE DISCARDABLE
 ;DATA MOVEABLE MULTIPLE

Modified: branches/guffert/driver/utility.c
===================================================================
--- branches/guffert/driver/utility.c	2007-08-16 01:08:00 UTC (rev 651)
+++ branches/guffert/driver/utility.c	2007-08-16 01:34:00 UTC (rev 652)
@@ -900,10 +900,19 @@
   */
   case MYSQL_TYPE_VARCHAR:
   case MYSQL_TYPE_VAR_STRING:
+#ifdef SERVER_BUG_10491_FIXED
+    /**
+      @todo Re-enable this when Bug #10491 is fixed in the server.
+    */
     if (buff)
       (void)strmov(buff, field_is_binary ? "varbinary" : "varchar");
 
     return field_is_binary ? SQL_VARBINARY : SQL_VARCHAR;
+#else
+    if (buff)
+      (void)strmov(buff, "varchar");
+    return SQL_VARCHAR;
+#endif
 
   case MYSQL_TYPE_TINY_BLOB:
     if (buff)

Modified: branches/guffert/scripts/myodbc3.spec.sh
===================================================================
--- branches/guffert/scripts/myodbc3.spec.sh	2007-08-16 01:08:00 UTC (rev 651)
+++ branches/guffert/scripts/myodbc3.spec.sh	2007-08-16 01:34:00 UTC (rev 652)
@@ -27,7 +27,7 @@
 Summary:    An ODBC 3.51 driver for MySQL - driver package
 Group:      Applications/Databases
 Version:    @VERSION@
-Release:    1
+Release:    0
 Provides:   mysqlodbcrpmpack
 %if %{com_lic}
 Copyright:  Commercial

Modified: branches/guffert/setup/MYODBCSetupDataSourceDialog.cpp
===================================================================
--- branches/guffert/setup/MYODBCSetupDataSourceDialog.cpp	2007-08-16 01:08:00 UTC (rev
651)
+++ branches/guffert/setup/MYODBCSetupDataSourceDialog.cpp	2007-08-16 01:34:00 UTC (rev
652)
@@ -241,6 +241,17 @@
             pDataSource->pszSTMT = _global_strdup(
ptab2->getInitialStatement().toAscii() );
         if ( !ptab2->getCharset().isEmpty() )
             pDataSource->pszCHARSET = _global_strdup( ptab2->getCharset().toAscii()
);
+        if ( !ptab2->getSSLKey().isEmpty() )
+            pDataSource->pszSSLKEY = _global_strdup( ptab2->getSSLKey().toAscii()
);
+        if ( !ptab2->getSSLCert().isEmpty() )
+            pDataSource->pszSSLCERT = _global_strdup( ptab2->getSSLCert().toAscii()
);
+        if ( !ptab2->getSSLCA().isEmpty() )
+            pDataSource->pszSSLCA = _global_strdup( ptab2->getSSLCA().toAscii() );
+        if ( !ptab2->getSSLCAPath().isEmpty() )
+            pDataSource->pszSSLCAPATH = _global_strdup(
ptab2->getSSLCAPath().toAscii() );
+        if ( !ptab2->getSSLCipher().isEmpty() )
+            pDataSource->pszSSLCIPHER = _global_strdup(
ptab2->getSSLCipher().toAscii() );
+
 #else
         if ( !ptab1->getDataSourceName().isEmpty() )
             pDataSource->pszDSN = _global_strdup(
ptab1->getDataSourceName().ascii() );
@@ -263,6 +274,16 @@
             pDataSource->pszSTMT = _global_strdup(
ptab2->getInitialStatement().ascii() );
         if ( !ptab2->getCharset().isEmpty() )
             pDataSource->pszCHARSET = _global_strdup( ptab2->getCharset().ascii()
);
+        if ( !ptab2->getSSLKey().isEmpty() )
+            pDataSource->pszSSLKEY = _global_strdup( ptab2->getSSLKey().ascii() );
+        if ( !ptab2->getSSLCert().isEmpty() )
+            pDataSource->pszSSLCERT = _global_strdup( ptab2->getSSLCert().ascii()
);
+        if ( !ptab2->getSSLCA().isEmpty() )
+            pDataSource->pszSSLCA = _global_strdup( ptab2->getSSLCA().ascii() );
+        if ( !ptab2->getSSLCAPath().isEmpty() )
+            pDataSource->pszSSLCAPATH = _global_strdup(
ptab2->getSSLCAPath().ascii() );
+        if ( !ptab2->getSSLCipher().isEmpty() )
+            pDataSource->pszSSLCIPHER = _global_strdup(
ptab2->getSSLCipher().ascii() );
 #endif
 
         unsigned int nFlags = ptab3->getFlags();
@@ -393,6 +414,11 @@
     ptab2->setSocket( pDataSource->pszSOCKET );
     ptab2->setInitialStatement( pDataSource->pszSTMT );
     ptab2->setCharset( pDataSource->pszCHARSET );
+    ptab2->setSSLKey( pDataSource->pszSSLKEY );
+    ptab2->setSSLCert( pDataSource->pszSSLCERT );
+    ptab2->setSSLCA( pDataSource->pszSSLCA );
+    ptab2->setSSLCAPath( pDataSource->pszSSLCAPATH );
+    ptab2->setSSLCipher( pDataSource->pszSSLCIPHER );
     ptab1->setUser( pDataSource->pszUSER );
 
     if ( pDataSource->pszOPTION )
@@ -446,7 +472,12 @@
     connect( ptab2->plineeditSocket, SIGNAL(signalAssistText(const QString&)),
ptextbrowserAssist, SLOT(setHtml(const QString&)) );
     connect( ptab2->plineeditInitialStatement, SIGNAL(signalAssistText(const
QString&)), ptextbrowserAssist, SLOT(setHtml(const QString&)) );
     connect( ptab2->pcomboboxCharset, SIGNAL(signalAssistText(const QString&)),
ptextbrowserAssist, SLOT(setHtml(const QString&)) );
-    connect( ptab3->ptab3a->pcheckboxDontOptimizeColumnWidth,
SIGNAL(signalAssistText(const QString&)), ptextbrowserAssist, SLOT(setHtml(const
QString&)) );
+    connect( ptab2->plineeditSSLKey, SIGNAL(signalAssistText(const QString&)),
ptextbrowserAssist, SLOT(setHtml(const QString&)) );
+    connect( ptab2->plineeditSSLCert, SIGNAL(signalAssistText(const QString&)),
ptextbrowserAssist, SLOT(setHtml(const QString&)) );
+    connect( ptab2->plineeditSSLCA, SIGNAL(signalAssistText(const QString&)),
ptextbrowserAssist, SLOT(setHtml(const QString&)) );
+    connect( ptab2->plineeditSSLCAPath, SIGNAL(signalAssistText(const QString&)),
ptextbrowserAssist, SLOT(setHtml(const QString&)) );
+    connect( ptab2->plineeditSSLCipher, SIGNAL(signalAssistText(const QString&)),
ptextbrowserAssist, SLOT(setHtml(const QString&)) );
+	connect( ptab3->ptab3a->pcheckboxDontOptimizeColumnWidth,
SIGNAL(signalAssistText(const QString&)), ptextbrowserAssist, SLOT(setHtml(const
QString&)) );
     connect( ptab3->ptab3a->pcheckboxReturnMatchingRows,
SIGNAL(signalAssistText(const QString&)), ptextbrowserAssist, SLOT(setHtml(const
QString&)) );
     connect( ptab3->ptab3a->pcheckboxAllowBigResults, SIGNAL(signalAssistText(const
QString&)), ptextbrowserAssist, SLOT(setHtml(const QString&)) );
     connect( ptab3->ptab3a->pcheckboxUseCompressedProtocol,
SIGNAL(signalAssistText(const QString&)), ptextbrowserAssist, SLOT(setHtml(const
QString&)) );
@@ -673,6 +704,16 @@
     stringConnectIn+= ";STMT=" + ptab2->getInitialStatement();
   if (!ptab2->getCharset().isEmpty())
     stringConnectIn+= ";CHARSET=" + ptab2->getCharset();
+  if (!ptab2->getSSLKey().isEmpty())
+	  stringConnectIn+= ";SSLKEY=" + ptab2->getSSLKey();
+  if (!ptab2->getSSLCert().isEmpty())
+	  stringConnectIn+= ";SSLERT=" + ptab2->getSSLCert();
+  if (!ptab2->getSSLCA().isEmpty())
+	  stringConnectIn+= ";SSLCA=" + ptab2->getSSLCA();
+  if (!ptab2->getSSLCAPath().isEmpty())
+	  stringConnectIn+= ";SSLCAPATH=" + ptab2->getSSLCAPath();
+  if (!ptab2->getSSLCipher().isEmpty())
+	  stringConnectIn+= ";SSLCIPHER=" + ptab2->getSSLCipher();
 
   return stringConnectIn;
 }
@@ -1049,3 +1090,4 @@
 }
 
 
+

Modified: branches/guffert/setup/MYODBCSetupDataSourceTab2.cpp
===================================================================
--- branches/guffert/setup/MYODBCSetupDataSourceTab2.cpp	2007-08-16 01:08:00 UTC (rev 651)
+++ branches/guffert/setup/MYODBCSetupDataSourceTab2.cpp	2007-08-16 01:34:00 UTC (rev 652)
@@ -24,7 +24,13 @@
                                                       QString stringPort,
                                                       QString stringSocket,
                                                       QString stringInitialStatement,
-                                                      QString stringCharset )
+                                                      QString stringCharset,
+                                                      QString stringSSLKey,
+                                                      QString stringSSLCert,
+                                                      QString stringSSLCA,
+                                                      QString stringSSLCAPath,
+                                                      QString stringSSLCipher )
+
     : QWidget( pwidgetParent )
 {
     doInit();
@@ -32,6 +38,11 @@
     plineeditSocket->setText( stringSocket );
     plineeditInitialStatement->setText( stringInitialStatement );
     pcomboboxCharset->setEditText( stringCharset );
+    plineeditSSLKey->setText( stringSSLKey );
+    plineeditSSLCert->setText( stringSSLCert );
+    plineeditSSLCA->setText( stringSSLCA );
+    plineeditSSLCAPath->setText( stringSSLCAPath );
+    plineeditSSLCipher->setText( stringSSLCipher );
 }
 
 MYODBCSetupDataSourceTab2::MYODBCSetupDataSourceTab2( QWidget *pwidgetParent )
@@ -60,6 +71,31 @@
     pcomboboxCharset->setEditText( stringCharset );
 }
 
+void MYODBCSetupDataSourceTab2::setSSLKey( const QString &stringSSLKey )
+{
+    plineeditSSLKey->setText( stringSSLKey );
+}
+
+void MYODBCSetupDataSourceTab2::setSSLCert( const QString &stringSSLCert )
+{
+    plineeditSSLCert->setText( stringSSLCert );
+}
+
+void MYODBCSetupDataSourceTab2::setSSLCA( const QString &stringSSLCA )
+{
+    plineeditSSLCA->setText( stringSSLCA );
+}
+
+void MYODBCSetupDataSourceTab2::setSSLCAPath( const QString &stringSSLCAPath )
+{
+    plineeditSSLCAPath->setText( stringSSLCAPath );
+}
+
+void MYODBCSetupDataSourceTab2::setSSLCipher( const QString &stringSSLCipher )
+{
+    plineeditSSLCipher->setText( stringSSLCipher );
+}
+
 QString MYODBCSetupDataSourceTab2::getPort()
 {
     return plineeditPort->text();
@@ -80,12 +116,42 @@
     return pcomboboxCharset->currentText();
 }
 
+QString MYODBCSetupDataSourceTab2::getSSLKey()
+{
+    return plineeditSSLKey->text();
+}
+
+QString MYODBCSetupDataSourceTab2::getSSLCert()
+{
+    return plineeditSSLCert->text();
+}
+
+QString MYODBCSetupDataSourceTab2::getSSLCA()
+{
+    return plineeditSSLCA->text();
+}
+
+QString MYODBCSetupDataSourceTab2::getSSLCAPath()
+{
+    return plineeditSSLCAPath->text();
+}
+
+QString MYODBCSetupDataSourceTab2::getSSLCipher()
+{
+    return plineeditSSLCipher->text();
+}
+
 void MYODBCSetupDataSourceTab2::doInit()
 {
     QString         stringPort( tr("The TCP/IP port to use if server is not
localhost.\nOptional: Yes (silently uses default)\nDefault: 3306") );
     QString         stringSocket( tr("The socket or Windows pipe to connect
to.\nOptional: Yes\nDefault: <empty>") );
     QString         stringInitialStatement( tr("A statement that will be executed when
connection to MySQL.\nOptional: Yes\nDefault: <empty>") );
     QString         stringCharset( tr("Default character set to use.\nOptional:
Yes\nDefault: <empty>") );
+    QString         stringSSLKey( tr("The name of the SSL key file to use for
\nestablishing a secure connection.\nOptional: Yes") );
+    QString         stringSSLCert( tr("The name of the SSL certificate file to use \nfor
establishing a secure connection.\nOptional: Yes") );
+    QString         stringSSLCA( tr("The path to a file that contains a list of \ntrusted
SSL CAs.\nOptional: Yes") );
+    QString         stringSSLCAPath( tr("The path to a directory that contains \ntrusted
SSL CA certificates in PEM format.\nOptional: Yes") );
+    QString         stringSSLCipher( tr("A list of allowable ciphers to use for SSL
encryption.\nExample: ALL:-AES:-EXP\nOptional: Yes") );
 #if QT_VERSION >= 0x040000
     QGridLayout *   playoutFields = new QGridLayout();
     setLayout( playoutFields );
@@ -150,6 +216,67 @@
     QToolTip::add(pcomboboxCharset, stringCharset);
 #endif
     nRow++;
+
+    plabel = new QLabel( tr("SSL Key"), this );
+    plineeditSSLKey = new MYODBCSetupLineEdit( this );
+    plineeditSSLKey->setAssistText( stringSSLKey );
+    playoutFields->addWidget( plabel, nRow, nColLabel );
+    playoutFields->addWidget( plineeditSSLKey, nRow, nColField );
+#if QT_VERSION >= 0x040000
+    plineeditSSLKey->setToolTip( stringSSLKey );
+#else
+    QToolTip::add( plineeditSSLKey, stringSSLKey );
+#endif
+    nRow++;
+
+    plabel = new QLabel( tr("SSL Certificate"), this );
+    plineeditSSLCert = new MYODBCSetupLineEdit( this );
+    plineeditSSLCert->setAssistText( stringSSLCert );
+    playoutFields->addWidget( plabel, nRow, nColLabel );
+    playoutFields->addWidget( plineeditSSLCert, nRow, nColField );
+#if QT_VERSION >= 0x040000
+    plineeditSSLCert->setToolTip( stringSSLCert );
+#else
+    QToolTip::add( plineeditSSLCert, stringSSLCert );
+#endif
+    nRow++;
+
+    plabel = new QLabel( tr("SSL Certificate Authority"), this );
+    plineeditSSLCA = new MYODBCSetupLineEdit( this );
+    plineeditSSLCA->setAssistText( stringSSLCA );
+    playoutFields->addWidget( plabel, nRow, nColLabel );
+    playoutFields->addWidget( plineeditSSLCA, nRow, nColField );
+#if QT_VERSION >= 0x040000
+    plineeditSSLCA->setToolTip( stringSSLCA );
+#else
+    QToolTip::add( plineeditSSLCA, stringSSLCA );
+#endif
+    nRow++;
+
+    plabel = new QLabel( tr("SSL CA Path"), this );
+    plineeditSSLCAPath = new MYODBCSetupLineEdit( this );
+    plineeditSSLCAPath->setAssistText( stringSSLCAPath );
+    playoutFields->addWidget( plabel, nRow, nColLabel );
+    playoutFields->addWidget( plineeditSSLCAPath, nRow, nColField );
+#if QT_VERSION >= 0x040000
+    plineeditSSLCAPath->setToolTip( stringSSLCAPath );
+#else
+    QToolTip::add( plineeditSSLCAPath, stringSSLCAPath );
+#endif
+    nRow++;
+
+    plabel = new QLabel( tr("SSL Cipher"), this );
+    plineeditSSLCipher = new MYODBCSetupLineEdit( this );
+    plineeditSSLCipher->setAssistText( stringSSLCipher );
+    playoutFields->addWidget( plabel, nRow, nColLabel );
+    playoutFields->addWidget( plineeditSSLCipher, nRow, nColField );
+#if QT_VERSION >= 0x040000
+    plineeditSSLCipher->setToolTip( stringSSLCipher );
+#else
+    QToolTip::add( plineeditSSLCipher, stringSSLCipher );
+#endif
+    nRow++;
 }
 
 
+

Modified: branches/guffert/setup/MYODBCSetupDataSourceTab2.h
===================================================================
--- branches/guffert/setup/MYODBCSetupDataSourceTab2.h	2007-08-16 01:08:00 UTC (rev 651)
+++ branches/guffert/setup/MYODBCSetupDataSourceTab2.h	2007-08-16 01:34:00 UTC (rev 652)
@@ -44,7 +44,12 @@
                                QString stringPort,
                                QString stringSocket,
                                QString stringInitialStatement,
-                               QString stringCharset );
+                               QString stringCharset,
+                               QString stringSSLKey,
+                               QString stringSSLCert,
+                               QString stringSSLCA,
+                               QString stringSSLCAPath,
+                               QString stringSSLCipher );
 
     MYODBCSetupDataSourceTab2( QWidget *pwidgetParent );
 
@@ -52,11 +57,21 @@
     void setSocket( const QString &stringSocket );
     void setInitialStatement( const QString &stringInitialStatement );
     void setCharset( const QString &stringCharset );
+    void setSSLKey( const QString &stringSSLKey );
+    void setSSLCert( const QString &stringSSLCert );
+    void setSSLCA( const QString &stringSSLCA );
+    void setSSLCAPath( const QString &stringSSLCApath );
+    void setSSLCipher( const QString &stringSSLCipher );
 
     QString getPort();
     QString getSocket();
     QString getInitialStatement();
     QString getCharset();
+    QString getSSLKey();
+    QString getSSLCert();
+    QString getSSLCA();
+    QString getSSLCAPath();
+    QString getSSLCipher();
 
 signals:
     void signalRequestCharsetNames();
@@ -66,9 +81,15 @@
     MYODBCSetupLineEdit *            plineeditSocket;
     MYODBCSetupLineEdit *            plineeditInitialStatement;
     MYODBCSetupComboBoxDatabases *   pcomboboxCharset;
+    MYODBCSetupLineEdit *            plineeditSSLKey;
+    MYODBCSetupLineEdit *            plineeditSSLCert;
+    MYODBCSetupLineEdit *            plineeditSSLCA;
+    MYODBCSetupLineEdit *            plineeditSSLCAPath;
+    MYODBCSetupLineEdit *            plineeditSSLCipher;
 
     void doInit();
 };
 
 #endif
 
+

Modified: branches/guffert/test/my_catalog.c
===================================================================
--- branches/guffert/test/my_catalog.c	2007-08-16 01:08:00 UTC (rev 651)
+++ branches/guffert/test/my_catalog.c	2007-08-16 01:34:00 UTC (rev 652)
@@ -222,41 +222,25 @@
 }
 
 
-void my_colpriv_init(SQLHDBC hdbc,SQLHSTMT hstmt)
+DECLARE_TEST(my_colpriv)
 {
-    SQLRETURN rc;
+  ok_sql(hstmt, "DROP TABLE IF EXISTS test_colprev1");
+  ok_sql(hstmt, "DROP TABLE IF EXISTS test_colprev2");
+  ok_sql(hstmt, "DROP TABLE IF EXISTS test_colprev3");
 
-    SQLExecDirect( hstmt, "DROP TABLE test_colprev1",SQL_NTS);
-    SQLExecDirect( hstmt, "DROP TABLE test_colprev2",SQL_NTS);
-    SQLExecDirect( hstmt, "DROP TABLE test_colprev3",SQL_NTS);
+  ok_sql(hstmt, "CREATE TABLE test_colprev1(a INT,b INT,c INT, d INT)");
+  ok_sql(hstmt, "CREATE TABLE test_colprev2(a INT,b INT,c INT, d INT)");
+  ok_sql(hstmt, "CREATE TABLE test_colprev3(a INT,b INT,c INT, d INT)");
 
-    SQLFreeStmt(hstmt, SQL_CLOSE);
+  (void)SQLExecDirect(hstmt, (SQLCHAR *)"DROP USER my_colpriv", SQL_NTS);
 
-    rc = SQLExecDirect(hstmt, "CREATE TABLE test_colprev1(a INT,b INT,c INT, d
INT)",SQL_NTS);
-    mystmt(hstmt,rc);
-    rc = SQLExecDirect(hstmt, "CREATE TABLE test_colprev2(a INT,b INT,c INT, d INT)",  
SQL_NTS);
-    mystmt(hstmt,rc);
+  ok_sql(hstmt, "GRANT SELECT(a,b),INSERT(d),UPDATE(c) ON test_colprev1 TO my_colpriv");
+  ok_sql(hstmt, "GRANT SELECT(c,a),UPDATE(a,b) ON test_colprev3 TO my_colpriv");
 
-    rc = SQLExecDirect(hstmt, "CREATE TABLE test_colprev3(a INT,b INT,c INT, d INT)",  
SQL_NTS);
-    mystmt(hstmt,rc);
+  ok_sql(hstmt, "FLUSH PRIVILEGES");
 
-    SQLFreeStmt(hstmt, SQL_CLOSE);
+  ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE));
 
-    SQLExecDirect(hstmt, "DELETE FROM mysql.columns_priv where
USER='my_colpriv'",SQL_NTS); 
-    rc = SQLExecDirect(hstmt, "GRANT SELECT(a,b),INSERT(d), UPDATE(c) ON test_colprev1 TO
my_colpriv",SQL_NTS);     
-    mystmt(hstmt,rc);
-    rc = SQLExecDirect( hstmt, "GRANT SELECT(c,a),UPDATE(a,b) ON test_colprev3 TO
my_colpriv",  SQL_NTS);     
-    mystmt(hstmt,rc);
-
-    SQLExecDirect(  hstmt, "FLUSH PRIVILEGES",  SQL_NTS);
-    SQLFreeStmt(hstmt, SQL_CLOSE);  
-}
-
-
-DECLARE_TEST(my_colpriv)
-{
-  my_colpriv_init(hdbc, hstmt);
-
   ok_stmt(hstmt, SQLColumnPrivileges(hstmt,
                                      NULL, SQL_NTS, NULL, SQL_NTS,
                                      "test_colprev1", SQL_NTS, NULL, SQL_NTS));
@@ -312,7 +296,10 @@
 
   ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE));
 
+  ok_sql(hstmt, "DROP USER my_colpriv");
+
   ok_sql(hstmt, "DROP TABLE test_colprev1, test_colprev2, test_colprev3");
+
   return OK;
 }
 

Modified: branches/guffert/test/my_result.c
===================================================================
--- branches/guffert/test/my_result.c	2007-08-16 01:08:00 UTC (rev 651)
+++ branches/guffert/test/my_result.c	2007-08-16 01:34:00 UTC (rev 652)
@@ -1785,6 +1785,25 @@
 }
 
 
+DECLARE_TEST(t_binary_collation)
+{
+  SQLSMALLINT name_length, data_type, decimal_digits, nullable;
+  SQLCHAR column_name[SQL_MAX_COLUMN_NAME_LEN];
+  SQLULEN column_size;
+
+  ok_sql(hstmt, "DROP TABLE IF EXISTS t_binary_collation");
+  ok_sql(hstmt, "CREATE TABLE t_binary_collation (id INT)");
+  ok_sql(hstmt, "SHOW CREATE TABLE t_binary_collation");
+
+  ok_stmt(hstmt, SQLDescribeCol(hstmt, 1, column_name, sizeof(column_name),
+                                &name_length, &data_type, &column_size,
+                                &decimal_digits, &nullable));
+  is_num(data_type, SQL_VARCHAR);
+  ok_sql(hstmt, "DROP TABLE IF EXISTS t_binary_collation");
+  return OK;
+}
+
+
 BEGIN_TESTS
   ADD_TEST(my_resultset)
   ADD_TEST(t_convert_type)
@@ -1806,6 +1825,7 @@
   ADD_TEST(t_bug27544)
   ADD_TEST(t_bug16817)
   ADD_TEST(bug6157)
+  ADD_TEST(t_binary_collation)
 END_TESTS
 
 

Thread
Connector/ODBC 3.51 commit: r652 - in branches/guffert: . driver scripts setup testjwinstead16 Aug