pg_hint_plan.c:605:8: error: unknown type name ‘get_relation_info_hook_type’
605 | static get_relation_info_hook_type prev_get_relation_info_hook = NULL;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
pg_hint_plan.c:605:66: warning: initialization of ‘int’ from ‘void *’ makes integer from pointer without a cast [-Wint-conversion]
605 | static get_relation_info_hook_type prev_get_relation_info_hook = NULL;
| ^~~~
pg_hint_plan.c: In function ‘_PG_init’:
pg_hint_plan.c:813:33: warning: assignment to ‘post_parse_analyze_hook_type’ {aka ‘void (*)(struct ParseState *, struct Query *, const JumbleState *)’} from incompatible pointer type ‘void (*)(ParseState *, Query *, JumbleState *)’ {aka ‘void (*)(struct ParseState *, struct Query *, JumbleState *)’} [-Wincompatible-pointer-types]
813 | post_parse_analyze_hook = pg_hint_plan_post_parse_analyze;
| ^
pg_hint_plan.c:815:22: warning: assignment to ‘planner_hook_type’ {aka ‘struct PlannedStmt * (*)(struct Query *, const char *, int, struct ParamListInfoData *, struct ExplainState *)’} from incompatible pointer type ‘PlannedStmt * (*)(Query *, const char *, int, struct ParamListInfoData *)’ {aka ‘struct PlannedStmt * (*)(struct Query *, const char *, int, struct ParamListInfoData *)’} [-Wincompatible-pointer-types]
815 | planner_hook = pg_hint_plan_planner;
| ^
pg_hint_plan.c:826:39: error: ‘get_relation_info_hook’ undeclared (first use in this function); did you mean ‘prev_get_relation_info_hook’?
826 | prev_get_relation_info_hook = get_relation_info_hook;
| ^~~~~~~~~~~~~~~~~~~~~~
| prev_get_relation_info_hook
pg_hint_plan.c:826:39: note: each undeclared identifier is reported only once for each function it appears in
pg_hint_plan.c: In function ‘get_hints_from_comment’:
pg_hint_plan.c:2048:42: error: ‘standard_conforming_strings’ undeclared (first use in this function)
2048 | standard_conforming_strings,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
pg_hint_plan.c: In function ‘pg_hint_plan_planner’:
pg_hint_plan.c:3242:35: error: too few arguments to function ‘prev_planner’
3242 | result = (*prev_planner) (parse, query_string,
| ~^~~~~~~~~~~~~~
pg_hint_plan.c:3245:34: error: too few arguments to function ‘standard_planner’
3245 | result = standard_planner(parse, query_string,
| ^~~~~~~~~~~~~~~~
In file included from pg_hint_plan.c:35:
postgres/include/server/optimizer/planner.h:58:21: note: declared here
58 | extern PlannedStmt *standard_planner(Query *parse, const char *query_string,
| ^~~~~~~~~~~~~~~~
pg_hint_plan.c:3303:27: error: too few arguments to function ‘prev_planner’
3303 | result = (*prev_planner) (parse, query_string,
| ~^~~~~~~~~~~~~~
pg_hint_plan.c:3306:26: error: too few arguments to function ‘standard_planner’
3306 | result = standard_planner(parse, query_string,
| ^~~~~~~~~~~~~~~~
postgres/include/server/optimizer/planner.h:58:21: note: declared here
58 | extern PlannedStmt *standard_planner(Query *parse, const char *query_string,
| ^~~~~~~~~~~~~~~~
pg_hint_plan.c: In function ‘pg_hint_plan_get_relation_info_hook’:
pg_hint_plan.c:5133:17: error: called object ‘prev_get_relation_info_hook’ is not a function or function pointer
5133 | prev_get_relation_info_hook(root, relationObjectId, inhparent, rel);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
pg_hint_plan.c:605:36: note: declared here
605 | static get_relation_info_hook_type prev_get_relation_info_hook = NULL;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from pg_hint_plan.c:5279:
core.c: In function ‘join_is_legal’:
core.c:622:73: warning: passing argument 4 of ‘create_unique_path’ makes integer from pointer without a cast [-Wint-conversion]
622 | sjinfo) != NULL)
| ^~~~~~
| |
| SpecialJoinInfo * {aka struct SpecialJoinInfo *}In file included from pg_hint_plan.c:32:
postgres/include/server/optimizer/pathnode.h:260:79: note: expected ‘int’ but argument is of type ‘SpecialJoinInfo *’ {aka ‘struct SpecialJoinInfo *’}
260 | int numCols,
| ~~~~^~~~~~~core.c:621:34: error: too few arguments to function ‘create_unique_path’
621 | create_unique_path(root, rel2, rel2->cheapest_total_path,
| ^~~~~~~~~~~~~~~~~~
postgres/include/server/optimizer/pathnode.h:257:20: note: declared here
257 | extern UniquePath *create_unique_path(PlannerInfo *root,
| ^~~~~~~~~~~~~~~~~~
core.c:655:73: warning: passing argument 4 of ‘create_unique_path’ makes integer from pointer without a cast [-Wint-conversion]
655 | sjinfo) != NULL)
| ^~~~~~
| |
| SpecialJoinInfo * {aka struct SpecialJoinInfo *}postgres/include/server/optimizer/pathnode.h:260:79: note: expected ‘int’ but argument is of type ‘SpecialJoinInfo *’ {aka ‘struct SpecialJoinInfo *’}
260 | int numCols,
| ~~~~^~~~~~~core.c:654:34: error: too few arguments to function ‘create_unique_path’
654 | create_unique_path(root, rel1, rel1->cheapest_total_path,
| ^~~~~~~~~~~~~~~~~~
postgres/include/server/optimizer/pathnode.h:257:20: note: declared here
257 | extern UniquePath *create_unique_path(PlannerInfo *root,
| ^~~~~~~~~~~~~~~~~~
In file included from pg_hint_plan.c:5284:
make_join_rel.c: In function ‘populate_joinrel_with_paths’:
make_join_rel.c:349:68: warning: passing argument 4 of ‘create_unique_path’ makes integer from pointer without a cast [-Wint-conversion]
349 | sjinfo) != NULL)
| ^~~~~~
| |
| SpecialJoinInfo * {aka struct SpecialJoinInfo *}
postgres/include/server/optimizer/pathnode.h:260:79: note: expected ‘int’ but argument is of type ‘SpecialJoinInfo *’ {aka ‘struct SpecialJoinInfo *’}
260 | int numCols,
| ~~~~^~~~~~~make_join_rel.c:348:33: error: too few arguments to function ‘create_unique_path’
348 | create_unique_path(root, rel2, rel2->cheapest_total_path,
| ^~~~~~~~~~~~~~~~~~
/postgres/include/server/optimizer/pathnode.h:257:20: note: declared here
257 | extern UniquePath *create_unique_path(PlannerInfo *root,
| ^~~~~~~~~~~~~~~~~~
make: *** [<builtin>: pg_hint_plan.o] Error 1
make: *** Waiting for unfinished jobs....
pg_hint_plan.c:605:8: error: unknown type name 'get_relation_info_hook_type'
605 | static get_relation_info_hook_type prev_get_relation_info_hook = NULL;
| ^
pg_hint_plan.c:813:26: error: incompatible function pointer types assigning to 'post_parse_analyze_hook_type' (aka 'void (*)(struct ParseState *, struct Query *, const struct JumbleState *)') from 'void (ParseState *, Query *, JumbleState *)' (aka 'void (struct ParseState *, struct Query *, struct JumbleState *)') [-Wincompatible-function-pointer-types]
813 | post_parse_analyze_hook = pg_hint_plan_post_parse_analyze;
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pg_hint_plan.c:815:15: error: incompatible function pointer types assigning to 'planner_hook_type' (aka 'struct PlannedStmt *(*)(struct Query *, const char *, int, struct ParamListInfoData *, struct ExplainState *)') from 'PlannedStmt *(Query *, const char *, int, ParamListInfo)' (aka 'struct PlannedStmt *(struct Query *, const char *, int, struct ParamListInfoData *)') [-Wincompatible-function-pointer-types]
815 | planner_hook = pg_hint_plan_planner;
| ^ ~~~~~~~~~~~~~~~~~~~~
pg_hint_plan.c:826:32: error: use of undeclared identifier 'get_relation_info_hook'; did you mean 'get_relation_info'?
826 | prev_get_relation_info_hook = get_relation_info_hook;
| ^~~~~~~~~~~~~~~~~~~~~~
| get_relation_info
postgres/include/server/optimizer/plancat.h:20:13: note: 'get_relation_info' declared here
20 | extern void get_relation_info(PlannerInfo *root, Oid relationObjectId,
| ^
pg_hint_plan.c:827:2: error: use of undeclared identifier 'get_relation_info_hook'; did you mean 'prev_get_relation_info_hook'?
827 | get_relation_info_hook = pg_hint_plan_get_relation_info_hook;
| ^~~~~~~~~~~~~~~~~~~~~~
| prev_get_relation_info_hook
pg_hint_plan.c:605:36: note: 'prev_get_relation_info_hook' declared here
605 | static get_relation_info_hook_type prev_get_relation_info_hook = NULL;
| ^
pg_hint_plan.c:2048:7: error: use of undeclared identifier 'standard_conforming_strings'
2048 | standard_conforming_strings,
| ^
pg_hint_plan.c:3243:38: error: too few arguments to function call, expected 5, have 4
3242 | result = (*prev_planner) (parse, query_string,
| ~~~~~~~~~~~~~~~
3243 | cursorOptions, boundParams);
| ^
pg_hint_plan.c:3246:38: error: too few arguments to function call, expected 5, have 4
3245 | result = standard_planner(parse, query_string,
| ~~~~~~~~~~~~~~~~
3246 | cursorOptions, boundParams);
| ^
/postgres/include/server/optimizer/planner.h:58:21: note: 'standard_planner' declared here
58 | extern PlannedStmt *standard_planner(Query *parse, const char *query_string,
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
59 | int cursorOptions,
| ~~~~~~~~~~~~~~~~~~
60 | ParamListInfo boundParams,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~
61 | ExplainState *es);
| ~~~~~~~~~~~~~~~~
pg_hint_plan.c:3304:37: error: too few arguments to function call, expected 5, have 4
3303 | result = (*prev_planner) (parse, query_string,
| ~~~~~~~~~~~~~~~
3304 | cursorOptions, boundParams);
| ^
pg_hint_plan.c:3307:37: error: too few arguments to function call, expected 5, have 4
3306 | result = standard_planner(parse, query_string,
| ~~~~~~~~~~~~~~~~
3307 | cursorOptions, boundParams);
| ^
/postgres/include/server/optimizer/planner.h:58:21: note: 'standard_planner' declared here
58 | extern PlannedStmt *standard_planner(Query *parse, const char *query_string,
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
59 | int cursorOptions,
| ~~~~~~~~~~~~~~~~~~
60 | ParamListInfo boundParams,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~
61 | ExplainState *es);
| ~~~~~~~~~~~~~~~~
In file included from pg_hint_plan.c:5279:
./core.c:622:16: error: too few arguments to function call, expected 5, have 4
621 | create_unique_path(root, rel2, rel2->cheapest_total_path,
| ~~~~~~~~~~~~~~~~~~
622 | sjinfo) != NULL)
| ^
/postgres/include/server/optimizer/pathnode.h:257:20: note: 'create_unique_path' declared here
257 | extern UniquePath *create_unique_path(PlannerInfo *root,
| ^ ~~~~~~~~~~~~~~~~~~
258 | RelOptInfo *rel,
| ~~~~~~~~~~~~~~~~
259 | Path *subpath,
| ~~~~~~~~~~~~~~
260 | int numCols,
| ~~~~~~~~~~~~
261 | double numGroups);
| ~~~~~~~~~~~~~~~~
In file included from pg_hint_plan.c:5279:
./core.c:655:16: error: too few arguments to function call, expected 5, have 4
654 | create_unique_path(root, rel1, rel1->cheapest_total_path,
| ~~~~~~~~~~~~~~~~~~
655 | sjinfo) != NULL)
| ^
/postgres/include/server/optimizer/pathnode.h:257:20: note: 'create_unique_path' declared here
257 | extern UniquePath *create_unique_path(PlannerInfo *root,
| ^ ~~~~~~~~~~~~~~~~~~
258 | RelOptInfo *rel,
| ~~~~~~~~~~~~~~~~
259 | Path *subpath,
| ~~~~~~~~~~~~~~
260 | int numCols,
| ~~~~~~~~~~~~
261 | double numGroups);
| ~~~~~~~~~~~~~~~~
In file included from pg_hint_plan.c:5284:
./make_join_rel.c:349:18: error: too few arguments to function call, expected 5, have 4
348 | create_unique_path(root, rel2, rel2->cheapest_total_path,
| ~~~~~~~~~~~~~~~~~~
349 | sjinfo) != NULL)
| ^
/postgres/include/server/optimizer/pathnode.h:257:20: note: 'create_unique_path' declared here
257 | extern UniquePath *create_unique_path(PlannerInfo *root,
| ^ ~~~~~~~~~~~~~~~~~~
258 | RelOptInfo *rel,
| ~~~~~~~~~~~~~~~~
259 | Path *subpath,
| ~~~~~~~~~~~~~~
260 | int numCols,
| ~~~~~~~~~~~~
261 | double numGroups);
| ~~~~~~~~~~~~~~~~
we have massive API breakage due to postrges19 change, do we have a timeline for this?
standard_planner — new signature adds ExplainState *es as 5th parameter planner_hook_type — changed to match new standard_planner signature post_parse_analyze_hook_type — JumbleState is now const
create_unique_path — signature changed from (root, rel, path, sjinfo) to (root, rel, path, numCols, numGroups)
we have massive API breakage due to postrges19 change, do we have a timeline for this?
monitored
get_relation_info_hook — removed entirely (same as HypoPG)
standard_planner — new signature adds ExplainState *es as 5th parameter planner_hook_type — changed to match new standard_planner signature post_parse_analyze_hook_type — JumbleState is now const
create_unique_path — signature changed from (root, rel, path, sjinfo) to (root, rel, path, numCols, numGroups)
standard_conforming_strings — removed/moved