| From: | Bill Moran <wmoran(at)potentialtech(dot)com> |
|---|---|
| To: | Jasen Betts <jasen(at)xnet(dot)co(dot)nz> |
| Cc: | pgsql-general(at)postgresql(dot)org |
| Subject: | Re: Re: Mapping output from a SEQUENCE into something non-repeating/colliding but random-looking? |
| Date: | 2009-05-01 12:40:05 |
| Message-ID: | 20090501084005.32d47989.wmoran@potentialtech.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
In response to Jasen Betts <jasen(at)xnet(dot)co(dot)nz>:
> On 2009-04-30, Craig Ringer <craig(at)postnewspapers(dot)com(dot)au> wrote:
> > Hi
> >
> > This must be a fairly common requirement, but either I don't know how to
> > ask Google about it or there's not as much out there as I would've expected.
> >
> > I'm looking for a way to map the output from a monotonically increasing
> > sequence (not necessarily gapless - ie a normal Pg SEQUENCE) into a
> > fairly random different value in the availible space with a 1:1
> > input->output relationship. In other words, for the input "27" the
> > output will always be the same (say 32 bit) number, and no other input
> > will produce that output.
>
> so you want
>
> DEFAULT magic_func( nextval('foo_id_seq'::regclass) )
>
> where magic_func is the 1:1 mapping and foo_id_seq is the sequence
> that feeds it.
Sounds like you're reinventing message digests ...
> > If I find something good and there aren't any existing Pl/PgSQL
> > implementations I'll post one for others' use, since I'm pretty sure it
> > must come up a lot. You don't want your database to send out "invoice
> > #1" or "customer #1" after all.
Most of the systems I've seen like this do one of a few things:
* Start with an arbitrary # like 1000
* Prepend the date (pretty common for invoice #s) like 20090501001
* Just start with #1 ... I mean, what's the big deal?
--
Bill Moran
http://www.potentialtech.com
http://people.collaborativefusion.com/~wmoran/
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Craig Ringer | 2009-05-01 12:42:53 | Re: recover corrupt DB? |
| Previous Message | Jasen Betts | 2009-05-01 11:28:35 | Re: Mapping output from a SEQUENCE into something non-repeating/colliding but random-looking? |