Ulf Wendel

2009/04/16
by admin
Comments Off on MySQL Connector/C++: DevZone article on how to build from source

MySQL Connector/C++: DevZone article on how to build from source

Installing MySQL Connector/C++ from Source is the title of a Developer Zone article published today. Knowing how to build the driver from source is important to know for users of the MySQL driver for C++. C++ binaries are less portable than we would wish. There are reasons for incompatibilities beyond our control (different STL version, different compiler versions, …). If your system is not compatible with the build system we use for creating binaries, you may be forced to build the driver from source. I hope we do listen properly to you, if ….

Giri Mandalika
The DevZone article has been written by Giri Mandalika. Giri has been introduced to me by Google Alerts. All of a sudden, someone else blogged about mysqlnd and published PHP: Memory savings with mysqlnd on January, 31st. His DevZone article and his mysqlnd blog are very thoroughly written. Google Alerts are a wonderful toy. Some five hours before I was informed that the MySQL C++ web seminar had been scheduled and put on the MySQL web site, Google Alerts told me…

2009/04/15
by admin
Comments Off on MySQL UC 2009: without me but with C++ and mysqlnd

MySQL UC 2009: without me but with C++ and mysqlnd

Coming out of the day: I am not at the MySQL Conference and Expo 2009!

Andrey, who has developed the majority of the source code of both MySQL Connector/C++ and the MySQL native driver for PHP (mysqlnd), will be giving two talks about them. Lawrin, Andrey and I finished writing the slides for the Not so Quiet on the C++ Front talk. Johannes, Andrey and I also finished writing the slides for the mysqlnd: How the PHP/MySQL Stack Got Better presentation.

And, last but not least, Andrey will be the co-presenter of Using the Event Scheduler: The Friendly Behind-the-Scenes Helper. Enjoy!

2009/04/09
by admin
Comments Off on MySQL Connector/OpenOffice.org: Alpha 2 is ready for testing!

MySQL Connector/OpenOffice.org: Alpha 2 is ready for testing!

Alpha 2 has been announced. You can download the MySQL Connector/OpenOffice.org, an OpenOffice.org extension to connect from OpenOffice.org 3.1 to MySQL 5.1 or newer from ftp://qa-upload.services.openoffice.org/MySQLNative/. OpenOffice.org extensions as easy to install Plug-Ins. Installation instructions can be found at the MySQL Forge wiki page on the MySQL driver for OpenOffice.org.

The MySQL Connector/OpenOffice.org is the easiest way to connect OpenOffice.org and MySQL. Unlike the ODBC and JDBC bridges the "native driver", as its called on the OpenOffice.org world, does not require any extra driver installation and configuration on your system. Download the extension, install it using the OpenOffice.org Extension Manager and you are done.

Continue Reading →

2009/04/08
by admin
Comments Off on MySQL Connector/OpenOffice.org: the project is alive!

MySQL Connector/OpenOffice.org: the project is alive!

Alpha 2?!
The MySQL Connector/OpenOffice.org project is still alive. The code of the alpha version has been "frozen". The Hamburg based Sun OpenOffice.org QA team is testing the alpha builds of the OpenOffice.org extension for OpenOffice.org 3.1. Initial feedback is very promising. Under the hood, the alpha version is using the recently released beta of the MySQL Connector/C++. The MySQL Connector/OpenOffice.org is implemented as an OpenOffice.org extension. OpenOffice.org extensions are extremly easy to install Plug-Ins for OpenOffice.org.

The MySQL Connector/OpenOffice.org is also refered to as "native driver". The term "native driver" in MySQL speech means that the driver implements the MySQL Client Server Protocol. This is not the case for the MySQL OpenOffice.org driver. OpenOffice.org and MySQL wordings are clashing a bit. "Native driver for OpenOffice.org" means that you get an out-of-the-box solution. You install exactly one extension and everything works (or should work ;-)). It has been possible to connect from OpenOffice.org to MySQL for a long time. But it has never been as easy as now: download the extension, install it, enjoy MySQL!

