($INBOX_DIR/description missing)  
help / color / mirror / Atom feed
[PATCH v3 1/1] Handle a NULL short_desc in ShowAllGUCConfig
9+ messages / 6 participants
[nested] [flat]

* [PATCH v3 1/1] Handle a NULL short_desc in ShowAllGUCConfig
@ 2022-05-25 04:46 Steve Chavez <[email protected]>
  0 siblings, 0 replies; 9+ messages in thread

From: Steve Chavez @ 2022-05-25 04:46 UTC (permalink / raw)

Prevent a segfault when using a SHOW ALL, in case a DefineCustomXXXVariable()
was defined with a NULL short_desc.
---
 src/backend/utils/misc/guc.c | 16 +++++++++++++---
 src/include/c.h              | 10 ++++++++++
 src/include/utils/guc.h      | 10 +++++-----
 3 files changed, 28 insertions(+), 8 deletions(-)

diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index 8e9b71375c..55d41ae7d6 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -9780,7 +9780,16 @@ ShowAllGUCConfig(DestReceiver *dest)
 			isnull[1] = true;
 		}
 
-		values[2] = PointerGetDatum(cstring_to_text(conf->short_desc));
+		if (conf->short_desc)
+		{
+			values[2] = PointerGetDatum(cstring_to_text(conf->short_desc));
+			isnull[2] = false;
+		}
+		else
+		{
+			values[2] = PointerGetDatum(NULL);
+			isnull[2] = true;
+		}
 
 		/* send it to dest */
 		do_tup_output(tstate, values, isnull);
@@ -9792,7 +9801,8 @@ ShowAllGUCConfig(DestReceiver *dest)
 			pfree(setting);
 			pfree(DatumGetPointer(values[1]));
 		}
-		pfree(DatumGetPointer(values[2]));
+		if (conf->short_desc)
+			pfree(DatumGetPointer(values[2]));
 	}
 
 	end_tup_output(tstate);
@@ -10002,7 +10012,7 @@ GetConfigOptionByNum(int varnum, const char **values, bool *noshow)
 	values[3] = _(config_group_names[conf->group]);
 
 	/* short_desc */
-	values[4] = _(conf->short_desc);
+	values[4] = conf->short_desc != NULL ? _(conf->short_desc) : NULL;
 
 	/* extra_desc */
 	values[5] = conf->long_desc != NULL ? _(conf->long_desc) : NULL;
diff --git a/src/include/c.h b/src/include/c.h
index 4f16e589b3..f253aa930b 100644
--- a/src/include/c.h
+++ b/src/include/c.h
@@ -144,6 +144,16 @@
 #define pg_attribute_no_sanitize_alignment()
 #endif
 
