During the last few months I was the only person working on the
MySQL packages in Debian, and I could really need some help.
Currently there is MySQL 5.0.32 in etch, 5.0.51a in lenny, 5.0.75
in unstable and 5.1.31 in experimental, and I am also trying to
get MySQL Cluster and MySQL Workbench into Debian. All in all it
is way too much work for only one developer.
If you are an interested Debian developer/maintainer with a good
knowledge in MySQL and shared library packaging, drop me a mail.
Are you allowed to have jokes here? Or will I be forever banned
if I try to be funny? I don't know, but that's not stopping me at
least! This came from a friend:
A SQL Query walks into a bar. In one corner of the bar are two
tables. The Query walks up to the tables and asks:
- Mind if I join you?
/Karlsson
Congratulations to the Debian team for releasing Debian GNU/Linux 5.0 Lenny on Valentine’s Day. This version comes with MySQL 5.0.51a.
I had been pestering Norbert Tretkowski to see when MySQL 5.1 will move from experimental to main, and he told me once Lenny was released. This is because Debian itself needs to make a library transition from libmysqlclient15 to libmysqlclient16, and every package that links to libmysqlclient will need to rebuild against the new version. It couldn’t be done any earlier, and now that Lenny is released, we should start seeing MySQL 5.1 in Debian/unstable, real soon now.
So, if you’re a Debian user, know that you have 5.0.51a in stable (Lenny), 5.0.75 in unstable, and 5.1.31 in …
[Read more]
To add to the confusion with valid DATE values in MySQL, there is
the issue that it's not really 100% clear what a valid date is.
Most RDBMS systems aren't as forgiving as MySQL, so trying to
insert a date in a DATE column like this '2009-02-30' will cause
an error with, say Oracle (which has it's own problems, as the
Oracle date datatype is really a DATETIME, but the default is to
only display the DATE part. This is onle of the #1 mistakes
newcomers to Oracle do:
SELECT datecolumn FROM table_with_dates;
datecol
=========
2009-01-01
SELECT * FROM table_with_dates WHERE datecol = '2009-01-01'
No rows returned;
)
The above was a long parentesis, maybe a recordbreaking
such?
Anyway, getting back to my original point, is 2009-02-30 a valid
date or not? Look in your calendar, and you see that it's not. On
the other hand, ask someone who work with fincial instruments,
and the answer …
I read Tokyo Cabinet: Beyond Key-Value Store today from one of the news sites, and it reminded me of Brian’s hack on Tokyo Cabinet == Tokyo Engine. Looking at TokyoEngine in Brian’s Mercurial repository, there have been no updates in over a year. Is anyone planning on taking up development of this? Tokyo Cabinet looks really interesting, and Brian has already started the enabling of making it a MySQL engine.
[Read more]Let’s grab your attention with a shameless marketing ploy: How would you like up to a 14X performance boost in your Mysql database performance? Now your hooked who wouldn’t want a 14x boost? Well we got that using Dolphin interconnects and Waffle Grid! Read on!
As you know over the last few weeks the good folks over at Dolphin Interconnect Solutions have lent me use of a couple of servers with their interconnects installed ( They also sent me a couple of cards to test with, but I ended up not being able to secure the hardware to put these through their paces at my home office ) . I ran into several challenges in the testing, and we also found out a lot about Waffle Grid and where we have some open bugs ( its good to test Waffle at the fringe of performance and see what breaks).
The oddest thing I ran into here was the way using the Dolphin cards …
[Read more]Pythian DBA’s have daily reports for each monitored database and some of the components are using charts to visualize the data. I’m a big fan of charts myself (when applied appropriately) and want to show how you can generate simple charts directly from the database. You’d be very surprised how easy it can be done from *any* database without installing any additional software or configuring something special.
This method is not limited to Oracle by any means — use it with MySQL, SQL Server or any other database as well as without a database — yes, visualize your sar data now!
In this example, we will plot a pie diagram with Oracle tablespaces. This would be very handy when you are starting to analyze the space allocation for a database. Here is the end result of the report for my Grid Control repository test database:
The secret …
I see my collague Anders wrote some thoughts on date handling in MySQL. I recently had to explain this really down to fine details for a customer, so Anders, everyone else, here's my conclusions...
All the fine details of allowed ways to enter dates are explained
here:
http://dev.mysql.com/doc/refman/5.1/en/datetime.html
With dates, just as in many other cases, MySQL is very flexible in how you can input data. But one thing is that, between the multitudes of formats that are allowed, MySQL does \*not\* by default allow you to enter a non-existant date, e.g. "31st of February 2009". I know some other DB products allow that - they then store it as a correct date automatically (3rd of March 2009). This is mentioned at the end of …
[Read more]I see my collague Anders wrote some thoughts on date handling in MySQL. I recently had to explain this really down to fine details for a customer, so Anders, everyone else, here's my conclusions...
All the fine details of allowed ways to enter dates are explained
here:
http://dev.mysql.com/doc/refman/5.1/en/datetime.html
With dates, just as in many other cases, MySQL is very flexible in how you can input data. But one thing is that, between the multitudes of formats that are allowed, MySQL does \*not\* by default allow you to enter a non-existant date, e.g. "31st of February 2009". I know some other DB products allow that - they then store it as a correct date automatically (3rd of March 2009). This is mentioned at the end of …
[Read more]One request I occasionally see is for a case insensitive version of REPLACE() for MySQL. I wrote this a while back, but here it is now for all of you to play around with. It uses a basic naïve string search algorithm, so can be slow under some circumstances.
DELIMITER $$ DROP FUNCTION IF EXISTS `replace_ci`$$ CREATE FUNCTION `replace_ci` ( str TEXT,needle CHAR(255),str_rep CHAR(255)) RETURNS TEXT DETERMINISTIC BEGIN DECLARE return_str TEXT DEFAULT ''; DECLARE lower_str TEXT; DECLARE lower_needle TEXT; DECLARE pos INT DEFAULT 1; DECLARE old_pos INT DEFAULT 1; SELECT lower(str) INTO lower_str; SELECT lower(needle) INTO lower_needle; SELECT locate(lower_needle, lower_str, pos) INTO pos; WHILE pos > 0 DO SELECT concat(return_str, substr(str, old_pos, pos-old_pos), str_rep) INTO return_str; SELECT pos + char_length(needle) INTO pos; SELECT pos …[Read more]