A common problem in MySQL is the comparatively simple act of defining a TIMESTAMP column which has as its default value the timestamp at the time the record is created. In most databases this is simply a case of appending DEFAULT NOW() to the timestamp column.
Beginning with version 4.1.2 MySQL now supports this, albeit as an overlay to the slightly eccentric TIMESTAMP functionality, making life just that little bit easier.
The most prominent new feature of MySQL 4.1 is the introduction of subqueries (also known as subselects), a very welcome addition which brings MySQL's feature set a little closer to that of other databases.
It's possible to modify the way in which MySQL interprets certain parts of SQL, useful when porting queries from other databases. For example, the option PIPES_AS_CONCAT will persuade it to accept || as a concatenation operator rather than as a synonym for OR (see also gotcha 1.12). In 4.1 this facility has been extended considerably.
After a long testing period MySQL 4.1 has finally been declared production ready and is available for download. Representing a further incremental step in MySQL's steady advancement towards fully-fledged RDBMS-dom, it provides several sorely-missed features including sub-SELECTs.
It looks like MySQL are moving their mailing lists to a forum-based solution, currently in beta-testing. Whether these will completely replace the lists, or provided an alternative web-based interface, isn't yet clear.
Having recently debugged a MySQL replication setup, I was having a hard time keeping track of which database was open in which mysql command line client, as since before the start of time the prompt has been a very terse mysql> , giving no visual clue to which database is currently the default.
Fortunately, beginning with release 4.0.2 MySQL now provides a little-known option to set the prompt in a manner similar to that used in UNIX shells.
While browsing the online documentation I came across this snippet:
From MySQL 4.1.0, the attribute SERIAL can be used as an alias for BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE. This is compatibility feature.
I thought it was a joke when I first heard about it, but the MySQL command line client has this option where you can actually tell it you're stupid:
mysql --i-am-a-dummy -uroot test