+/*
+ * pg_attribute_nonnull means the compiler should warn if the function is called
+ * with the listed arguments set to NULL.
+ */
+#if defined(__clang_major__) || defined(__GNUC__)
+#define pg_attribute_nonnull(...) __attribute__((nonnull(__VA_ARGS__)))
+#else
+#define pg_attribute_nonnull(...)
+#endif
+
 /*
  * Append PG_USED_FOR_ASSERTS_ONLY to definitions of variables that are only
  * used in assert-enabled builds, to avoid compiler warnings about unused
diff --git a/src/include/utils/guc.h b/src/include/utils/guc.h
index efcbad7842..be691c5e9c 100644
--- a/src/include/utils/guc.h
+++ b/src/include/utils/guc.h
@@ -303,7 +303,7 @@ extern void DefineCustomBoolVariable(const char *name,
 									 int flags,
 									 GucBoolCheckHook check_hook,
 									 GucBoolAssignHook assign_hook,
-									 GucShowHook show_hook);
+									 GucShowHook show_hook) pg_attribute_nonnull(1, 4);
 
 extern void DefineCustomIntVariable(const char *name,
 									const char *short_desc,
@@ -316,7 +316,7 @@ extern void DefineCustomIntVariable(const char *name,
 									int flags,
 									GucIntCheckHook check_hook,
 									GucIntAssignHook assign_hook,
-									GucShowHook show_hook);
+									GucShowHook show_hook) pg_attribute_nonnull(1, 4);
 
 extern void DefineCustomRealVariable(const char *name,
 									 const char *short_desc,
@@ -329,7 +329,7 @@ extern void DefineCustomRealVariable(const char *name,
 									 int flags,
 									 GucRealCheckHook check_hook,
 									 GucRealAssignHook assign_hook,
-									 GucShowHook show_hook);
+									 GucShowHook show_hook) pg_attribute_nonnull(1, 4);
 
 extern void DefineCustomStringVariable(const char *name,
 									   const char *short_desc,
@@ -340,7 +340,7 @@ extern void DefineCustomStringVariable(const char *name,
 									   int flags,
 									   GucStringCheckHook check_hook,
 									   GucStringAssignHook assign_hook,
-									   GucShowHook show_hook);
+									   GucShowHook show_hook) pg_attribute_nonnull(1, 4);
 
 extern void DefineCustomEnumVariable(const char *name,
 									 const char *short_desc,
@@ -352,7 +352,7 @@ extern void DefineCustomEnumVariable(const char *name,
 									 int flags,
 									 GucEnumCheckHook check_hook,
 									 GucEnumAssignHook assign_hook,
-									 GucShowHook show_hook);
+									 GucShowHook show_hook) pg_attribute_nonnull(1, 4);
 
 extern void MarkGUCPrefixReserved(const char *className);
 
-- 
2.25.1


--Dxnq1zWXvFF0Q93v--





^ permalink  raw  reply  [nested|flat] 9+ messages in thread

* [PATCH v3 1/1] Handle a NULL short_desc in ShowAllGUCConfig
@ 2022-05-25 04:46 Steve Chavez <[email protected]>
  0 siblings, 0 replies; 9+ messages in thread

From: Steve Chavez @ 2022-05-25 04:46 UTC (permalink / raw)

Prevent a segfault when using a SHOW ALL, in case a DefineCustomXXXVariable()
was defined with a NULL short_desc.
---
 src/backend/utils/misc/guc.c | 16 +++++++++++++---
 src/include/c.h              | 10 ++++++++++
 src/include/utils/guc.h      | 10 +++++-----
 3 files changed, 28 insertions(+), 8 deletions(-)

diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index 8e9b71375c..55d41ae7d6 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -9780,7 +9780,16 @@ ShowAllGUCConfig(DestReceiver *dest)
 			isnull[1] = true;
 		}
 
-		values[2] = PointerGetDatum(cstring_to_text(conf->short_desc));
+		if (conf->short_desc)
+		{
+			values[2] = PointerGetDatum(cstring_to_text(conf->short_desc));
+			isnull[2] = false;
+		}
+		else
+		{
+			values[2] = PointerGetDatum(NULL);
+			isnull[2] = true;
+		}
 
 		/* send it to dest */
 		do_tup_output(tstate, values, isnull);
@@ -9792,7 +9801,8 @@ ShowAllGUCConfig(DestReceiver *dest)
 			pfree(setting);
 			pfree(DatumGetPointer(values[1]));
 		}
-		pfree(DatumGetPointer(values[2]));
+		if (conf->short_desc)
+			pfree(DatumGetPointer(values[2]));
 	}
 
 	end_tup_output(tstate);
@@ -10002,7 +10012,7 @@ GetConfigOptionByNum(int varnum, const char **values, bool *noshow)
 	values[3] = _(config_group_names[conf->group]);
 
 	/* short_desc */
-	values[4] = _(conf->short_desc);
+	values[4] = conf->short_desc != NULL ? _(conf->short_desc) : NULL;
 
 	/* extra_desc */
 	values[5] = conf->long_desc != NULL ? _(conf->long_desc) : NULL;
diff --git a/src/include/c.h b/src/include/c.h
index 4f16e589b3..f253aa930b 100644
--- a/src/include/c.h
+++ b/src/include/c.h
@@ -144,6 +144,16 @@
 #define pg_attribute_no_sanitize_alignment()
 #endif
 
+/*
+ * pg_attribute_nonnull means the compiler should warn if the function is called
+ * with the listed arguments set to NULL.
+ */
+#if defined(__clang_major__) || defined(__GNUC__)
+#define pg_attribute_nonnull(...) __attribute__((nonnull(__VA_ARGS__)))
+#else
+#define pg_attribute_nonnull(...)
+#endif
+
 /*
  * Append PG_USED_FOR_ASSERTS_ONLY to definitions of variables that are only
  * used in assert-enabled builds, to avoid compiler warnings about unused
diff --git a/src/include/utils/guc.h b/src/include/utils/guc.h
index efcbad7842..be691c5e9c 100644
--- a/src/include/utils/guc.h
+++ b/src/include/utils/guc.h
@@ -303,7 +303,7 @@ extern void DefineCustomBoolVariable(const char *name,
 									 int flags,
 									 GucBoolCheckHook check_hook,
 									 GucBoolAssignHook assign_hook,
-									 GucShowHook show_hook);
+									 GucShowHook show_hook) pg_attribute_nonnull(1, 4);
 
 extern void DefineCustomIntVariable(const char *name,
 									const char *short_desc,
@@ -316,7 +316,7 @@ extern void DefineCustomIntVariable(const char *name,
 									int flags,
 									GucIntCheckHook check_hook,
 									GucIntAssignHook assign_hook,
-									GucShowHook show_hook);
+									GucShowHook show_hook) pg_attribute_nonnull(1, 4);
 
 extern void DefineCustomRealVariable(const char *name,
 									 const char *short_desc,
@@ -329,7 +329,7 @@ extern void DefineCustomRealVariable(const char *name,
 									 int flags,
 									 GucRealCheckHook check_hook,
 									 GucRealAssignHook assign_hook,
-									 GucShowHook show_hook);
+									 GucShowHook show_hook) pg_attribute_nonnull(1, 4);
 
 extern void DefineCustomStringVariable(const char *name,
 									   const char *short_desc,
@@ -340,7 +340,7 @@ extern void DefineCustomStringVariable(const char *name,
 									   int flags,
 									   GucStringCheckHook check_hook,
 									   GucStringAssignHook assign_hook,
-									   GucShowHook show_hook);
+									   GucShowHook show_hook) pg_attribute_nonnull(1, 4);
 
 extern void DefineCustomEnumVariable(const char *name,
 									 const char *short_desc,
@@ -352,7 +352,7 @@ extern void DefineCustomEnumVariable(const char *name,
 									 int flags,
 									 GucEnumCheckHook check_hook,
 									 GucEnumAssignHook assign_hook,
-									 GucShowHook show_hook);
+									 GucShowHook show_hook) pg_attribute_nonnull(1, 4);
 
 extern void MarkGUCPrefixReserved(const char *className);
 
-- 
2.25.1


--Dxnq1zWXvFF0Q93v--





^ permalink  raw  reply  [nested|flat] 9+ messages in thread

* [PATCH v3 1/1] Handle a NULL short_desc in ShowAllGUCConfig
@ 2022-05-25 04:46 Steve Chavez <[email protected]>
  0 siblings, 0 replies; 9+ messages in thread

From: Steve Chavez @ 2022-05-25 04:46 UTC (permalink / raw)

Prevent a segfault when using a SHOW ALL, in case a DefineCustomXXXVariable()
was defined with a NULL short_desc.
---
 src/backend/utils/misc/guc.c | 16 +++++++++++++---
 src/include/c.h              | 10 ++++++++++
 src/include/utils/guc.h      | 10 +++++-----
 3 files changed, 28 insertions(+), 8 deletions(-)

diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index 8e9b71375c..55d41ae7d6 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -9780,7 +9780,16 @@ ShowAllGUCConfig(DestReceiver *dest)
 			isnull[1] = true;
 		}
 
-		values[2] = PointerGetDatum(cstring_to_text(conf->short_desc));
+		if (conf->short_desc)
+		{
+			values[2] = PointerGetDatum(cstring_to_text(conf->short_desc));
+			isnull[2] = false;
+		}
+		else
+		{
+			values[2] = PointerGetDatum(NULL);
+			isnull[2] = true;
+		}
 
 		/* send it to dest */
 		do_tup_output(tstate, values, isnull);
@@ -9792,7 +9801,8 @@ ShowAllGUCConfig(DestReceiver *dest)
 			pfree(setting);
 			pfree(DatumGetPointer(values[1]));
 		}
-		pfree(DatumGetPointer(values[2]));
+		if (conf->short_desc)
+			pfree(DatumGetPointer(values[2]));
 	}
 
 	end_tup_output(tstate);
