William Garrison wrote: > I don't recommend it. There are better ways to store UUIDs: > > char(32) <-- Easy to work with, fixed length, inefficient > varchar(32) <-- 4 bytes larger due to variable size > bytea() <-- 20 bytes, variable length > bit(128) <-- 16 bytes, optimal > > I don't like char() or varchar() because of case-senstivity and > inefficiency. > > We used bytea, and created a small function byte2guid() and guid2byte() > to handle converting to/from strings when working at a SQL prompt. But > the production code doesn't use those. In retrospect, I would like to > have tried BIT(128) since I think fixed-length columns perform better > than variable-length columns. FWIW, in Postgres, all those types are stored with the word length in front of each datum. We don't use the column maximum length as a cue for the storage of each individual datum. So the two first items you list above are stored identically. -- Alvaro Herrera http://www.CommandPrompt.com/ PostgreSQL Replication, Consulting, Custom Development, 24x7 support