Where has "release often" gone?

The project has seen many delays and challenges. The MySQL driver for OpenOffice.org has been waiting for the MySQL Connector/C++ to mature for a long time. And MySQL Connector/C++ in turn, would love to see a GA release of the MySQL Connector/C. OpenOffice.org is written in C++. So is MySQL Connector/C++. The OpenOffice.org database API is called SDBC resp. SDBCX. SDBC(X) is derived from JDBC. The MySQL driver for C++ implements a JDBC-like API. But MySQL Connector/C++ is not a native driver in the MySQL sense. It needs the MySQL Connector/C (or the libmysql) for connecting to MySQL. You see the dependencies? There is more. Both Connector/C++ and Connector/C use CMake. The OpenOffice.org build system does not support CMake… yet? And so on.

The work on the MySQL Connector/OpenOffice.org has helped us tremendously identifying meta-data related issues in the alpha version of MySQL Connector/C++. Thanks to the feedback from the OpenOffice.org Base team we have identified this weakness and improved the driver. You probably would not have had much fun using earlier versions of the extension. Honestly, they have been terrible.

Acknowledgements

Credits go to:

  • Georg Richter from the MySQL Connectors team – for the initiative and killing his notebooks HDD compiling OO.org
  • Frank Schoenheit from the OpenOffice.org Base team – he is truly a tech lead with excellent communication skills!
  • Ocke Janssen from the OpenOffice.org Base team – in particular for porting JDBC tests
  • Andrey Hristov from the MySQL Connectors team – why don’t we call him senior developer yet – he has written 70% of the drivers code!
  • Rene Engelhard from the OO.org community – for most valuable build system hints&tricks and integrating the extension into it!
  • Mechtilde Stehmann from the OO.org community – for being around, simple as that! In the future – hopefully – for QA

More? Stay tuned. Alpha is not far from now.

2009/04/07
by admin
Comments Off on MySQL Connector/C++: Who is who?

MySQL Connector/C++: Who is who?

The who-is-who of the MySQL Connector/C++

This is the Who-is-who of the MySQL driver for C++. From top left to bottom right: Andrey Hristov, Edwin Desouza, Lawrenty ”Lawrin” Novitsky (the older guy), Ignacio “Iggy” Galarza, Georg Richter, Kent Boortz, Elizabeth “Liz” Drachnik, Michael “Mike” Frank, Anthony “Tony” Bedford.

Continue Reading →

2009/04/06
by admin
Comments Off on MySQL Connector/C++: how to build a client on Linux using NetBeans 6.5 (for Dummies)

MySQL Connector/C++: how to build a client on Linux using NetBeans 6.5 (for Dummies)

Running a Connector/C++ client on Linux

A few days ago, I have published a tutorial on building a Connector/C++ client application on Windows using Visual Studio. Its time for a Linux How-To. My I-Do-Everything (IDE) choice on Linux is NetBeans 6.5. NetBeans is open-source and free. A version with C and C++ support is lightweight (24MB download) and the code-completion feature has ruled out Katy (kate) for writing Connector/C++ tests.
http://www.netbeans.org

I am happy with every fast editor that offers syntax highlighting and supports a mouse. NetBeans does both. I do not know how to write Unix Makefiles. NetBeans does. A perfect match for Dummies and Little Idiots to build a C++ client application for MySQL using the MySQL Driver for C++.

Table of Contents

Continue Reading →

2009/04/01
by admin
Comments Off on MySQL Connector/C++: Guide on building a windows client using Visual Studio (for Dummies)

MySQL Connector/C++: Guide on building a windows client using Visual Studio (for Dummies)

These materials have been created in April 2009 and are outdated. No promises this still works.

Hello World!

