postgresql/doc/src/sgml
Robert Haas 9c08aea6a3 Add new block-by-block strategy for CREATE DATABASE.
Because this strategy logs changes on a block-by-block basis, it
avoids the need to checkpoint before and after the operation.
However, because it logs each changed block individually, it might
generate a lot of extra write-ahead logging if the template database
is large. Therefore, the older strategy remains available via a new
STRATEGY parameter to CREATE DATABASE, and a corresponding --strategy
option to createdb.

Somewhat controversially, this patch assembles the list of relations
to be copied to the new database by reading the pg_class relation of
the template database. Cross-database access like this isn't normally
possible, but it can be made to work here because there can't be any
connections to the database being copied, nor can it contain any
in-doubt transactions. Even so, we have to use lower-level interfaces
than normal, since the table scan and relcache interfaces will not
work for a database to which we're not connected. The advantage of
this approach is that we do not need to rely on the filesystem to
determine what ought to be copied, but instead on PostgreSQL's own
knowledge of the database structure. This avoids, for example,
copying stray files that happen to be located in the source database
directory.

Dilip Kumar, with a fairly large number of cosmetic changes by me.
Reviewed and tested by Ashutosh Sharma, Andres Freund, John Naylor,
Greg Nancarrow, Neha Sharma. Additional feedback from Bruce Momjian,
Heikki Linnakangas, Julien Rouhaud, Adam Brusselback, Kyotaro
Horiguchi, Tomas Vondra, Andrew Dunstan, Álvaro Herrera, and others.

