Why do we continue to lust after Apple products when Apple treats us like two-year olds? READ MORE
Anybody out there know more that one language?
We’ve got gettext going in the drizzle source now, and although we don’t have all the strings marked yet, we do have a start, and it’s time to get going on translating!
If you’d like to help out, just head over to launchpad, pick a language and get going! You may want to go to your launchpad settings and pick your preferred languages first, though, else the list of offered languages might be a little odd.
I’m guessing the easiest ones will be “English (Australia), English (Canada) and English (United Kingdom)” … but I could be wrong…
[Read more]
I should be faster with publishing slides but things are how they
are. The slides from my OSCON2008 talk are now published at Percona Presentation Pages.
Enjoy
Entry posted by peter | 4 comments
[Read more]In an effort to speed up my database updates, I've been looking for ways to batch some of my updates. CASE seems like the way to go:
mysql> create table bar(a tinyint, b tinyint);
Query OK, 0 rows affected (0.02 sec)
mysql> insert into bar(a) values(1), (2), (3), (4), (5);
Query OK, 5 rows affected (0.00 sec)
Records: 5 Duplicates: 0 Warnings: 0
mysql> select * from bar;
+------+------+
| a | b |
+------+------+
| 1 | NULL |
| 2 | NULL |
| 3 | NULL |
| 4 | NULL |
| 5 | NULL |
+------+------+
5 rows in set (0.00 sec)
mysql> update bar set b = case a
-> when 1 then 42
-> when 2 then 43
-> when 3 then 44
-> else 45
-> end;
Query OK, 5 rows affected (0.00 sec)
Rows matched: 5 Changed: 5 Warnings: 0
mysql> select * from bar;
+------+------+
| a | b |
+------+------+
| 1 | 42 |
| 2 | 43 |
| 3 | 44 |
| 4 | 45 |
| 5 | …[Read more]
GlassFish and
MySQL bundle was
released a while ago and I finally got a
chance to try it out. Here are simple instructions to get you
started:
- Download GlassFish and MySQL co-bundle zip from here.
- Install the bundle (detailed docs)
- Create a temp directory and unzip the contents of bundle
there. The contents are:
-rw-r--r-- 1 arungupta arungupta 239703 Mar 19 02:57 3RD-PARTY-LICENSE.txt
…
- Create a temp directory and unzip the contents of bundle
there. The contents are:
|
After a longer than expected hiatus, MySQL Community Server is back with release 5.0.67. There have been complaints about this delay, but the claim that the community edition was dead has proven to be groundless. Being a maintenance release, this edition has no new features. There is an important security fix, though, and anyone using MySQL 5.0.x should read the release notes and act … |
I'm sitting in the back of the training room in Brisbane,
following Sebastian Bergmann on the first day of his
Quality Assurance in PHP Projects workshop. He is
of course the right man for that job, since he wrote PHPUnit.
I have to run off after lunch to catch my flight to Adelaide
(SAGE-AU 2008 Conference), where I'll be doing a
tutorial on MySQL Backup and Replication strategies, and a
session on managing e-mail and task overload ;-)
Here are three short routines that raise tough questions. I’ll bet that many MySQL stored-procedures experts will fail to answer all three.
Question 1. The Ambiguous Identifier
Given one table and one stored procedure:
DELIMITER //
CREATE TABLE t (x INT)//
INSERT INTO t VALUES (1)//
CREATE PROCEDURE p ()
BEGIN
DECLARE x INT DEFAULT 2;
SELECT x FROM t;
END//
CALL p()//
Notice that x is both a column and a variable.
MySQL will return
(a) ‘1′ because that’s the value of column x.
(b) ‘2′ because that’s the value of variable x.
(c) an error message because x is ambiguous.
?
Question 2. The same-level handler
Given one table and one stored procedure:
DELIMITER //
SET @@sql_mode=”//
CREATE TABLE t (x SMALLINT)//
CREATE PROCEDURE p ()
…
I was just reading Sheeri’s post Why You Want to Switch to MySQL 5.1, and my
favorite 5.1 feature jumped out at me.
Online, table-based logging.
It doesn’t get a lot of press, which is sad, because it’s hella useful. I can’t tell you how many times I’ve showed up to a client’s site to help with performance tuning, started with “well, let’s look at the slow log” and (as I’m sure we all know) been foiled by the fact that they don’t have it on and can’t do a server restart. I was even at a client a couple of weeks ago where they were actually using the CSV engine support of this… although I’d never really found that all that interesting myself.
Online logging. It’ll make all the ($gender_of_sexual_preference) love you!
…
[Read more]
IT WORKS!!!
And not a moment too soon.
I've finished my day job for the summer and have been pouring
over the code the last few days trying to isolate the last two
bugs.
I've also received word that I don't have 8 days left, I have
1...so I'm a bit rushed but still hopeful.
As part of my bug fixing for the hit code (which works
beautifully now) I was able to remove all of the unnecessary
mutex locking from within the cache. This is a nice speed boost
as there is no longer any need to lock and unlock when working
with the cache. It just works (tm).
I have a fairly rough implementation of the invalidate code that
looks something like this:
if(anything changed) {
nuke_the_cache();
}
It works, and it allows for multiple instances to use the same
cache.
My next task is to make this a bit more refined (per table
invalidation) by using …