Little idiots (culture clash – “Dear, Dummies”), please find a tutorial on how to compile a command line client using the MySQL Driver for C++ with Visual Studio."Little idiot" may sound offending to native speakers. But it is spot on to describe my skills about compiling a Connector/C++ client on Windows. I need step-by-step instructions including screen shots. You will find them below.

The Internet Super Hero has started as a Little Idiot. Back in 1999 and ealier little idiots speaking german and trying to learn how to use MySQL loved Guido Stepkens MySQL introduction at http://www.little-idiot.de/mysql/mysql.html. Thank you for this early contribution to MySQL 3.23 and PHP 3, Guido! I still love the URL – little-idiot.de.

Contents

Continue Reading →

2009/03/31
by admin
Comments Off on MySQL Connector/C++ 1.0.4 beta is available: source and binary packages

MySQL Connector/C++ 1.0.4 beta is available: source and binary packages

The first beta version of MySQL Connector/C++ is available for download. The MySQL Driver for C++ offers a convenient API derived from the industrial standard JDBC 4.0. You can use the driver to connect to the MySQL Server 5.1 or newer. Please find more details in the official announcement mail.

GA will be almost identical to Beta

The 1.0.4 beta release is the first combined source and binary release. You can either build the MySQL Driver for C++ from source yourself or use the convenience of a prebuild binary distribution. For the Windows platform we are offering the binaries as a MSI Installer or, like on all other platforms, compressed GNU tar archives (.tar.gz). The MSI Installer does not require any special privileges to run because all it does is copying the Connector/C++ files. We do not offer platform specific binary package format such as RPM or pkgadd packages yet but we plan to do so for the GA release.

The beta version contains all features you will find in the GA release. No major features are missing. Last minute additions, may happen. We believe to have everything covered that is required by the latest development version of MySQL Workbench. The latest development version of MySQL Workbench runs successfully on MySQL Connector/C++ since November 2008.

We hope to further improve our already very good test results in the GA version. We pass more than 99,5% of our >720 tests pass on all >40 build platforms against the latest patch level of MySQL 5.1.31. About 50% of our tests are derived from our JDBC compliance test suite. The MySQL Connector/C++ seems to have no or very few platform specific issues. If a test passes, it passes on all platforms.

The tests cover about 85% of our code base. The remaining 15% are very difficult to reach. They are usually about handling server errors that are very unlikely to happen.

The MySQL driver for C++ supports more than 40 platforms. The list of supported platforms is documented in the MySQL Reference Manual. MySQL Connector/C++ aims to support all platforms also supported by the latest GA version of the MySQL Server 5.1. Please check the README file contained in every binary distribution (*.tar.gz) for information on what compiler and settings has been used to build the binaries.

Changelog – from Alpha to Beta

Below you can find a detailed description of additions, changes and fixed performed since the release of the last alpha version about four weeks ago.

Additions:

  • Prepared support for upcoming Connector/C. (Georg)
  • Added Windows GUI (MSI) installer. (Georg)
  • Added “metadataUseInfoSchema” to connection propery map which allows you to control the use of the INFORMATION_SCHEMA for meta data. (Andrey)
  • Implemented MySQL_ConnectionMetaData::supportsConvert(from, to). (Andrey)
  • Introduced sql::DataType::YEAR to complement MySQL’s YEAR type. (Andrey)
  • Introduced PreparedStatement::getMetaData(). (Andrey)
  • Introduced ResultSetMetaData::isZerofill(), which is not in the JDBC specification. (Andrey)
  • Implementation for MySQL_DatabaseMetaData::getProcedures() when INFORMATION_SCHEMA is asked not to be used. (Andrey)

