In this Developers Zone article we take an in-depth look at how the ALTER TABLE command is implemented in MySQL Cluster 5.0.
Alfresco had a nice review in InfoWorld recently. Its a powerful Content Management System (CMS) suitable for document sharing in the enterprise. If you've read this blog previously you've probably seen I've been very positive on Alfresco. They've got a great user interface and a very well thought out architecture. Which is not surprising as the guys at Alfresco have been doing Content Management Systems since before it was an acronym! Check out their latest release version 1.3. It's easy to set up and install and adheres to the latest standards. And it's built on a fully open source stack.
- InfoWorld: Alfresco Delivers Open CMS Alternative
- …
I finally got around to reading The Cathedral and the Bazaar — I’d known about the collection of essays since it was first published in 1999, and kept meaning to read it. Heck, that link goes to the entirety of the essays, free, online. However, I never did read it, but I recently received a copy of the book, and have been reading it on my commute to work.
It’s very engaging, and still accurate, even now. Of course I think about how MySQL’s growth and business model as I’m reading it.
One of the tenets that keeps appearing is that “Brooks’ law that adding more people adds more complexity and actually slows a project down doesn’t apply to open source.” He gives a few reasons, mostly communication, but there’s one crucial point he misses.
Brooks’ law doesn’t apply to open source because there are little or no startup …
[Read more]
From time to time I install MySQL from the development tree, to
see what's new, and in the latest one I found a pleasant
surprise:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 5.1.12-beta
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql [localhost] {datacharmer} ((none)) > show variables like "%log";
+--------------------------------+-------+
| Variable_name | Value |
+--------------------------------+-------+
| back_log | 50 |
| general_log | OFF |
| innodb_locks_unsafe_for_binlog | OFF |
| log | OFF |
| slow_query_log | OFF |
| sync_binlog | 0 |
+--------------------------------+-------+
6 rows in set (0.00 sec)
mysql [localhost] {datacharmer} …[Read more]
Hello,
In the event you missed the announcement on one of the MySQL
distribution lists from Stephan...
As part of the effort of making MySQL Cluster a more mainstream
product, it's been on our agenda for a very long time to rewrite
the NDB API documentation so that it becomes usable by mere
mortals. It took nearly three months to do this, because the new
documentation is almost 300 pages long! The MySQL NDB API Guide
covers two low-level APIs for writing applications that work with
MySQL's NDB Cluster storage engine:
- The NDB API is an object-oriented application programming
interface for MySQL Cluster. The API provides ACID-compliant
transactions, table and row scans that are similar in many ways
to SQL cursors, and event handling. It also features
object-oriented error-handling facilities.
- The other API is the MySQL Cluster Management API (MGM API), a
programming interface intended to …
One of the most common usage of partitioning is where one wants
to partition
by date. One might want to have one partition per year or per
month or per
week or per day. This blog entry shows how to handle this
requirement using
MySQL 5.1.
The most common method to partition in this case is by
range.
Partitioning in 5.1 uses a function on one or more fields of the
table. In 5.1
there are some requirements on these fields if unique indexes or
primary keys
also exist in the table. The reason is that 5.1 doesn't have
support for global
indexes. Development of support for this have however started so
should be in
some future release of MySQL.
In 5.1 functions have to return an integer. There are two
functions that has
special support in the MySQL server. These are TO_DAYS() and
YEAR(). Both
of these functions take a DATE or DATETIME argument and return …
I noticed this piece from Johan Andersson on Writing NDBAPI programs?connecting to MySQL Cluster last week, which shows you how to use the NDBAPI?the programming interface to the MySQL Cluster system. By coincidence, we enabled the NDBAPI documentation today. It consists of two elements:
Update: MySQL 4 and 5 behave differently.
In MySQL5 there is a steady activity on some handlers, probably
caused by the status queries themselves. This does not happen in
4.1. I have issued a support call with MySQL and will see what to
do about it.
Update 2: See the follow-up post for more information on how to work around this.
MySQL Administrator is one of the graphical tools MySQL provide to manage their database servers. Apart from other things like server daemon control and a log file viewer this tool includes visual controls to display the load of the database server.
Even though the out-of-the-box configuration already contains some useful diagrams, I added some …
[Read more]As I wrote earlier in Using the MySQL Test Suite I found an issue with using the current MySQL Sakila Sample Database as a test with mysqltest.
I was running an older version of 5.1.7 beta so I figured the best course of action was to upgrade to 5.1.11 beta.
Well the problem still exists, and I found that the cause was due to the syntax of the DELIMITER command. Assuming the creation of the schema tables, here is an example of what I found.
Running in an interactive mysql session the following works
DROP TRIGGER ins_film;
DELIMITER ;;
CREATE TRIGGER `ins_film` AFTER INSERT ON `film` FOR EACH ROW BEGIN
INSERT INTO film_text (film_id, title, description)
VALUES (new.film_id, new.title, new.description);
END;;
DELIMITER ;
On a side note, why does DROP TRIGGER not …
[Read more]