Bruce Momjian wrote:
Heikki Linnakangas wrote:
We would still require all datums with a 4-byte header to be 4-byte aligned, right? When reading, you would first check if it's a compressed or uncompressed header. If compressed, read the 1 byte header, if uncompressed, read the 4-byte header and do htonl or bitshifting. No need to do htonl or bitshifting on unaligned datums.

I am not sure how to handle the alignment issue.  If we require 1-byte
headers to be 4-byte aligned, we lose a lot of the benefits of the
1-byte header.

Why would we require that?

I don't see a problem with having 4-byte header 4-byte aligned, and 1-byte headers not aligned. The first access to the header is to check if it's a 4 or 1 byte header. That's a 1 byte wide access, requiring no alignment. After that you know which one it is.

--
  Heikki Linnakangas
  EnterpriseDB   http://www.enterprisedb.com

---------------------------(end of broadcast)---------------------------
TIP 7: You can help support the PostgreSQL project by donating at

               http://www.postgresql.org/about/donate

Reply via email to