Discussion: http://postgr.es/m/CA+TgmoYtcdxBjLh31DLxUXHxFVMPGzrU5_T=CYCvRyFHywSBUQ@mail.gmail.com
2022-03-29 11:48:36 -04:00
..
images Replace genetic algorithm ASCII-art with a real figure 2019-08-19 12:05:38 -04:00
keywords Update SQL keywords list to SQL:2016 2019-05-14 15:44:37 +02:00
ref Add new block-by-block strategy for CREATE DATABASE. 2022-03-29 11:48:36 -04:00
.gitignore doc: Generate keywords table automatically 2019-05-07 15:29:39 +02:00
Makefile Change Texinfo output to UTF-8 2021-08-27 18:20:40 +02:00
README.links doc: mention <link> can be inside of <command>, but not <xref> 2021-04-22 16:01:17 -04:00
acronyms.sgml doc: Add acronyms for MITM and SNI 2021-06-25 11:29:03 +09:00
adminpack.sgml Use has_privs_for_roles for predefined role checks 2022-03-28 15:10:04 -04:00
advanced.sgml doc: adjust "cities" example to be consistent with other SQL 2021-07-02 20:42:46 -04:00
amcheck.sgml doc: Standardize capitalization of term "hot standby"/"Hot Standby" 2022-03-11 15:16:21 +09:00
appendix-obsolete-default-roles.sgml doc: Fix quoting markup 2021-07-05 08:26:00 +02:00
appendix-obsolete-pgreceivexlog.sgml Add a docs section for obsoleted and renamed functions and settings 2021-03-31 16:23:25 -04:00
appendix-obsolete-pgresetxlog.sgml Add a docs section for obsoleted and renamed functions and settings 2021-03-31 16:23:25 -04:00
appendix-obsolete-pgxlogdump.sgml Add a docs section for obsoleted and renamed functions and settings 2021-03-31 16:23:25 -04:00
appendix-obsolete-recovery-config.sgml Add a docs section for obsoleted and renamed functions and settings 2021-03-31 16:23:25 -04:00
appendix-obsolete.sgml Rename Default Roles to Predefined Roles 2021-04-01 15:32:06 -04:00
arch-dev.sgml Fix missing space in docs. 2021-11-24 18:32:56 +02:00
archive-modules.sgml Fix typo in archive modules docs 2022-02-09 15:36:46 +01:00
array.sgml Doc: correct nitpicky mistakes in array_position/array_positions examples. 2020-06-25 13:28:30 -04:00
auth-delay.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
auto-explain.sgml Fix some grammar and typos in comments and docs 2020-11-02 15:14:41 +09:00
backup-manifest.sgml doc: Spell checking 2020-07-05 15:37:57 +02:00
backup.sgml Allow archiving via loadable modules. 2022-02-03 14:05:02 -05:00
basebackup-to-shell.sgml Add 'basebackup_to_shell' contrib module. 2022-03-15 13:24:23 -04:00
basic-archive.sgml Allow archiving via loadable modules. 2022-02-03 14:05:02 -05:00
bgworker.sgml Send NOTIFY signals during CommitTransaction. 2021-09-14 17:18:25 -04:00
biblio.sgml doc: Remove link to JSON support in the SQL specification 2022-01-06 11:41:09 +09:00
bki.sgml Some cleanup for change of collate and ctype fields to type text 2022-02-02 11:58:55 +01:00
bloom.sgml doc: make blooms docs match reality 2020-10-26 19:17:05 -04:00
brin.sgml docs: fix inconsistencies in markup and case 2021-07-15 23:22:58 +02:00
btree-gin.sgml Mark some contrib modules as "trusted". 2020-02-13 15:02:35 -05:00
btree-gist.sgml Add bool to btree_gist documentation 2021-12-11 04:59:15 +01:00
btree.sgml doc: Fix some typos and markups 2021-09-29 11:56:13 +09:00
catalogs.sgml Add system view pg_ident_file_mappings 2022-03-29 10:15:48 +09:00
charset.sgml Add option to use ICU as global locale provider 2022-03-17 11:13:16 +01:00
citext.sgml Add deduplication to nbtree. 2020-02-26 13:05:30 -08:00
client-auth.sgml Add system view pg_ident_file_mappings 2022-03-29 10:15:48 +09:00
color.sgml Document color support 2020-03-29 11:15:11 +02:00
config.sgml Invent recursive_worktable_factor GUC to replace hard-wired constant. 2022-03-24 11:47:41 -04:00
contrib-spi.sgml Remove timetravel extension. 2018-10-11 11:43:56 -07:00
contrib.sgml Add 'basebackup_to_shell' contrib module. 2022-03-15 13:24:23 -04:00
cube.sgml Remove deprecated containment operators for contrib types. 2021-03-05 10:45:41 -05:00
custom-scan.sgml Allow CustomScan providers to say whether they support projections. 2021-07-06 18:10:20 -04:00
datatype.sgml Implement poly_distance(). 2021-12-13 17:33:32 -05:00
datetime.sgml Doc: fix bogus example about ambiguous timestamps. 2022-01-10 11:46:16 -05:00
dblink.sgml Use the correct article for abbreviations 2021-06-11 13:38:04 +12:00
ddl.sgml Doc: be clearer that foreign-table partitions need user-added constraints. 2022-02-05 12:55:44 -05:00
dfunc.sgml doc: Refresh more URLs in the docs 2020-07-18 22:43:35 +09:00
dict-int.sgml Add an "absval" parameter to allow contrib/dict_int to ignore signs. 2020-03-08 18:35:06 -04:00
dict-xsyn.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
diskusage.sgml Fix many typos and inconsistencies 2019-07-01 10:00:23 +09:00
dml.sgml doc: Improve wording 2021-04-07 13:52:26 +02:00
docguide.sgml Remove configure-time probe for DocBook DTD. 2020-11-30 15:24:13 -05:00
earthdistance.sgml Doc: add a glossary entry for "domain". 2021-07-30 14:50:21 -04:00
ecpg.sgml Remove 'datlastsysoid'. 2022-01-20 09:01:12 -05:00
errcodes.sgml Doc: remove now-redundant align specifications in colspecs. 2020-05-06 15:58:23 -04:00
event-trigger.sgml doc: Add ALTER/DROP ROUTINE to the event trigger matrix 2022-03-09 14:59:08 +09:00
extend.sgml Use the correct article for abbreviations 2021-06-11 13:38:04 +12:00
external-projects.sgml Update link for pllua 2020-10-19 13:48:00 +02:00
fdwhandler.sgml Doc: Tweak function prototype indentation for consistency. 2021-08-25 13:00:00 +09:00
features.sgml doc: Clean up title case use 2020-06-07 13:18:36 +02:00
file-fdw.sgml Add csvlog output for the new query_id value 2021-04-07 22:30:30 -04:00
filelist.sgml Add 'basebackup_to_shell' contrib module. 2022-03-15 13:24:23 -04:00
func.sgml Add system view pg_ident_file_mappings 2022-03-29 10:15:48 +09:00
fuzzystrmatch.sgml Mark some contrib modules as "trusted". 2020-02-13 15:02:35 -05:00
generate-errcodes-table.pl Update copyright for 2022 2022-01-07 19:04:57 -05:00
generate-keywords-table.pl Update copyright for 2022 2022-01-07 19:04:57 -05:00
generic-wal.sgml Don't use SGML empty tags 2017-10-17 15:10:33 -04:00
geqo.sgml doc: Refresh more URLs in the docs 2020-07-18 22:43:35 +09:00
gin.sgml doc: Remove more notes about compatibilities with past versions 2020-12-01 16:32:26 +09:00
gist.sgml Doc: fix minor issues in GiST support function documentation. 2021-10-04 13:34:31 -04:00
glossary.sgml Fix various typos, grammar and code style in comments and docs 2022-01-25 09:40:04 +09:00
hash.sgml Remove some trailing whitespace in documentation files 2022-01-27 18:31:01 +01:00
high-availability.sgml doc: Standardize capitalization of term "hot standby"/"Hot Standby" 2022-03-11 15:16:21 +09:00
history.sgml doc: Use proper em and en dashes 2019-10-25 20:39:41 +02:00
hstore.sgml plpython: Adjust docs after removal of Python 2 support. 2022-03-07 18:30:57 -08:00
indexam.sgml Fix various typos, grammar and code style in comments and docs 2022-01-25 09:40:04 +09:00
indices.sgml doc: clarify when expression indexes evaluate their expressions 2021-12-22 16:29:16 -05:00
info.sgml Don't use SGML empty tags 2017-10-17 15:10:33 -04:00
information_schema.sgml Add UNIQUE null treatment option 2022-02-03 11:48:21 +01:00
install-binaries.sgml Expand installation documentation to cover binary installations 2020-10-06 14:15:32 +02:00
install-windows.sgml doc: Mention environment variable ZSTD in the TAP tests for MSVC 2022-02-21 09:55:55 +09:00
installation.sgml doc: Ensure intermediate path creation with mkdir 2022-03-16 11:38:29 +01:00
intagg.sgml Don't use SGML empty tags 2017-10-17 15:10:33 -04:00
intarray.sgml Doc: fix bogus intarray index example. 2021-06-03 21:07:20 -04:00
intro.sgml doc: Refresh more URLs in the docs 2020-07-18 22:43:35 +09:00
isn.sgml Misc documentation fixes. 2020-10-19 19:28:54 +03:00
jit.sgml Doc: tweak examples to silence line-too-long PDF build warnings. 2020-05-14 18:13:08 -04:00
json.sgml plpython: Adjust docs after removal of Python 2 support. 2022-03-07 18:30:57 -08:00
keywords.sgml Allow most keywords to be used as column labels without requiring AS. 2020-09-18 16:46:36 -04:00
legal.sgml Update copyright for 2022 2022-01-07 19:04:57 -05:00
libpq.sgml Enable SSL library detection via PQsslAttribute() 2022-03-29 14:02:45 +02:00
limits.sgml doc: Clean up title case use 2019-09-08 10:27:29 +02:00
lo.sgml Doc: add a glossary entry for "domain". 2021-07-30 14:50:21 -04:00
lobj.sgml Doc: modernize documentation for lo_create()/lo_creat(). 2022-02-01 10:57:38 -05:00
logical-replication.sgml Add ALTER SUBSCRIPTION ... SKIP. 2022-03-22 07:11:19 +05:30
logicaldecoding.sgml Fix collection of typos in the code and the documentation 2022-03-15 11:29:35 +09:00
ltree.sgml plpython: Adjust docs after removal of Python 2 support. 2022-03-07 18:30:57 -08:00
maintenance.sgml Document autoanalyze limitations for partitioned tables 2022-03-28 14:30:00 +02:00
manage-ag.sgml Doc: clean up some places that mentioned template1 but not template0. 2021-11-02 12:54:35 -04:00
mk_feature_tables.pl Initial pgindent and pgperltidy run for v13. 2020-05-14 13:06:50 -04:00
monitoring.sgml Add new block-by-block strategy for CREATE DATABASE. 2022-03-29 11:48:36 -04:00
mvcc.sgml Add support for MERGE SQL command 2022-03-28 16:47:48 +02:00
nls.sgml doc: improve NLS instruction wording 2021-01-05 14:26:37 -05:00
notation.sgml doc: clarify syntax notation, particularly parentheses 2022-02-02 21:53:52 -05:00
oid2name.sgml Doc: fix some description of environment variables with frontend tools 2020-03-09 10:53:22 +09:00
oldsnapshot.sgml Add new 'old_snapshot' contrib module. 2020-09-24 13:55:47 -04:00
pageinspect.sgml doc: Improve references to term "FSM" in pageinspect and pgfreespacemap 2022-03-09 10:43:25 +09:00
parallel.sgml doc: Replace some uses of "which" by "that" in parallel.sgml 2021-09-02 11:35:38 +09:00
passwordcheck.sgml doc: Update cracklib URL 2020-08-28 08:19:12 +02:00
perform.sgml Fix various typos, grammar and code style in comments and docs 2022-01-25 09:40:04 +09:00
pgbuffercache.sgml Use has_privs_for_roles for predefined role checks 2022-03-28 15:10:04 -04:00
pgcrypto.sgml pgcrypto: Remove non-OpenSSL support 2021-11-05 14:06:59 +01:00
pgfreespacemap.sgml Use has_privs_for_roles for predefined role checks 2022-03-28 15:10:04 -04:00
pgprewarm.sgml Convert documentation to DocBook XML 2017-11-23 09:44:28 -05:00
pgrowlocks.sgml Use has_privs_for_roles for predefined role checks 2022-03-28 15:10:04 -04:00
pgstatstatements.sgml Use has_privs_for_roles for predefined role checks 2022-03-28 15:10:04 -04:00
pgstattuple.sgml Revert "Avoid the creation of the free space map for small heap relations". 2019-05-07 09:30:24 +05:30
pgsurgery.sgml New contrib module, pg_surgery, with heap surgery functions. 2020-09-10 11:14:07 -04:00
pgtrgm.sgml Remove mention of the version number from pg_trgm docs 2021-05-04 03:59:21 +03:00
pgvisibility.sgml Use has_privs_for_roles for predefined role checks 2022-03-28 15:10:04 -04:00
planstats.sgml Doc: tweak examples to silence line-too-long PDF build warnings. 2020-05-14 18:13:08 -04:00
plhandler.sgml Add PL/Sample to src/test/modules/ 2020-08-18 11:10:50 +09:00
plperl.sgml dummy commit 2020-12-23 09:33:20 -05:00
plpgsql.sgml Add support for MERGE SQL command 2022-03-28 16:47:48 +02:00
plpython.sgml plpython: Adjust docs after removal of Python 2 support. 2022-03-07 18:30:57 -08:00
pltcl.sgml doc: clarify syntax notation, particularly parentheses 2022-02-02 21:53:52 -05:00
postgres-fdw.sgml Fix collection of typos in the code and the documentation 2022-03-15 11:29:35 +09:00
postgres.sgml Allow archiving via loadable modules. 2022-02-03 14:05:02 -05:00
problems.sgml Fix inconsistencies and typos in the tree 2019-07-22 10:01:50 +09:00
protocol.sgml Allow specifying column lists for logical replication 2022-03-26 01:01:27 +01:00
queries.sgml Doc: improve description of UNION/INTERSECT/EXCEPT syntax. 2021-10-05 10:24:14 -04:00
query.sgml doc: Prefer explicit JOIN syntax over old implicit syntax in tutorial 2021-04-08 10:51:26 +02:00
rangetypes.sgml Revert 29854ee8d1 due to buildfarm failures 2021-06-15 21:44:40 +03:00
reference.sgml Add support for MERGE SQL command 2022-03-28 16:47:48 +02:00
regress.sgml Test replay of regression tests, attempt II. 2022-01-17 16:34:55 +13:00
release-15.sgml Stamp HEAD as 15devel. 2021-06-28 11:31:16 -04:00
release.sgml Stamp HEAD as 15devel. 2021-06-28 11:31:16 -04:00
replication-origins.sgml doc: add commas after 'i.e.' and 'e.g.' 2020-08-31 18:33:37 -04:00
rowtypes.sgml Doc: add a glossary entry for "domain". 2021-07-30 14:50:21 -04:00
rules.sgml Add support for security invoker views. 2022-03-22 10:28:10 +00:00
runtime.sgml doc: Improve postgres command for shared_memory_size_in_huge_pages 2022-03-24 20:56:31 +09:00
seg.sgml Remove deprecated containment operators for contrib types. 2021-03-05 10:45:41 -05:00
sepgsql.sgml doc: Fix link to SELinux user guide in sepgsql page 2021-10-28 09:25:55 +09:00
sourcerepo.sgml doc: Clean up title case use 2019-09-08 10:27:29 +02:00
sources.sgml Doc: minor improvements for "Formatting" section. 2021-09-20 10:48:02 -04:00
spgist.sgml doc: Fix some typos and markups 2021-09-29 11:56:13 +09:00
spi.sgml Fix SPI's handling of errors during transaction commit. 2022-02-28 12:45:36 -05:00
sslinfo.sgml Introduce --with-ssl={openssl} as a configure option 2021-02-01 19:19:44 +09:00
standalone-install.xml Doc: tweak installation doc edits made by commit 76c2af926. 2019-09-06 11:24:42 -04:00
standalone-profile.xsl Remove unused chunk from standalone-profile.xsl 2021-10-30 12:38:14 +02:00
start.sgml Doc: update example connection-failure messages in the documentation. 2021-01-23 15:50:51 -05:00
storage.sgml doc: Improve references to term "FSM" in pageinspect and pgfreespacemap 2022-03-09 10:43:25 +09:00
stylesheet-common.xsl Doc: re-re-revise markup for tables of functions. 2020-04-30 00:34:12 -04:00
stylesheet-fo.xsl Doc: reformat catalog/view description tables. 2020-05-13 23:03:39 -04:00
stylesheet-hh.xsl Fix XML namespace declarations 2022-02-15 11:13:49 +01:00
stylesheet-html-common.xsl docs: Work around bug in the docbook xsl stylesheets. 2022-02-15 13:52:40 -08:00
stylesheet-html-nochunk.xsl Fix XML namespace declarations 2022-02-15 11:13:49 +01:00
stylesheet-man.xsl doc: Improve man build speed 2018-02-28 09:26:36 -05:00
stylesheet-speedup-common.xsl doc: Further speed improvements for HTML XSLT build 2016-12-22 15:41:44 -05:00
stylesheet-speedup-xhtml.xsl doc: Further speed improvements for HTML XSLT build 2016-12-22 15:41:44 -05:00
stylesheet-text.xsl Fix XML namespace declarations 2022-02-15 11:13:49 +01:00
stylesheet.css Doc: reformat catalog/view description tables. 2020-05-13 23:03:39 -04:00
stylesheet.xsl Fix XML namespace declarations 2022-02-15 11:13:49 +01:00
syntax.sgml Remove operator_precedence_warning. 2020-12-08 16:29:52 -05:00
tableam.sgml doc: add commas after 'i.e.' and 'e.g.' 2020-08-31 18:33:37 -04:00
tablefunc.sgml Use the correct article for abbreviations 2021-06-11 13:38:04 +12:00
tablesample-method.sgml Use the correct article for abbreviations 2021-06-11 13:38:04 +12:00
tcn.sgml Mark some contrib modules as "trusted". 2020-02-13 15:02:35 -05:00
test-decoding.sgml doc: Fix some typos and markups 2021-09-29 11:56:13 +09:00
textsearch.sgml Use the correct article for abbreviations 2021-06-11 13:38:04 +12:00
trigger.sgml Add support for MERGE SQL command 2022-03-28 16:47:48 +02:00
tsm-system-rows.sgml Improve <xref> vs. <command> formatting in the documentation 2020-10-03 16:40:02 +02:00
tsm-system-time.sgml Improve <xref> vs. <command> formatting in the documentation 2020-10-03 16:40:02 +02:00
typeconv.sgml Use the correct article for abbreviations 2021-06-11 13:38:04 +12:00
unaccent.sgml Mark some contrib modules as "trusted". 2020-02-13 15:02:35 -05:00
user-manag.sgml Add pg_checkpointer predefined role for CHECKPOINT command. 2021-11-09 16:59:14 -08:00
uuid-ossp.sgml docs: ulink all references to RFC's 2020-12-01 14:36:30 +02:00
vacuumlo.sgml doc: remove xreflabels from commits 75fcdd2ae2 and 85af628da5 2020-06-11 18:19:25 -04:00
wal.sgml Allow archiving via loadable modules. 2022-02-03 14:05:02 -05:00
xaggr.sgml Declare assorted array functions using anycompatible not anyelement. 2020-11-04 16:09:55 -05:00
xfunc.sgml Doc: improve xfunc-c-type-table. 2021-12-08 16:54:52 -05:00
xindex.sgml Doc: fix minor issues in GiST support function documentation. 2021-10-04 13:34:31 -04:00
xml2.sgml doc: add commas after 'i.e.' and 'e.g.' 2020-08-31 18:33:37 -04:00
xoper.sgml Remove support for postfix (right-unary) operators. 2020-09-17 19:38:05 -04:00
xplang.sgml Improve <xref> vs. <command> formatting in the documentation 2020-10-03 16:40:02 +02:00
xtypes.sgml doc: Clean up title case use 2019-09-08 10:27:29 +02:00

