$ wc -l toast.c
1219 toast.c
$ git log --pretty=oneline | wc -l
46
fixing bugs, making plans. Most of the time spent on it has been
adding packet parsing support. Parsing data packets into structs,
using a basic state machine. Rewriting that into a more
"complete" state machine right now. Presently it can fully parse
and understand the handshake process and COM_QUERY
commands.
We'll see what happens.
MySQL's protocol is fairly nasty. Before moving onto buildnig the
next part of the scaffolding I'm just getting the basic packets
and commands dealt with. Luckily it allows me to set flags for
what features work and what don't. So the proxy (will) disable
compression, prepared statements, blah blah.
The ugliness I'm dealing with right now is with the client
command packets. They're pretty simple:
4 byte header, omnipresent for all mysql network …
I’m now in Chicago, two days prior to PHPTek. I’ve never been to Chicago, so I wanted to take the conference as an excuse for a mini vacation. I’m staying at the Embassy Suites Rosemont, which is within a mile or so of the conference Hyatt. If you’re already here, or want to meet up with me during the conference.. here is my intended schedule..
Tuesday, May 15th 2007:
Wednesday, May 16th 2007:
- 10:15 - 11:15 : Writing maintainable PHP Code
- 11:30 - 12:30 : …
Oh fab. Microsoft claims that free software like Linux, which
runs a big chunk of corporate America, violates 235 of its
patents. It wants royalties from distributors and users.See
http://money.cnn.com/magazines/fortune/fortune_archive/2007/05/28/100033867/index.htm
(Software) patents that (IMHO) shouldn't exist in the first
place, but that's not the point I want to make here. Companies
now need to compete on speed of innovation and "getting it out
there", not on ability to hide, hoard and protect some perceived
advantages. The above will just cost a lot of money, hinder
innovation, annoy users, and in the end everybody loses. What a
sad waste of energy.
The best performance improvement is the transition from
the nonworking state to the working state --John
Ousterhout
Aggressive use of pipeline parallelism is required to tame the
ETL processing window for large data volumes,
and a good ETL tool must provide easy access to this
potent optimization technique.
As we start loading data into the staging tables, we invariably come across bad
source data. Consider the sales payment file shown in the
data …
I finished implementing the missing optional REGEXP function parameters today, all regular expression functions should now work as similar to their Oracle counterparts as possible with the following restrictions:
* The MySQL UDF API predates the extended character set support
added with MySQL 4.1 and so UDF functions have no idea about
charsets and collations at all. As a consequence the functions
for now are always case sensitve by default and are always
assuming their input to be Latin1 encoded
* Only the 'c' and 'i' pattern modifiers for case sensitive and
insensitive matching are implemented yet, the 'm' and 'n'
modifiers for multi line input are not yet supported
* I haven't tested back references on REGEXP_REPLACE() yet. They
may or may not work, as i borrowed the actual implementation from
the PHP source i'm not really sure about whether it takes care of
this or not
Anyway, the REGEXP UDFs are hosted on …
[Read more]Hi. I am doing a select like this in MySQL 5:
select * from foo where bar rlike '(.*),(.*)';
The specific example here is made up. Anyway, I'd like to be able to get to the matched text from bar, like I can with various languages regexp libraries. Is this functionality exposed at all in MySQL? I've looked at the docs and can't see any indication that it is, so this might just be wishful thinking.
Tags for this post: mysql
regexp rlike
select
Related posts: Managing MySQL …
A few people have asked me how fast MySQL Table Checksum is. As with so many other things, it depends. This article shows how long it takes to checksum real data on a production server I help manage, which might give you a rough idea of how long it'll take on your servers.
OSDC is a grass-roots conference providing Open Source developers
with an opportunity to meet, share, learn, and of course
show-off. OSDC focuses on Open Source developers building
solutions directly for customers and other end users, anything
goes as long as the code or the development platform is Open
Source. Last year's conference attracted over 180 people, 60
talks, and 6 tutorials. Entry for delegates is kept easy by
maintaining a low registration fee (approx $300), which always
includes the conference dinner.
This year OSDC will be held in Brisbane from the 26th to the 29th
of November, with an extra dedicated stream for presentations on
Open Source business development, case studies, software process,
and project management. The theme for this year's conference is
"Success in Development & Business". If you are an Open Source
maintainer, developer or user we would encourage you to submit a
talk proposal on the open-source tools, …
Maybe this is obvious, but I post it anyway, just to remind myself should I need it again.
Recently I had to change a table that I had not completely thought through when I first created it. The structure was so simple, I did not think I could do anything wrong with it:
CREATE TABLE `parent` ( `par_id` bigint(20) NOT NULL, `somevalue` varchar(20) default NULL, PRIMARY KEY (`par_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; CREATE TABLE `child` ( `x_parid` bigint(20) default NULL, `value` bigint(10) default NULL, KEY `fk_parid` (`x_parid`), CONSTRAINT `child_ibfk_1` FOREIGN KEY (`x_parid`) REFERENCES `parent` (`par_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
There is a 1:0..* relationship between parent and child. Some sample data:
mysql> select * from parent; +--------+--------------+ | par_id | somevalue | +--------+--------------+ | 1 | Parent No. 1 | | 2 | Parent No. 2 | | 3 | Parent …[Read more]
Maybe this is obvious, but I post it anyway, just to remind myself should I need it again.
Recently I had to change a table that I had not completely thought through when I first created it. The structure was so simple, I did not think I could do anything wrong with it:
CREATE TABLE `parent` ( `par_id` bigint(20) NOT NULL, `somevalue` varchar(20) default NULL, PRIMARY KEY (`par_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; CREATE TABLE `child` ( `x_parid` bigint(20) default NULL, `value` bigint(10) default NULL, KEY `fk_parid` (`x_parid`), CONSTRAINT `child_ibfk_1` FOREIGN KEY (`x_parid`) REFERENCES `parent` (`par_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
There is a 1:0..* relationship between parent and child. Some sample data:
mysql> select * from parent; +--------+--------------+ | par_id | somevalue | +--------+--------------+ | 1 | Parent No. 1 | | 2 | Parent No. 2 | | 3 | Parent …[Read more]