PS_NITPICKS_v8.txt

text/plain

Filename: PS_NITPICKS_v8.txt
Type: text/plain
Part: 0
Message: Re: Add contrib/pg_logicalsnapinspect
diff --git a/contrib/pg_logicalinspect/pg_logicalinspect.c b/contrib/pg_logicalinspect/pg_logicalinspect.c
index 100b82f..2419df1 100644
--- a/contrib/pg_logicalinspect/pg_logicalinspect.c
+++ b/contrib/pg_logicalinspect/pg_logicalinspect.c
@@ -24,19 +24,6 @@ PG_FUNCTION_INFO_V1(pg_get_logical_snapshot_meta);
 PG_FUNCTION_INFO_V1(pg_get_logical_snapshot_info);
 
 /*
- * Lookup table for SnapBuildState.
- */
-
-#define SNAPBUILD_STATE_INCR 1
-
-static const char *const SnapBuildStateDesc[] = {
-	[SNAPBUILD_START + SNAPBUILD_STATE_INCR] = "start",
-	[SNAPBUILD_BUILDING_SNAPSHOT + SNAPBUILD_STATE_INCR] = "building",
-	[SNAPBUILD_FULL_SNAPSHOT + SNAPBUILD_STATE_INCR] = "full",
-	[SNAPBUILD_CONSISTENT + SNAPBUILD_STATE_INCR] = "consistent",
-};
-
-/*
  * NOTE: For any code change or issue fix here, it is highly recommended to
  * give a thought about doing the same in SnapBuildRestore() as well.
  */
@@ -186,6 +173,16 @@ Datum
 pg_get_logical_snapshot_info(PG_FUNCTION_ARGS)
 {
 #define PG_GET_LOGICAL_SNAPSHOT_INFO_COLS 14
+	/*
+	 * Lookup table for SnapBuildState. The lookup index is offset by 1
+	 * because the consecutive SnapBuildState enum values start at -1.
+	 */
+	static const char *const SnapBuildStateDesc[] = {
+		[1 + SNAPBUILD_START] = "start",
+		[1 + SNAPBUILD_BUILDING_SNAPSHOT] = "building",
+		[1 + SNAPBUILD_FULL_SNAPSHOT] = "full",
+		[1 + SNAPBUILD_CONSISTENT] = "consistent",
+	};
 	SnapBuildOnDisk ondisk;
 	XLogRecPtr	lsn;
 	HeapTuple	tuple;
@@ -209,8 +206,7 @@ pg_get_logical_snapshot_info(PG_FUNCTION_ARGS)
 
 	memset(nulls, 0, sizeof(nulls));
 
-	values[i++] = CStringGetTextDatum(SnapBuildStateDesc[ondisk.builder.state +
-														 SNAPBUILD_STATE_INCR]);
+	values[i++] = CStringGetTextDatum(SnapBuildStateDesc[ondisk.builder.state + 1]);
 	values[i++] = TransactionIdGetDatum(ondisk.builder.xmin);
 	values[i++] = TransactionIdGetDatum(ondisk.builder.xmax);
 	values[i++] = LSNGetDatum(ondisk.builder.start_decoding_at);
diff --git a/src/include/replication/snapbuild.h b/src/include/replication/snapbuild.h
index 78df2d1..e844a89 100644
--- a/src/include/replication/snapbuild.h
+++ b/src/include/replication/snapbuild.h
@@ -17,7 +17,7 @@
 
 /*
  * Please keep SnapBuildStateDesc[] (located in the pg_logicalinspect module)
- * updated should a change needs to be done in SnapBuildState.
+ * updated if a change needs to be made to SnapBuildState.
  */
 typedef enum
 {