]> granicus.if.org Git - postgresql/commitdiff
Add discussion.
authorBruce Momjian <bruce@momjian.us>
Fri, 22 Feb 2002 03:04:48 +0000 (03:04 +0000)
committerBruce Momjian <bruce@momjian.us>
Fri, 22 Feb 2002 03:04:48 +0000 (03:04 +0000)
doc/TODO.detail/namedatalen [new file with mode: 0644]

diff --git a/doc/TODO.detail/namedatalen b/doc/TODO.detail/namedatalen
new file mode 100644 (file)
index 0000000..24eeeb1
--- /dev/null
@@ -0,0 +1,1070 @@
+From pgsql-hackers-owner+M18800=candle.pha.pa.us=pgman@postgresql.org Wed Feb 13 15:25:43 2002
+Return-path: <pgsql-hackers-owner+M18800=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+       by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g1DKPgP09129
+       for <pgman@candle.pha.pa.us>; Wed, 13 Feb 2002 15:25:42 -0500 (EST)
+Received: (qmail 83025 invoked by alias); 13 Feb 2002 20:25:41 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+  by www.postgresql.org with SMTP; 13 Feb 2002 20:25:41 -0000
+Received: from h97.c194.tor.velocet.net (H97.C194.tor.velocet.net [216.138.194.97])
+       by postgresql.org (8.11.3/8.11.4) with ESMTP id g1DK7kE77269
+       for <pgsql-hackers@postgresql.org>; Wed, 13 Feb 2002 15:07:47 -0500 (EST)
+       (envelope-from rbt@zort.ca)
+Received: (qmail 41141 invoked by uid 0); 13 Feb 2002 20:07:41 -0000
+Received: from h97.c194.tor.velocet.net (HELO jester) (216.138.194.97)
+  by 192.168.1.11 with RC4-MD5 encrypted SMTP; 13 Feb 2002 20:07:41 -0000
+Message-ID: <003901c1b4ca$1d762500$8001a8c0@jester>
+From: "Rod Taylor" <rbt@zort.ca>
+To: "Hackers List" <pgsql-hackers@postgresql.org>
+Subject: [HACKERS] NAMEDATALEN Changes
+Date: Wed, 13 Feb 2002 15:07:50 -0500
+MIME-Version: 1.0
+Content-Type: multipart/mixed;
+       boundary="----=_NextPart_000_0036_01C1B4A0.343E4DF0"
+X-Priority: 3
+X-MSMail-Priority: Normal
+X-Mailer: Microsoft Outlook Express 6.00.2600.0000
+X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+This is a multi-part message in MIME format.
+
+------=_NextPart_000_0036_01C1B4A0.343E4DF0
+Content-Type: text/plain; charset="iso-8859-1"
+Content-Transfer-Encoding: 7bit
+
+NAMEDATALEN's benchmarked are 32, 64, 128 and 512.  Attached is the
+shell script I used to do it.
+
+First row of a set is the time(1) for the pgbench -i run, second is
+the actual benchmark.  Aside from the 'real' time of 64 there is a
+distinct increase in time required, but not significant.
+
+Benchmarks were run for 3000 transactions with scale factor of 5, but
+only 1 client.   If there is a preferred setting for pgbench I can do
+an overnight run with it.  Machine is a dual 500Mhz celery with 384MB
+ram and 2 IBM Deskstars in Raid 0, and a seperate system drive.
+
+Anything but 32 fails the 'name' check in the regression tests -- I
+assume this is expected?
+
+Don't know why 64 has a high 'real' time, but the system times are
+appropriate.
+
+NAMEDATALEN: 32
+
+158.97 real 1.81 user 0.14 sys
+
+80.58 real 1.30 user 3.81 sys
+
+
+
+NAMEDATALEN: 64
+
+248.40 real 1.85 user 0.10 sys
+
+96.36 real 1.44 user 3.86 sys
+
+
+
+NAMEDATALEN: 128
+
+156.74 real 1.84 user 0.10 sys
+
+94.36 real 1.47 user 4.01 sys
+
+
+
+NAMEDATALEN: 512
+
+157.99 real 1.83 user 0.12 sys
+
+101.14 real 1.47 user 4.23 sys
+
+--
+Rod Taylor
+
+Your eyes are weary from staring at the CRT. You feel sleepy. Notice
+how restful it is to watch the cursor blink. Close your eyes. The
+opinions stated above are yours. You cannot imagine why you ever felt
+otherwise.
+
+
+------=_NextPart_000_0036_01C1B4A0.343E4DF0
+Content-Type: application/octet-stream; name="datalenbench.sh"
+Content-Transfer-Encoding: quoted-printable
+Content-Disposition: attachment; filename="datalenbench.sh"
+
+#!/bin/sh
+
+PGSRC=3D/data/buildtree/postgres/postgresql-7.2
+PGBASEPORT=3D5400
+PGBASEBIN=3D/data/buildtree/postgres/postgres72
+
+LOG=3D/home/rbt/temp/bench_namedatalen.log
+
+
+for newDATALEN in 32 64 128 512 ; do
+
+  PGBIN=3D${PGBASEBIN}_${newDATALEN}
+  PGPORT=3D`echo "${PGBASEPORT}+${newDATALEN}" | bc`
+
+  sed -E 's/NAMEDATALEN\s[0-9]+/NAMEDATALEN ${newDATALEN}/g' ${PGSRC}/src/i=
+nclude/postgres_ext.h > ${PGSRC}/src/include/postgres_ext.h.tmp
+  mv ${PGSRC}/src/include/postgres_ext.h.tmp ${PGSRC}/src/include/postgres_=
+ext.h
+
+  cd ${PGSRC}
+  ./configure --prefix=3D${PGBIN} --with-pgport=3D${PGPORT} || (echo "UNABL=
+E TO CONFIGURE"; exit)
+
+  make clean
+  make clean install
+
+  cd ${PGSRC}/contrib/pgbench
+
+  gmake install
+
+
+  ${PGBIN}/bin/initdb -D ${PGBIN}/data  || (echo "UNABLE TO INITIALIZE"; ex=
+it 1)
+
+  ${PGBIN}/bin/pg_ctl -D ${PGBIN}/data start  || (echo "UNABLE TO START"; e=
+xit 1)
+
+  sleep 5
+
+  echo "NAMEDATALEN: ${newDATALEN}" >> ${LOG}
+  echo  >> ${LOG}
+  time -a -o ${LOG} ${PGBIN}/bin/pgbench -i -s 5 -d template1 -p ${PGPORT}
+
+  time -a -o ${LOG} ${PGBIN}/bin/pgbench -t 3000 -s 5 -d template1 -p ${PGP=
+ORT}
+  echo  >> ${LOG}
+  echo  >> ${LOG}
+
+  ${PGBIN}/bin/pg_ctl -D ${PGBIN}/data stop
+  rm -rf ${PGBIN}
+done
+
+------=_NextPart_000_0036_01C1B4A0.343E4DF0
+Content-Type: text/plain
+Content-Disposition: inline
+Content-Transfer-Encoding: binary
+MIME-Version: 1.0
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 5: Have you checked our extensive FAQ?
+
+http://www.postgresql.org/users-lounge/docs/faq.html
+
+------=_NextPart_000_0036_01C1B4A0.343E4DF0--
+
+
+From pgsql-hackers-owner+M18806=candle.pha.pa.us=pgman@postgresql.org Wed Feb 13 17:13:45 2002
+Return-path: <pgsql-hackers-owner+M18806=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+       by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g1DMDiP15852
+       for <pgman@candle.pha.pa.us>; Wed, 13 Feb 2002 17:13:44 -0500 (EST)
+Received: (qmail 13525 invoked by alias); 13 Feb 2002 22:12:53 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+  by www.postgresql.org with SMTP; 13 Feb 2002 22:12:53 -0000
+Received: from sss.pgh.pa.us ([192.204.191.242])
+       by postgresql.org (8.11.3/8.11.4) with ESMTP id g1DLsHE09337
+       for <pgsql-hackers@postgresql.org>; Wed, 13 Feb 2002 16:54:17 -0500 (EST)
+       (envelope-from tgl@sss.pgh.pa.us)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+       by sss.pgh.pa.us (8.11.4/8.11.4) with ESMTP id g1DLrmf00943;
+       Wed, 13 Feb 2002 16:53:49 -0500 (EST)
+To: "Rod Taylor" <rbt@zort.ca>
+cc: "Hackers List" <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] NAMEDATALEN Changes 
+In-Reply-To: <003901c1b4ca$1d762500$8001a8c0@jester> 
+References: <003901c1b4ca$1d762500$8001a8c0@jester>
+Comments: In-reply-to "Rod Taylor" <rbt@zort.ca>
+       message dated "Wed, 13 Feb 2002 15:07:50 -0500"
+Date: Wed, 13 Feb 2002 16:53:48 -0500
+Message-ID: <940.1013637228@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+"Rod Taylor" <rbt@zort.ca> writes:
+> [ some hard data ]
+
+Great!  The numbers for namedatalen = 64 seem like an outlier; perhaps
+something else going on on your system?  Did you try more than one run?
+
+> Anything but 32 fails the 'name' check in the regression tests -- I
+> assume this is expected?
+
+Right.  If you eyeball the actual diffs for the test you should see that
+the diff is due to a long name not getting truncated where the test
+expects it to be.
+
+                       regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 3: if posting/reading through Usenet, please send an appropriate
+subscribe-nomail command to majordomo@postgresql.org so that your
+message can get through to the mailing list cleanly
+
+From pgsql-hackers-owner+M18805=candle.pha.pa.us=pgman@postgresql.org Wed Feb 13 17:13:39 2002
+Return-path: <pgsql-hackers-owner+M18805=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+       by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g1DMDcP15802
+       for <pgman@candle.pha.pa.us>; Wed, 13 Feb 2002 17:13:39 -0500 (EST)
+Received: (qmail 13545 invoked by alias); 13 Feb 2002 22:12:54 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+  by www.postgresql.org with SMTP; 13 Feb 2002 22:12:54 -0000
+Received: from h97.c194.tor.velocet.net (H97.C194.tor.velocet.net [216.138.194.97])
+       by postgresql.org (8.11.3/8.11.4) with ESMTP id g1DM7iE12735
+       for <pgsql-hackers@postgresql.org>; Wed, 13 Feb 2002 17:07:44 -0500 (EST)
+       (envelope-from rbt@zort.ca)
+Received: (qmail 41562 invoked by uid 0); 13 Feb 2002 22:07:45 -0000
+Received: from h97.c194.tor.velocet.net (HELO jester) (216.138.194.97)
+  by 192.168.1.11 with RC4-MD5 encrypted SMTP; 13 Feb 2002 22:07:45 -0000
+Message-ID: <00f501c1b4da$e2f7b7c0$8001a8c0@jester>
+From: "Rod Taylor" <rbt@zort.ca>
+To: "Tom Lane" <tgl@sss.pgh.pa.us>
+cc: "Hackers List" <pgsql-hackers@postgresql.org>
+References: <003901c1b4ca$1d762500$8001a8c0@jester> <940.1013637228@sss.pgh.pa.us>
+Subject: Re: [HACKERS] NAMEDATALEN Changes 
+Date: Wed, 13 Feb 2002 17:07:54 -0500
+MIME-Version: 1.0
+Content-Type: text/plain;
+       charset="iso-8859-1"
+Content-Transfer-Encoding: 7bit
+X-Priority: 3
+X-MSMail-Priority: Normal
+X-Mailer: Microsoft Outlook Express 6.00.2600.0000
+X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+> > Great!  The numbers for namedatalen = 64 seem like an outlier;
+perhaps
+> something else going on on your system?  Did you try more than one
+run?
+
+Ran it again shortly after sending the email.  It fell in line (mid
+way between 32 and 128) with Real time as would normally be expected.
+The times for the other values and 64's system times were very close
+to the original so I won't bother posting them again.
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 5: Have you checked our extensive FAQ?
+
+http://www.postgresql.org/users-lounge/docs/faq.html
+
+From pgsql-hackers-owner+M18807=candle.pha.pa.us=pgman@postgresql.org Wed Feb 13 17:58:53 2002
+Return-path: <pgsql-hackers-owner+M18807=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+       by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g1DMwqP19126
+       for <pgman@candle.pha.pa.us>; Wed, 13 Feb 2002 17:58:52 -0500 (EST)
+Received: (qmail 26752 invoked by alias); 13 Feb 2002 22:58:21 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+  by www.postgresql.org with SMTP; 13 Feb 2002 22:58:21 -0000
+Received: from post.webmailer.de (natwar.webmailer.de [192.67.198.70])
+       by postgresql.org (8.11.3/8.11.4) with ESMTP id g1DMRoE22486
+       for <pgsql-hackers@postgresql.org>; Wed, 13 Feb 2002 17:27:51 -0500 (EST)
+       (envelope-from barwick@gmx.net)
+Received: from there (pD9EB1E9E.dip.t-dialin.net [217.235.30.158])
+       by post.webmailer.de (8.9.3/8.8.7) with SMTP id XAA22201;
+       Wed, 13 Feb 2002 23:27:16 +0100 (MET)
+Message-ID: <200202132227.XAA22201@post.webmailer.de>
+From: Ian Barwick <barwick@gmx.net>
+To: "Rod Taylor" <rbt@zort.ca>, "Hackers List" <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] NAMEDATALEN Changes
+Date: Wed, 13 Feb 2002 23:27:08 +0100
+X-Mailer: KMail [version 1.3.1]
+References: <003901c1b4ca$1d762500$8001a8c0@jester>
+In-Reply-To: <003901c1b4ca$1d762500$8001a8c0@jester>
+MIME-Version: 1.0
+Content-Type: Multipart/Mixed;
+  boundary="------------Boundary-00=_81THUZ3BONDS8SCE1A8O"
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+--------------Boundary-00=_81THUZ3BONDS8SCE1A8O
+Content-Type: text/plain; charset="iso-2022-jp"
+Content-Transfer-Encoding: 8bit
+
+On Wednesday 13 February 2002 21:07, Rod Taylor wrote:
+> NAMEDATALEN's benchmarked are 32, 64, 128 and 512.  Attached is the
+> shell script I used to do it.
+
+Attached is a modified version for Linux, if anyone is interested.
+
+Will run it overnight out of quasi-scientific interest.
+
+Nice to have an idea what kind of effect my very long NAMEDATALEN setting 
+(128) has.
+
+
+Yours
+
+Ian Barwick
+--------------Boundary-00=_81THUZ3BONDS8SCE1A8O
+Content-Type: application/x-shellscript; name="datalenbench.sh"
+Content-Transfer-Encoding: base64
+Content-Disposition: attachment; filename="datalenbench.sh"
+
+IyEvYmluL3NoCgpQR1NSQz1+cG9zdGdyZXMvcGdiZW5jaC9wb3N0Z3Jlc3Fs
+LTcuMgpQR0JBU0VQT1JUPTU0MDAKUEdCQVNFQklOPX5wb3N0Z3Jlcy9ob21l
+L3Bvc3RncmVzL3BnYmVuY2gvcG9zdGdyZXM3MgoKTE9HPX5wb3N0Z3Jlcy9i
+ZW5jaF9uYW1lZGF0YWxlbi5sb2cKCmZvciBuZXdEQVRBTEVOIGluIDMyIDY0
+IDEyOCA1MTIgOyBkbwoKICBQR0JJTj0ke1BHQkFTRUJJTn1fJHtuZXdEQVRB
+TEVOfQogIFBHUE9SVD1gZWNobyAiJHtQR0JBU0VQT1JUfSske25ld0RBVEFM
+RU59IiB8IGJjYAoKICBzZWQgInMvTkFNRURBVEFMRU5bWzpzcGFjZTpdXVsw
+LTldXHsxLFx9L05BTUVEQVRBTEVOICRuZXdEQVRBTEVOL2ciICR7UEdTUkN9
+L3NyYy9pbmNsdWRlL3Bvc3RncmVzX2V4dC5oID4gJHtQR1NSQ30vc3JjL2lu
+Y2x1ZGUvcG9zdGdyZXNfZXh0LmgudG1wCiAgbXYgJHtQR1NSQ30vc3JjL2lu
+Y2x1ZGUvcG9zdGdyZXNfZXh0LmgudG1wICR7UEdTUkN9L3NyYy9pbmNsdWRl
+L3Bvc3RncmVzX2V4dC5oCgogIGNkICR7UEdTUkN9CgogIC4vY29uZmlndXJl
+IC0tcHJlZml4PSR7UEdCSU59IC0td2l0aC1wZ3BvcnQ9JHtQR1BPUlR9IHx8
+IChlY2hvICJVTkFCTEUgVE8gQ09ORklHVVJFIjsgZXhpdCkKCiAgbWFrZSBj
+bGVhbgogIG1ha2UgY2xlYW4gaW5zdGFsbAoKICBjZCAke1BHU1JDfS9jb250
+cmliL3BnYmVuY2gKCiAgZ21ha2UgaW5zdGFsbAoKCiAgJHtQR0JJTn0vYmlu
+L2luaXRkYiAtRCAke1BHQklOfS9kYXRhICB8fCAoZWNobyAiVU5BQkxFIFRP
+IElOSVRJQUxJWkUiOyBleGl0IDEpCgogICR7UEdCSU59L2Jpbi9wZ19jdGwg
+LUQgJHtQR0JJTn0vZGF0YSBzdGFydCAgfHwgKGVjaG8gIlVOQUJMRSBUTyBT
+VEFSVCI7IGV4aXQgMSkKCiAgc2xlZXAgNQoKICBlY2hvICJOQU1FREFUQUxF
+TjogJHtuZXdEQVRBTEVOfSIgPj4gJHtMT0d9CgogICMgcG9pbnQgdG8gR05V
+IHRpbWUgKHNob3VsZCB3b3JrIG9uIHJlY2VudCBTdVNFIC8gUmVkSGF0KTsg
+WU1NVgogIFRJTUU9L3Vzci9iaW4vdGltZQogIFRJTUVfRk9STUFUPSIlZSBy
+ZWFsICVVIHVzZXIgJVMgc3lzIgoKICAkVElNRSAtYSAtbyAke0xPR30gLWYg
+IiRUSU1FX0ZPUk1BVCIgJHtQR0JJTn0vYmluL3BnYmVuY2ggLWkgLXMgNSAt
+ZCB0ZW1wbGF0ZTEgLXAgJHtQR1BPUlR9CgogICRUSU1FIC1hIC1vICR7TE9H
+fSAtZiAiJFRJTUVfRk9STUFUIiAke1BHQklOfS9iaW4vcGdiZW5jaCAtdCAz
+MDAwIC1zIDUgLWQgdGVtcGxhdGUxIC1wICR7UEdQT1JUfSAKICBlY2hvICA+
+PiAke0xPR30KICBlY2hvICA+PiAke0xPR30KCiAgJHtQR0JJTn0vYmluL3Bn
+X2N0bCAtRCAke1BHQklOfS9kYXRhIHN0b3AKICBybSAtcmYgJHtQR0JJTn0K
+ZG9uZQoK
+
+--------------Boundary-00=_81THUZ3BONDS8SCE1A8O
+Content-Type: text/plain
+Content-Disposition: inline
+Content-Transfer-Encoding: binary
+MIME-Version: 1.0
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
+
+--------------Boundary-00=_81THUZ3BONDS8SCE1A8O--
+
+From pgsql-hackers-owner+M18811=candle.pha.pa.us=pgman@postgresql.org Wed Feb 13 19:13:40 2002
+Return-path: <pgsql-hackers-owner+M18811=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+       by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g1E0DdP24221
+       for <pgman@candle.pha.pa.us>; Wed, 13 Feb 2002 19:13:39 -0500 (EST)
+Received: (qmail 40165 invoked by alias); 14 Feb 2002 00:13:34 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+  by www.postgresql.org with SMTP; 14 Feb 2002 00:13:34 -0000
+Received: from student.gvsu.edu ([148.61.7.124])
+       by postgresql.org (8.11.3/8.11.4) with ESMTP id g1E0ABE39822
+       for <pgsql-hackers@postgresql.org>; Wed, 13 Feb 2002 19:10:11 -0500 (EST)
+       (envelope-from peter_e@gmx.net)
+Received: from [148.61.250.151] [148.61.250.151] by student.gvsu.edu
+       with Novonyx SMTP Server $Revision: 1.1 $; Wed, 13 Feb 2002 19:10:16 -0500 (EDT)
+Date: Wed, 13 Feb 2002 19:12:57 -0500 (EST)
+From: Peter Eisentraut <peter_e@gmx.net>
+X-Sender: <peter@peter.localdomain>
+To: Rod Taylor <rbt@zort.ca>
+cc: Hackers List <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] NAMEDATALEN Changes
+In-Reply-To: <003901c1b4ca$1d762500$8001a8c0@jester>
+Message-ID: <Pine.LNX.4.30.0202131912010.683-100000@peter.localdomain>
+MIME-Version: 1.0
+Content-Type: TEXT/PLAIN; charset=US-ASCII
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Rod Taylor writes:
+
+> NAMEDATALEN's benchmarked are 32, 64, 128 and 512.  Attached is the
+> shell script I used to do it.
+
+That's around a 15% performance loss for increasing it to 64 or 128.
+Seems pretty scary actually.
+
+-- 
+Peter Eisentraut   peter_e@gmx.net
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
+
+From pgsql-hackers-owner+M18815=candle.pha.pa.us=pgman@postgresql.org Wed Feb 13 20:02:31 2002
+Return-path: <pgsql-hackers-owner+M18815=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+       by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g1E12TP29895
+       for <pgman@candle.pha.pa.us>; Wed, 13 Feb 2002 20:02:29 -0500 (EST)
+Received: (qmail 49786 invoked by alias); 14 Feb 2002 01:02:26 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+  by www.postgresql.org with SMTP; 14 Feb 2002 01:02:26 -0000
+Received: from sss.pgh.pa.us ([192.204.191.242])
+       by postgresql.org (8.11.3/8.11.4) with ESMTP id g1E10oE49562
+       for <pgsql-hackers@postgresql.org>; Wed, 13 Feb 2002 20:00:50 -0500 (EST)
+       (envelope-from tgl@sss.pgh.pa.us)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+       by sss.pgh.pa.us (8.11.4/8.11.4) with ESMTP id g1E107f04416;
+       Wed, 13 Feb 2002 20:00:07 -0500 (EST)
+To: Peter Eisentraut <peter_e@gmx.net>
+cc: Rod Taylor <rbt@zort.ca>, Hackers List <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] NAMEDATALEN Changes 
+In-Reply-To: <Pine.LNX.4.30.0202131912010.683-100000@peter.localdomain> 
+References: <Pine.LNX.4.30.0202131912010.683-100000@peter.localdomain>
+Comments: In-reply-to Peter Eisentraut <peter_e@gmx.net>
+       message dated "Wed, 13 Feb 2002 19:12:57 -0500"
+Date: Wed, 13 Feb 2002 20:00:06 -0500
+Message-ID: <4413.1013648406@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Peter Eisentraut <peter_e@gmx.net> writes:
+> That's around a 15% performance loss for increasing it to 64 or 128.
+> Seems pretty scary actually.
+
+Some of that could be bought back by fixing hashname() to not iterate
+past the first \0 when calculating the hash of a NAME datum; and then
+cc_hashname could go away.  Not sure how much this would buy though.
+
+Looking closely at Rod's script, I realize that the user+sys times it is
+reporting are not the backend's but the pgbench client's.  So it's
+impossible to tell from this how much of the extra cost is extra I/O and
+how much is CPU.  I'm actually quite surprised that the client side
+shows any CPU-time difference at all; I wouldn't think it ever sees any
+null-padded NAME values.
+
+                       regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 3: if posting/reading through Usenet, please send an appropriate
+subscribe-nomail command to majordomo@postgresql.org so that your
+message can get through to the mailing list cleanly
+
+From pgsql-hackers-owner+M18817=candle.pha.pa.us=pgman@postgresql.org Thu Feb 14 01:22:04 2002
+Return-path: <pgsql-hackers-owner+M18817=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+       by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g1E6M3P26219
+       for <pgman@candle.pha.pa.us>; Thu, 14 Feb 2002 01:22:03 -0500 (EST)
+Received: (qmail 83168 invoked by alias); 14 Feb 2002 06:22:05 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+  by www.postgresql.org with SMTP; 14 Feb 2002 06:22:05 -0000
+Received: from klamath.dyndns.org (CPE002078144ae0.cpe.net.cable.rogers.com [24.102.202.35])
+       by postgresql.org (8.11.3/8.11.4) with ESMTP id g1E5xfE81904
+       for <pgsql-hackers@postgresql.org>; Thu, 14 Feb 2002 00:59:41 -0500 (EST)
+       (envelope-from nconway@klamath.dyndns.org)
+Received: from localhost.localdomain (jiro [192.168.40.7])
+       by klamath.dyndns.org (Postfix) with ESMTP id 11D2E7007
+       for <pgsql-hackers@postgresql.org>; Thu, 14 Feb 2002 00:59:41 -0500 (EST)
+Subject: Re: [HACKERS] NAMEDATALEN Changes
+From: Neil Conway <nconway@klamath.dyndns.org>
+To: pgsql-hackers@postgresql.org
+In-Reply-To: <4413.1013648406@sss.pgh.pa.us>
+References: <Pine.LNX.4.30.0202131912010.683-100000@peter.localdomain> 
+       <4413.1013648406@sss.pgh.pa.us>
+Content-Type: multipart/mixed; boundary="=-0nvLRoTY5hWeegGhITre"
+X-Mailer: Evolution/1.0.2 
+Date: 14 Feb 2002 00:59:40 -0500
+Message-ID: <1013666380.5380.19.camel@jiro>
+MIME-Version: 1.0
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: ORr
+
+--=-0nvLRoTY5hWeegGhITre
+Content-Type: text/plain
+Content-Transfer-Encoding: 7bit
+
+On Wed, 2002-02-13 at 20:00, Tom Lane wrote:
+> Peter Eisentraut <peter_e@gmx.net> writes:
+> > That's around a 15% performance loss for increasing it to 64 or 128.
+> > Seems pretty scary actually.
+> 
+> Some of that could be bought back by fixing hashname() to not iterate
+> past the first \0 when calculating the hash of a NAME datum; and then
+> cc_hashname could go away.  Not sure how much this would buy though.
+
+I've attached a pretty trivial patch that implements this. Instead of
+automatically hashing NAMEDATALEN bytes, hashname() uses only strlen()
+bytes: this should improve both the common case (small identifers, 5-10
+characters long), as well as reduce the penalty when NAMEDATALEN is
+increased. The patch passes the regression tests, FWIW. I didn't remove
+cc_hashname() -- I'll tackle that tomorrow unless anyone objects...
+
+I also did some pretty simple benchmarks; however, I'd appreciate it
+anyone could confirm these results.
+
+pg_bench: scale factor 1, 1 client, 10000 transactions.
+
+hardware: p3-850, 384 MB RAM, slow laptop IDE disk
+
+Run 1: Patch applied, NAMEDATALEN = 32
+
+    number of transactions actually processed: 10000/10000
+    tps = 19.940020(including connections establishing)
+    tps = 19.940774(excluding connections establishing)
+
+Run 2: Patch applied, NAMEDATALEN = 128
+
+    number of transactions actually processed: 10000/10000
+    tps = 20.849385(including connections establishing)
+    tps = 20.850010(excluding connections establishing)
+
+Run 3: Vanilla CVS, NAMEDATALEN = 32
+(This is to check that the patch doesn't cause performance regressions
+for the "common case")
+
+    number of transactions actually processed: 10000/10000
+    tps = 18.295418(including connections establishing)
+    tps = 18.296191(excluding connections establishing)
+
+The performance improvement @ NAMEDATALEN = 128 seems strange. As I
+said, these benchmarks may not be particularly accurate, so I'd suggest
+waiting for others to contribute results before drawing any conclusions.
+
+Oh, and this is my first "real" Pg patch, so my apologies if I've
+screwed something up. ;-)
+
+Cheers,
+
+Neil
+
+-- 
+Neil Conway <neilconway@rogers.com>
+PGP Key ID: DB3C29FC
+
+--=-0nvLRoTY5hWeegGhITre
+Content-Disposition: attachment; filename=hash_len.patch
+Content-Transfer-Encoding: quoted-printable
+Content-Type: text/x-patch; charset=ISO-8859-1
+
+*** ./src/backend/access/hash/hashfunc.c.orig  Wed Feb 13 21:09:37 2002
+--- ./src/backend/access/hash/hashfunc.c       Thu Feb 14 00:39:42 2002
+***************
+*** 95,101 ****
+  {
+       char       *key =3D NameStr(*PG_GETARG_NAME(0));
+=20=20
+!      return hash_any((char *) key, NAMEDATALEN);
+  }
+=20=20
+  /*
+--- 95,101 ----
+  {
+       char       *key =3D NameStr(*PG_GETARG_NAME(0));
+=20=20
+!      return hash_any(key, strlen(key));
+  }
+=20=20
+  /*
+***************
+*** 125,131 ****
+   *
+   * (Comment from the original db3 hashing code: )
+   *
+!  * "This is INCREDIBLY ugly, but fast.  We break the string up into 8 byte
+   * units.  On the first time through the loop we get the 'leftover bytes'
+   * (strlen % 8).  On every later iteration, we perform 8 HASHC's so we ha=
+ndle
+   * all 8 bytes.  Essentially, this saves us 7 cmp & branch instructions. =
+ If
+--- 125,131 ----
+   *
+   * (Comment from the original db3 hashing code: )
+   *
+!  * This is INCREDIBLY ugly, but fast.  We break the string up into 8 byte
+   * units.  On the first time through the loop we get the 'leftover bytes'
+   * (strlen % 8).  On every later iteration, we perform 8 HASHC's so we ha=
+ndle
+   * all 8 bytes.  Essentially, this saves us 7 cmp & branch instructions. =
+ If
+***************
+*** 134,140 ****
+   * "OZ's original sdbm hash"
+   */
+  Datum
+! hash_any(char *keydata, int keylen)
+  {
+       uint32          n;
+       int                     loop;
+--- 134,140 ----
+   * "OZ's original sdbm hash"
+   */
+  Datum
+! hash_any(const char *keydata, int keylen)
+  {
+       uint32          n;
+       int                     loop;
+*** ./src/include/access/hash.h.orig   Wed Feb 13 22:43:06 2002
+--- ./src/include/access/hash.h        Thu Feb 14 00:38:35 2002
+***************
+*** 265,271 ****
+  extern Datum hashint2vector(PG_FUNCTION_ARGS);
+  extern Datum hashname(PG_FUNCTION_ARGS);
+  extern Datum hashvarlena(PG_FUNCTION_ARGS);
+! extern Datum hash_any(char *keydata, int keylen);
+=20=20
+=20=20
+  /* private routines */
+--- 265,271 ----
+  extern Datum hashint2vector(PG_FUNCTION_ARGS);
+  extern Datum hashname(PG_FUNCTION_ARGS);
+  extern Datum hashvarlena(PG_FUNCTION_ARGS);
+! extern Datum hash_any(const char *keydata, int keylen);
+=20=20
+=20=20
+  /* private routines */
+
+--=-0nvLRoTY5hWeegGhITre
+Content-Type: text/plain
+Content-Disposition: inline
+Content-Transfer-Encoding: binary
+MIME-Version: 1.0
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
+
+--=-0nvLRoTY5hWeegGhITre--
+
+
+From pgsql-hackers-owner+M18819=candle.pha.pa.us=pgman@postgresql.org Thu Feb 14 09:03:43 2002
+Return-path: <pgsql-hackers-owner+M18819=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+       by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g1EE3gP17661
+       for <pgman@candle.pha.pa.us>; Thu, 14 Feb 2002 09:03:42 -0500 (EST)
+Received: (qmail 68050 invoked by alias); 14 Feb 2002 14:03:37 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+  by www.postgresql.org with SMTP; 14 Feb 2002 14:03:37 -0000
+Received: from CopelandConsulting.Net (dsl-24293-ld.customer.centurytel.net [209.142.135.135])
+       by postgresql.org (8.11.3/8.11.4) with ESMTP id g1EE1FE67720
+       for <pgsql-hackers@postgresql.org>; Thu, 14 Feb 2002 09:01:15 -0500 (EST)
+       (envelope-from greg@copelandconsulting.net)
+Received: from there (mouse.copelandconsulting.net [192.168.1.2])
+       by CopelandConsulting.Net (8.10.1/8.10.1) with SMTP id g1EE1Dk24399;
+       Thu, 14 Feb 2002 08:01:14 -0600 (CST)
+Message-ID: <CCC.200202141401.g1EE1Dk24399@CopelandConsulting.Net>
+X-Trade-Id: <CCC.Thu, 14 Feb 2002 08:01:14 -0600 (CST).Thu, 14 Feb 2002 08:01:14 -0600 (CST).200202141401.g1EE1Dk24399.g1EE1Dk24399@CopelandConsulting.Net.
+Content-Type: text/plain;
+  charset="iso-8859-1"
+From: Greg Copeland <greg@CopelandConsulting.Net>
+Organization: Copeland Computer Consulting
+To: Neil Conway <nconway@klamath.dyndns.org>, pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] NAMEDATALEN Changes
+Date: Thu, 14 Feb 2002 08:00:58 -0600
+X-Mailer: KMail [version 1.3.1]
+References: <Pine.LNX.4.30.0202131912010.683-100000@peter.localdomain> <4413.1013648406@sss.pgh.pa.us> <1013666380.5380.19.camel@jiro>
+In-Reply-To: <1013666380.5380.19.camel@jiro>
+MIME-Version: 1.0
+Content-Transfer-Encoding: 8bit
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA1
+
+On Wednesday 13 February 2002 23:59, Neil Conway wrote:
+> On Wed, 2002-02-13 at 20:00, Tom Lane wrote:
+
+[perf hit comment removed]
+
+>
+> I've attached a pretty trivial patch that implements this. Instead of
+> automatically hashing NAMEDATALEN bytes, hashname() uses only strlen()
+> bytes: this should improve both the common case (small identifers, 5-10
+> characters long), as well as reduce the penalty when NAMEDATALEN is
+> increased. The patch passes the regression tests, FWIW. I didn't remove
+> cc_hashname() -- I'll tackle that tomorrow unless anyone objects...
+>
+> I also did some pretty simple benchmarks; however, I'd appreciate it
+> anyone could confirm these results.
+>
+
+Please bare with me on this as this is my first posting having any real 
+content.  Please don't hang me out if I've overlooked anything and I'm 
+pointing out that I'm making a rather large assumption.  Please correct as 
+needed. 
+
+The primary assumption is that the actual key lengths can be less than 
+NAMEDATALEN.  That is, if the string, "shortkey" is a valid input key (??) 
+which provides a key length of 8-bytes as input to the hash_any() function 
+even though NAMEDATALEN may be something like 128 or larger.  If this 
+assumption is correct, then wouldn't increasing the default input key size 
+(NAMEDATALEN) beyond the maximum actual key length be a bug?  That is to say, 
+if we have a key with only 8-bytes of data and we iterrate over 128-bytes, 
+wouldn't the resulting hash be arbitrary and invalid as it would be hashing 
+memory which is not reflective of the key being hashed?
+
+If my assumptions are correct, then it sounds like using the strlen() 
+implementation (assuming input keys are valid C-strings) is really the proper 
+implementation short of using an adjusted min(NAMEDATALEN,strlen()) type 
+approach.
+
+[snip - var NAMEDATALEN benchmark results]
+
+
+Greg
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.0.6 (GNU/Linux)
+Comment: For info see http://www.gnupg.org
+
+iD8DBQE8a8Mg4lr1bpbcL6kRAlaxAJ47CO+ExL/ZMo/i6LDoetXrul9qqQCfQli3
+AvqN6RJjSuAH/p/mpZ8J4JY=
+=wnVM
+-----END PGP SIGNATURE-----
+
+---------------------------(end of broadcast)---------------------------
+TIP 5: Have you checked our extensive FAQ?
+
+http://www.postgresql.org/users-lounge/docs/faq.html
+
+From pgsql-hackers-owner+M18820=candle.pha.pa.us=pgman@postgresql.org Thu Feb 14 10:14:25 2002
+Return-path: <pgsql-hackers-owner+M18820=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+       by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g1EFEOP25217
+       for <pgman@candle.pha.pa.us>; Thu, 14 Feb 2002 10:14:24 -0500 (EST)
+Received: (qmail 80096 invoked by alias); 14 Feb 2002 15:14:19 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+  by www.postgresql.org with SMTP; 14 Feb 2002 15:14:19 -0000
+Received: from sss.pgh.pa.us ([192.204.191.242])
+       by postgresql.org (8.11.3/8.11.4) with ESMTP id g1EEvpE77298
+       for <pgsql-hackers@postgresql.org>; Thu, 14 Feb 2002 09:57:51 -0500 (EST)
+       (envelope-from tgl@sss.pgh.pa.us)
+Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1])
+       by sss.pgh.pa.us (8.11.4/8.11.4) with ESMTP id g1EEvof08568;
+       Thu, 14 Feb 2002 09:57:50 -0500 (EST)
+To: Greg Copeland <greg@CopelandConsulting.Net>
+cc: Neil Conway <nconway@klamath.dyndns.org>, pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] NAMEDATALEN Changes 
+In-Reply-To: <CCC.200202141401.g1EE1Dk24399@CopelandConsulting.Net> 
+References: <Pine.LNX.4.30.0202131912010.683-100000@peter.localdomain> <4413.1013648406@sss.pgh.pa.us> <1013666380.5380.19.camel@jiro> <CCC.200202141401.g1EE1Dk24399@CopelandConsulting.Net>
+Comments: In-reply-to Greg Copeland <greg@CopelandConsulting.Net>
+       message dated "Thu, 14 Feb 2002 08:00:58 -0600"
+Date: Thu, 14 Feb 2002 09:57:50 -0500
+Message-ID: <8565.1013698670@sss.pgh.pa.us>
+From: Tom Lane <tgl@sss.pgh.pa.us>
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+Greg Copeland <greg@CopelandConsulting.Net> writes:
+> if we have a key with only 8-bytes of data and we iterrate over 128-bytes, 
+> wouldn't the resulting hash be arbitrary and invalid as it would be hashing 
+> memory which is not reflective of the key being hashed?
+
+As long as we do it *consistently*, we can do it either way.  Using the
+trailing nulls in the hash does alter the computed hash value --- but
+we're only ever gonna compare the hash value against other hash values
+computed on other NAMEs by this same routine.
+
+This all assumes that the inputs are valid NAMEs, viz strlen <
+NAMEDATALEN and no funny business beyond the first \0.  In practice,
+however, if a bogus NAME were handed to us we would just as soon ignore
+any characters beyond the first \0, because the ordering comparison
+operators for NAME all do so (they're all based on strncmp), as do the
+I/O routines etc.  So this change actually makes the system more
+self-consistent not less so.
+
+                       regards, tom lane
+
+---------------------------(end of broadcast)---------------------------
+TIP 6: Have you searched our list archives?
+
+http://archives.postgresql.org
+
+From pgsql-hackers-owner+M18827=candle.pha.pa.us=pgman@postgresql.org Thu Feb 14 13:53:52 2002
+Return-path: <pgsql-hackers-owner+M18827=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+       by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g1EIrpP17729
+       for <pgman@candle.pha.pa.us>; Thu, 14 Feb 2002 13:53:51 -0500 (EST)
+Received: (qmail 47648 invoked by alias); 14 Feb 2002 18:53:50 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+  by www.postgresql.org with SMTP; 14 Feb 2002 18:53:50 -0000
+Received: from klamath.dyndns.org (CPE002078144ae0.cpe.net.cable.rogers.com [24.102.202.35])
+       by postgresql.org (8.11.3/8.11.4) with ESMTP id g1EIbiE46318
+       for <pgsql-hackers@postgresql.org>; Thu, 14 Feb 2002 13:37:44 -0500 (EST)
+       (envelope-from nconway@klamath.dyndns.org)
+Received: by klamath.dyndns.org (Postfix, from userid 1000)
+       id 032E8700C; Thu, 14 Feb 2002 13:37:44 -0500 (EST)
+Date: Thu, 14 Feb 2002 13:37:43 -0500
+To: pgsql-hackers@postgresql.org
+Subject: Re: [HACKERS] NAMEDATALEN Changes
+Message-ID: <20020214183743.GA10423@klamath.dyndns.org>
+Mail-Followup-To: pgsql-hackers@postgresql.org
+References: <Pine.LNX.4.30.0202131912010.683-100000@peter.localdomain> <4413.1013648406@sss.pgh.pa.us> <1013666380.5380.19.camel@jiro>
+MIME-Version: 1.0
+Content-Type: multipart/mixed; boundary="huq684BweRXVnRxX"
+Content-Disposition: inline
+In-Reply-To: <1013666380.5380.19.camel@jiro>
+User-Agent: Mutt/1.3.27i
+From: nconway@klamath.dyndns.org (Neil Conway)
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+--huq684BweRXVnRxX
+Content-Type: text/plain; charset=us-ascii
+Content-Disposition: inline
+
+On Thu, Feb 14, 2002 at 12:59:40AM -0500, Neil Conway wrote:
+> I've attached a pretty trivial patch that implements this. Instead of
+> automatically hashing NAMEDATALEN bytes, hashname() uses only strlen()
+> bytes: this should improve both the common case (small identifers, 5-10
+> characters long), as well as reduce the penalty when NAMEDATALEN is
+> increased. The patch passes the regression tests, FWIW. I didn't remove
+> cc_hashname() -- I'll tackle that tomorrow unless anyone objects...
+
+Okay, I've attached a new version that removes cc_hashname(). As with
+the previous patch, this passes the regression tests. Feedback is welcome.
+
+Cheers,
+
+Neil
+
+
+--huq684BweRXVnRxX
+Content-Type: text/plain; charset=us-ascii
+Content-Disposition: attachment; filename="hash_len.patch"
+
+*** ./src/backend/access/hash/hashfunc.c.orig  Wed Feb 13 21:09:37 2002
+--- ./src/backend/access/hash/hashfunc.c       Thu Feb 14 00:39:42 2002
+***************
+*** 95,101 ****
+  {
+       char       *key = NameStr(*PG_GETARG_NAME(0));
+  
+!      return hash_any((char *) key, NAMEDATALEN);
+  }
+  
+  /*
+--- 95,101 ----
+  {
+       char       *key = NameStr(*PG_GETARG_NAME(0));
+  
+!      return hash_any(key, strlen(key));
+  }
+  
+  /*
+***************
+*** 125,131 ****
+   *
+   * (Comment from the original db3 hashing code: )
+   *
+!  * "This is INCREDIBLY ugly, but fast.  We break the string up into 8 byte
+   * units.  On the first time through the loop we get the 'leftover bytes'
+   * (strlen % 8).  On every later iteration, we perform 8 HASHC's so we handle
+   * all 8 bytes.  Essentially, this saves us 7 cmp & branch instructions.  If
+--- 125,131 ----
+   *
+   * (Comment from the original db3 hashing code: )
+   *
+!  * This is INCREDIBLY ugly, but fast.  We break the string up into 8 byte
+   * units.  On the first time through the loop we get the 'leftover bytes'
+   * (strlen % 8).  On every later iteration, we perform 8 HASHC's so we handle
+   * all 8 bytes.  Essentially, this saves us 7 cmp & branch instructions.  If
+***************
+*** 134,140 ****
+   * "OZ's original sdbm hash"
+   */
+  Datum
+! hash_any(char *keydata, int keylen)
+  {
+       uint32          n;
+       int                     loop;
+--- 134,140 ----
+   * "OZ's original sdbm hash"
+   */
+  Datum
+! hash_any(const char *keydata, int keylen)
+  {
+       uint32          n;
+       int                     loop;
+*** ./src/backend/utils/cache/catcache.c.orig  Thu Feb 14 12:51:00 2002
+--- ./src/backend/utils/cache/catcache.c       Thu Feb 14 12:53:05 2002
+***************
+*** 93,99 ****
+  static Index CatalogCacheComputeTupleHashIndex(CatCache *cache,
+                                                                 HeapTuple tuple);
+  static void CatalogCacheInitializeCache(CatCache *cache);
+- static Datum cc_hashname(PG_FUNCTION_ARGS);
+  
+  
+  /*
+--- 93,98 ----
+***************
+*** 109,115 ****
+               case CHAROID:
+                       return hashchar;
+               case NAMEOID:
+!                      return cc_hashname;
+               case INT2OID:
+                       return hashint2;
+               case INT2VECTOROID:
+--- 108,114 ----
+               case CHAROID:
+                       return hashchar;
+               case NAMEOID:
+!                      return hashname;
+               case INT2OID:
+                       return hashint2;
+               case INT2VECTOROID:
+***************
+*** 129,151 ****
+                       return (PGFunction) NULL;
+       }
+  }
+- 
+- static Datum
+- cc_hashname(PG_FUNCTION_ARGS)
+- {
+-      /*
+-       * We need our own variant of hashname because we want to accept
+-       * null-terminated C strings as search values for name fields. So, we
+-       * have to make sure the data is correctly padded before we compute
+-       * the hash value.
+-       */
+-      NameData        my_n;
+- 
+-      namestrcpy(&my_n, NameStr(*PG_GETARG_NAME(0)));
+- 
+-      return DirectFunctionCall1(hashname, NameGetDatum(&my_n));
+- }
+- 
+  
+  /*
+   * Standard routine for creating cache context if it doesn't exist yet
+--- 128,133 ----
+*** ./src/include/access/hash.h.orig   Wed Feb 13 22:43:06 2002
+--- ./src/include/access/hash.h        Thu Feb 14 00:38:35 2002
+***************
+*** 265,271 ****
+  extern Datum hashint2vector(PG_FUNCTION_ARGS);
+  extern Datum hashname(PG_FUNCTION_ARGS);
+  extern Datum hashvarlena(PG_FUNCTION_ARGS);
+! extern Datum hash_any(char *keydata, int keylen);
+  
+  
+  /* private routines */
+--- 265,271 ----
+  extern Datum hashint2vector(PG_FUNCTION_ARGS);
+  extern Datum hashname(PG_FUNCTION_ARGS);
+  extern Datum hashvarlena(PG_FUNCTION_ARGS);
+! extern Datum hash_any(const char *keydata, int keylen);
+  
+  
+  /* private routines */
+
+--huq684BweRXVnRxX
+Content-Type: text/plain
+Content-Disposition: inline
+Content-Transfer-Encoding: binary
+MIME-Version: 1.0
+
+
+---------------------------(end of broadcast)---------------------------
+TIP 3: if posting/reading through Usenet, please send an appropriate
+subscribe-nomail command to majordomo@postgresql.org so that your
+message can get through to the mailing list cleanly
+
+--huq684BweRXVnRxX--
+
+From pgsql-hackers-owner+M18833=candle.pha.pa.us=pgman@postgresql.org Thu Feb 14 16:22:34 2002
+Return-path: <pgsql-hackers-owner+M18833=candle.pha.pa.us=pgman@postgresql.org>
+Received: from server1.pgsql.org (www.postgresql.org [64.49.215.9])
+       by candle.pha.pa.us (8.11.6/8.10.1) with SMTP id g1ELMXP07956
+       for <pgman@candle.pha.pa.us>; Thu, 14 Feb 2002 16:22:34 -0500 (EST)
+Received: (qmail 80517 invoked by alias); 14 Feb 2002 21:22:29 -0000
+Received: from unknown (HELO postgresql.org) (64.49.215.8)
+  by www.postgresql.org with SMTP; 14 Feb 2002 21:22:29 -0000
+Received: from post.webmailer.de (natpost.webmailer.de [192.67.198.65])
+       by postgresql.org (8.11.3/8.11.4) with ESMTP id g1EL2mE77720
+       for <pgsql-hackers@postgresql.org>; Thu, 14 Feb 2002 16:02:48 -0500 (EST)
+       (envelope-from barwick@gmx.net)
+Received: from there (pD9EB17D4.dip.t-dialin.net [217.235.23.212])
+       by post.webmailer.de (8.9.3/8.8.7) with SMTP id WAA07320
+       for <pgsql-hackers@postgresql.org>; Thu, 14 Feb 2002 22:02:49 +0100 (MET)
+Message-ID: <200202142102.WAA07320@post.webmailer.de>
+Content-Type: text/plain;
+  charset="iso-2022-jp"
+From: Ian Barwick <barwick@gmx.net>
+To: "Hackers List" <pgsql-hackers@postgresql.org>
+Subject: Re: [HACKERS] NAMEDATALEN Changes
+Date: Thu, 14 Feb 2002 22:02:34 +0100
+X-Mailer: KMail [version 1.3.1]
+References: <003901c1b4ca$1d762500$8001a8c0@jester> <200202132227.XAA22201@post.webmailer.de>
+In-Reply-To: <200202132227.XAA22201@post.webmailer.de>
+MIME-Version: 1.0
+Content-Transfer-Encoding: 8bit
+Precedence: bulk
+Sender: pgsql-hackers-owner@postgresql.org
+Status: OR
+
+On Wednesday 13 February 2002 23:27, Ian Barwick wrote:
+> On Wednesday 13 February 2002 21:07, Rod Taylor wrote:
+> > NAMEDATALEN's benchmarked are 32, 64, 128 and 512.  Attached is the
+> > shell script I used to do it.
+>
+> Attached is a modified version for Linux, if anyone is interested.
+>
+> Will run it overnight out of quasi-scientific interest.
+>
+> Nice to have an idea what kind of effect my very long NAMEDATALEN setting
+> (128) has.
+
+Below the probably quite uninformative results, run under Linux with 2.2.16 
+on an AMD K2 350Mhz with 256MB RAM, EIDE HDs and other run of the mill
+hardware.
+
+I suspect some of the normal system jobs which usually run during the night
+caused the wildly varying results. Whatever else, for my purposes at least
+any performance issues with differening NAMEDATALENgths are nothing much
+to worry about.
+
+
+NAMEDATALEN: 32
+220.73 real 3.39 user 0.10 sys
+110.03 real 2.77 user 4.42 sys
+
+
+NAMEDATALEN: 64
+205.31 real 3.55 user 0.08 sys
+109.76 real 2.53 user 4.18 sys
+
+
+NAMEDATALEN: 128
+224.65 real 3.35 user 0.10 sys
+121.30 real 2.60 user 3.89 sys
+
+
+NAMEDATALEN: 256
+209.48 real 3.62 user 0.11 sys
+118.90 real 3.00 user 3.88 sys
+
+
+NAMEDATALEN: 512
+204.65 real 3.36 user 0.14 sys
+115.12 real 2.54 user 3.88 sys
+
+
+Ian Barwick
+
+---------------------------(end of broadcast)---------------------------
+TIP 3: if posting/reading through Usenet, please send an appropriate
+subscribe-nomail command to majordomo@postgresql.org so that your
+message can get through to the mailing list cleanly
+