Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1ruu7n-008Pa9-EM for pgsql-hackers@arkaria.postgresql.org; Thu, 11 Apr 2024 13:05:56 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1ruu7m-000AJn-Ch for pgsql-hackers@arkaria.postgresql.org; Thu, 11 Apr 2024 13:05:54 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1ruu7l-000AJY-Om for pgsql-hackers@lists.postgresql.org; Thu, 11 Apr 2024 13:05:54 +0000 Received: from smtp.outgoing.loopia.se ([93.188.3.37]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1ruu7i-002Ldc-Dv for pgsql-hackers@lists.postgresql.org; Thu, 11 Apr 2024 13:05:52 +0000 Received: from s807.loopia.se (localhost [127.0.0.1]) by s807.loopia.se (Postfix) with ESMTP id 82C243006F93 for ; Thu, 11 Apr 2024 15:05:46 +0200 (CEST) Received: from s979.loopia.se (unknown [172.22.191.6]) by s807.loopia.se (Postfix) with ESMTP id 71FCE2E28F23 for ; Thu, 11 Apr 2024 15:05:46 +0200 (CEST) Received: from s470.loopia.se (unknown [172.22.191.5]) by s979.loopia.se (Postfix) with ESMTP id 7089F10BC495 for ; Thu, 11 Apr 2024 15:05:46 +0200 (CEST) X-Virus-Scanned: amavisd-new at amavis.loopia.se X-Spam-Flag: NO X-Spam-Score: -1.21 X-Spam-Level: X-Spam-Status: No, score=-1.21 tagged_above=-999 required=6.2 tests=[ALL_TRUSTED=-1, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, T_SCC_BODY_TEXT_LINE=-0.01] autolearn=disabled Authentication-Results: s470.loopia.se (amavisd-new); dkim=pass (2048-bit key) header.d=yesql.se Received: from s981.loopia.se ([172.22.191.5]) by s470.loopia.se (s470.loopia.se [172.22.190.34]) (amavisd-new, port 10024) with LMTP id FlzWCQysZHmq for ; Thu, 11 Apr 2024 15:05:44 +0200 (CEST) X-Loopia-Auth: user X-Loopia-User: daniel@yesql.se X-Loopia-Originating-IP: 89.255.232.193 Received: from smtpclient.apple (customer-89-255-232-193.stosn.net [89.255.232.193]) (Authenticated sender: daniel@yesql.se) by s981.loopia.se (Postfix) with ESMTPSA id E0C8922B177F for ; Thu, 11 Apr 2024 15:05:43 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yesql.se; s=loopiadkim1707475645; t=1712840744; bh=MYCj0C6xdIQQKKpJ0oRZQmWExspe9Ay6agVoNlGql4I=; h=From:Subject:Date:To; b=YwIuN6l10kQFBbH5zmacwfQB4iuvQSt/HtoldiYSaKccWXXhnNlf6cmoZnITldGSO Sd6rgyfrL9VEoJ/hNrFt6B4Bw+RIbZUo4PaVcyVUP0sxLFVh/MedTdKp/Kp6cFY+VT xLfcn8BAv7diBi+eimJkYQjhmwrbHJu/j9BGRcumU9SKUd9fOI5f4iB15jvyytYley w8pDZbHXt2IHmIsKoGQUSQDQ+TRuhabLmMxV8fOARPTLDCen9TPPlD4oimhN+HsKd9 +PE8k3L7Mm9NZ6jwiSsabju+mAiUYZokWNSlK56YIJ3B15IvOuLhEX7I7v4HKMp6qZ ha4QZnwM7LMow== From: Daniel Gustafsson Content-Type: multipart/mixed; boundary="Apple-Mail=_B4C1FD73-1E58-4175-AF69-39648ECA1EDC" Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3774.500.171.1.1\)) Subject: Typos in the code and README Message-Id: <3F577953-A29E-4722-98AD-2DA9EFF2CBB8@yesql.se> Date: Thu, 11 Apr 2024 15:05:33 +0200 To: PostgreSQL Developers X-Mailer: Apple Mail (2.3774.500.171.1.1) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --Apple-Mail=_B4C1FD73-1E58-4175-AF69-39648ECA1EDC Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii Now that the tree has settled down a bit post-freeze I ran some tooling = to check spelling. I was primarily interested in docs and README* which = were mostly free from simply typos, while the code had some in various = comments and one in code. The attached fixes all that I came across (not = cross-referenced against ongoing reverts or any other fixup threads but will be before = pushing of course). -- Daniel Gustafsson --Apple-Mail=_B4C1FD73-1E58-4175-AF69-39648ECA1EDC Content-Disposition: attachment; filename=v1-0001-Fix-typos.patch Content-Type: application/octet-stream; x-unix-mode=0644; name="v1-0001-Fix-typos.patch" Content-Transfer-Encoding: quoted-printable =46rom=20735f6574d77e0f3f8a2ff95ce4aa74f04db29541=20Mon=20Sep=2017=20= 00:00:00=202001=0AFrom:=20Daniel=20Gustafsson=20=0A= Date:=20Thu,=2011=20Apr=202024=2014:27:35=20+0200=0ASubject:=20[PATCH=20= v1]=20Fix=20typos=0A=0A---=0A=20contrib/amcheck/expected/check_btree.out=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20|=202=20+-=0A=20= contrib/amcheck/sql/check_btree.sql=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20|=202=20+-=0A=20= src/backend/access/gin/ginbtree.c=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20|=202=20+-=0A=20= src/backend/access/nbtree/nbtutils.c=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20|=202=20+-=0A=20= src/backend/commands/copyfrom.c=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20|=202=20+-=0A=20= src/backend/commands/tablecmds.c=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20|=205=20+++--=0A=20= src/backend/optimizer/path/pathkeys.c=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20|=202=20+-=0A=20= src/backend/optimizer/prep/prepunion.c=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20|=202=20+-=0A=20= src/backend/parser/parse_utilcmd.c=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20|=204=20++--=0A=20= src/backend/replication/walsender.c=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20|=202=20+-=0A=20= src/backend/storage/buffer/bufmgr.c=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20|=202=20+-=0A=20= src/backend/storage/lmgr/lock.c=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20|=202=20+-=0A=20= src/backend/storage/lmgr/proc.c=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20|=202=20+-=0A=20= src/backend/utils/adt/jsonpath_exec.c=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20|=204=20++--=0A=20= src/backend/utils/adt/selfuncs.c=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20|=202=20+-=0A=20= src/common/unicode_category.c=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20|=202=20+-=0A=20= src/include/access/tableam.h=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20|=202=20+-=0A=20= src/include/lib/radixtree.h=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20|=208=20++++----=0A=20= src/test/isolation/expected/temp-schema-cleanup.out=20=20=20=20=20=20=20= |=204=20++--=0A=20src/test/isolation/specs/temp-schema-cleanup.spec=20=20= =20=20=20=20=20=20=20|=202=20+-=0A=20= src/test/modules/test_json_parser/README=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20|=202=20+-=0A=20= .../test_json_parser/test_json_parser_incremental.c=20=20=20=20=20=20=20= |=204=20++--=0A=20= src/test/modules/test_json_parser/test_json_parser_perf.c=20|=202=20+-=0A= =20src/test/regress/expected/foreign_key.out=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20|=202=20+-=0A=20= src/test/regress/expected/publication.out=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20|=204=20++--=0A=20= src/test/regress/expected/tsdicts.out=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20|=202=20+-=0A=20= src/test/regress/sql/foreign_key.sql=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20|=202=20+-=0A=20= src/test/regress/sql/publication.sql=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20|=204=20++--=0A=20= src/test/regress/sql/tsdicts.sql=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20|=202=20+-=0A=20= src/test/subscription/t/004_sync.pl=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20|=202=20+-=0A=20= src/test/subscription/t/026_stats.pl=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20|=202=20+-=0A=2031=20files=20changed,=2042=20= insertions(+),=2041=20deletions(-)=0A=0Adiff=20--git=20= a/contrib/amcheck/expected/check_btree.out=20= b/contrib/amcheck/expected/check_btree.out=0Aindex=20= cf8284fe12..e7fb5f5515=20100644=0A---=20= a/contrib/amcheck/expected/check_btree.out=0A+++=20= b/contrib/amcheck/expected/check_btree.out=0A@@=20-2,7=20+2,7=20@@=20= CREATE=20TABLE=20bttest_a(id=20int8);=0A=20CREATE=20TABLE=20bttest_b(id=20= int8);=0A=20CREATE=20TABLE=20bttest_multi(id=20int8,=20data=20int8);=0A=20= CREATE=20TABLE=20delete_test_table=20(a=20bigint,=20b=20bigint,=20c=20= bigint,=20d=20bigint);=0A---=20Stabalize=20tests=0A+--=20Stabilize=20= tests=0A=20ALTER=20TABLE=20bttest_a=20SET=20(autovacuum_enabled=20=3D=20= false);=0A=20ALTER=20TABLE=20bttest_b=20SET=20(autovacuum_enabled=20=3D=20= false);=0A=20ALTER=20TABLE=20bttest_multi=20SET=20(autovacuum_enabled=20= =3D=20false);=0Adiff=20--git=20a/contrib/amcheck/sql/check_btree.sql=20= b/contrib/amcheck/sql/check_btree.sql=0Aindex=2068bd71b064..0793dbfeeb=20= 100644=0A---=20a/contrib/amcheck/sql/check_btree.sql=0A+++=20= b/contrib/amcheck/sql/check_btree.sql=0A@@=20-3,7=20+3,7=20@@=20CREATE=20= TABLE=20bttest_b(id=20int8);=0A=20CREATE=20TABLE=20bttest_multi(id=20= int8,=20data=20int8);=0A=20CREATE=20TABLE=20delete_test_table=20(a=20= bigint,=20b=20bigint,=20c=20bigint,=20d=20bigint);=0A=20=0A---=20= Stabalize=20tests=0A+--=20Stabilize=20tests=0A=20ALTER=20TABLE=20= bttest_a=20SET=20(autovacuum_enabled=20=3D=20false);=0A=20ALTER=20TABLE=20= bttest_b=20SET=20(autovacuum_enabled=20=3D=20false);=0A=20ALTER=20TABLE=20= bttest_multi=20SET=20(autovacuum_enabled=20=3D=20false);=0Adiff=20--git=20= a/src/backend/access/gin/ginbtree.c=20= b/src/backend/access/gin/ginbtree.c=0Aindex=2086f938686c..b7a5013896=20= 100644=0A---=20a/src/backend/access/gin/ginbtree.c=0A+++=20= b/src/backend/access/gin/ginbtree.c=0A@@=20-766,7=20+766,7=20@@=20= ginFinishSplit(GinBtree=20btree,=20GinBtreeStack=20*stack,=20bool=20= freestack,=0A=20/*=0A=20=20*=20An=20entry=20point=20to=20= ginFinishSplit()=20that=20is=20used=20when=20we=20stumble=20upon=20an=0A=20= =20*=20existing=20incompletely=20split=20page=20in=20the=20tree,=20as=20= opposed=20to=20completing=20a=0A-=20*=20split=20that=20we=20just=20made=20= outselves.=20The=20difference=20is=20that=20stack->buffer=20may=0A+=20*=20= split=20that=20we=20just=20made=20ourselves.=20The=20difference=20is=20= that=20stack->buffer=20may=0A=20=20*=20be=20merely=20share-locked=20on=20= entry,=20and=20will=20be=20upgraded=20to=20exclusive=20mode.=0A=20=20*=0A= =20=20*=20Note:=20Upgrading=20the=20lock=20momentarily=20releases=20it.=20= Doing=20that=20in=20a=20scan=0Adiff=20--git=20= a/src/backend/access/nbtree/nbtutils.c=20= b/src/backend/access/nbtree/nbtutils.c=0Aindex=202eff34c4aa..052f693138=20= 100644=0A---=20a/src/backend/access/nbtree/nbtutils.c=0A+++=20= b/src/backend/access/nbtree/nbtutils.c=0A@@=20-4126,7=20+4126,7=20@@=20= _bt_checkkeys_look_ahead(IndexScanDesc=20scan,=20BTReadPageState=20= *pstate,=0A=20=09else=0A=20=09{=0A=20=09=09/*=0A-=09=09=20*=20Failure=20= --=20"ahead"=20tuple=20is=20too=20far=20ahead=20(we=20were=20too=20= aggresive).=0A+=09=09=20*=20Failure=20--=20"ahead"=20tuple=20is=20too=20= far=20ahead=20(we=20were=20too=20aggressive).=0A=20=09=09=20*=0A=20=09=09= =20*=20Reset=20the=20number=20of=20rechecks,=20and=20aggressively=20= reduce=20the=20target=0A=20=09=09=20*=20distance=20(we're=20much=20more=20= aggressive=20here=20than=20we=20were=20when=20the=0Adiff=20--git=20= a/src/backend/commands/copyfrom.c=20b/src/backend/commands/copyfrom.c=0A= index=209d2900041e..a99589c7d8=20100644=0A---=20= a/src/backend/commands/copyfrom.c=0A+++=20= b/src/backend/commands/copyfrom.c=0A@@=20-998,7=20+998,7=20@@=20= CopyFrom(CopyFromState=20cstate)=0A=20=09=09=09= cstate->escontext->error_occurred)=0A=20=09=09{=0A=20=09=09=09/*=0A-=09=09= =09=20*=20Soft=20error=20occured,=20skip=20this=20tuple=20and=20deal=20= with=20error=0A+=09=09=09=20*=20Soft=20error=20occurred,=20skip=20this=20= tuple=20and=20deal=20with=20error=0A=20=09=09=09=20*=20information=20= according=20to=20ON_ERROR.=0A=20=09=09=09=20*/=0A=20=09=09=09if=20= (cstate->opts.on_error=20=3D=3D=20COPY_ON_ERROR_IGNORE)=0Adiff=20--git=20= a/src/backend/commands/tablecmds.c=20b/src/backend/commands/tablecmds.c=0A= index=208a98a0af48..fdc4917420=20100644=0A---=20= a/src/backend/commands/tablecmds.c=0A+++=20= b/src/backend/commands/tablecmds.c=0A@@=20-20888,7=20+20888,8=20@@=20= GetAttributeStorage(Oid=20atttypid,=20const=20char=20*storagemode)=0A=20= }=0A=20=0A=20/*=0A-=20*=20Struct=20with=20context=20of=20new=20partition=20= for=20insert=20rows=20from=20splited=20partition=0A+=20*=20Struct=20with=20= context=20of=20new=20partition=20for=20insert=20rows=20from=20partition=20= which=0A+=20*=20has=20been=20split.=0A=20=20*/=0A=20typedef=20struct=20= SplitPartitionContext=0A=20{=0A@@=20-21486,7=20+21487,7=20@@=20= ATExecMergePartitions(List=20**wqueue,=20AlteredTableInfo=20*tab,=20= Relation=20rel,=0A=20=09/*=20Create=20table=20for=20new=20partition,=20= use=20partitioned=20table=20as=20model.=20*/=0A=20=09if=20(isSameName)=0A= =20=09{=0A-=09=09/*=20Create=20partition=20table=20with=20generated=20= temparary=20name.=20*/=0A+=09=09/*=20Create=20partition=20table=20with=20= generated=20temporary=20name.=20*/=0A=20=09=09sprintf(tmpRelName,=20= "merge-%u-%X-tmp",=20RelationGetRelid(rel),=20MyProcPid);=0A=20=09=09= mergePartName=20=3D=20= makeRangeVar(get_namespace_name(RelationGetNamespace(rel)),=0A=20=09=09=09= =09=09=09=09=09=09=20tmpRelName,=20-1);=0Adiff=20--git=20= a/src/backend/optimizer/path/pathkeys.c=20= b/src/backend/optimizer/path/pathkeys.c=0Aindex=201d61881a6b..8b258cbef9=20= 100644=0A---=20a/src/backend/optimizer/path/pathkeys.c=0A+++=20= b/src/backend/optimizer/path/pathkeys.c=0A@@=20-384,7=20+384,7=20@@=20= group_keys_reorder_by_pathkeys(List=20*pathkeys,=20List=20= **group_pathkeys,=0A=20=09=20*=20*group_pathkeys=20containing=20grouping=20= pathkeys=20altogether=20with=20aggregate=0A=20=09=20*=20pathkeys.=20=20= If=20we=20process=20aggregate=20pathkeys=20we=20could=20get=20an=20= invalid=0A=20=09=20*=20result=20of=20get_sortgroupref_clause_noerr(),=20= because=20their=0A-=09=20*=20pathkey->pk_eclass->ec_sortref=20doesn't=20= referece=20query=20targetlist.=20=20So,=0A+=09=20*=20= pathkey->pk_eclass->ec_sortref=20doesn't=20reference=20query=20= targetlist.=20=20So,=0A=20=09=20*=20we=20allocate=20a=20separate=20list=20= of=20pathkeys=20for=20lookups.=0A=20=09=20*/=0A=20=09grouping_pathkeys=20= =3D=20list_copy_head(*group_pathkeys,=20num_groupby_pathkeys);=0Adiff=20= --git=20a/src/backend/optimizer/prep/prepunion.c=20= b/src/backend/optimizer/prep/prepunion.c=0Aindex=20= afcb5c0f0f..75655ee43c=20100644=0A---=20= a/src/backend/optimizer/prep/prepunion.c=0A+++=20= b/src/backend/optimizer/prep/prepunion.c=0A@@=20-214,7=20+214,7=20@@=20= set_operation_ordered_results_useful(SetOperationStmt=20*setop)=0A=20=20= *=0A=20=20*=20Returns=20a=20RelOptInfo=20for=20the=20subtree,=20as=20= well=20as=20these=20output=20parameters:=0A=20=20*=20*pTargetList:=20= receives=20the=20fully-fledged=20tlist=20for=20the=20subtree's=20top=20= plan=0A-=20*=20*istrivial_tlist:=20true=20iif=20datatypes=20between=20= parent=20and=20child=20match.=0A+=20*=20*istrivial_tlist:=20true=20if=20= datatypes=20between=20parent=20and=20child=20match.=0A=20=20*=0A=20=20*=20= The=20pTargetList=20output=20parameter=20is=20mostly=20redundant=20with=20= the=20pathtarget=0A=20=20*=20of=20the=20returned=20RelOptInfo,=20but=20= for=20the=20moment=20we=20need=20it=20because=20much=20of=0Adiff=20--git=20= a/src/backend/parser/parse_utilcmd.c=20= b/src/backend/parser/parse_utilcmd.c=0Aindex=20ceba069905..6f2be56def=20= 100644=0A---=20a/src/backend/parser/parse_utilcmd.c=0A+++=20= b/src/backend/parser/parse_utilcmd.c=0A@@=20-3451,7=20+3451,7=20@@=20= checkPartition(Relation=20rel,=20Oid=20partRelOid)=0A=20=0A=20/*=0A=20=20= *=20transformPartitionCmdForSplit=0A-=20*=09=09Analyze=20the=20ALTER=20= TABLLE=20...=20SPLIT=20PARTITION=20command=0A+=20*=09=09Analyze=20the=20= ALTER=20TABLE=20...=20SPLIT=20PARTITION=20command=0A=20=20*=0A=20=20*=20= For=20each=20new=20partition=20sps->bound=20is=20set=20to=20the=20= transformed=20value=20of=20bound.=0A=20=20*=20Does=20checks=20for=20= bounds=20of=20new=20partitions.=0A@@=20-3490,7=20+3490,7=20@@=20= transformPartitionCmdForSplit(CreateStmtContext=20*cxt,=20PartitionCmd=20= *partcmd)=0A=20=0A=20/*=0A=20=20*=20transformPartitionCmdForMerge=0A-=20= *=09=09Analyze=20the=20ALTER=20TABLLE=20...=20MERGE=20PARTITIONS=20= command=0A+=20*=09=09Analyze=20the=20ALTER=20TABLE=20...=20MERGE=20= PARTITIONS=20command=0A=20=20*=0A=20=20*=20Does=20simple=20checks=20for=20= merged=20partitions.=20Calculates=20bound=20of=20result=0A=20=20*=20= partition.=0Adiff=20--git=20a/src/backend/replication/walsender.c=20= b/src/backend/replication/walsender.c=0Aindex=20bc40c454de..9bf7c67f37=20= 100644=0A---=20a/src/backend/replication/walsender.c=0A+++=20= b/src/backend/replication/walsender.c=0A@@=20-3493,7=20+3493,7=20@@=20= WalSndDone(WalSndSendDataCallback=20send_data)=0A=20=20*=20Returns=20the=20= latest=20point=20in=20WAL=20that=20has=20been=20safely=20flushed=20to=20= disk.=0A=20=20*=20This=20should=20only=20be=20called=20when=20in=20= recovery.=0A=20=20*=0A-=20*=20This=20is=20called=20either=20by=20= cascading=20walsender=20to=20find=20WAL=20postion=20to=20be=20sent=0A+=20= *=20This=20is=20called=20either=20by=20cascading=20walsender=20to=20find=20= WAL=20position=20to=20be=20sent=0A=20=20*=20to=20a=20cascaded=20standby=20= or=20by=20slot=20synchronization=20operation=20to=20validate=20remote=0A=20= =20*=20slot's=20lsn=20before=20syncing=20it=20locally.=0A=20=20*=0Adiff=20= --git=20a/src/backend/storage/buffer/bufmgr.c=20= b/src/backend/storage/buffer/bufmgr.c=0Aindex=20901b7230fb..49637284f9=20= 100644=0A---=20a/src/backend/storage/buffer/bufmgr.c=0A+++=20= b/src/backend/storage/buffer/bufmgr.c=0A@@=20-1073,7=20+1073,7=20@@=20= PinBufferForBlock(Relation=20rel,=0A=20=0A=20=09/*=0A=20=09=20*=20If=20= there=20is=20no=20Relation=20it=20usually=20implies=20recovery=20and=20= thus=20permanent,=0A-=09=20*=20but=20we=20take=20an=20argmument=20= because=20CreateAndCopyRelationData=20can=20reach=20us=0A+=09=20*=20but=20= we=20take=20an=20argument=20because=20CreateAndCopyRelationData=20can=20= reach=20us=0A=20=09=20*=20with=20only=20an=20SMgrRelation=20for=20an=20= unlogged=20relation=20that=20we=20don't=20want=0A=20=09=20*=20to=20flag=20= with=20BM_PERMANENT.=0A=20=09=20*/=0Adiff=20--git=20= a/src/backend/storage/lmgr/lock.c=20b/src/backend/storage/lmgr/lock.c=0A= index=205022a50dd7..5154353c84=20100644=0A---=20= a/src/backend/storage/lmgr/lock.c=0A+++=20= b/src/backend/storage/lmgr/lock.c=0A@@=20-1032,7=20+1032,7=20@@=20= LockAcquireExtended(const=20LOCKTAG=20*locktag,=0A=20=0A=20=09=09/*=0A=20= =09=09=20*=20Sleep=20till=20someone=20wakes=20me=20up.=20We=20do=20this=20= even=20in=20the=20dontWait=0A-=09=09=20*=20case,=20beause=20while=20= trying=20to=20go=20to=20sleep,=20we=20may=20discover=20that=20we=0A+=09=09= =20*=20case,=20because=20while=20trying=20to=20go=20to=20sleep,=20we=20= may=20discover=20that=20we=0A=20=09=09=20*=20can=20acquire=20the=20lock=20= immediately=20after=20all.=0A=20=09=09=20*/=0A=20=0Adiff=20--git=20= a/src/backend/storage/lmgr/proc.c=20b/src/backend/storage/lmgr/proc.c=0A= index=204b830dc3c8..bd682dd810=20100644=0A---=20= a/src/backend/storage/lmgr/proc.c=0A+++=20= b/src/backend/storage/lmgr/proc.c=0A@@=20-1053,7=20+1053,7=20@@=20= AuxiliaryPidGetProc(int=20pid)=0A=20=20*=20called,=20because=20it=20= could=20be=20that=20when=20we=20try=20to=20find=20a=20position=20at=20= which=0A=20=20*=20to=20insert=20ourself=20into=20the=20wait=20queue,=20= we=20discover=20that=20we=20must=20be=20inserted=0A=20=20*=20ahead=20of=20= everyone=20who=20wants=20a=20lock=20that=20conflict=20with=20ours.=20In=20= that=20case,=0A-=20*=20we=20get=20the=20lock=20immediately.=20Beause=20= of=20this,=20it's=20sensible=20for=20this=20function=0A+=20*=20we=20get=20= the=20lock=20immediately.=20Because=20of=20this,=20it's=20sensible=20for=20= this=20function=0A=20=20*=20to=20have=20a=20dontWait=20argument,=20= despite=20the=20name.=0A=20=20*=0A=20=20*=20The=20lock=20table's=20= partition=20lock=20must=20be=20held=20at=20entry,=20and=20will=20be=20= held=0Adiff=20--git=20a/src/backend/utils/adt/jsonpath_exec.c=20= b/src/backend/utils/adt/jsonpath_exec.c=0Aindex=20103572ed93..ad6a5369d9=20= 100644=0A---=20a/src/backend/utils/adt/jsonpath_exec.c=0A+++=20= b/src/backend/utils/adt/jsonpath_exec.c=0A@@=20-4200,7=20+4200,7=20@@=20= JsonTableSetDocument(TableFuncScanState=20*state,=20Datum=20value)=0A=20= }=0A=20=0A=20/*=0A-=20*=20Evaluate=20a=20JsonTablePlan's=20jsonpath=20to=20= get=20a=20new=20row=20pattren=20from=0A+=20*=20Evaluate=20a=20= JsonTablePlan's=20jsonpath=20to=20get=20a=20new=20row=20pattern=20from=0A= =20=20*=20the=20given=20context=20item=0A=20=20*/=0A=20static=20void=0A= @@=20-4318,7=20+4318,7=20@@=20= JsonTablePlanScanNextRow(JsonTablePlanState=20*planstate)=0A=20=09=09/*=0A= =20=09=09=20*=20Now=20fetch=20the=20nested=20plan's=20current=20row=20to=20= be=20joined=20against=20the=0A=20=09=09=20*=20parent=20row.=20=20Any=20= further=20nested=20plans'=20paths=20will=20be=20re-evaluated=0A-=09=09=20= *=20reursively,=20level=20at=20a=20time,=20after=20setting=20each=20= nested=20plan's=0A+=09=09=20*=20recursively,=20level=20at=20a=20time,=20= after=20setting=20each=20nested=20plan's=0A=20=09=09=20*=20current=20= row.=0A=20=09=09=20*/=0A=20=09=09(void)=20= JsonTablePlanNextRow(planstate->nested);=0Adiff=20--git=20= a/src/backend/utils/adt/selfuncs.c=20b/src/backend/utils/adt/selfuncs.c=0A= index=2035f8f306ee..5f5d7959d8=20100644=0A---=20= a/src/backend/utils/adt/selfuncs.c=0A+++=20= b/src/backend/utils/adt/selfuncs.c=0A@@=20-6968,7=20+6968,7=20@@=20= btcostestimate(PlannerInfo=20*root,=20IndexPath=20*path,=20double=20= loop_count,=0A=20=09=09=20*=20btree=20scans,=20making=20the=20top-level=20= scan=20look=20like=20a=20continuous=20scan=0A=20=09=09=20*=20(as=20= opposed=20to=20num_sa_scans-many=20primitive=20index=20scans).=20=20= After=0A=20=09=09=20*=20all,=20btree=20scans=20mostly=20work=20like=20= that=20at=20runtime.=20=20However,=20such=20a=0A-=09=09=20*=20scheme=20= would=20badly=20bias=20genericcostestimate's=20simplistic=20appraoch=0A+=09= =09=20*=20scheme=20would=20badly=20bias=20genericcostestimate's=20= simplistic=20approach=0A=20=09=09=20*=20to=20calculating=20numIndexPages=20= through=20prorating.=0A=20=09=09=20*=0A=20=09=09=20*=20Stick=20with=20= the=20approach=20taken=20by=20non-native=20SAOP=20scans=20for=20now.=0A= diff=20--git=20a/src/common/unicode_category.c=20= b/src/common/unicode_category.c=0Aindex=20bece7334f5..359e82ec31=20= 100644=0A---=20a/src/common/unicode_category.c=0A+++=20= b/src/common/unicode_category.c=0A@@=20-23,7=20+23,7=20@@=0A=20/*=0A=20=20= *=20Create=20bitmasks=20from=20pg_unicode_category=20values=20for=20= efficient=20comparison=20of=0A=20=20*=20multiple=20categories.=20For=20= instance,=20PG_U_MN_MASK=20is=20a=20bitmask=20representing=0A-=20*=20the=20= general=20cateogry=20Mn;=20and=20PG_U_M_MASK=20represents=20general=20= categories=20Mn,=0A+=20*=20the=20general=20category=20Mn;=20and=20= PG_U_M_MASK=20represents=20general=20categories=20Mn,=0A=20=20*=20Me,=20= and=20Mc.=0A=20=20*=0A=20=20*=20The=20number=20of=20Unicode=20General=20= Categories=20should=20never=20grow,=20so=20a=2032-bit=0Adiff=20--git=20= a/src/include/access/tableam.h=20b/src/include/access/tableam.h=0Aindex=20= d1cd71b7a1..5f7cdd0e2b=20100644=0A---=20a/src/include/access/tableam.h=0A= +++=20b/src/include/access/tableam.h=0A@@=20-1872,7=20+1872,7=20@@=20= table_index_validate_scan(Relation=20table_rel,=0A=20}=0A=20=0A=20/*=0A-=20= *=20table_relation_analyze=20-=20fill=20the=20infromation=20for=20a=20= sampling=20statistics=0A+=20*=20table_relation_analyze=20-=20fill=20the=20= information=20for=20a=20sampling=20statistics=0A=20=20*=09=09=09=09=09=09= =09acquisition=0A=20=20*=0A=20=20*=20The=20pointer=20to=20a=20function=20= that=20will=20collect=20sample=20rows=20from=20the=20table=0Adiff=20= --git=20a/src/include/lib/radixtree.h=20b/src/include/lib/radixtree.h=0A= index=20dc4c00d38a..e780b8d323=20100644=0A---=20= a/src/include/lib/radixtree.h=0A+++=20b/src/include/lib/radixtree.h=0A@@=20= -64,7=20+64,7=20@@=0A=20=20*=20small=20enough.=0A=20=20*=0A=20=20*=20= There=20are=20two=20other=20techniques=20described=20in=20the=20paper=20= that=20are=20not=0A-=20*=20impemented=20here:=0A+=20*=20implemented=20= here:=0A=20=20*=20-=20path=20compression=20"...removes=20all=20inner=20= nodes=20that=20have=20only=20a=20single=20child."=0A=20=20*=20-=20lazy=20= path=20expansion=20"...inner=20nodes=20are=20only=20created=20if=20they=20= are=20required=0A=20=20*=20=20=20to=20distinguish=20at=20least=20two=20= leaf=20nodes."=0A@@=20-385,7=20+385,7=20@@=20typedef=20struct=20RT_NODE=0A= =20=0A=20=09/*=0A=20=09=20*=20Number=20of=20children.=20uint8=20is=20= sufficient=20for=20all=20node=20kinds,=20because=0A-=09=20*=20nodes=20= shrink=20when=20this=20number=20gets=20lower=20than=20some=20thresold.=20= Since=0A+=09=20*=20nodes=20shrink=20when=20this=20number=20gets=20lower=20= than=20some=20threshold.=20Since=0A=20=09=20*=20node256=20cannot=20= possibly=20have=20zero=20children,=20we=20let=20the=20counter=20overflow=0A= =20=09=20*=20and=20we=20interpret=20zero=20as=20"256"=20for=20this=20= node=20kind.=0A=20=09=20*/=0A@@=20-1581,7=20+1581,7=20@@=20= RT_EXTEND_UP(RT_RADIX_TREE=20*=20tree,=20uint64=20key)=0A=20=0A=20=09= Assert(shift=20<=20target_shift);=0A=20=0A-=09/*=20Grow=20tree=20upwards=20= until=20start=20shift=20can=20accomodate=20the=20key=20*/=0A+=09/*=20= Grow=20tree=20upwards=20until=20start=20shift=20can=20accommodate=20the=20= key=20*/=0A=20=09while=20(shift=20<=20target_shift)=0A=20=09{=0A=20=09=09= RT_CHILD_PTR=20node;=0A@@=20-1869,7=20+1869,7=20@@=20= RT_CREATE(MemoryContext=20ctx)=0A=20=09=20*/=0A=20=09if=20= (sizeof(RT_VALUE_TYPE)=20>=20sizeof(RT_PTR_ALLOC))=0A=20=09=09= tree->leaf_context=20=3D=20SlabContextCreate(ctx,=0A-=09=09=09=09=09=09=09= =09=09=09=09=20=20=20RT_STR(RT_PREFIX)=20"radix_tree=20leaf=20contex",=0A= +=09=09=09=09=09=09=09=09=09=09=09=20=20=20RT_STR(RT_PREFIX)=20= "radix_tree=20leaf=20context",=0A=20=09=09=09=09=09=09=09=09=09=09=09=20=20= =20RT_SLAB_BLOCK_SIZE(sizeof(RT_VALUE_TYPE)),=0A=20=09=09=09=09=09=09=09=09= =09=09=09=20=20=20sizeof(RT_VALUE_TYPE));=0A=20#endif=09=09=09=09=09=09=09= /*=20!RT_VARLEN_VALUE_SIZE=20*/=0Adiff=20--git=20= a/src/test/isolation/expected/temp-schema-cleanup.out=20= b/src/test/isolation/expected/temp-schema-cleanup.out=0Aindex=20= 35b91d9e45..d10aee53a8=20100644=0A---=20= a/src/test/isolation/expected/temp-schema-cleanup.out=0A+++=20= b/src/test/isolation/expected/temp-schema-cleanup.out=0A@@=20-9,7=20+9,7=20= @@=20step=20s1_create_temp_objects:=0A=20=20=20=20=20=20=20=20=20CREATE=20= OR=20REPLACE=20FUNCTION=20pg_temp.long()=20RETURNS=20text=20LANGUAGE=20= sql=20AS=20$body$=20SELECT=20%L;=20$body$$outer$,=0A=20=09(SELECT=20= string_agg(g.i::text||':'||random()::text,=20'|')=20FROM=20= generate_series(1,=20100)=20g(i))));=0A=20=0A-=20=20=20=20--=20The=20= above=20bug=20requirs=20function=20removal=20to=20happen=20after=20a=20= catalog=0A+=20=20=20=20--=20The=20above=20bug=20requires=20function=20= removal=20to=20happen=20after=20a=20catalog=0A=20=20=20=20=20--=20= invalidation.=20dependency.c=20sorts=20objects=20in=20descending=20oid=20= order=20so=0A=20=20=20=20=20--=20that=20newer=20objects=20are=20deleted=20= before=20older=20objects,=20so=20create=20a=0A=20=20=20=20=20--=20table=20= after.=0A@@=20-66,7=20+66,7=20@@=20step=20s1_create_temp_objects:=0A=20=20= =20=20=20=20=20=20=20CREATE=20OR=20REPLACE=20FUNCTION=20pg_temp.long()=20= RETURNS=20text=20LANGUAGE=20sql=20AS=20$body$=20SELECT=20%L;=20= $body$$outer$,=0A=20=09(SELECT=20= string_agg(g.i::text||':'||random()::text,=20'|')=20FROM=20= generate_series(1,=20100)=20g(i))));=0A=20=0A-=20=20=20=20--=20The=20= above=20bug=20requirs=20function=20removal=20to=20happen=20after=20a=20= catalog=0A+=20=20=20=20--=20The=20above=20bug=20requires=20function=20= removal=20to=20happen=20after=20a=20catalog=0A=20=20=20=20=20--=20= invalidation.=20dependency.c=20sorts=20objects=20in=20descending=20oid=20= order=20so=0A=20=20=20=20=20--=20that=20newer=20objects=20are=20deleted=20= before=20older=20objects,=20so=20create=20a=0A=20=20=20=20=20--=20table=20= after.=0Adiff=20--git=20= a/src/test/isolation/specs/temp-schema-cleanup.spec=20= b/src/test/isolation/specs/temp-schema-cleanup.spec=0Aindex=20= a9417b7e90..72decba6cb=20100644=0A---=20= a/src/test/isolation/specs/temp-schema-cleanup.spec=0A+++=20= b/src/test/isolation/specs/temp-schema-cleanup.spec=0A@@=20-30,7=20+30,7=20= @@=20step=20s1_create_temp_objects=20{=0A=20=20=20=20=20=20=20=20=20= CREATE=20OR=20REPLACE=20FUNCTION=20pg_temp.long()=20RETURNS=20text=20= LANGUAGE=20sql=20AS=20$body$=20SELECT=20%L;=20$body$$outer$,=0A=20=09= (SELECT=20string_agg(g.i::text||':'||random()::text,=20'|')=20FROM=20= generate_series(1,=20100)=20g(i))));=0A=20=0A-=20=20=20=20--=20The=20= above=20bug=20requirs=20function=20removal=20to=20happen=20after=20a=20= catalog=0A+=20=20=20=20--=20The=20above=20bug=20requires=20function=20= removal=20to=20happen=20after=20a=20catalog=0A=20=20=20=20=20--=20= invalidation.=20dependency.c=20sorts=20objects=20in=20descending=20oid=20= order=20so=0A=20=20=20=20=20--=20that=20newer=20objects=20are=20deleted=20= before=20older=20objects,=20so=20create=20a=0A=20=20=20=20=20--=20table=20= after.=0Adiff=20--git=20a/src/test/modules/test_json_parser/README=20= b/src/test/modules/test_json_parser/README=0Aindex=20= 7e410db24b..b07b3e8799=20100644=0A---=20= a/src/test/modules/test_json_parser/README=0A+++=20= b/src/test/modules/test_json_parser/README=0A@@=20-11,7=20+11,7=20@@=20= This=20module=20contains=20two=20programs=20for=20testing=20the=20json=20= parsers.=0A=20-=20`test_json_parser_perf`=20is=20for=20speed=20testing=20= both=20the=20standard=0A=20=20=20recursive=20descent=20parser=20and=20= the=20non-recursive=20incremental=0A=20=20=20parser.=20If=20given=20the=20= `-i`=20flag=20it=20uses=20the=20non-recursive=20parser,=0A-=20=20= otherwise=20the=20stardard=20parser.=20The=20remaining=20flags=20are=20= the=20number=20of=0A+=20=20otherwise=20the=20standard=20parser.=20The=20= remaining=20flags=20are=20the=20number=20of=0A=20=20=20parsing=20= iterations=20and=20the=20file=20containing=20the=20input.=20Even=20when=0A= =20=20=20using=20the=20non-recursive=20parser,=20the=20input=20is=20= passed=20to=20the=20parser=20in=20a=0A=20=20=20single=20chunk.=20The=20= results=20are=20thus=20comparable=20to=20those=20of=20the=0Adiff=20--git=20= a/src/test/modules/test_json_parser/test_json_parser_incremental.c=20= b/src/test/modules/test_json_parser/test_json_parser_incremental.c=0A= index=20c28db05647..383be7b888=20100644=0A---=20= a/src/test/modules/test_json_parser/test_json_parser_incremental.c=0A+++=20= b/src/test/modules/test_json_parser/test_json_parser_incremental.c=0A@@=20= -8,10=20+8,10=20@@=0A=20=20*=20IDENTIFICATION=0A=20=20*=20=20=20=20= src/test/modules/test_json_parser/test_json_parser_incremental.c=0A=20=20= *=0A-=20*=20This=20progam=20tests=20incremental=20parsing=20of=20json.=20= The=20input=20is=20fed=20into=0A+=20*=20This=20program=20tests=20= incremental=20parsing=20of=20json.=20The=20input=20is=20fed=20into=0A=20=20= *=20the=20parser=20in=20very=20small=20chunks.=20In=20practice=20you=20= would=20normally=20use=0A=20=20*=20much=20larger=20chunks,=20but=20doing=20= this=20makes=20it=20more=20likely=20that=20the=0A-=20*=20full=20range=20= of=20incement=20handling,=20especially=20in=20the=20lexer,=20is=20= exercised.=0A+=20*=20full=20range=20of=20increment=20handling,=20= especially=20in=20the=20lexer,=20is=20exercised.=0A=20=20*=20If=20the=20= "-c=20SIZE"=20option=20is=20provided,=20that=20chunk=20size=20is=20used=20= instead.=0A=20=20*=0A=20=20*=20The=20argument=20specifies=20the=20file=20= containing=20the=20JSON=20input.=0Adiff=20--git=20= a/src/test/modules/test_json_parser/test_json_parser_perf.c=20= b/src/test/modules/test_json_parser/test_json_parser_perf.c=0Aindex=20= 517dc8529a..85b615a96e=20100644=0A---=20= a/src/test/modules/test_json_parser/test_json_parser_perf.c=0A+++=20= b/src/test/modules/test_json_parser/test_json_parser_perf.c=0A@@=20-8,7=20= +8,7=20@@=0A=20=20*=20IDENTIFICATION=0A=20=20*=20=20=20=20= src/test/modules/test_json_parser/test_json_parser_perf.c=0A=20=20*=0A-=20= *=20This=20progam=20tests=20either=20the=20standard=20(recursive=20= descent)=20JSON=20parser=0A+=20*=20This=20program=20tests=20either=20the=20= standard=20(recursive=20descent)=20JSON=20parser=0A=20=20*=20or=20the=20= incremental=20(table=20driven)=20parser,=20but=20without=20breaking=20= the=20input=0A=20=20*=20into=20chunks=20in=20the=20latter=20case.=20Thus=20= it=20can=20be=20used=20to=20compare=20the=20pure=0A=20=20*=20parsing=20= speed=20of=20the=20two=20parsers.=20If=20the=20"-i"=20option=20is=20= used,=20then=20the=0Adiff=20--git=20= a/src/test/regress/expected/foreign_key.out=20= b/src/test/regress/expected/foreign_key.out=0Aindex=20= af2a878dd6..0b55167ac8=20100644=0A---=20= a/src/test/regress/expected/foreign_key.out=0A+++=20= b/src/test/regress/expected/foreign_key.out=0A@@=20-2734,7=20+2734,7=20= @@=20UPDATE=20fkpart10.tbl1=20SET=20f1=20=3D=202=20WHERE=20f1=20=3D=201;=0A= =20INSERT=20INTO=20fkpart10.tbl1=20VALUES=20(0),=20(1);=0A=20COMMIT;=0A=20= --=20test=20that=20cross-partition=20updates=20correctly=20enforces=20= the=20foreign=20key=0A---=20restriction=20(specifically=20testing=20= INITIAILLY=20DEFERRED)=0A+--=20restriction=20(specifically=20testing=20= INITIALLY=20DEFERRED)=0A=20BEGIN;=0A=20UPDATE=20fkpart10.tbl1=20SET=20f1=20= =3D=203=20WHERE=20f1=20=3D=200;=0A=20UPDATE=20fkpart10.tbl3=20SET=20f1=20= =3D=20f1=20*=20-1;=0Adiff=20--git=20= a/src/test/regress/expected/publication.out=20= b/src/test/regress/expected/publication.out=0Aindex=20= 0c5521d2aa..09a8d8221c=20100644=0A---=20= a/src/test/regress/expected/publication.out=0A+++=20= b/src/test/regress/expected/publication.out=0A@@=20-945,10=20+945,10=20= @@=20ALTER=20TABLE=20rf_tbl_abcd_part_pk=20ATTACH=20PARTITION=20= rf_tbl_abcd_part_pk_1=20FOR=20VALUE=0A=20SET=20client_min_messages=20=3D=20= 'ERROR';=0A=20CREATE=20PUBLICATION=20testpub6=20FOR=20TABLE=20= rf_tbl_abcd_pk=20(a,=20b);=0A=20RESET=20client_min_messages;=0A---=20ok=20= -=20(a,b)=20coverts=20all=20PK=20cols=0A+--=20ok=20-=20(a,b)=20covers=20= all=20PK=20cols=0A=20UPDATE=20rf_tbl_abcd_pk=20SET=20a=20=3D=201;=0A=20= ALTER=20PUBLICATION=20testpub6=20SET=20TABLE=20rf_tbl_abcd_pk=20(a,=20b,=20= c);=0A---=20ok=20-=20(a,b,c)=20coverts=20all=20PK=20cols=0A+--=20ok=20-=20= (a,b,c)=20covers=20all=20PK=20cols=0A=20UPDATE=20rf_tbl_abcd_pk=20SET=20= a=20=3D=201;=0A=20ALTER=20PUBLICATION=20testpub6=20SET=20TABLE=20= rf_tbl_abcd_pk=20(a);=0A=20--=20fail=20-=20"b"=20is=20missing=20from=20= the=20column=20list=0Adiff=20--git=20= a/src/test/regress/expected/tsdicts.out=20= b/src/test/regress/expected/tsdicts.out=0Aindex=204eff85da79..0bbf2ff4ca=20= 100644=0A---=20a/src/test/regress/expected/tsdicts.out=0A+++=20= b/src/test/regress/expected/tsdicts.out=0A@@=20-689,7=20+689,7=20@@=20= CREATE=20TEXT=20SEARCH=20DICTIONARY=20tsdict_case=0A=20ERROR:=20=20= unrecognized=20Ispell=20parameter:=20"DictFile"=0A=20--=20Test=20grammar=20= for=20configurations=0A=20CREATE=20TEXT=20SEARCH=20CONFIGURATION=20= dummy_tst=20(COPY=3Denglish);=0A---=20Overriden=20mapping=20change=20= with=20duplicated=20tokens.=0A+--=20Overridden=20mapping=20change=20with=20= duplicated=20tokens.=0A=20ALTER=20TEXT=20SEARCH=20CONFIGURATION=20= dummy_tst=0A=20=20=20ALTER=20MAPPING=20FOR=20word,=20word=20WITH=20= ispell;=0A=20--=20Not=20a=20token=20supported=20by=20the=20= configuration's=20parser,=20fails.=0Adiff=20--git=20= a/src/test/regress/sql/foreign_key.sql=20= b/src/test/regress/sql/foreign_key.sql=0Aindex=2022e177f89b..f5e0938999=20= 100644=0A---=20a/src/test/regress/sql/foreign_key.sql=0A+++=20= b/src/test/regress/sql/foreign_key.sql=0A@@=20-1943,7=20+1943,7=20@@=20= INSERT=20INTO=20fkpart10.tbl1=20VALUES=20(0),=20(1);=0A=20COMMIT;=0A=20=0A= =20--=20test=20that=20cross-partition=20updates=20correctly=20enforces=20= the=20foreign=20key=0A---=20restriction=20(specifically=20testing=20= INITIAILLY=20DEFERRED)=0A+--=20restriction=20(specifically=20testing=20= INITIALLY=20DEFERRED)=0A=20BEGIN;=0A=20UPDATE=20fkpart10.tbl1=20SET=20f1=20= =3D=203=20WHERE=20f1=20=3D=200;=0A=20UPDATE=20fkpart10.tbl3=20SET=20f1=20= =3D=20f1=20*=20-1;=0Adiff=20--git=20= a/src/test/regress/sql/publication.sql=20= b/src/test/regress/sql/publication.sql=0Aindex=208ba8036bfb..479d4f3264=20= 100644=0A---=20a/src/test/regress/sql/publication.sql=0A+++=20= b/src/test/regress/sql/publication.sql=0A@@=20-603,10=20+603,10=20@@=20= ALTER=20TABLE=20rf_tbl_abcd_part_pk=20ATTACH=20PARTITION=20= rf_tbl_abcd_part_pk_1=20FOR=20VALUE=0A=20SET=20client_min_messages=20=3D=20= 'ERROR';=0A=20CREATE=20PUBLICATION=20testpub6=20FOR=20TABLE=20= rf_tbl_abcd_pk=20(a,=20b);=0A=20RESET=20client_min_messages;=0A---=20ok=20= -=20(a,b)=20coverts=20all=20PK=20cols=0A+--=20ok=20-=20(a,b)=20covers=20= all=20PK=20cols=0A=20UPDATE=20rf_tbl_abcd_pk=20SET=20a=20=3D=201;=0A=20= ALTER=20PUBLICATION=20testpub6=20SET=20TABLE=20rf_tbl_abcd_pk=20(a,=20b,=20= c);=0A---=20ok=20-=20(a,b,c)=20coverts=20all=20PK=20cols=0A+--=20ok=20-=20= (a,b,c)=20covers=20all=20PK=20cols=0A=20UPDATE=20rf_tbl_abcd_pk=20SET=20= a=20=3D=201;=0A=20ALTER=20PUBLICATION=20testpub6=20SET=20TABLE=20= rf_tbl_abcd_pk=20(a);=0A=20--=20fail=20-=20"b"=20is=20missing=20from=20= the=20column=20list=0Adiff=20--git=20a/src/test/regress/sql/tsdicts.sql=20= b/src/test/regress/sql/tsdicts.sql=0Aindex=206a2b00369c..cf08410bb2=20= 100644=0A---=20a/src/test/regress/sql/tsdicts.sql=0A+++=20= b/src/test/regress/sql/tsdicts.sql=0A@@=20-254,7=20+254,7=20@@=20CREATE=20= TEXT=20SEARCH=20DICTIONARY=20tsdict_case=0A=20=0A=20--=20Test=20grammar=20= for=20configurations=0A=20CREATE=20TEXT=20SEARCH=20CONFIGURATION=20= dummy_tst=20(COPY=3Denglish);=0A---=20Overriden=20mapping=20change=20= with=20duplicated=20tokens.=0A+--=20Overridden=20mapping=20change=20with=20= duplicated=20tokens.=0A=20ALTER=20TEXT=20SEARCH=20CONFIGURATION=20= dummy_tst=0A=20=20=20ALTER=20MAPPING=20FOR=20word,=20word=20WITH=20= ispell;=0A=20--=20Not=20a=20token=20supported=20by=20the=20= configuration's=20parser,=20fails.=0Adiff=20--git=20= a/src/test/subscription/t/004_sync.pl=20= b/src/test/subscription/t/004_sync.pl=0Aindex=20e077e255fc..a2d9462395=20= 100644=0A---=20a/src/test/subscription/t/004_sync.pl=0A+++=20= b/src/test/subscription/t/004_sync.pl=0A@@=20-165,7=20+165,7=20@@=20= $node_subscriber->safe_psql('postgres',=20"DROP=20SUBSCRIPTION=20= tap_sub");=0A=20=0A=20#=20When=20DROP=20SUBSCRIPTION=20tries=20to=20drop=20= the=20tablesync=20slot,=20the=20slot=20may=20not=0A=20#=20have=20been=20= created,=20which=20causes=20the=20slot=20to=20be=20created=20after=20the=20= DROP=0A-#=20SUSCRIPTION=20finishes.=20Such=20slots=20eventually=20get=20= dropped=20at=20walsender=20exit=0A+#=20SUBSCRIPTION=20finishes.=20Such=20= slots=20eventually=20get=20dropped=20at=20walsender=20exit=0A=20#=20= time.=20So,=20to=20prevent=20being=20affected=20by=20such=20ephemeral=20= tablesync=20slots,=20we=0A=20#=20wait=20until=20all=20the=20slots=20have=20= been=20cleaned.=0A=20ok(=20$node_publisher->poll_query_until(=0Adiff=20= --git=20a/src/test/subscription/t/026_stats.pl=20= b/src/test/subscription/t/026_stats.pl=0Aindex=20bac1cf3983..d1d68fad9a=20= 100644=0A---=20a/src/test/subscription/t/026_stats.pl=0A+++=20= b/src/test/subscription/t/026_stats.pl=0A@@=20-271,7=20+271,7=20@@=20is(=20= $node_subscriber->safe_psql(=0A=20my=20$sub2_oid=20=3D=20= $node_subscriber->safe_psql($db,=0A=20=09qq(SELECT=20oid=20FROM=20= pg_subscription=20WHERE=20subname=20=3D=20'$sub2_name'));=0A=20=0A-#=20= Diassociate=20the=20subscription=202=20from=20its=20replication=20slot=20= and=20drop=20it=0A+#=20Disassociate=20the=20subscription=202=20from=20= its=20replication=20slot=20and=20drop=20it=0A=20= $node_subscriber->safe_psql(=0A=20=09$db,=0A=20=09qq(=0A--=20=0A2.39.3=20= (Apple=20Git-146)=0A=0A= --Apple-Mail=_B4C1FD73-1E58-4175-AF69-39648ECA1EDC--