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 test | jwinstead | 16 Aug |