Re: pgsql-patches considered harmful - Mailing list pgsql-hackers

From Greg Sabino Mullane
Subject Re: pgsql-patches considered harmful
Date
Msg-id 32f78a3e2657217043bf425373798efc@biglumber.com
Whole thread Raw
In response to Re: pgsql-patches considered harmful  (Greg Stark <gsstark@mit.edu>)
Responses Re: pgsql-patches considered harmful
List pgsql-hackers
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
NotDashEscaped: You need GnuPG to verify this message



One thing that came up in the discussion here was the idea of a
weekly (or other time period) digest of patches posts, stripped
of attachments, but with a link to the patches email, which will
have both the attachment and follow-up posts for those that are
interested. Proof of concept below my sig.

--
Greg Sabino Mullane greg@turnstep.com
PGP Key: 0x14964AC8 200607111416
http://biglumber.com/x/web?pk=2529DF6AB8F79407E94445B4BC9B906714964AC8


Weekly PostgreSQL patches summary:


http://archives.postgresql.org/pgsql-patches/2006-07/msg00018.php
From: Neil Conway <neilc@samurai.com>
Subject: [PATCHES] CREATE TRIGGER locking
Date: 2:25 AM on Tuesday, July 04, 2006

Last year, I questioned why CREATE TRIGGER acquires an
AccessExclusiveLock on its target table:
   http://archives.postgresql.org/pgsql-hackers/2005-03/msg00764.php

Acquiring an ExclusiveLock should be sufficient: we can safely allow
concurrent SELECTs on the table. (The -hackers thread discusses both
CREATE TRIGGER and ALTER TABLE ADD FK; the latter might require some
more consideration, so I'll tackle that later.)

This patch implements this change, and updates the documentation.

Barring any objections, I'll apply this in a day or two.

-Neil


---------------------------(end of broadcast)---------------------------



http://archives.postgresql.org/pgsql-patches/2006-07/msg00021.php

From: Tom Lane <tgl@sss.pgh.pa.us>
Subject: [PATCHES] Draft patch for bug: ALTER TYPE ... USING(NULL) / NOT NULL violation
Date: 6:37 PM on Tuesday, July 04, 2006

Attached is a rather hurried patch for Alexander Pravking's report that
ALTER TABLE fails to check pre-existing NOT NULL constraints properly:
http://archives.postgresql.org/pgsql-bugs/2006-07/msg00015.php

It seems to work but I'm out of time to do more with it, and am leaving
for Toronto in the morning.  Anyone want to look it over, generate
back-patches as appropriate, and apply?
                       regards, tom lane


---------------------------(end of broadcast)---------------------------



http://archives.postgresql.org/pgsql-patches/2006-07/msg00031.php

From: Greg Stark <gsstark@mit.edu>
Subject: [PATCHES] BTree tid operators and opclass
Date: 6:53 PM on Thursday, July 06, 2006

Here's a small patch to add the full suite of btree operators for tids and the
corresponding btree opclass. This came up a while back on -hackers and a few
people were interested in it at the time. I just had a need for it again so I
added it.

I'm not sure how to allocate OIDs. I just looked for the greatest one in the
various .h files and started from there. It leads to some strange
discontinuities since there were existing = and <> operators.



--
greg

---------------------------(end of broadcast)---------------------------



http://archives.postgresql.org/pgsql-patches/2006-07/msg00035.php

From: "Magnus Hagander" <mha@sollentuna.net>
Subject: [PATCHES] Win32 DEF file error
Date: 11:30 AM on Monday, July 10, 2006

The Win32 DEF files that are generated for libpq contain the attribute
"DESCRIPTION", which is actually only allowed for device drivers. The
compilers ignore it with a warning - if we remove them, we get rid of
the warning.

(ref
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/
html/_core_description.asp)

//Magnus

---------------------------(end of broadcast)---------------------------



http://archives.postgresql.org/pgsql-patches/2006-07/msg00037.php

From: "Dave Page" <dpage@vale-housing.co.uk>
Subject: [PATCHES] Minor ipv6/Win32 fix
Date: 7:42 PM on Monday, July 10, 2006

The attached patch reverses ws2tcpip.h and winsock2.h to avoid an
undefined symbol error when building under VC2k5.

Regards, Dave

---------------------------(end of broadcast)---------------------------



http://archives.postgresql.org/pgsql-patches/2006-07/msg00038.php

From: James Gates <jim.gates@sun.com>
Subject: [PATCHES] Patch to "configure" to enable PostgreSQL build with Kerberos 5 on Solaris 11
Date: 7:50 PM on Monday, July 10, 2006

Included below are extracts from an earlier email thread (on
pgsql-ports) discussing the problem.

Attached are the context diffs for configure.in.

This change has no impact unless the "--with-krb5" option is used with
"configure". If the option *is* used, configure will now only search for
function krb5_sendauth(), instead of looking for both krb5_encrypt() and
krb5_sendauth().

I've tested (i.e. built using --with-krb5) with version 8.1.4 on Solaris
11 only. This change should have no negative impact for builds on other
platforms since:

a) The check for krb5_sendauth() remains, which is sufficient to
determine the presence of Kerberos 5

and

b) None of the PostgreSQL code uses krb5_encrypt() anyway


