On Tue, Feb 9, 2021 at 6:14 PM Dilip Kumar <dilipbalaut@gmail.com> wrote:
>
> > Basically, we are just checking whether the stored value is compressed
> > or not, but we are clearly ignoring the fact that it might be
> > compressed and stored externally on disk. So basically if the value
> > is stored externally we can not know whether the external data were
> > compressed or not without fetching the values from the toast table, I
> > think instead of fetching the complete data from toast we can just
> > fetch the header using 'toast_fetch_datum_slice'.
> >
> > Any other thoughts on this?
>
> I think I was partially wrong here. Basically, there is a way to know
> whether the external data are compressed or not using
> VARATT_EXTERNAL_IS_COMPRESSED macro. However, if it is compressed
> then we will have to fetch the toast slice of size
> toast_compress_header, to know the compression method.
I have fixed this issue, so now we will be able to detect the
compression method of the externalized compressed data as well. I
have also added a test case for this. I have rebased other patches
also on top of this patch. I have fixed the doc compilation issue in
patch 0004 raised by Justin. I still could not figure out what is the
right place for inheriting the compression method related change in
the "ddl.sgml" so that is still there, any suggestions on that?
--
Regards,
Dilip Kumar
EnterpriseDB: http://www.enterprisedb.com