Go to file
Neil Conway 3350b3740e This patch optimizes the md5_text() function (which is used to
implement the md5() SQL-level function). The old code did the
following:

1. de-toast the datum
2. convert it to a cstring via textout()
3. get the length of the cstring via strlen()

Since we are treating the datum context as a blob of binary data,
the latter two steps are unnecessary. Once the data has been
detoasted, we can just use it as-is, and derive its length from
the varlena metadata.

This patch improves some run-of-the-mill md5() computations by
just under 10% in my limited tests, and passes the regression tests.

I also noticed that md5_text() wasn't checking the return value
of md5_hash(); encountering OOM at precisely the right moment
could result in returning a random md5 hash. This patch corrects
that. A better fix would be to make md5_hash() only return on
success (and/or allocate via palloc()), but since it's used in
the frontend as well I don't see an easy way to do that.
2005-02-23 22:46:17 +00:00
config Add support to port/snprintf.c for position parameter specification: 2005-02-22 03:56:22 +00:00
contrib Simplify defines 2005-02-21 14:09:49 +00:00
doc Document that only a table's owner may TRUNCATE it. Per Keith Worthington. 2005-02-22 19:06:18 +00:00
src This patch optimizes the md5_text() function (which is used to 2005-02-23 22:46:17 +00:00
aclocal.m4 Add new auto-detection of thread flags. 2004-04-23 18:15:55 +00:00
configure Add support to port/snprintf.c for position parameter specification: 2005-02-22 03:56:22 +00:00
configure.in Add support to port/snprintf.c for position parameter specification: 2005-02-22 03:56:22 +00:00
COPYRIGHT Tag appropriate files for rc3 2004-12-31 22:04:05 +00:00
GNUmakefile.in please find attached an alternate submission which addresses open item 2004-10-06 08:50:02 +00:00
Makefile please find attached an alternate submission which addresses open item 2004-10-06 08:50:02 +00:00
README Remove more traces of libpgtcl from the source tree. Also, make some 2004-10-01 02:00:44 +00:00
README.CVS Some further editorializing on README.CVS. 2004-03-28 06:09:08 +00:00

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 C language bindings.

The JDBC, ODBC, C++, Python, and Tcl interfaces have been moved to the
PostgreSQL Projects Web Site at http://gborg.postgresql.org for separate
maintenance.  A Perl DBI/DBD driver is available from CPAN.

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/.