prefix 1.0~rc2-1
I’ve been having problem with building both
postgresql-8.3-prefix
and
postgresql-8.4-prefix
debian packages from the same source package, and
fixing the packaging issue forced me into modifying the main
prefix
Makefile
. So while reaching
rc2
, I tried to think about missing pieces easy
to add this late in the game: and there’s one, that’s a function
length(prefix_range)
, so that you don’t have to cast to text no more in the
following wildspread query:
SELECT foo, bar
FROM prefixes
WHERE prefix @> '012345678'
ORDER BY length(prefix) DESC
LIMIT 1;
And here’s a simple stupid benchmark of the new function, here in prefix-1.0~rc2.tar.gz. And it’ll soon reach debian, if my QA dept agrees (my sponsor is a QA dept all by himself!).
First some preparation:
dim=# create table prefixes (
dim(# prefix prefix_range primary key,
dim(# name text not null,
dim(# shortname text,
dim(# status char default 'S',
dim(#
dim(# check( status in ('S', 'R') )
dim(# );
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "prefixes_pkey" for
table "prefixes"
CREATE TABLE
Time: 74,357 ms
dim=# \copy prefixes from 'prefixes.fr.csv' with delimiter ; csv quote '"'
Time: 200,982 ms
dim=# select count(*) from prefixes ;
count
-------
11966
(1 row)
Time: 3,047 ms
And now for the micro-benchmark:
dim=# \o /dev/null
dim=# select length(prefix) from prefixes;
Time: 16,040 ms
dim=# select length(prefix::text) from prefixes;
Time: 23,364 ms
dim=# \o
Hope you enjoy!