From: Robert Haas Date: Tue, 1 Jul 2025 17:09:48 +0000 (-0400) Subject: add stuff X-Git-Url: http://git.postgresql.org/gitweb/static/gitweb.js?a=commitdiff_plain;h=a2fd9cfdfe7cc3fd6df908ff1992f3216bf99ba5;p=users%2Frhaas%2Fpostgres.git add stuff --- diff --git a/contrib/pg_plan_advice/Makefile b/contrib/pg_plan_advice/Makefile index f60b8023c1..e0f19dc022 100644 --- a/contrib/pg_plan_advice/Makefile +++ b/contrib/pg_plan_advice/Makefile @@ -4,6 +4,7 @@ MODULE_big = pg_plan_advice OBJS = \ $(WIN32RES) \ pg_plan_advice.o \ + pgpa_buffer.o \ pgpa_identifier.o \ pgpa_join.o \ pgpa_output.o \ diff --git a/contrib/pg_plan_advice/meson.build b/contrib/pg_plan_advice/meson.build index 4bbe1e21f3..81d313a044 100644 --- a/contrib/pg_plan_advice/meson.build +++ b/contrib/pg_plan_advice/meson.build @@ -2,6 +2,7 @@ pg_plan_advice_sources = files( 'pg_plan_advice.c', + 'pgpa_buffer.c', 'pgpa_identifier.c', 'pgpa_join.c', 'pgpa_output.c', diff --git a/contrib/pg_plan_advice/pgpa_buffer.c b/contrib/pg_plan_advice/pgpa_buffer.c new file mode 100644 index 0000000000..d8cbd1aa8e --- /dev/null +++ b/contrib/pg_plan_advice/pgpa_buffer.c @@ -0,0 +1,25 @@ +#include "postgres.h" + +typedef struct pgpa_collected_advice +{ + Oid userid; /* user OID */ + Oid dbid; /* database OID */ + uint64 queryid; /* query identifier */ + int nesting_level; /* query nesting level */ + char advice_offset; /* start of advice in textual data */ + char textual_data[FLEXIBLE_ARRAY_MEMBER]; +} pgpa_collected_advice; + +#if 0 +static inline const char * +query_string(pgpa_collected_advice *ca) +{ + return ca->textual_data; +} + +static inline const char * +advice_string(pgpa_collected_advice *ca) +{ + return ca->textual_data + ca->advice_offset; +} +#endif diff --git a/contrib/pg_plan_advice/pgpa_output.h b/contrib/pg_plan_advice/pgpa_output.h new file mode 100644 index 0000000000..f7d74d3794 --- /dev/null +++ b/contrib/pg_plan_advice/pgpa_output.h @@ -0,0 +1,21 @@ +/*------------------------------------------------------------------------- + * + * pgpa_output.h + * produce textual output from the results of a plan tree walk + * + * Copyright (c) 2016-2025, PostgreSQL Global Development Group + * + * contrib/pg_plan_advice/pgpa_output.c + * + *------------------------------------------------------------------------- + */ +#ifndef PGPA_OUTPUT_H +#define PGPA_OUTPUT_H + +#include "pgpa_walker.h" + +extern void pgpa_output_advice(StringInfo buf, + pgpa_plan_walker_context *walker, + const char **rt_identifiers); + +#endif diff --git a/src/tools/pgindent/typedefs.list b/src/tools/pgindent/typedefs.list index f162d23f30..e6baa239e0 100644 --- a/src/tools/pgindent/typedefs.list +++ b/src/tools/pgindent/typedefs.list @@ -4321,3 +4321,4 @@ pgpa_join_unroller pgpa_plan_walker_context pgpa_gathered_join pgpa_output_context +pgpa_collected_advice