Fixes and Changes:

  • Bumping up CMake minimum version requirement from 2.4.2 to 2.6.2. We need the latest version for Windows. (Lawrin)
  • Fixed a bug in all implementations of ResultSet::relative() which was giving wrong return value although positioning was working correctly. (Andrey)
  • Fixed a leak in MySQL_PreparedResultSet when the result was containing a BLOB column. (Andrey)
  • Fixed all implementations of ResultSet::isNull() to check whether the current position is on a real row, not isBeforeFirst() nor isAfterLast(), like all getXXX methods do. (Andrey)
  • Removed MySQL_DatabaseMetaData::getProcedureColumns() from the interface. Until now it was returning always an empty result set. Full implementation will be added at a later stage. (Andrey)
  • Changed a bunch of methods of DatabaseMetaData()::getXXX, which returned `int` to return `unsigned int` because it makes more sense. (Andrey)

Additional Resources

2009/03/12
by admin
Comments Off on Your ticket for “PHP Unconference 2009”

Your ticket for “PHP Unconference 2009”

… is waiting for you at http://de.amiando.com/phpunconference. Hurry up to get a ticket for the PHP Unconference 2009 in Hamburg/Germany (12.-13.09.2009): 26% of the tickets sold during the first 6 hours.

I have received the invitation letter via email at 11:51 am my time. It is now 6:05 pm. There are 180 tickets available. The participant list shows 47 participants. Do the math: 26% of the tickets have been sold during the last six hours. At this speed the event will be sold out within a day: Register now!

My personal take on the PHP Unconference is that it is in no way less interesting than any other PHP conference I have been to since the year 2000. If you have something to say about PHP and, you want to share your opinions, visit it. But remember that it is an unconference. You must get involved at the event to make it a success.

2009/02/27
by admin
1 Comment

Leute, kauft bei Herrn Köln von Hagebau!

Ich war selten so ein zufriedener Kunde wie heute! Herr Köln, gar nicht narrisch trotz Faschingszeit, ist der Held des Tages. Herr Köln arbeitet im Hagebaumarkt in Wesseln. Wesseln ist eine kleine Ortschaft, welche die Kreisstadt Heide (Holstein) in den elitären Kreis der Orte mit Trabanten hebt.

"Hmm.. ", Herr Köln lächelt mich an und steht auf, um den Laden zu überblicken. "Welches Regal meinen Sie?". Ist doch klar, was ich meine. Ich meine das Regal, welches ich kaufen will. Es ist stabil und bereits aufgebaut. Die Seiten und die Rückwand sind aus Drahtgeflecht. Und es hat Einlageböden, die ein klein wenig an einen Korb erinnern. "Ist das ein Regalsystem?", frage ich ungeduldig.

Herr Köln mustert seinen Baumarkt. Warum dauert es immer so furchtbar lange. Ich weiß doch was ich will! Menschliche Kommunikation ist fehlerbehaftet. Hat das mal jemand getestet? Gibt es einen Unit-Test "Ulf kauft bei Hagebau ein."? Code Coverage, 10% !? Ich versetze mich in die Rolle des Programmierers dessen Kunde, sein Firmenlogo auf seiner Website genau drei Zentimeter breit möchte. Vielleicht mache ich etwas grundlegendes falsch: "Gehört das Regal zum Ladeninventar?". "Ach, das dort. Ja, das gehört zu uns.", bestätigt Herr Köln meinen Verdacht. "Schade, genau so eines suche ich. Das wäre perfekt. Sie schließen doch eh, verkaufen Sie es mir!". Habe ich das gerade gesagt? Das macht man doch nicht!

"Sagen Sie einen Preis!", lautet die spontane Reaktion. Mir fehlen die Worte. Zum Glück habe ich meinen großen Bruder mit. "Machen Sie einen Vorschlag." entgegnet er. Das Spielchen wiederholt sich noch einige Male. Doch wenig später erhalten wir Anweisung an die Kasse zu gehen mit unserem Regal und einen Preis von 15,95 Euro anzumelden. Mit Grüßen von Herrn Köln. "’Köln’ wie die Stadt."

Ach, wenn doch nur alles so einfach wäre beim Umzug von Eltern, die nach 39 Jahren ihr Haus verlassen…