X-Original-To: pgsql-hackers-postgresql.org@localhost.postgresql.org Received: from localhost (av.hub.org [200.46.204.144]) by svr1.postgresql.org (Postfix) with ESMTP id 041D9D6E86 for ; Wed, 7 Sep 2005 15:27:51 -0300 (ADT) Received: from svr1.postgresql.org ([200.46.204.71]) by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024) with ESMTP id 09208-10 for ; Wed, 7 Sep 2005 18:27:47 +0000 (GMT) Received: from davinci.ethosmedia.com (server227.ethosmedia.com [209.128.84.227]) by svr1.postgresql.org (Postfix) with ESMTP id E6BE0D6E15 for ; Wed, 7 Sep 2005 15:27:46 -0300 (ADT) X-EthosMedia-Virus-Scanned: no infections found Received: from [64.81.245.111] (account josh@agliodbs.com HELO temoku.sf.agliodbs.com) by davinci.ethosmedia.com (CommuniGate Pro SMTP 4.1.8) with ESMTP id 8053861; Wed, 07 Sep 2005 11:30:07 -0700 From: Josh Berkus Reply-To: josh@agliodbs.com Organization: Aglio Database Solutions To: pgsql-hackers@postgresql.org Subject: Re: uuid type for postgres Date: Wed, 7 Sep 2005 11:31:16 -0700 User-Agent: KMail/1.8 Cc: nathan wagner References: <20050906135057.GA24136@granicus.if.org> <200509070948.08307.josh@agliodbs.com> <20050907171912.GA6427@granicus.if.org> In-Reply-To: <20050907171912.GA6427@granicus.if.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Message-Id: <200509071131.17161.josh@agliodbs.com> X-Virus-Scanned: by amavisd-new at hub.org X-Spam-Status: No, hits=0.047 required=5 tests=[AWL=-0.003, FORGED_RCVD_HELO=0.05] X-Spam-Level: X-Archive-Number: 200509/342 X-Sequence-Number: 72739 Nathan, > I was thinking of cryptographic applications. =A0Then, to use an > example from another domain, initial TCP sequence numbers should > be random (i.e. unguessable). =A0A problem with TCP perhaps. =A0It's > been a while since i've read over my copy of _Applied Cryptography_, > but I seem to recall that unguessable numbers were sometimes useful. Yeah, the problem is what it does to your data. If there's no analyzable= =20 correspondence between the key and the server/table/row it attaches to,=20 then you have no way to detect if the key and the data have become=20 disassociated. =20 This is, btw, a problem with conventional SERIALs as well. "unguessable"= =20 UUIDs just compound the problem by adding additional variables (the server= =20 and the table), as well as generally leading to applications which depend=20 *entirely* on UUID-based integrity and thus can't cope with any failures=20 in UUID generation or transmission. I'm also a little baffled to come up with any real application where making= =20 an id number for most tables "unguessable" would provide any kind of real=20 protection not far better provided by other means. For your "users"=20 table, sure, but that's a very special case. =2D-=20 =2D-Josh Josh Berkus Aglio Database Solutions San Francisco