Robert Haas <robertmh...@gmail.com> writes: > ... I think it would be a better idea to arrange some method by > which JSONB (and perhaps other data types) can provide compression > hints to pglz.
I agree with that as a long-term goal, but not sure if it's sane to push into 9.4. What we could conceivably do now is (a) add a datatype OID argument to toast_compress_datum, and (b) hard-wire the selection of a different compression-parameters struct if it's JSONBOID. The actual fix would then be to increase the first_success_by field of this alternate struct. I had been worrying about API-instability risks associated with (a), but on reflection it seems unlikely that any third-party code calls toast_compress_datum directly, and anyway it's not something we'd be back-patching to before 9.4. The main objection to (b) is that it wouldn't help for domains over jsonb (and no, I don't want to insert a getBaseType call there to fix that). A longer-term solution would be to make this some sort of type property that domains could inherit, like typstorage is already. (Somebody suggested dealing with this by adding more typstorage values, but I don't find that attractive; typstorage is known in too many places.) We'd need some thought about exactly what we want to expose, since the specific knobs that pglz_compress has today aren't necessarily good for the long term. This is all kinda ugly really, but since I'm not hearing brilliant ideas for redesigning jsonb's storage format, maybe this is the best we can do for now. regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers