add stuff
authorRobert Haas <rhaas@postgresql.org>
Tue, 1 Jul 2025 17:09:48 +0000 (13:09 -0400)
committerRobert Haas <rhaas@postgresql.org>
Tue, 1 Jul 2025 17:09:48 +0000 (13:09 -0400)
contrib/pg_plan_advice/Makefile
contrib/pg_plan_advice/meson.build
contrib/pg_plan_advice/pgpa_buffer.c [new file with mode: 0644]
contrib/pg_plan_advice/pgpa_output.h [new file with mode: 0644]
src/tools/pgindent/typedefs.list

index f60b8023c1eae18b058cdf18304431afe3546ba8..e0f19dc0221761291cc2f252b69421c85b9b7258 100644 (file)
@@ -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 \
index 4bbe1e21f31473fb6cecde5439a8381c6315e01c..81d313a044be8fcd34030c259c932538e1e6c1ca 100644 (file)
@@ -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 (file)
index 0000000..d8cbd1a
--- /dev/null
@@ -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 (file)
index 0000000..f7d74d3
--- /dev/null
@@ -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
index f162d23f30df9395e6ed40ba8e8a510823dc17ae..e6baa239e08d422d83b4e3d0a42979aeb4138512 100644 (file)
@@ -4321,3 +4321,4 @@ pgpa_join_unroller
 pgpa_plan_walker_context
 pgpa_gathered_join
 pgpa_output_context
+pgpa_collected_advice