Showing entries 561 to 570 of 693
« 10 Newer Entries | 10 Older Entries »
Displaying posts with tag: drizzle (reset)
Drizzle PHP Extension 0.1 Released!

Building on top of my last post, the PHP extension for the new client and protocol library is ready as well! You can download the tarball on the Launchpad download page. The PHP extension exposes the same set of client functions that the C library provides currently, and is mostly just a wrapper to provide the PHP specific handling. To install, you’ll need the PHP development packages installed (if you have ‘phpize’ command you’re all set). After extracting the tarball, just run:

phpize
./configure
make
make install

And then add the following line to your php.ini:

extension=”drizzle.so”

I realize there is no documentation at this point, we’re working on that (please get in …

[Read more]
Drizzle Client & Protocol Library 0.1 Released!

I’m happy to announce the first release of the new libdrizzle. This is a complete rewrite of the protocol and client interface for the Drizzle project and provides new functionality that the old library based on MySQL code did not offer. Oh, and this new library supports both Drizzle and MySQL protocols, so you can use it with MySQL servers as well!

So, what’s different?

  • BSD License.
  • Complete non-blocking I/O support.
  • Concurrent query interface, letting you run multiple queries at the same time on any number of servers.
  • Improved buffering support. Instead of just result and row buffering, you can also buffer per field, or not at all (reading fields in chunks). This can be very useful for streaming large blobs through your client.
  • Complete server …
[Read more]
Where Drizzle Is Succeeding

Over the past few weeks, I have been happy working on Drizzle. Why have I been happy? Is it because of some new incredible code that will revolutionize the database industry? Nope. Is it because we've been able to remove all the issues that plague the server core? Nope. Is it because I see Drizzle quickly morphing into a modular, standard-conforming super-kernel? Nope.

So, why am I joyous?

To paraphrase the late Charlton Heston: "[Drizzle] is people!"

Recently, I've seen the fruit that transparent, open source development bears. This fruit takes the form of engaged, motivated, and humble individuals who wish to make their mark on a project.

Whether it's on IRC on #drizzle, the …

[Read more]
gperf to generate the lex hash == WIN

A couple of days ago, while fighting with removing warnings from the Sun Studio build of Drizzle, I got frustrated and took a break to tackle one of the little things I've been wanting to do for a while.

Delete gen_lex_hash

(Just in case gen_lex_hash means nothing to you, it's a tool in the MySQL and Drizzle source tree that creates hash structures containing the reserved symbols for easy lookup during parsing)

Now, don't get me wrong. It's not that I have anything in particular against the code in gen_lex_hash. It's more of an annoyance about building and using a custom code-generation tool when there is a perfectly good general purpose one out there in the Free Software universe.

I replaced gen_lex_hash with gperf, which is a GNU tool for generating perfect hashes. There are several wins here:

  1. We have no more tools that must be …
[Read more]
gperf to generate the lex hash == WIN

A couple of days ago, while fighting with removing warnings from the Sun Studio build of Drizzle, I got frustrated and took a break to tackle one of the little things I've been wanting to do for a while.

Delete gen_lex_hash

(Just in case gen_lex_hash means nothing to you, it's a tool in the MySQL and Drizzle source tree that creates hash structures containing the reserved symbols for easy lookup during parsing)

Now, don't get me wrong. It's not that I have anything in particular against the code in gen_lex_hash. It's more of an annoyance about building and using a custom code-generation tool when there is a perfectly good general purpose one out there in the Free Software universe.

I replaced gen_lex_hash with gperf, which is a GNU tool for generating perfect hashes. There are several wins here:

  1. We have no more tools that must be …
[Read more]
gperf to generate the lex hash == WIN

A couple of days ago, while fighting with removing warnings from the Sun Studio build of Drizzle, I got frustrated and took a break to tackle one of the little things I've been wanting to do for a while.

Delete gen_lex_hash

(Just in case gen_lex_hash means nothing to you, it's a tool in the MySQL and Drizzle source tree that creates hash structures containing the reserved symbols for easy lookup during parsing)

Now, don't get me wrong. It's not that I have anything in particular against the code in gen_lex_hash. It's more of an annoyance about building and using a custom code-generation tool when there is a perfectly good general purpose one out there in the Free Software universe.

I replaced gen_lex_hash with gperf, which is a GNU tool for generating perfect hashes. There are several wins here:

  1. We have no more tools that must be …
[Read more]
row id in MySQL and Drizzle (and the engines)

Some database engines have a fundamental concept of a row id. The row id is everything you need to know to locate a row. Common uses include secondary indexes (key is what’s indexed, value is rowid which you then use to lookup the row).

One design is the InnoDB method of having secondary indexes have the value in the index be the primary key of the row. Another is to store the rowid instead. Usually (or often… or sometimes…) rowid is much smaller than the pkey of the row. This is how innodb can answer some queries just out of the index. If it used rowid, it may involve more IO to answer the query. All this is irrelevant if you never want just the primary key from a secondary index.

Some engines are designed from the start to have rowid, others it’s added later (e.g. NDB).

Anyway… all beside the point. Did you know you can do this in mysql or drizzle:

drizzle> create table t1 (a int primary key);
Query …
[Read more]
Progress in nofrm branch

“Ban FRM Now!” branch in Launchpad

Now we’re reading part of the table information out of the proto file on disk instead of the frm.

Not everything (yet) but a bit. Good first steps. Had to fix bugs along the way as well (and find weirdness in FRM file format…).

Progress is being made.

maximum number of columns (hard limit)

#define MAX_FIELDS 4096 /* Limit in the .frm file */

I should be able to remove this limitation soon. Although if you come anywhere near it, you probably have already lost (and written your own engine).

what the fuck were they smoking

/*
Function to free dboptions hash element
*/

extern “C” void free_dbopt(void *dbopt);

void free_dbopt(void *dbopt)
{
free((unsigned char*) dbopt);
}

Showing entries 561 to 570 of 693
« 10 Newer Entries | 10 Older Entries »