README.links

<!-- doc/src/sgml/README.links -->

Linking within DocBook documents can be confusing, so here is a summary:


Intra-document Linking
----------------------

<xref>
	use to get chapter/section number from the title of the target
	link, or xreflabel if defined at the target, or refentrytitle if target
        is a refentry;  has no close tag
	http://www.oasis-open.org/docbook/documentation/reference/html/xref.html

linkend=
	controls the target of the link/xref, required

endterm=
	for <xref>, allows the text of the link/xref to be taken from a
	different link target title

<link>
	use to supply text for the link, only uses linkend, requires </link>
	http://www.oasis-open.org/docbook/documentation/reference/html/link.html
	can be embedded inside of <command>, unlike <xref>


External Linking
----------------

<ulink>
	like <link>, but uses a URL (not a document target);  requires
	</ulink>; if no text is specified, the URL appears as the link
	text
	http://www.oasis-open.org/docbook/documentation/reference/html/ulink.html

url=
	used by <ulink> to specify the URL, required


Guidelines
----------

- For an internal link, if you want to supply text, use <link>, else
  <xref>.

- Specific nouns like GUC variables, SQL commands, and contrib modules
  usually have xreflabels.

- For an external link, use <ulink>, with or without link text.

- xreflabels added to tags prevent the chapter/section for id's from being
  referenced;  only the xreflabel is accessible.  Therefore, use xreflabels
  only when linking is common, and chapter/section information is unneeded.