Re: Use uppercase keywords in foreign key tutorial

2025-11-11 Thread Peter Eisentraut

On 10.11.25 04:15, jian he wrote:

On Thu, Nov 6, 2025 at 11:06 AM David Rowley  wrote:


I reviewed this and double checked you left "uPDaTE" in [1]. Found no
issues, so pushed.



hi.

in doc/src/sgml/func/func-matching.sgml


substring(string similar
pattern escape
escape-character)

 or using the now obsolete SQL:1999 syntax:

substring(string from
pattern for
escape-character)

 or as a plain three-argument function:

substring(string,
pattern,
escape-character)


key word: "similar", "escape", "from", "for" within the above synopsis
section need uppercase too?


I don't think that would be a good change.  substring is also a keyword, 
but it was said not to upper-case keywords used as functions.  So in my 
mind that should also apply to other syntax elements of function-like calls.






Quoting of *_command arguments

2025-11-11 Thread Bruce Momjian
We inconsistently double-quote the "%f" and "%p" arguments of
"archive_command" and "restore_command".  Paths with spaces or special
characters, especially directory names in these cases, would need
double-quotes.

This patch adds double-quotes to all instances.  I can also go the other
way and remove them all, but we should be consistent.

-- 
  Bruce Momjian  https://momjian.us
  EDB  https://enterprisedb.com

  Do not let urgent matters crowd out time for investment in the future.
diff --git a/doc/src/sgml/backup.sgml b/doc/src/sgml/backup.sgml
index 5f7489afbd1..168444eccc5 100644
--- a/doc/src/sgml/backup.sgml
+++ b/doc/src/sgml/backup.sgml
@@ -627,7 +627,7 @@ tar -cf backup.tar /usr/local/pgsql/data
 character in the command.  The simplest useful command is something
 like:
 
-archive_command = 'test ! -f /mnt/server/archivedir/%f && cp %p /mnt/server/archivedir/%f'  # Unix
+archive_command = 'test ! -f "/mnt/server/archivedir/%f" && cp "%p" "/mnt/server/archivedir/%f"'  # Unix
 archive_command = 'copy "%p" "C:\\server\\archivedir\\%f"'  # Windows
 
 which will copy archivable WAL segments to the directory
@@ -1294,7 +1294,7 @@ SELECT * FROM pg_backup_stop(wait_for_archive => true);
 character in the command.  The simplest useful command is
 something like:
 
-restore_command = 'cp /mnt/server/archivedir/%f %p'
+restore_command = 'cp "/mnt/server/archivedir/%f" "%p"'
 
 which will copy previously archived WAL segments from the directory
 /mnt/server/archivedir.  Of course, you can use something
@@ -1493,11 +1493,11 @@ restore_command = 'cp /mnt/server/archivedir/%f %p'
   If archive storage size is a concern, you can use
   gzip to compress the archive files:
 
-archive_command = 'gzip < %p > /mnt/server/archivedir/%f.gz'
+archive_command = 'gzip < "%p" > "/mnt/server/archivedir/%f.gz"'
 
   You will then need to use gunzip during recovery:
 
-restore_command = 'gunzip < /mnt/server/archivedir/%f.gz > %p'
+restore_command = 'gunzip < "/mnt/server/archivedir/%f.gz" > "%p"'
 
  
 
diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml
index 683f7c36f46..bd925e027b9 100644
--- a/doc/src/sgml/config.sgml
+++ b/doc/src/sgml/config.sgml
@@ -4059,7 +4059,7 @@ include_dir 'conf.d'
 names that are not present in the archive; it must return nonzero
 when so asked.  Examples:
 
-restore_command = 'cp /mnt/server/archivedir/%f "%p"'
+restore_command = 'cp "/mnt/server/archivedir/%f" "%p"'
 restore_command = 'copy "C:\\server\\archivedir\\%f" "%p"'  # Windows
 
 An exception is that if the command was terminated by a signal (other
diff --git a/doc/src/sgml/high-availability.sgml b/doc/src/sgml/high-availability.sgml
index 742deb037b7..ade5995dd7a 100644
--- a/doc/src/sgml/high-availability.sgml
+++ b/doc/src/sgml/high-availability.sgml
@@ -745,7 +745,7 @@ protocol to make nodes agree on a serializable transactional order.
 A simple example of configuration is:
 
 primary_conninfo = 'host=192.168.1.50 port=5432 user=foo password=foopass options=''-c wal_sender_timeout=5000'''
-restore_command = 'cp /path/to/archive/%f %p'
+restore_command = 'cp "/path/to/archive/%f" "%p"'
 archive_cleanup_command = 'pg_archivecleanup /path/to/archive %r'
 

diff --git a/src/backend/utils/misc/postgresql.conf.sample b/src/backend/utils/misc/postgresql.conf.sample
index f62b61967ef..0161ad2feda 100644
--- a/src/backend/utils/misc/postgresql.conf.sample
+++ b/src/backend/utils/misc/postgresql.conf.sample
@@ -283,7 +283,7 @@
 #archive_command = ''		# command to use to archive a WAL file
 # placeholders: %p = path of file to archive
 #   %f = file name only
-# e.g. 'test ! -f /mnt/server/archivedir/%f && cp %p /mnt/server/archivedir/%f'
+# e.g. 'test ! -f "/mnt/server/archivedir/%f" && cp "%p" "/mnt/server/archivedir/%f"'
 #archive_timeout = 0		# force a WAL file switch after this
 # number of seconds; 0 disables
 
@@ -294,7 +294,7 @@
 #restore_command = ''		# command to use to restore an archived WAL file
 # placeholders: %p = path of file to restore
 #   %f = file name only
-# e.g. 'cp /mnt/server/archivedir/%f %p'
+# e.g. 'cp "/mnt/server/archivedir/%f" "%p"'
 #archive_cleanup_command = ''	# command to execute at every restartpoint
 #recovery_end_command = ''	# command to execute at completion of recovery