@@ -10002,7 +10012,7 @@ GetConfigOptionByNum(int varnum, const char **values, bool *noshow)
 	values[3] = _(config_group_names[conf->group]);
 
 	/* short_desc */
-	values[4] = _(conf->short_desc);
+	values[4] = conf->short_desc != NULL ? _(conf->short_desc) : NULL;
 
 	/* extra_desc */
 	values[5] = conf->long_desc != NULL ? _(conf->long_desc) : NULL;
diff --git a/src/include/c.h b/src/include/c.h
index 4f16e589b3..f253aa930b 100644
--- a/src/include/c.h
+++ b/src/include/c.h
@@ -144,6 +144,16 @@
 #define pg_attribute_no_sanitize_alignment()
 #endif
 
+/*
+ * pg_attribute_nonnull means the compiler should warn if the function is called
+ * with the listed arguments set to NULL.
+ */
+#if defined(__clang_major__) || defined(__GNUC__)
+#define pg_attribute_nonnull(...) __attribute__((nonnull(__VA_ARGS__)))
+#else
+#define pg_attribute_nonnull(...)
+#endif
+
 /*
  * Append PG_USED_FOR_ASSERTS_ONLY to definitions of variables that are only
  * used in assert-enabled builds, to avoid compiler warnings about unused
diff --git a/src/include/utils/guc.h b/src/include/utils/guc.h
index efcbad7842..be691c5e9c 100644
--- a/src/include/utils/guc.h
+++ b/src/include/utils/guc.h
@@ -303,7 +303,7 @@ extern void DefineCustomBoolVariable(const char *name,
 									 int flags,
 									 GucBoolCheckHook check_hook,
 									 GucBoolAssignHook assign_hook,
-									 GucShowHook show_hook);
+									 GucShowHook show_hook) pg_attribute_nonnull(1, 4);
 
 extern void DefineCustomIntVariable(const char *name,
 									const char *short_desc,
@@ -316,7 +316,7 @@ extern void DefineCustomIntVariable(const char *name,
 									int flags,
 									GucIntCheckHook check_hook,
 									GucIntAssignHook assign_hook,
-									GucShowHook show_hook);
+									GucShowHook show_hook) pg_attribute_nonnull(1, 4);
 
 extern void DefineCustomRealVariable(const char *name,
 									 const char *short_desc,
@@ -329,7 +329,7 @@ extern void DefineCustomRealVariable(const char *name,
 									 int flags,
 									 GucRealCheckHook check_hook,
 									 GucRealAssignHook assign_hook,
-									 GucShowHook show_hook);
+									 GucShowHook show_hook) pg_attribute_nonnull(1, 4);
 
 extern void DefineCustomStringVariable(const char *name,
 									   const char *short_desc,
@@ -340,7 +340,7 @@ extern void DefineCustomStringVariable(const char *name,
 									   int flags,
 									   GucStringCheckHook check_hook,
 									   GucStringAssignHook assign_hook,
-									   GucShowHook show_hook);
+									   GucShowHook show_hook) pg_attribute_nonnull(1, 4);
 
 extern void DefineCustomEnumVariable(const char *name,
 									 const char *short_desc,
@@ -352,7 +352,7 @@ extern void DefineCustomEnumVariable(const char *name,
 									 int flags,
 									 GucEnumCheckHook check_hook,
 									 GucEnumAssignHook assign_hook,
-									 GucShowHook show_hook);
+									 GucShowHook show_hook) pg_attribute_nonnull(1, 4);
 
 extern void MarkGUCPrefixReserved(const char *className);
 
-- 
2.25.1


--Dxnq1zWXvFF0Q93v--





^ permalink  raw  reply  [nested|flat] 9+ messages in thread

* Re: Avoid unncessary always true test (src/backend/storage/buffer/bufmgr.c)
@ 2023-07-06 19:22 Ranier Vilela <[email protected]>
  0 siblings, 0 replies; 9+ messages in thread

From: Ranier Vilela @ 2023-07-06 19:22 UTC (permalink / raw)
  To: Gurjeet Singh <[email protected]>; +Cc: Karina Litskevich <[email protected]>; Richard Guo <[email protected]>; Kyotaro Horiguchi <[email protected]>; [email protected]; pgsql-hackers

Em qui., 6 de jul. de 2023 às 16:06, Gurjeet Singh <[email protected]>
escreveu:

> On Thu, Jul 6, 2023 at 8:01 AM Karina Litskevich
> <[email protected]> wrote:
> >
> >
> >> EB_SMGR and EB_REL are macros for making new structs.
> >> IMO these are buggy, once make new structs without initializing all
> fields.
> >> Attached a patch to fix this and make more clear when rel or smgr is
> NULL.
> >
> >
> > As long as a structure is initialized, its fields that are not present in
> > initialization are initialized to zeros and NULLs depending on their
> types.
> > See C99 Standard 6.7.8.21 and 6.7.8.10. This behaviour is quite well
> known,
> > so I don't think this place is buggy. Anyway, if someone else says the
> code
> > is more readable with these fields initialized explicitly, then go on.
>
> Even though I am not a fan of the Designated Initializers feature, I
> agree with Karina. Per the standard, the unmentioned fields get
> initialized to zeroes/NULLs, so the explicit initialization to
> zero/null that this additional patch does is unnecessary. Moreover, I
> feel that it makes the code less pleasant to read.
>
> C99, 6.7.8.21:
> > If there are fewer initializers in a brace-enclosed list than there are
> > elements or members of an aggregate, or fewer characters in a string
> literal
> > used to initialize an array of known size than there are elements in the
> array,
> > the remainder of the aggregate shall be initialized implicitly the same
> as
> > objects that have static storage duration.
>
> C99, 6.7.8.10:
> > If an object that has automatic storage duration is not initialized
> explicitly,
> > its value is indeterminate.

The key points are here.
The object is not static storage duration.
The object is struct with "automatic storage duration".

And not all compilers follow the standards,
they tend to vary quite a bit.

regards,
Ranier Vilela


^ permalink  raw  reply  [nested|flat] 9+ messages in thread

* Re: AIO writes vs hint bits vs checksums
@ 2025-04-01 15:08 ` Andres Freund <[email protected]>
  2 siblings, 0 replies; 9+ messages in thread

From: Andres Freund @ 2025-04-01 15:08 UTC (permalink / raw)
  To: Heikki Linnakangas <[email protected]>; +Cc: pgsql-hackers; Noah Misch <[email protected]>; Robert Haas <[email protected]>; Thomas Munro <[email protected]>

Hi,

On 2025-04-01 13:34:53 +0300, Heikki Linnakangas wrote:
> Here's a rebase of these patches.

Thanks!

Curious what made you do this? Do you need any parts of this soon?

I've been hacking on this a bit more, btw, just haven't gotten around to the
necessary README rephrasings... :(


> I went ahead and committed the "heapam: Only set tuple's block once per page
> in pagemode" patch, because it was trivial and independent of the rest.

Thanks!

I think I should just commit the kill_prior_tuples test, it's better than
nothing.

Greetings,

Andres Freund





^ permalink  raw  reply  [nested|flat] 9+ messages in thread

* Re: AIO writes vs hint bits vs checksums
@ 2025-04-01 15:29 ` Nico Williams <[email protected]>
  2 siblings, 0 replies; 9+ messages in thread

From: Nico Williams @ 2025-04-01 15:29 UTC (permalink / raw)
  To: Heikki Linnakangas <[email protected]>; +Cc: Andres Freund <[email protected]>; pgsql-hackers

On Wed, Oct 30, 2024 at 02:16:51PM +0200, Heikki Linnakangas wrote:
> Acquiring the exclusive lock in step 4 is just a way to wait for all the
> existing share-lockers to release the lock. You wouldn't need to block new
> share-lockers. We have LW_WAIT_UNTIL_FREE, which is almost what we need, but
> it currently ignores share-lockers. So doing this "properly" would require
> more changes to LWLocks. Briefly acquiring an exclusive lock seems
> acceptable though.

The problem is starvation.  For this you really want something more like
rwlocks that do not have the writer starvation problem.  But rwlocks
have other problems too, like in this case forcing readers to wait.

What you want here is something more like a barrier where readers that
did not see that the page has BM_IO_IN_PROGRESS set get to act as though
it's not set while readers that did see that the page has
BM_IO_IN_PROGRESS set don't, and the process that did set that bit gets
to wait for the first set of readers all without blocking the second set
of readers.  That's something akin to an rwlock, but better -- in fact,
it resembles RCU.

Nico
-- 





^ permalink  raw  reply  [nested|flat] 9+ messages in thread

* Re: AIO writes vs hint bits vs checksums
@ 2025-08-13 19:38 ` Andres Freund <[email protected]>
  2025-10-27 11:48   ` Re: AIO writes vs hint bits vs checksums Maxim Orlov <[email protected]>
  2 siblings, 1 reply; 9+ messages in thread

From: Andres Freund @ 2025-08-13 19:38 UTC (permalink / raw)
  To: Heikki Linnakangas <[email protected]>; +Cc: Noah Misch <[email protected]>; pgsql-hackers; Robert Haas <[email protected]>; Thomas Munro <[email protected]>

Hi,

On 2024-10-30 12:45:27 -0400, Andres Freund wrote:
> On 2024-10-30 13:29:01 +0200, Heikki Linnakangas wrote:
> > On 30/10/2024 04:21, Andres Freund wrote:
> > > Attached is a, unfortunately long, series of patches implementing what I
> > > described upthread.
> > 
> > Review of the preparatory patches:
> > 
> > > 0001 Add very basic test for kill_prior_tuples
> > > 
> > >      We currently don't exercise this patch for gist and hash, which seems
> > >      somewhat criminal.
> > 
> > Interesting to use the isolationtester for this. There's just one session,
> > so you're just using it to define reusable steps with handy names.
> 
> Yea. I had started out writing it as a pg_regress style test and it quickly got very
> hard to understand.
> 
> 
> > I'm fine with that, but please add a comment to explain it.
> 
> Makes sense.
> 
> 
> > I wonder if it'd be more straightforward to make it a regular pg_regress
> > test though. There would be some repetition, but would it be so bad?
> 
> I found it to be quite bad. If testing just one AM it's ok-ish, but once you
> test 2-3 it gets very long and repetitive. I guess we could use functions or
> such to make it a bit less painful - but that point, is it actually simpler?
> 
> 
> > You forgot to add the new test to 'isolation_schedule'.
> 
> Oops.
> 
> > typos:
> >  "inex" -> "index"
> >  "does something approximately reasonble" -> "do something approximately
> > reasonable"
> 
> Oops^2.

Pushed the test with these changes.

Greetings,

Andres Freund





^ permalink  raw  reply  [nested|flat] 9+ messages in thread

* Re: AIO writes vs hint bits vs checksums
  2025-08-13 19:38 ` Re: AIO writes vs hint bits vs checksums Andres Freund <[email protected]>
@ 2025-10-27 11:48   ` Maxim Orlov <[email protected]>
  2025-10-28 04:06     ` Re: AIO writes vs hint bits vs checksums Michael Paquier <[email protected]>
  0 siblings, 1 reply; 9+ messages in thread

From: Maxim Orlov @ 2025-10-27 11:48 UTC (permalink / raw)
  To: Andres Freund <[email protected]>; +Cc: Heikki Linnakangas <[email protected]>; Noah Misch <[email protected]>; pgsql-hackers; Robert Haas <[email protected]>; Thomas Munro <[email protected]>

On Wed, 13 Aug 2025 at 22:38, Andres Freund <[email protected]> wrote:

>
> Pushed the test with these changes.


I think there is one thing that could be improved here. The isolation
test index-killtuples (377b7ab1452) adds a new dependency:
contrib/btree_gin. contrib/btree_gist. This must be taken into
account in the makefile.

Prior to this patch, isolation tests could be carried out independently
using "make check -C src/test/isolation", but they now require make
check-world to execute successfully, otherwise this test fails with:
====
 step create_ext_btree_gist: CREATE EXTENSION btree_gist;
+ERROR:  extension "btree_gist" is not available
 step create_gist: CREATE INDEX kill_prior_tuple_gist ON kill_prior_tuple
USING gist (key);
+ERROR:  data type integer has no default operator class for access method
"gist"
 step flush: SELECT FROM pg_stat_force_next_flush();
====

-- 
Best regards,
Maxim Orlov.


Attachments:

  [application/octet-stream] 0001-Fix-isolation-tests-run-after-adding-kill_prior_tupl.patch (758B, ../../CACG=ezYQf0Np-DN0DYehYoisVRiRK1RnmZFkr-0d8RoD1NUBXQ@mail.gmail.com/3-0001-Fix-isolation-tests-run-after-adding-kill_prior_tupl.patch)
  download | inline diff:
From d161c5d493b8851da9141282350ce6d77bb235a5 Mon Sep 17 00:00:00 2001
From: Maxim Orlov <[email protected]>
Date: Mon, 27 Oct 2025 14:28:31 +0300
Subject: [PATCH] Fix isolation tests run after adding kill_prior_tuples test

---
 src/test/isolation/Makefile | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/test/isolation/Makefile b/src/test/isolation/Makefile
index ade2256ed3a..63594a18030 100644
--- a/src/test/isolation/Makefile
+++ b/src/test/isolation/Makefile
@@ -5,6 +5,8 @@
 PGFILEDESC = "pg_isolation_regress/isolationtester - multi-client test driver"
 PGAPPICON = win32
 
+EXTRA_INSTALL=contrib/btree_gin contrib/btree_gist
+
 subdir = src/test/isolation
 top_builddir = ../../..
 include $(top_builddir)/src/Makefile.global
-- 
2.43.0



^ permalink  raw  reply  [nested|flat] 9+ messages in thread

* Re: AIO writes vs hint bits vs checksums
  2025-08-13 19:38 ` Re: AIO writes vs hint bits vs checksums Andres Freund <[email protected]>
  2025-10-27 11:48   ` Re: AIO writes vs hint bits vs checksums Maxim Orlov <[email protected]>
@ 2025-10-28 04:06     ` Michael Paquier <[email protected]>
  0 siblings, 0 replies; 9+ messages in thread

From: Michael Paquier @ 2025-10-28 04:06 UTC (permalink / raw)
  To: Maxim Orlov <[email protected]>; +Cc: Andres Freund <[email protected]>; Heikki Linnakangas <[email protected]>; Noah Misch <[email protected]>; pgsql-hackers; Robert Haas <[email protected]>; Thomas Munro <[email protected]>

On Mon, Oct 27, 2025 at 02:48:43PM +0300, Maxim Orlov wrote:
> I think there is one thing that could be improved here. The isolation
> test index-killtuples (377b7ab1452) adds a new dependency:
> contrib/btree_gin. contrib/btree_gist. This must be taken into
> account in the makefile.

Also mentioned here:
https://postgr.es/m/[email protected]

It looks that the conclusion would be to move this test into its own
test module to avoid the external contrib/ dependency in
src/test/isolation/, as duplicated Makefile rules in
src/test/isolation/Makefile are unpleasant.
--
Michael


Attachments:

  [application/pgp-signature] signature.asc (833B, ../../[email protected]/2-signature.asc)
  download

^ permalink  raw  reply  [nested|flat] 9+ messages in thread


end of thread, other threads:[~2025-10-28 04:06 UTC | newest]

Thread overview: 9+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2022-05-25 04:46 [PATCH v3 1/1] Handle a NULL short_desc in ShowAllGUCConfig Steve Chavez <[email protected]>
2022-05-25 04:46 [PATCH v3 1/1] Handle a NULL short_desc in ShowAllGUCConfig Steve Chavez <[email protected]>
2022-05-25 04:46 [PATCH v3 1/1] Handle a NULL short_desc in ShowAllGUCConfig Steve Chavez <[email protected]>
2023-07-06 19:22 Re: Avoid unncessary always true test (src/backend/storage/buffer/bufmgr.c) Ranier Vilela <[email protected]>
2025-04-01 15:08 ` Re: AIO writes vs hint bits vs checksums Andres Freund <[email protected]>
2025-04-01 15:29 ` Re: AIO writes vs hint bits vs checksums Nico Williams <[email protected]>
2025-08-13 19:38 ` Re: AIO writes vs hint bits vs checksums Andres Freund <[email protected]>
2025-10-27 11:48   ` Re: AIO writes vs hint bits vs checksums Maxim Orlov <[email protected]>
2025-10-28 04:06     ` Re: AIO writes vs hint bits vs checksums Michael Paquier <[email protected]>

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox