sraoss / pg_ivm

IVM (Incremental View Maintenance) implementation as a PostgreSQL extension
Other
854 stars 24 forks source link

Build error against PostgreSQL 16 #69

Closed devrimgunduz closed 9 months ago

devrimgunduz commented 10 months ago

Hi,

Latest version of pg_ivm (1.6) fails to build against PostgreSQL 16. v16 is around the corner, so can you please fix it with a new release?

Thanks! Devrim

/usr/lib64/ccache/clang -Wno-ignored-attributes -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Xclang -no-opaque-pointers -Wno-unused-command-line-argument -Wno-compound-token-split-by-macro -O2 -I. -I./ -I/usr/pgsql-16/include/server -I/usr/pgsql-16/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include -flto=thin -emit-llvm -c -o subselect.bc subselect.c pg_ivm.c: In function 'parseNameAndColumns': pg_ivm.c:125:18: error: too few arguments to function 'stringToQualifiedNameList' 125 *names = stringToQualifiedNameList(rawname); ^~~~~~~~~ In file included from pg_ivm.c:31: /usr/pgsql-16/include/server/utils/regproc.h:28:14: note: declared here 28 extern List stringToQualifiedNameList(const char string, Node *escontext); ^~~~~~~~~ make[1]: [: pg_ivm.o] Error 1 make[1]: Waiting for unfinished jobs.... createas.c: In function 'rewriteQueryForIMMV': createas.c:368:38: warning: declaration of 'tle' shadows a previous local [-Wshadow=compatible-local] 368 TargetEntry *tle = get_sortgroupclause_tle(scl, rewritten->targetList); ^~~ createas.c:300:22: note: shadowed declaration is here 300 TargetEntry *tle; ^~~ createas.c:389:38: warning: declaration of 'tle' shadows a previous local [-Wshadow=compatible-local] 389 TargetEntry tle = (TargetEntry ) lfirst(lc); ^~~ createas.c:300:22: note: shadowed declaration is here 300 TargetEntry *tle; ^~~ createas.c: In function 'check_ivm_restriction_walker': createas.c:930:51: warning: declaration of 'lc' shadows a previous local [-Wshadow=compatible-local] 930 ListCell *lc; ^~ createas.c:770:45: note: shadowed declaration is here 770 ListCell *lc; ^~ createas.c: In function 'CreateIndexOnIMMV': createas.c:1344:14: error: 'IndexStmt' has no member named 'oldNode' 1344 index->oldNode = InvalidOid; ^~ createas.c:1346:16: error: 'IndexStmt' has no member named 'oldFirstRelfilenodeSubid'; did you mean 'oldFirstRelfilelocatorSubid'? 1346 index->oldFirstRelfilenodeSubid = InvalidSubTransactionId; ^~~~~~~~ oldFirstRelfilelocatorSubid createas.c:1458:19: error: too few arguments to function 'DefineIndex' 1458 address = DefineIndex(RelationGetRelid(matviewRel), ^~~ In file included from createas.c:25: /usr/pgsql-16/include/server/commands/defrem.h:27:22: note: declared here 27 extern ObjectAddress DefineIndex(Oid relationId, ^~~ createas.c: In function 'get_primary_key_attnos_from_query': createas.c:1577:76: warning: passing argument 1 of 'flatten_join_alias_vars' from incompatible pointer type [-Wincompatible-pointer-types] 1577 TargetEntry tle = (TargetEntry ) flatten_join_alias_vars(query, lfirst(lc)); ^~~~~
Query *

In file included from createas.c:34: /usr/pgsql-16/include/server/optimizer/optimizer.h:200:51: note: expected 'PlannerInfo ' but argument is of type 'Query ' 200 | extern Node flatten_join_alias_vars(PlannerInfo root, Query query, Node node); | ~~~^~ createas.c:1577:52: error: too few arguments to function 'flatten_join_alias_vars' 1577 | TargetEntry tle = (TargetEntry ) flatten_join_alias_vars(query, lfirst(lc)); | ^~~~~~~ /usr/pgsql-16/include/server/optimizer/optimizer.h:200:14: note: declared here 200 | extern Node flatten_join_alias_vars(PlannerInfo root, Query query, Node node); | ^~~~~~~ createas.c:1599:24: error: too few arguments to function 'get_relids_in_jointree' 1599 | rels_in_from = get_relids_in_jointree((Node ) query->jointree, false); | ^~~~~~ In file included from createas.c:35: /usr/pgsql-16/include/server/optimizer/prep.h:32:15: note: declared here 32 | extern Relids get_relids_in_jointree(Node jtnode, bool include_outer_joins, | ^~~~~~ make[1]: * [: createas.o] Error 1 matview.c: In function 'ExecRefreshImmv': matview.c:357:29: warning: declaration of 'key' shadows a previous local [-Wshadow=compatible-local] 357 | ScanKeyData key; | ^~~ matview.c:250:21: note: shadowed declaration is here 250 | ScanKeyData key; | ^~~ matview.c:358:29: warning: declaration of 'scan' shadows a previous local [-Wshadow=compatible-local] 358 | SysScanDesc scan; | ^~~~ matview.c:251:21: note: shadowed declaration is here 251 | SysScanDesc scan; | ^~~~ matview.c:359:33: warning: declaration of 'tup' shadows a previous local [-Wshadow=compatible-local] 359 | HeapTuple tup; | ^~~ matview.c:252:25: note: shadowed declaration is here 252 | HeapTuple tup; | ^~~ matview.c: In function 'IVM_immediate_maintenance': matview.c:908:25: error: too few arguments to function 'ExecuteTruncateGuts' 908 | ExecuteTruncateGuts(list_make1(matviewRel), list_make1_oid(matviewOid), | ^~~~~~~ In file included from matview.c:25: /usr/pgsql-16/include/server/commands/tablecmds.h:59:13: note: declared here 59 | extern void ExecuteTruncateGuts(List explicit_rels, | ^~~~~~~ matview.c:1044:29: warning: declaration of 'i' shadows a previous local [-Wshadow=compatible-local] 1044 | int i; | ^ matview.c:774:33: note: shadowed declaration is here 774 | int i; | ^ matview.c: In function 'get_prestate_rte': matview.c:1416:12: error: 'RangeTblEntry' has no member named 'requiredPerms' 1416 | rte->requiredPerms = 0; / no permission check on subquery itself / | ^~ matview.c:1417:12: error: 'RangeTblEntry' has no member named 'checkAsUser' 1417 | rte->checkAsUser = InvalidOid; | ^~ matview.c:1418:12: error: 'RangeTblEntry' has no member named 'selectedCols' 1418 | rte->selectedCols = NULL; | ^~ matview.c:1419:14: error: 'RangeTblEntry' has no member named 'insertedCols'; did you mean 'joinmergedcols'? 1419 | rte->insertedCols = NULL; | ^~~~ | joinmergedcols matview.c:1420:12: error: 'RangeTblEntry' has no member named 'updatedCols' 1420 | rte->updatedCols = NULL; | ^~ matview.c:1421:12: error: 'RangeTblEntry' has no member named 'extraUpdatedCols' 1421 | rte->extraUpdatedCols = NULL; | ^~ make[1]: [: matview.o] Error 1 pg_ivm.c:125:44: error: too few arguments to function call, expected 2, have 1 *names = stringToQualifiedNameList(rawname);


/usr/pgsql-16/include/server/utils/regproc.h:28:14: note: 'stringToQualifiedNameList' declared here
extern List *stringToQualifiedNameList(const char *string, Node *escontext);
^
1 error generated.
make[1]: *** [/usr/pgsql-16/lib/pgxs/src/makefiles/../../src/Makefile.global:1080: pg_ivm.bc] Error 1
matview.c:909:34: error: too few arguments to function call, expected 6, have 5
NIL, DROP_RESTRICT, false);
^
/usr/pgsql-16/include/server/commands/tablecmds.h:59:13: note: 'ExecuteTruncateGuts' declared here
extern void ExecuteTruncateGuts(List *explicit_rels,
^
matview.c:1416:7: error: no member named 'requiredPerms' in 'struct RangeTblEntry'
rte->requiredPerms = 0;         /* no permission check on subquery itself */
~~~  ^
matview.c:1417:7: error: no member named 'checkAsUser' in 'struct RangeTblEntry'
rte->checkAsUser = InvalidOid;
~~~  ^
matview.c:1418:7: error: no member named 'selectedCols' in 'struct RangeTblEntry'
rte->selectedCols = NULL;
~~~  ^
matview.c:1419:7: error: no member named 'insertedCols' in 'struct RangeTblEntry'
rte->insertedCols = NULL;
~~~  ^
matview.c:1420:7: error: no member named 'updatedCols' in 'struct RangeTblEntry'
rte->updatedCols = NULL;
~~~  ^
matview.c:1421:7: error: no member named 'extraUpdatedCols' in 'struct RangeTblEntry'
rte->extraUpdatedCols = NULL;
~~~  ^
7 errors generated.
make[1]: *** [/usr/pgsql-16/lib/pgxs/src/makefiles/../../src/Makefile.global:1080: matview.bc] Error 1
createas.c:1344:9: error: no member named 'oldNode' in 'struct IndexStmt'
index->oldNode = InvalidOid;
~~~~~  ^
createas.c:1346:9: error: no member named 'oldFirstRelfilenodeSubid' in 'struct IndexStmt'; did you mean 'oldFirstRelfilelocatorSubid'?
index->oldFirstRelfilenodeSubid = InvalidSubTransactionId;
^~~~~~~~~~~~~~~~~~~~~~~~
oldFirstRelfilelocatorSubid
/usr/pgsql-16/include/server/nodes/parsenodes.h:3196:19: note: 'oldFirstRelfilelocatorSubid' declared here
SubTransactionId oldFirstRelfilelocatorSubid;   /* rd_firstRelfilelocatorSubid
^
createas.c:1463:40: error: too few arguments to function call, expected 11, have 10
false, true, false, false, true);
^
/usr/pgsql-16/include/server/commands/defrem.h:27:22: note: 'DefineIndex' declared here
extern ObjectAddress DefineIndex(Oid relationId,
^
createas.c:1577:79: error: too few arguments to function call, expected 3, have 2
TargetEntry *tle = (TargetEntry *) flatten_join_alias_vars(query, lfirst(lc));
~~~~~~~~~~~~~~~~~~~~~~~                  ^
/usr/pgsql-16/include/server/optimizer/optimizer.h:200:14: note: 'flatten_join_alias_vars' declared here
extern Node *flatten_join_alias_vars(PlannerInfo *root, Query *query, Node *node);
^
createas.c:1599:71: error: too few arguments to function call, expected 3, have 2
rels_in_from = get_relids_in_jointree((Node *) query->jointree, false);
~~~~~~~~~~~~~~~~~~~~~~                                ^
/usr/pgsql-16/include/server/optimizer/prep.h:32:15: note: 'get_relids_in_jointree' declared here
extern Relids get_relids_in_jointree(Node *jtnode, bool include_outer_joins,
^
5 errors generated.
make[1]: *** [/usr/pgsql-16/lib/pgxs/src/makefiles/../../src/Makefile.global:1080: createas.bc] Error 1
yugo-n commented 10 months ago

I made a pull request for this. A new version supporting PG16 will be released soon.

devrimgunduz commented 10 months ago

Hi,

We need a new release to prepare RPMs, please.

yugo-n commented 9 months ago

Reopened since it is not released yet

yugo-n commented 9 months ago

@devrimgunduz

pg_ivm 1.7 supporting PG16 has been released. https://github.com/sraoss/pg_ivm/releases/tag/v1.7

Thank you for the reminder!

devrimgunduz commented 9 months ago

Thanks a lot!