Thread: Compiling table_log for PG 11 / attisdropped

Compiling table_log for PG 11 / attisdropped

From
Ken Tanzer
Date:
Hi.  I'm trying to update some databases from 9.6 to 11, and they use table_log for tracking changes to tables.  

I started with the most recent version I could find, a fork labeled version 0.5.  [1]

This version compiles on both 9.6, and 10, but on 11 it fails with these errors:

table_log.c: In function ‘count_columns’:
table_log.c:80:27: error: invalid type argument of ‘->’ (have ‘FormData_pg_attribute’)
   if (!tupleDesc->attrs[i]->attisdropped)
                           ^
table_log.c: In function ‘__table_log’:
table_log.c:339:56: error: invalid type argument of ‘->’ (have ‘FormData_pg_attribute’)
    if (trigdata->tg_relation->rd_att->attrs[col_nr - 1]->attisdropped)
                                                        ^
table_log.c:373:56: error: invalid type argument of ‘->’ (have ‘FormData_pg_attribute’)
    if (trigdata->tg_relation->rd_att->attrs[col_nr - 1]->attisdropped)

                 
Can anyone shed any light on these errors, and/or how they might be fixed?

(I did try filing an issue with this project [2], but since there is no activity there I'm turning to this mailing list.)
(Also, I know table_log is quite old and there are better alternatives.  If I were starting fresh I would surely use them.  But it works for my simple needs, and I have a lot of legacy data accumulated, so I would really like to avoid switching to a new or different logging system.)

Thanks in advance,
Ken




-- 
AGENCY Software  
A Free Software data system
By and for non-profits
(253) 245-3801

learn more about AGENCY or
follow the discussion.

Re: Compiling table_log for PG 11 / attisdropped

From
Adrian Klaver
Date:
On 7/12/19 1:19 PM, Ken Tanzer wrote:
> Hi.  I'm trying to update some databases from 9.6 to 11, and they use 
> table_log for tracking changes to tables.
> 
> I started with the most recent version I could find, a fork labeled 
> version 0.5.  [1]

What OS.version and compiler/version?


Some digging found the below, which is similar:

https://trac.osgeo.org/postgis/ticket/3814

https://trac.osgeo.org/postgis/changeset/15653
> 
> This version compiles on both 9.6, and 10, but on 11 it fails with these 
> errors:
> 
> table_log.c: In function ‘count_columns’:
> table_log.c:80:27: error: invalid type argument of ‘->’ (have 
> ‘FormData_pg_attribute’)
>     if (!tupleDesc->attrs[i]->attisdropped)

If I am following the issue correctly then the above becomes:

if (!tupleDesc->attrs[i].attisdropped)

>                             ^
> table_log.c: In function ‘__table_log’:
> table_log.c:339:56: error: invalid type argument of ‘->’ (have 
> ‘FormData_pg_attribute’)
>      if (trigdata->tg_relation->rd_att->attrs[col_nr - 1]->attisdropped)
>                                                          ^
> table_log.c:373:56: error: invalid type argument of ‘->’ (have 
> ‘FormData_pg_attribute’)
>      if (trigdata->tg_relation->rd_att->attrs[col_nr - 1]->attisdropped)

and above becomes:

*[col_nr - 1].attisdropped

> 
> Can anyone shed any light on these errors, and/or how they might be fixed?
> 
> (I did try filing an issue with this project [2], but since there is no 
> activity there I'm turning to this mailing list.)
> (Also, I know table_log is quite old and there are better alternatives.  
> If I were starting fresh I would surely use them.  But it works for my 
> simple needs, and I have a lot of legacy data accumulated, so I would 
> really like to avoid switching to a new or different logging system.)
> 
> Thanks in advance,
> Ken
> 
> [1] Table log: https://github.com/psoo/table_log
> [2] Issue filed: https://github.com/psoo/table_log/issues/2
> [3] table_log.c: https://github.com/psoo/table_log/blob/master/table_log.c
> 
> 
> 
> -- 
> AGENCY Software
> A Free Software data system
> By and for non-profits
> /http://agency-software.org//
> /https://demo.agency-software.org/client/
> ken.tanzer@agency-software.org <mailto:ken.tanzer@agency-software.org>
> (253) 245-3801
> 
> Subscribe to the mailing list 
> <mailto:agency-general-request@lists.sourceforge.net?body=subscribe> to
> learn more about AGENCY or
> follow the discussion.


-- 
Adrian Klaver
adrian.klaver@aklaver.com



Re: Compiling table_log for PG 11 / attisdropped

From
Ken Tanzer
Date:
On Fri, Jul 12, 2019 at 1:42 PM Adrian Klaver <adrian.klaver@aklaver.com> wrote:
On 7/12/19 1:19 PM, Ken Tanzer wrote:
> Hi.  I'm trying to update some databases from 9.6 to 11, and they use
> table_log for tracking changes to tables.
>
> I started with the most recent version I could find, a fork labeled
> version 0.5.  [1]

What OS.version and compiler/version?

Well it was Centos 7.  I'm not quite sure what I was using at the time I asked, though I think it would have been whatever was generically part of Centos 7.  I ended up having to install serveral packages (llvm5.0, centos-release-scl, llvm-toolset-7 & devtoolset-7) when the compiler was giving errors trying to move from table_log.so to table_log.bc.

 
Some digging found the below, which is similar:

https://trac.osgeo.org/postgis/ticket/3814

https://trac.osgeo.org/postgis/changeset/15653
>
>     if (!tupleDesc->attrs[i]->attisdropped)

If I am following the issue correctly then the above becomes:

if (!tupleDesc->attrs[i].attisdropped)

>      if (trigdata->tg_relation->rd_att->attrs[col_nr - 1]->attisdropped)

and above becomes:

*[col_nr - 1].attisdropped

That stopped the errors.  Thanks for your help!

Ken


 
-- 
AGENCY Software  
A Free Software data system
By and for non-profits
(253) 245-3801

learn more about AGENCY or
follow the discussion.