| From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
|---|---|
| To: | Gregory Maxwell <gmaxwell(at)gmail(dot)com> |
| Cc: | Martijn van Oosterhout <kleptog(at)svana(dot)org>, mark(at)mark(dot)mielke(dot)cc, Simon Riggs <simon(at)2ndquadrant(dot)com>, Andrew Dunstan <andrew(at)dunslane(dot)net>, "Jim C(dot) Nasby" <jnasby(at)pervasive(dot)com>, pgsql-hackers(at)postgresql(dot)org |
| Subject: | Re: Reducing the overhead of NUMERIC data |
| Date: | 2005-11-04 02:17:43 |
| Message-ID: | 8698.1131070663@sss.pgh.pa.us |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers pgsql-patches |
Gregory Maxwell <gmaxwell(at)gmail(dot)com> writes:
> Another way to look at this is in the context of compression: With
> unicode, characters are really 32bit values... But only a small range
> of these values is common. So we store and work with them in a
> compressed format, UTF-8.
> As such it might be more interesting to ask some other questions like:
> are we using the best compression algorithm for the application, and,
> why do we sometimes stack two compression algorithms?
Actually, the real reason we use UTF-8 and not any of the
sorta-fixed-size representations of Unicode is that the backend is by
and large an ASCII, null-terminated-string engine. *All* of the
supported backend encodings are ASCII-superset codes. Making
everything null-safe in order to allow use of UCS2 or UCS4 would be
a huge amount of work, and the benefit is at best questionable.
regards, tom lane
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Cedric Berger | 2005-11-04 08:18:12 | postgresql-8.1RC1 on Solaris 10, amd64x2 |
| Previous Message | Tom Lane | 2005-11-03 23:02:27 | Re: slru.c race condition (was Re: TRAP: FailedAssertion("!((itemid)->lp_flags |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | mark | 2005-11-04 13:38:38 | Re: Reducing the overhead of NUMERIC data |
| Previous Message | Tom Lane | 2005-11-03 23:02:27 | Re: slru.c race condition (was Re: TRAP: FailedAssertion("!((itemid)->lp_flags |