James Gates wrote:> Prior to Solaris 11 (Nevada), the full Kerberos 5 API was never exposed> (only the gss interface),
sobuilding PostgreSQL with the "--with-krb5"> option is a problem.>> In Nevada, Sun has exposed the full MIT Kerberos 5
API(v1.4.0). So> building PostgreSQL with Kerberos should be possible/easy. If I try to> build 8.1.4 though, it fails
withthe following error:>> $ ./configure --with-krb5 --without-readline> checking build system type...
sparc-sun-solaris2.11>checking host system type... sparc-sun-solaris2.11> ... snip ...> checking for library containing
com_err...-lkrb5> checking for library containing krb5_encrypt... no> configure: error: could not find function
'krb5_encrypt'required for> Kerberos 5>> This is because in krb5 v1.4.0, the krb5_encrypt() function is>
deprecated/removed,so doesn't exist anywhere in the Solaris libraries.> It is replaced by krb5_c_encrypt() (I think
thischange occurred> sometime between krb5 v1.2.1 and v1.4.0)>> But looking more closely at the PostgreSQL 8.1.4 code,
Isee that it> never even uses the krb5_encrypt() function anyway! So although it's> presence might be a useful method
fordetecting the presence of Kerberos> 5 (pre v1.4.0), it seems unnecessary for the successful operation of>
PostgreSQL.>>By simply removing the check for krb5_encrypt() from the configure> script, I can successfully build
PostgreSQLwith krb5 on Nevada.>> Does anyone know why the check for krb5_encrypt() exists in configure> when the code
doesn'tuse it? And would absence of a good reason> indicate this is a bug (and the check should be removed)?
 

Tom Lane wrote:> James Gates <James.Gates@Sun.COM> writes:>> Does anyone know why the check for krb5_encrypt() exists
inconfigure>> when the code doesn't use it?>> At the time it was chosen, it was probably a reasonable choice of>
functionto probe for to make sure Kerberos libraries are present.> Do you have a better suggestion?>>
  regards, tom lane
 

James Gates wrote:> The configure script already checks for krb5_sendauth() as well as> krb5_encrypt(). The libpq code
*does*use krb5_sendauth(), which is not> deprecated (and I know of no plans to make it so).>> I discussed this problem
lastnight with Magnus Hagander, and we're both> of the opinion that the search for krb5_sendauth() alone is sufficient>
todetermine if krb5 is present on your system.>> Magus suspects that at some point in the past, PostgreSQL did use>
krb5_encrypt(),and it was changed (maybe in anticipation of the> function becoming deprecated?). Whoever made the
change,>forgot/neglected to remove the check from the configure script.>> I propose that we remove the check for
krb5_encrypt()from the configure> script, leaving just the check for krb5_sendauth().>> Note - krb5_encrypt() is
replacedby krb5_c_encrypt() in the latest> implementation of krb5. We could change the configure script to check> for
thisas well, but as mentioned above, I think this is unnecessary.
 

$ runsocks cvs diff -c configure.in
Index: configure.in
===================================================================
RCS file: /projects/cvsroot/pgsql/configure.in,v
retrieving revision 1.467
diff -c -r1.467 configure.in
*** configure.in        18 Jun 2006 18:30:20 -0000      1.467
--- configure.in        10 Jul 2006 20:56:44 -0000
***************
*** 671,678 ****   if test "$PORTNAME" != "win32"; then      AC_SEARCH_LIBS(com_err, [krb5 'krb5 -ldes -lasn1 -lroken'
com_err],[],                     [AC_MSG_ERROR([could not find function 'com_err' required for Kerberos 5])])
 
-      AC_SEARCH_LIBS(krb5_encrypt, [krb5 'krb5 -ldes -lasn1 -lroken' crypto k5crypto], [],
-                     [AC_MSG_ERROR([could not find function 'krb5_encrypt' required for Kerberos 5])])
AC_SEARCH_LIBS(krb5_sendauth,[krb5 'krb5 -ldes -lasn1 -lroken'], [],                     [AC_MSG_ERROR([could not find
function'krb5_sendauth' required for Kerberos 5])])   else
 
--- 671,676 ----

---------------------------(end of broadcast)---------------------------



http://archives.postgresql.org/pgsql-patches/2006-07/msg00039.php

From: "Charles Duffy" <charles.duffy@gmail.com>
Subject: [PATCHES] putting CHECK_FOR_INTERRUPTS in qsort_comparetup()
Date: 3:53 AM on Tuesday, July 11, 2006

Hi,

We came up with this patch in response to a problem reported to us by a
client. They had a query which took an unacceptably long time to respond
to a cancel request (SIGINT). The client uses 8.1.4, so the patch is
against that.

Their work_mem setting was rather large (1000000). We determined that when it
received SIGINT, the backend was always inside qsort(), so it wouldn't
call ProcessInterrupts() again until it finished this large in-memory
sort. Upon entering tuplesort_performsort(), state->memtupcount was
29247.

The patch puts a CHECK_FOR_INTERRUPTS in qsort_comparetup. This solves
their problem, at the cost of checking InterruptPending a lot. The
"unlikely()" gcc directive might help there a bit.

I'm not sure if this patch has general applicability - but it seems to
solve the problem for our client. Does anyone think it might introduce
any new problems?

Thanks,


--
Charles Duffy

---------------------------(end of broadcast)---------------------------




-----BEGIN PGP SIGNATURE-----

iD8DBQFEs+0OvJuQZxSWSsgRAhJ9AKCBNzurWPdlG5u2U4OeXpB8rsWsMgCgmaqx
iCJyswtFr6OIULjXz0C8uGY=
=2ari
-----END PGP SIGNATURE-----




pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Three weeks left until feature freeze
Next
From: Greg Stark
Date:
Subject: Re: pgsql-patches considered harmful