aboutsummaryrefslogtreecommitdiffstats
path: root/testing/postgresql-pglogical/001-fix-stdin-handling.patch
diff options
context:
space:
mode:
Diffstat (limited to 'testing/postgresql-pglogical/001-fix-stdin-handling.patch')
-rw-r--r--testing/postgresql-pglogical/001-fix-stdin-handling.patch51
1 files changed, 0 insertions, 51 deletions
diff --git a/testing/postgresql-pglogical/001-fix-stdin-handling.patch b/testing/postgresql-pglogical/001-fix-stdin-handling.patch
deleted file mode 100644
index 8ba3f6c958..0000000000
--- a/testing/postgresql-pglogical/001-fix-stdin-handling.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-diff --git a/pglogical_apply_spi.c b/pglogical_apply_spi.c
-index 3eaccc4..111a4eb 100644
---- a/pglogical_apply_spi.c
-+++ b/pglogical_apply_spi.c
-@@ -454,7 +454,7 @@ static void
- pglogical_proccess_copy(pglogical_copyState *pglcstate)
- {
- uint64 processed;
-- FILE *save_stdin;
-+ int save_stdin;
-
- if (!pglcstate->copy_parsetree || !pglcstate->copy_buffered_tuples)
- return;
-@@ -489,8 +489,16 @@ pglogical_proccess_copy(pglogical_copyState *pglcstate)
- * for this relation. Before that we save the current 'stdin' stream and
- * restore it back when the COPY is done
- */
-- save_stdin = stdin;
-- stdin = pglcstate->copy_read_file;
-+ save_stdin = dup(fileno(stdin));
-+ if (save_stdin < 0)
-+ ereport(FATAL,
-+ (errcode_for_file_access(),
-+ errmsg("could not save stdin: %m")));
-+
-+ if (dup2(fileno(pglcstate->copy_read_file), fileno(stdin)) < 0)
-+ ereport(FATAL,
-+ (errcode_for_file_access(),
-+ errmsg("could not redirect stdin: %m")));
-
- /* COPY may call into SPI (triggers, ...) and we already are in SPI. */
- SPI_push();
-@@ -501,10 +509,17 @@ pglogical_proccess_copy(pglogical_copyState *pglcstate)
-
- /* Clean up SPI state */
- SPI_pop();
-+ /*
-+ * Also close the read end of the pipe and restore 'stdin' to its original
-+ * value
-+ */
-+ if (dup2(save_stdin, fileno(stdin)) < 0)
-+ ereport(FATAL,
-+ (errcode_for_file_access(),
-+ errmsg("could not restore stdin: %m")));
-
- fclose(pglcstate->copy_read_file);
- pglcstate->copy_read_file = NULL;
-- stdin = save_stdin;
-
- /* Ensure we processed correct number of tuples */
- Assert(processed == pglcstate->copy_buffered_tuples);