mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-09-30 15:41:24 +02:00
4e1f986098
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. Ben Lamb. |
||
---|---|---|
config | ||
contrib | ||
doc | ||
src | ||
aclocal.m4 | ||
configure | ||
configure.in | ||
COPYRIGHT | ||
GNUmakefile.in | ||
HISTORY | ||
INSTALL | ||
Makefile | ||
README | ||
register.txt |
PostgreSQL Database Management System ===================================== This directory contains the source code distribution of the PostgreSQL database management system. PostgreSQL is an advanced object-relational database management system that supports an extended subset of the SQL standard, including transactions, foreign keys, subqueries, triggers, user-defined types and functions. This distribution also contains several language bindings, including C, Perl, Python, and Tcl, as well as a JDBC driver. The ODBC and C++ interfaces have been moved to the PostgreSQL Projects Web Site at http://gborg.postgresql.org for separate maintenance. See the file INSTALL for instructions on how to build and install PostgreSQL. That file also lists supported operating systems and hardware platforms and contains information regarding any other software packages that are required to build or run the PostgreSQL system. Changes between all PostgreSQL releases are recorded in the file HISTORY. Copyright and license information can be found in the file COPYRIGHT. A comprehensive documentation set is included in this distribution; it can be read as described in the installation instructions. The latest version of this software may be obtained at ftp://ftp.postgresql.org/pub/. For more information look at our web site located at http://www.postgresql.org/.