Re: Patch for PGunescapeBytea
От | Bruce Momjian |
---|---|
Тема | Re: Patch for PGunescapeBytea |
Дата | |
Msg-id | 200306020309.h5239kl23155@candle.pha.pa.us обсуждение исходный текст |
Ответ на | Patch for PGunescapeBytea (Ben Lamb <pgsql-patches@zurgy.org>) |
Список | pgsql-patches |
(I will apply the newer version.) Your patch has been added to the PostgreSQL unapplied patches list at: http://momjian.postgresql.org/cgi-bin/pgpatches I will try to apply it within the next 48 hours. --------------------------------------------------------------------------- Ben Lamb wrote: > Hi, > > I found the libpq function PGunescapeBytea a little slow. It was taking a > minute and a half to decode a 500Kb on a fairly fast machine. I think the > culprit is sscanf. > > I attach a patch that replaces the function with one used to perform the same > task in pyPgSQL (a Python interface to PostgreSQL). This code was written by > Billy Allie, author of pyPgSQL. I've changed a few variable names to match > those in the original code and removed a bit of Pythonness. > > Billy has kindly looked at the code and points out that it is slightly > stricter than the original implementation and if it encounters an invalid > bytea such as '\12C' it drops the unescape '\' and outputs '12C'. > > The code is licensed by the author under a BSD license. > > I've performed limited testing of the function by putting JPEGs into > PostgreSQL, extracting them using them using the new function and diffing > against the original files. > > The new function is significantly faster on my machine with the JPEGs being > decoded in less than a second. I attach a modified libpq example program that > I used for my testing. > > Regards, > > Ben Lamb. > > The patch modifies fe-exec.c in /src/interfaces/libpq from PostgreSQL 7.3.2. [ Attachment, skipping... ] [ Attachment, skipping... ] > > ---------------------------(end of broadcast)--------------------------- > TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073
В списке pgsql-patches по дате отправления: