CINXE.COM

git.postgresql.org Git - postgresql.git/commitdiff

<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US"> <!-- git web interface version 2.29.2, (C) 2005-2006, Kay Sievers <kay.sievers@vrfy.org>, Christian Gierke --> <!-- git core binaries version 2.30.2 --> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <meta name="generator" content="gitweb/2.29.2 git/2.30.2"/> <meta name="robots" content="index, nofollow"/> <title>git.postgresql.org Git - postgresql.git/commitdiff</title> <link rel="stylesheet" type="text/css" href="/static/gitweb.css"/> <link rel="alternate" title="postgresql.git - log - RSS feed" href="/gitweb/?p=postgresql.git;a=rss" type="application/rss+xml" /> <link rel="alternate" title="postgresql.git - log - RSS feed (no merges)" href="/gitweb/?p=postgresql.git;a=rss;opt=--no-merges" type="application/rss+xml" /> <link rel="alternate" title="postgresql.git - log - Atom feed" href="/gitweb/?p=postgresql.git;a=atom" type="application/atom+xml" /> <link rel="alternate" title="postgresql.git - log - Atom feed (no merges)" href="/gitweb/?p=postgresql.git;a=atom;opt=--no-merges" type="application/atom+xml" /> <link rel="shortcut icon" href="/static/favicon.png" type="image/png" /> </head> <body> <div class="page_header"> <a href="http://git-scm.com/" title="git homepage"><img alt="git" class="logo" height="27" src="/static/git-logo.png" width="72" /></a><a href="/gitweb/">projects</a> / <a href="/gitweb/?p=postgresql.git;a=summary">postgresql.git</a> / commitdiff </div> <form method="get" action="/gitweb/" enctype="multipart/form-data"><div class="search"> <input name="p" type="hidden" value="postgresql.git" /> <input name="a" type="hidden" value="search" /> <input name="h" type="hidden" value="4f622503d" /> <select name="st" > <option selected="selected" value="commit">commit</option> <option value="grep">grep</option> <option value="author">author</option> <option value="committer">committer</option> <option value="pickaxe">pickaxe</option> </select> <a href="/gitweb/?p=postgresql.git;a=search_help" title="search help">?</a> search: <input type="text" name="s" /> <span title="Extended regular expression"><label><input type="checkbox" name="sr" value="1" />re</label></span></div> </form> <div class="page_nav"> <a href="/gitweb/?p=postgresql.git;a=summary">summary</a> | <a href="/gitweb/?p=postgresql.git;a=shortlog;h=4f622503d">shortlog</a> | <a href="/gitweb/?p=postgresql.git;a=log;h=4f622503d">log</a> | <a href="/gitweb/?p=postgresql.git;a=commit;h=4f622503d">commit</a> | commitdiff | <a href="/gitweb/?p=postgresql.git;a=tree;h=c09756e667e5150678e8ebf9aee6c1cd5e376a96;hb=4f622503d">tree</a><br/> <a href="/gitweb/?p=postgresql.git;a=commitdiff_plain;h=4f622503d">raw</a> | <a href="/gitweb/?p=postgresql.git;a=patch;h=4f622503d">patch</a> | inline | <a href="/gitweb/?p=postgresql.git;a=commitdiff;h=4f622503d;ds=sidebyside">side by side</a> (parent: <a href="/gitweb/?p=postgresql.git;a=commitdiff;h=45da69371ebfc4d6982695e58791989660c1cc33">45da693</a>)<br/> </div> <div class="header"> <a class="title" href="/gitweb/?p=postgresql.git;a=commit;h=4f622503d">Make attstattarget nullable</a> </div> <div class="title_text"> <table class="object_header"> <tr><td>author</td><td><a class="list" href="/gitweb/?p=postgresql.git;a=search;h=4f622503d;s=Peter+Eisentraut;st=author" title="Search for commits authored by Peter Eisentraut">Peter Eisentraut</a> <a class="list" href="/gitweb/?p=postgresql.git;a=search;h=4f622503d;s=peter@eisentraut.org;st=author" title="Search for commits authored by peter@eisentraut.org">&lt;peter@eisentraut.org&gt;</a></td><td rowspan="2"></td></tr> <tr><td></td><td><span class="datetime">Sat, 13 Jan 2024 17:14:53 +0000</span> (18:14 +0100)</td></tr> <tr><td>committer</td><td><a class="list" href="/gitweb/?p=postgresql.git;a=search;h=4f622503d;s=Peter+Eisentraut;st=committer" title="Search for commits committed by Peter Eisentraut">Peter Eisentraut</a> <a class="list" href="/gitweb/?p=postgresql.git;a=search;h=4f622503d;s=peter@eisentraut.org;st=committer" title="Search for commits committed by peter@eisentraut.org">&lt;peter@eisentraut.org&gt;</a></td><td rowspan="2"></td></tr> <tr><td></td><td><span class="datetime">Sat, 13 Jan 2024 17:14:53 +0000</span> (18:14 +0100)</td></tr> </table></div> <div class="page_body"> <div class="log"> This&nbsp;changes&nbsp;the&nbsp;pg_attribute&nbsp;field&nbsp;attstattarget&nbsp;into&nbsp;a&nbsp;nullable<br/> field&nbsp;in&nbsp;the&nbsp;variable-length&nbsp;part&nbsp;of&nbsp;the&nbsp;row.&nbsp;&nbsp;If&nbsp;no&nbsp;value&nbsp;is&nbsp;set&nbsp;by<br/> the&nbsp;user&nbsp;for&nbsp;attstattarget,&nbsp;it&nbsp;is&nbsp;now&nbsp;null&nbsp;instead&nbsp;of&nbsp;previously&nbsp;-1.<br/> This&nbsp;saves&nbsp;space&nbsp;in&nbsp;pg_attribute&nbsp;and&nbsp;tuple&nbsp;descriptors&nbsp;for&nbsp;most<br/> practical&nbsp;scenarios.&nbsp;&nbsp;(ATTRIBUTE_FIXED_PART_SIZE&nbsp;is&nbsp;reduced&nbsp;from&nbsp;108<br/> to&nbsp;104.)&nbsp;&nbsp;Also,&nbsp;null&nbsp;is&nbsp;the&nbsp;semantically&nbsp;more&nbsp;correct&nbsp;value.<br/> <br/> The&nbsp;ANALYZE&nbsp;code&nbsp;internally&nbsp;continues&nbsp;to&nbsp;represent&nbsp;the&nbsp;default<br/> statistics&nbsp;target&nbsp;by&nbsp;-1,&nbsp;so&nbsp;that&nbsp;that&nbsp;code&nbsp;can&nbsp;avoid&nbsp;having&nbsp;to&nbsp;deal<br/> with&nbsp;null&nbsp;values.&nbsp;&nbsp;But&nbsp;that&nbsp;is&nbsp;now&nbsp;contained&nbsp;to&nbsp;the&nbsp;ANALYZE&nbsp;code.<br/> Only&nbsp;the&nbsp;DDL&nbsp;code&nbsp;deals&nbsp;with&nbsp;attstattarget&nbsp;possibly&nbsp;null.<br/> <br/> For&nbsp;system&nbsp;columns,&nbsp;the&nbsp;field&nbsp;is&nbsp;now&nbsp;always&nbsp;null.&nbsp;&nbsp;The&nbsp;ANALYZE&nbsp;code<br/> skips&nbsp;system&nbsp;columns&nbsp;anyway.<br/> <br/> To&nbsp;set&nbsp;a&nbsp;column&#39;s&nbsp;statistics&nbsp;target&nbsp;to&nbsp;the&nbsp;default&nbsp;value,&nbsp;the&nbsp;new<br/> command&nbsp;form&nbsp;ALTER&nbsp;TABLE&nbsp;...&nbsp;SET&nbsp;STATISTICS&nbsp;DEFAULT&nbsp;can&nbsp;be&nbsp;used.&nbsp;&nbsp;(SET<br/> STATISTICS&nbsp;-1&nbsp;still&nbsp;works.)<br/> <br/> <span class="signoff">Reviewed-by: Alvaro Herrera &lt;alvherre@alvh.no-ip.org&gt;</span><br/> Discussion:&nbsp;https://www.postgresql.org/message-id/flat/<a class="text" href="/gitweb/?p=postgresql.git;a=object;h=4da8d211">4da8d211</a>-d54d-44b9-9847-<a class="text" href="/gitweb/?p=postgresql.git;a=object;h=f2a9f1184c76">f2a9f1184c76</a>@eisentraut.org<br/> <br/> </div> <div class="list_head"> 16 files changed: </div> <table class="diff_tree"> <tr class="dark"> <td><a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=doc/src/sgml/ref/alter_table.sgml;h=9670671107e16da0c9aec9b5d2bad8e70d64680d;hb=4f622503d">doc/src/sgml/ref/alter_table.sgml</a></td> <td></td> <td class="link"><a href="/gitweb/?p=postgresql.git;a=commitdiff;h=4f622503d#patch1">patch</a> | <a href="/gitweb/?p=postgresql.git;a=blob;f=doc/src/sgml/ref/alter_table.sgml;h=9670671107e16da0c9aec9b5d2bad8e70d64680d;hb=4f622503d">blob</a> | <a href="/gitweb/?p=postgresql.git;a=blame;f=doc/src/sgml/ref/alter_table.sgml;hb=4f622503d">blame</a> | <a href="/gitweb/?p=postgresql.git;a=history;f=doc/src/sgml/ref/alter_table.sgml;hb=4f622503d">history</a></td> </tr> <tr class="light"> <td><a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/access/common/tupdesc.c;h=bc80caee1172978620f803168f7651c5570e0f27;hb=4f622503d">src/backend/access/common/tupdesc.c</a></td> <td></td> <td class="link"><a href="/gitweb/?p=postgresql.git;a=commitdiff;h=4f622503d#patch2">patch</a> | <a href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/access/common/tupdesc.c;h=bc80caee1172978620f803168f7651c5570e0f27;hb=4f622503d">blob</a> | <a href="/gitweb/?p=postgresql.git;a=blame;f=src/backend/access/common/tupdesc.c;hb=4f622503d">blame</a> | <a href="/gitweb/?p=postgresql.git;a=history;f=src/backend/access/common/tupdesc.c;hb=4f622503d">history</a></td> </tr> <tr class="dark"> <td><a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/bootstrap/bootstrap.c;h=141b25ddd7a5c8f18d387b46e56f81f93f65142c;hb=4f622503d">src/backend/bootstrap/bootstrap.c</a></td> <td></td> <td class="link"><a href="/gitweb/?p=postgresql.git;a=commitdiff;h=4f622503d#patch3">patch</a> | <a href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/bootstrap/bootstrap.c;h=141b25ddd7a5c8f18d387b46e56f81f93f65142c;hb=4f622503d">blob</a> | <a href="/gitweb/?p=postgresql.git;a=blame;f=src/backend/bootstrap/bootstrap.c;hb=4f622503d">blame</a> | <a href="/gitweb/?p=postgresql.git;a=history;f=src/backend/bootstrap/bootstrap.c;hb=4f622503d">history</a></td> </tr> <tr class="light"> <td><a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/catalog/genbki.pl;h=93553e8c3c4c28557f257eb8bd7802f6387ade95;hb=4f622503d">src/backend/catalog/genbki.pl</a></td> <td></td> <td class="link"><a href="/gitweb/?p=postgresql.git;a=commitdiff;h=4f622503d#patch4">patch</a> | <a href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/catalog/genbki.pl;h=93553e8c3c4c28557f257eb8bd7802f6387ade95;hb=4f622503d">blob</a> | <a href="/gitweb/?p=postgresql.git;a=blame;f=src/backend/catalog/genbki.pl;hb=4f622503d">blame</a> | <a href="/gitweb/?p=postgresql.git;a=history;f=src/backend/catalog/genbki.pl;hb=4f622503d">history</a></td> </tr> <tr class="dark"> <td><a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/catalog/heap.c;h=45a71081d429220f5e8be693c258417eb01cb746;hb=4f622503d">src/backend/catalog/heap.c</a></td> <td></td> <td class="link"><a href="/gitweb/?p=postgresql.git;a=commitdiff;h=4f622503d#patch5">patch</a> | <a href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/catalog/heap.c;h=45a71081d429220f5e8be693c258417eb01cb746;hb=4f622503d">blob</a> | <a href="/gitweb/?p=postgresql.git;a=blame;f=src/backend/catalog/heap.c;hb=4f622503d">blame</a> | <a href="/gitweb/?p=postgresql.git;a=history;f=src/backend/catalog/heap.c;hb=4f622503d">history</a></td> </tr> <tr class="light"> <td><a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/catalog/index.c;h=fbef3d5382d9e5bbc83b12506b93319a06f099c5;hb=4f622503d">src/backend/catalog/index.c</a></td> <td></td> <td class="link"><a href="/gitweb/?p=postgresql.git;a=commitdiff;h=4f622503d#patch6">patch</a> | <a href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/catalog/index.c;h=fbef3d5382d9e5bbc83b12506b93319a06f099c5;hb=4f622503d">blob</a> | <a href="/gitweb/?p=postgresql.git;a=blame;f=src/backend/catalog/index.c;hb=4f622503d">blame</a> | <a href="/gitweb/?p=postgresql.git;a=history;f=src/backend/catalog/index.c;hb=4f622503d">history</a></td> </tr> <tr class="dark"> <td><a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/commands/analyze.c;h=a03495d6c95ee11e0b4a6c4b47f106e08afb1919;hb=4f622503d">src/backend/commands/analyze.c</a></td> <td></td> <td class="link"><a href="/gitweb/?p=postgresql.git;a=commitdiff;h=4f622503d#patch7">patch</a> | <a href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/commands/analyze.c;h=a03495d6c95ee11e0b4a6c4b47f106e08afb1919;hb=4f622503d">blob</a> | <a href="/gitweb/?p=postgresql.git;a=blame;f=src/backend/commands/analyze.c;hb=4f622503d">blame</a> | <a href="/gitweb/?p=postgresql.git;a=history;f=src/backend/commands/analyze.c;hb=4f622503d">history</a></td> </tr> <tr class="light"> <td><a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/commands/tablecmds.c;h=5496f1268261ad1d2883ad9e458d4414571bfd6e;hb=4f622503d">src/backend/commands/tablecmds.c</a></td> <td></td> <td class="link"><a href="/gitweb/?p=postgresql.git;a=commitdiff;h=4f622503d#patch8">patch</a> | <a href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/commands/tablecmds.c;h=5496f1268261ad1d2883ad9e458d4414571bfd6e;hb=4f622503d">blob</a> | <a href="/gitweb/?p=postgresql.git;a=blame;f=src/backend/commands/tablecmds.c;hb=4f622503d">blame</a> | <a href="/gitweb/?p=postgresql.git;a=history;f=src/backend/commands/tablecmds.c;hb=4f622503d">history</a></td> </tr> <tr class="dark"> <td><a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/parser/gram.y;h=3460fea56bacf8ef6b26d786b9c3965cc2a5aa6c;hb=4f622503d">src/backend/parser/gram.y</a></td> <td></td> <td class="link"><a href="/gitweb/?p=postgresql.git;a=commitdiff;h=4f622503d#patch9">patch</a> | <a href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/parser/gram.y;h=3460fea56bacf8ef6b26d786b9c3965cc2a5aa6c;hb=4f622503d">blob</a> | <a href="/gitweb/?p=postgresql.git;a=blame;f=src/backend/parser/gram.y;hb=4f622503d">blame</a> | <a href="/gitweb/?p=postgresql.git;a=history;f=src/backend/parser/gram.y;hb=4f622503d">history</a></td> </tr> <tr class="light"> <td><a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/utils/cache/lsyscache.c;h=f730aa26c47f56aef4b1ca3757f49e378f7afc29;hb=4f622503d">src/backend/utils/cache/lsyscache.c</a></td> <td></td> <td class="link"><a href="/gitweb/?p=postgresql.git;a=commitdiff;h=4f622503d#patch10">patch</a> | <a href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/utils/cache/lsyscache.c;h=f730aa26c47f56aef4b1ca3757f49e378f7afc29;hb=4f622503d">blob</a> | <a href="/gitweb/?p=postgresql.git;a=blame;f=src/backend/utils/cache/lsyscache.c;hb=4f622503d">blame</a> | <a href="/gitweb/?p=postgresql.git;a=history;f=src/backend/utils/cache/lsyscache.c;hb=4f622503d">history</a></td> </tr> <tr class="dark"> <td><a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/bin/pg_dump/pg_dump.c;h=d4a888f5f137c08e8a5dc0a6b904d87a0d693ea9;hb=4f622503d">src/bin/pg_dump/pg_dump.c</a></td> <td></td> <td class="link"><a href="/gitweb/?p=postgresql.git;a=commitdiff;h=4f622503d#patch11">patch</a> | <a href="/gitweb/?p=postgresql.git;a=blob;f=src/bin/pg_dump/pg_dump.c;h=d4a888f5f137c08e8a5dc0a6b904d87a0d693ea9;hb=4f622503d">blob</a> | <a href="/gitweb/?p=postgresql.git;a=blame;f=src/bin/pg_dump/pg_dump.c;hb=4f622503d">blame</a> | <a href="/gitweb/?p=postgresql.git;a=history;f=src/bin/pg_dump/pg_dump.c;hb=4f622503d">history</a></td> </tr> <tr class="light"> <td><a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/include/catalog/catversion.h;h=460d80ac97e8b737b1d612aa7403b2aaf7cb2114;hb=4f622503d">src/include/catalog/catversion.h</a></td> <td></td> <td class="link"><a href="/gitweb/?p=postgresql.git;a=commitdiff;h=4f622503d#patch12">patch</a> | <a href="/gitweb/?p=postgresql.git;a=blob;f=src/include/catalog/catversion.h;h=460d80ac97e8b737b1d612aa7403b2aaf7cb2114;hb=4f622503d">blob</a> | <a href="/gitweb/?p=postgresql.git;a=blame;f=src/include/catalog/catversion.h;hb=4f622503d">blame</a> | <a href="/gitweb/?p=postgresql.git;a=history;f=src/include/catalog/catversion.h;hb=4f622503d">history</a></td> </tr> <tr class="dark"> <td><a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/include/catalog/pg_attribute.h;h=e2aadb941413d6a797ead54c2dfcb380324de5ee;hb=4f622503d">src/include/catalog/pg_attribute.h</a></td> <td></td> <td class="link"><a href="/gitweb/?p=postgresql.git;a=commitdiff;h=4f622503d#patch13">patch</a> | <a href="/gitweb/?p=postgresql.git;a=blob;f=src/include/catalog/pg_attribute.h;h=e2aadb941413d6a797ead54c2dfcb380324de5ee;hb=4f622503d">blob</a> | <a href="/gitweb/?p=postgresql.git;a=blame;f=src/include/catalog/pg_attribute.h;hb=4f622503d">blame</a> | <a href="/gitweb/?p=postgresql.git;a=history;f=src/include/catalog/pg_attribute.h;hb=4f622503d">history</a></td> </tr> <tr class="light"> <td><a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/include/commands/vacuum.h;h=7f623b37fdc9b968b6cda144c29916c2214ce9e9;hb=4f622503d">src/include/commands/vacuum.h</a></td> <td></td> <td class="link"><a href="/gitweb/?p=postgresql.git;a=commitdiff;h=4f622503d#patch14">patch</a> | <a href="/gitweb/?p=postgresql.git;a=blob;f=src/include/commands/vacuum.h;h=7f623b37fdc9b968b6cda144c29916c2214ce9e9;hb=4f622503d">blob</a> | <a href="/gitweb/?p=postgresql.git;a=blame;f=src/include/commands/vacuum.h;hb=4f622503d">blame</a> | <a href="/gitweb/?p=postgresql.git;a=history;f=src/include/commands/vacuum.h;hb=4f622503d">history</a></td> </tr> <tr class="dark"> <td><a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/include/utils/lsyscache.h;h=e4a200b00ec9c15030cdadee53c25a74dacb79bf;hb=4f622503d">src/include/utils/lsyscache.h</a></td> <td></td> <td class="link"><a href="/gitweb/?p=postgresql.git;a=commitdiff;h=4f622503d#patch15">patch</a> | <a href="/gitweb/?p=postgresql.git;a=blob;f=src/include/utils/lsyscache.h;h=e4a200b00ec9c15030cdadee53c25a74dacb79bf;hb=4f622503d">blob</a> | <a href="/gitweb/?p=postgresql.git;a=blame;f=src/include/utils/lsyscache.h;hb=4f622503d">blame</a> | <a href="/gitweb/?p=postgresql.git;a=history;f=src/include/utils/lsyscache.h;hb=4f622503d">history</a></td> </tr> <tr class="light"> <td><a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/test/regress/expected/create_index.out;h=79fa117cb54d3674aeda6749d8820d4dc66bb2ed;hb=4f622503d">src/test/regress/expected/create_index.out</a></td> <td></td> <td class="link"><a href="/gitweb/?p=postgresql.git;a=commitdiff;h=4f622503d#patch16">patch</a> | <a href="/gitweb/?p=postgresql.git;a=blob;f=src/test/regress/expected/create_index.out;h=79fa117cb54d3674aeda6749d8820d4dc66bb2ed;hb=4f622503d">blob</a> | <a href="/gitweb/?p=postgresql.git;a=blame;f=src/test/regress/expected/create_index.out;hb=4f622503d">blame</a> | <a href="/gitweb/?p=postgresql.git;a=history;f=src/test/regress/expected/create_index.out;hb=4f622503d">history</a></td> </tr> </table> <br/> <div class="patchset"> <div class="patch" id="patch1"> <div class="diff header">diff --git <a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=doc/src/sgml/ref/alter_table.sgml;h=eaada23024888d67b4113e09c3c9d1d824443c45">a/doc/src/sgml/ref/alter_table.sgml</a> <a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=doc/src/sgml/ref/alter_table.sgml;h=9670671107e16da0c9aec9b5d2bad8e70d64680d;hb=4f622503d">b/doc/src/sgml/ref/alter_table.sgml</a></div> <div class="diff extended_header"> index eaada23024888d67b4113e09c3c9d1d824443c45..9670671107e16da0c9aec9b5d2bad8e70d64680d 100644<span class="info"> (file)</span><br/> </div> <div class="diff from_file">--- a/<a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=doc/src/sgml/ref/alter_table.sgml;h=eaada23024888d67b4113e09c3c9d1d824443c45">doc/src/sgml/ref/alter_table.sgml</a></div> <div class="diff to_file">+++ b/<a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=doc/src/sgml/ref/alter_table.sgml;h=9670671107e16da0c9aec9b5d2bad8e70d64680d;hb=4f622503d">doc/src/sgml/ref/alter_table.sgml</a></div> <div class="diff chunk_header"><span class="chunk_info">@@ <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=doc/src/sgml/ref/alter_table.sgml;h=eaada23024888d67b4113e09c3c9d1d824443c45#l51">-51,7</a> <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=doc/src/sgml/ref/alter_table.sgml;h=9670671107e16da0c9aec9b5d2bad8e70d64680d;hb=4f622503d#l51">+51,7</a> @@</span><span class="section">&nbsp;ALTER&nbsp;TABLE&nbsp;[&nbsp;IF&nbsp;EXISTS&nbsp;]&nbsp;&lt;replaceable&nbsp;class=&quot;parameter&quot;&gt;name&lt;/replaceable&gt;</span></div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ALTER&nbsp;[&nbsp;COLUMN&nbsp;]&nbsp;&lt;replaceable&nbsp;class=&quot;parameter&quot;&gt;column_name&lt;/replaceable&gt;&nbsp;ADD&nbsp;GENERATED&nbsp;{&nbsp;ALWAYS&nbsp;|&nbsp;BY&nbsp;DEFAULT&nbsp;}&nbsp;AS&nbsp;IDENTITY&nbsp;[&nbsp;(&nbsp;&lt;replaceable&gt;sequence_options&lt;/replaceable&gt;&nbsp;)&nbsp;]</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ALTER&nbsp;[&nbsp;COLUMN&nbsp;]&nbsp;&lt;replaceable&nbsp;class=&quot;parameter&quot;&gt;column_name&lt;/replaceable&gt;&nbsp;{&nbsp;SET&nbsp;GENERATED&nbsp;{&nbsp;ALWAYS&nbsp;|&nbsp;BY&nbsp;DEFAULT&nbsp;}&nbsp;|&nbsp;SET&nbsp;&lt;replaceable&gt;sequence_option&lt;/replaceable&gt;&nbsp;|&nbsp;RESTART&nbsp;[&nbsp;[&nbsp;WITH&nbsp;]&nbsp;&lt;replaceable&nbsp;class=&quot;parameter&quot;&gt;restart&lt;/replaceable&gt;&nbsp;]&nbsp;}&nbsp;[...]</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ALTER&nbsp;[&nbsp;COLUMN&nbsp;]&nbsp;&lt;replaceable&nbsp;class=&quot;parameter&quot;&gt;column_name&lt;/replaceable&gt;&nbsp;DROP&nbsp;IDENTITY&nbsp;[&nbsp;IF&nbsp;EXISTS&nbsp;]</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;&nbsp;ALTER&nbsp;[&nbsp;COLUMN&nbsp;]&nbsp;&lt;replaceable&nbsp;class=&quot;parameter&quot;&gt;column_name&lt;/replaceable&gt;&nbsp;SET&nbsp;STATISTICS&nbsp;<span class="marked">&lt;replaceable&nbsp;class=&quot;parameter&quot;&gt;integer&lt;/replaceable&gt;</span></div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;ALTER&nbsp;[&nbsp;COLUMN&nbsp;]&nbsp;&lt;replaceable&nbsp;class=&quot;parameter&quot;&gt;column_name&lt;/replaceable&gt;&nbsp;SET&nbsp;STATISTICS&nbsp;<span class="marked">{&nbsp;&lt;replaceable&nbsp;class=&quot;parameter&quot;&gt;integer&lt;/replaceable&gt;&nbsp;|&nbsp;DEFAULT&nbsp;}</span></div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ALTER&nbsp;[&nbsp;COLUMN&nbsp;]&nbsp;&lt;replaceable&nbsp;class=&quot;parameter&quot;&gt;column_name&lt;/replaceable&gt;&nbsp;SET&nbsp;(&nbsp;&lt;replaceable&nbsp;class=&quot;parameter&quot;&gt;attribute_option&lt;/replaceable&gt;&nbsp;=&nbsp;&lt;replaceable&nbsp;class=&quot;parameter&quot;&gt;value&lt;/replaceable&gt;&nbsp;[,&nbsp;...&nbsp;]&nbsp;)</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ALTER&nbsp;[&nbsp;COLUMN&nbsp;]&nbsp;&lt;replaceable&nbsp;class=&quot;parameter&quot;&gt;column_name&lt;/replaceable&gt;&nbsp;RESET&nbsp;(&nbsp;&lt;replaceable&nbsp;class=&quot;parameter&quot;&gt;attribute_option&lt;/replaceable&gt;&nbsp;[,&nbsp;...&nbsp;]&nbsp;)</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ALTER&nbsp;[&nbsp;COLUMN&nbsp;]&nbsp;&lt;replaceable&nbsp;class=&quot;parameter&quot;&gt;column_name&lt;/replaceable&gt;&nbsp;SET&nbsp;STORAGE&nbsp;{&nbsp;PLAIN&nbsp;|&nbsp;EXTERNAL&nbsp;|&nbsp;EXTENDED&nbsp;|&nbsp;MAIN&nbsp;|&nbsp;DEFAULT&nbsp;}</div> <div class="diff chunk_header"><span class="chunk_info">@@ <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=doc/src/sgml/ref/alter_table.sgml;h=eaada23024888d67b4113e09c3c9d1d824443c45#l328">-328,9</a> <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=doc/src/sgml/ref/alter_table.sgml;h=9670671107e16da0c9aec9b5d2bad8e70d64680d;hb=4f622503d#l328">+328,11</a> @@</span><span class="section">&nbsp;WITH&nbsp;(&nbsp;MODULUS&nbsp;&lt;replaceable&nbsp;class=&quot;parameter&quot;&gt;numeric_literal&lt;/replaceable&gt;,&nbsp;REM</span></div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This&nbsp;form</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sets&nbsp;the&nbsp;per-column&nbsp;statistics-gathering&nbsp;target&nbsp;for&nbsp;subsequent</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;link&nbsp;linkend=&quot;sql-analyze&quot;&gt;&lt;command&gt;ANALYZE&lt;/command&gt;&lt;/link&gt;&nbsp;operations.</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;target&nbsp;can&nbsp;be&nbsp;set&nbsp;in&nbsp;the&nbsp;range&nbsp;0&nbsp;to&nbsp;10000;&nbsp;alternatively,&nbsp;set&nbsp;it</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;to&nbsp;-1&nbsp;to&nbsp;revert&nbsp;to&nbsp;using&nbsp;the&nbsp;system&nbsp;default&nbsp;statistics</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target&nbsp;(&lt;xref&nbsp;linkend=&quot;guc-default-statistics-target&quot;/&gt;).</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;target&nbsp;can&nbsp;be&nbsp;set&nbsp;in&nbsp;the&nbsp;range&nbsp;0&nbsp;to&nbsp;10000.&nbsp;&nbsp;Set&nbsp;it</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;to&nbsp;&lt;literal&gt;DEFAULT&lt;/literal&gt;&nbsp;to&nbsp;revert&nbsp;to&nbsp;using&nbsp;the&nbsp;system&nbsp;default</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;statistics&nbsp;target&nbsp;(&lt;xref&nbsp;linkend=&quot;guc-default-statistics-target&quot;/&gt;).</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Setting&nbsp;to&nbsp;a&nbsp;value&nbsp;of&nbsp;-1&nbsp;is&nbsp;an&nbsp;obsolete&nbsp;way&nbsp;spelling&nbsp;to&nbsp;get&nbsp;the&nbsp;same</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;outcome.)</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For&nbsp;more&nbsp;information&nbsp;on&nbsp;the&nbsp;use&nbsp;of&nbsp;statistics&nbsp;by&nbsp;the</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;productname&gt;PostgreSQL&lt;/productname&gt;&nbsp;query&nbsp;planner,&nbsp;refer&nbsp;to</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xref&nbsp;linkend=&quot;planner-stats&quot;/&gt;.</div> </div> <div class="patch" id="patch2"> <div class="diff header">diff --git <a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/access/common/tupdesc.c;h=6e7ad79834f3a5e519397e3e10909f874c7ab4da">a/src/backend/access/common/tupdesc.c</a> <a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/access/common/tupdesc.c;h=bc80caee1172978620f803168f7651c5570e0f27;hb=4f622503d">b/src/backend/access/common/tupdesc.c</a></div> <div class="diff extended_header"> index 6e7ad79834f3a5e519397e3e10909f874c7ab4da..bc80caee1172978620f803168f7651c5570e0f27 100644<span class="info"> (file)</span><br/> </div> <div class="diff from_file">--- a/<a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/access/common/tupdesc.c;h=6e7ad79834f3a5e519397e3e10909f874c7ab4da">src/backend/access/common/tupdesc.c</a></div> <div class="diff to_file">+++ b/<a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/access/common/tupdesc.c;h=bc80caee1172978620f803168f7651c5570e0f27;hb=4f622503d">src/backend/access/common/tupdesc.c</a></div> <div class="diff chunk_header"><span class="chunk_info">@@ <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/access/common/tupdesc.c;h=6e7ad79834f3a5e519397e3e10909f874c7ab4da#l453">-453,8</a> <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/access/common/tupdesc.c;h=bc80caee1172978620f803168f7651c5570e0f27;hb=4f622503d#l453">+453,6</a> @@</span><span class="section">&nbsp;equalTupleDescs(TupleDesc&nbsp;tupdesc1,&nbsp;TupleDesc&nbsp;tupdesc2)</span></div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(attr1-&gt;atttypid&nbsp;!=&nbsp;attr2-&gt;atttypid)</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false;</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(attr1-&gt;attstattarget&nbsp;!=&nbsp;attr2-&gt;attstattarget)</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(attr1-&gt;attlen&nbsp;!=&nbsp;attr2-&gt;attlen)</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(attr1-&gt;attndims&nbsp;!=&nbsp;attr2-&gt;attndims)</div> <div class="diff chunk_header"><span class="chunk_info">@@ <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/access/common/tupdesc.c;h=6e7ad79834f3a5e519397e3e10909f874c7ab4da#l639">-639,7</a> <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/access/common/tupdesc.c;h=bc80caee1172978620f803168f7651c5570e0f27;hb=4f622503d#l637">+637,6</a> @@</span><span class="section">&nbsp;TupleDescInitEntry(TupleDesc&nbsp;desc,</span></div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if&nbsp;(attributeName&nbsp;!=&nbsp;NameStr(att-&gt;attname))</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;namestrcpy(&amp;(att-&gt;attname),&nbsp;attributeName);</div> <div class="diff ctx">&nbsp;</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;att-&gt;attstattarget&nbsp;=&nbsp;-1;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;att-&gt;attcacheoff&nbsp;=&nbsp;-1;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;att-&gt;atttypmod&nbsp;=&nbsp;typmod;</div> <div class="diff ctx">&nbsp;</div> <div class="diff chunk_header"><span class="chunk_info">@@ <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/access/common/tupdesc.c;h=6e7ad79834f3a5e519397e3e10909f874c7ab4da#l702">-702,7</a> <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/access/common/tupdesc.c;h=bc80caee1172978620f803168f7651c5570e0f27;hb=4f622503d#l699">+699,6</a> @@</span><span class="section">&nbsp;TupleDescInitBuiltinEntry(TupleDesc&nbsp;desc,</span></div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;Assert(attributeName&nbsp;!=&nbsp;NULL);</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;namestrcpy(&amp;(att-&gt;attname),&nbsp;attributeName);</div> <div class="diff ctx">&nbsp;</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;att-&gt;attstattarget&nbsp;=&nbsp;-1;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;att-&gt;attcacheoff&nbsp;=&nbsp;-1;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;att-&gt;atttypmod&nbsp;=&nbsp;typmod;</div> <div class="diff ctx">&nbsp;</div> </div> <div class="patch" id="patch3"> <div class="diff header">diff --git <a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/bootstrap/bootstrap.c;h=55c53d01f8776b974104e212340aaa3a76dadbe2">a/src/backend/bootstrap/bootstrap.c</a> <a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/bootstrap/bootstrap.c;h=141b25ddd7a5c8f18d387b46e56f81f93f65142c;hb=4f622503d">b/src/backend/bootstrap/bootstrap.c</a></div> <div class="diff extended_header"> index 55c53d01f8776b974104e212340aaa3a76dadbe2..141b25ddd7a5c8f18d387b46e56f81f93f65142c 100644<span class="info"> (file)</span><br/> </div> <div class="diff from_file">--- a/<a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/bootstrap/bootstrap.c;h=55c53d01f8776b974104e212340aaa3a76dadbe2">src/backend/bootstrap/bootstrap.c</a></div> <div class="diff to_file">+++ b/<a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/bootstrap/bootstrap.c;h=141b25ddd7a5c8f18d387b46e56f81f93f65142c;hb=4f622503d">src/backend/bootstrap/bootstrap.c</a></div> <div class="diff chunk_header"><span class="chunk_info">@@ <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/bootstrap/bootstrap.c;h=55c53d01f8776b974104e212340aaa3a76dadbe2#l552">-552,7</a> <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/bootstrap/bootstrap.c;h=141b25ddd7a5c8f18d387b46e56f81f93f65142c;hb=4f622503d#l552">+552,6</a> @@</span><span class="section">&nbsp;DefineAttr(char&nbsp;*name,&nbsp;char&nbsp;*type,&nbsp;int&nbsp;attnum,&nbsp;int&nbsp;nullness)</span></div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(OidIsValid(attrtypes[attnum]-&gt;attcollation))</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attrtypes[attnum]-&gt;attcollation&nbsp;=&nbsp;C_COLLATION_OID;</div> <div class="diff ctx">&nbsp;</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;attrtypes[attnum]-&gt;attstattarget&nbsp;=&nbsp;-1;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;attrtypes[attnum]-&gt;attcacheoff&nbsp;=&nbsp;-1;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;attrtypes[attnum]-&gt;atttypmod&nbsp;=&nbsp;-1;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;attrtypes[attnum]-&gt;attislocal&nbsp;=&nbsp;true;</div> </div> <div class="patch" id="patch4"> <div class="diff header">diff --git <a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/catalog/genbki.pl;h=531d7cd0d52ce3c2c101f5e1605f6740f7204702">a/src/backend/catalog/genbki.pl</a> <a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/catalog/genbki.pl;h=93553e8c3c4c28557f257eb8bd7802f6387ade95;hb=4f622503d">b/src/backend/catalog/genbki.pl</a></div> <div class="diff extended_header"> index 531d7cd0d52ce3c2c101f5e1605f6740f7204702..93553e8c3c4c28557f257eb8bd7802f6387ade95 100644<span class="info"> (file)</span><br/> </div> <div class="diff from_file">--- a/<a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/catalog/genbki.pl;h=531d7cd0d52ce3c2c101f5e1605f6740f7204702">src/backend/catalog/genbki.pl</a></div> <div class="diff to_file">+++ b/<a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/catalog/genbki.pl;h=93553e8c3c4c28557f257eb8bd7802f6387ade95;hb=4f622503d">src/backend/catalog/genbki.pl</a></div> <div class="diff chunk_header"><span class="chunk_info">@@ <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/catalog/genbki.pl;h=531d7cd0d52ce3c2c101f5e1605f6740f7204702#l840">-840,7</a> <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/catalog/genbki.pl;h=93553e8c3c4c28557f257eb8bd7802f6387ade95;hb=4f622503d#l840">+840,6</a> @@</span><span class="section">&nbsp;sub&nbsp;gen_pg_attribute</span></div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;my&nbsp;%row;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$row{attnum}&nbsp;=&nbsp;$attnum;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$row{attrelid}&nbsp;=&nbsp;$table-&gt;{relation_oid};</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$row{attstattarget}&nbsp;=&nbsp;&#39;0&#39;;</div> <div class="diff ctx">&nbsp;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;morph_row_for_pgattr(\%row,&nbsp;$schema,&nbsp;$attr,&nbsp;1);</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print_bki_insert(\%row,&nbsp;$schema);</div> </div> <div class="patch" id="patch5"> <div class="diff header">diff --git <a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/catalog/heap.c;h=e80a90ef4c0d9f83cf9a00f5c9c84a1457627c3f">a/src/backend/catalog/heap.c</a> <a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/catalog/heap.c;h=45a71081d429220f5e8be693c258417eb01cb746;hb=4f622503d">b/src/backend/catalog/heap.c</a></div> <div class="diff extended_header"> index e80a90ef4c0d9f83cf9a00f5c9c84a1457627c3f..45a71081d429220f5e8be693c258417eb01cb746 100644<span class="info"> (file)</span><br/> </div> <div class="diff from_file">--- a/<a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/catalog/heap.c;h=e80a90ef4c0d9f83cf9a00f5c9c84a1457627c3f">src/backend/catalog/heap.c</a></div> <div class="diff to_file">+++ b/<a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/catalog/heap.c;h=45a71081d429220f5e8be693c258417eb01cb746;hb=4f622503d">src/backend/catalog/heap.c</a></div> <div class="diff chunk_header"><span class="chunk_info">@@ <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/catalog/heap.c;h=e80a90ef4c0d9f83cf9a00f5c9c84a1457627c3f#l749">-749,14</a> <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/catalog/heap.c;h=45a71081d429220f5e8be693c258417eb01cb746;hb=4f622503d#l749">+749,16</a> @@</span><span class="section">&nbsp;InsertPgAttributeTuples(Relation&nbsp;pg_attribute_rel,</span></div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;slot[slotCount]-&gt;tts_values[Anum_pg_attribute_attisdropped&nbsp;-&nbsp;1]&nbsp;=&nbsp;BoolGetDatum(attrs-&gt;attisdropped);</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;slot[slotCount]-&gt;tts_values[Anum_pg_attribute_attislocal&nbsp;-&nbsp;1]&nbsp;=&nbsp;BoolGetDatum(attrs-&gt;attislocal);</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;slot[slotCount]-&gt;tts_values[Anum_pg_attribute_attinhcount&nbsp;-&nbsp;1]&nbsp;=&nbsp;Int16GetDatum(attrs-&gt;attinhcount);</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;slot[slotCount]-&gt;tts_values[Anum_pg_attribute_attstattarget&nbsp;-&nbsp;1]&nbsp;=&nbsp;Int16GetDatum(attrs-&gt;attstattarget);</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;slot[slotCount]-&gt;tts_values[Anum_pg_attribute_attcollation&nbsp;-&nbsp;1]&nbsp;=&nbsp;ObjectIdGetDatum(attrs-&gt;attcollation);</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(attoptions&nbsp;&amp;&amp;&nbsp;attoptions[natts]&nbsp;!=&nbsp;(Datum)&nbsp;0)</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;slot[slotCount]-&gt;tts_values[Anum_pg_attribute_attoptions&nbsp;-&nbsp;1]&nbsp;=&nbsp;attoptions[natts];</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;slot[slotCount]-&gt;tts_isnull[Anum_pg_attribute_attoptions&nbsp;-&nbsp;1]&nbsp;=&nbsp;true;</div> <div class="diff ctx">&nbsp;</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;start&nbsp;out&nbsp;with&nbsp;empty&nbsp;permissions&nbsp;and&nbsp;empty&nbsp;options&nbsp;*/</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;The&nbsp;remaining&nbsp;fields&nbsp;are&nbsp;not&nbsp;set&nbsp;for&nbsp;new&nbsp;columns.</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;slot[slotCount]-&gt;tts_isnull[Anum_pg_attribute_attstattarget&nbsp;-&nbsp;1]&nbsp;=&nbsp;true;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;slot[slotCount]-&gt;tts_isnull[Anum_pg_attribute_attacl&nbsp;-&nbsp;1]&nbsp;=&nbsp;true;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;slot[slotCount]-&gt;tts_isnull[Anum_pg_attribute_attfdwoptions&nbsp;-&nbsp;1]&nbsp;=&nbsp;true;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;slot[slotCount]-&gt;tts_isnull[Anum_pg_attribute_attmissingval&nbsp;-&nbsp;1]&nbsp;=&nbsp;true;</div> <div class="diff chunk_header"><span class="chunk_info">@@ <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/catalog/heap.c;h=e80a90ef4c0d9f83cf9a00f5c9c84a1457627c3f#l818">-818,9</a> <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/catalog/heap.c;h=45a71081d429220f5e8be693c258417eb01cb746;hb=4f622503d#l820">+820,6</a> @@</span><span class="section">&nbsp;AddNewAttributeTuples(Oid&nbsp;new_rel_oid,</span></div> <div class="diff ctx">&nbsp;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;indstate&nbsp;=&nbsp;CatalogOpenIndexes(rel);</div> <div class="diff ctx">&nbsp;</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;/*&nbsp;set&nbsp;stats&nbsp;detail&nbsp;level&nbsp;to&nbsp;a&nbsp;sane&nbsp;default&nbsp;*/</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;natts;&nbsp;i++)</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tupdesc-&gt;attrs[i].attstattarget&nbsp;=&nbsp;-1;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;InsertPgAttributeTuples(rel,&nbsp;tupdesc,&nbsp;new_rel_oid,&nbsp;NULL,&nbsp;indstate);</div> <div class="diff ctx">&nbsp;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;add&nbsp;dependencies&nbsp;on&nbsp;their&nbsp;datatypes&nbsp;and&nbsp;collations&nbsp;*/</div> <div class="diff chunk_header"><span class="chunk_info">@@ <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/catalog/heap.c;h=e80a90ef4c0d9f83cf9a00f5c9c84a1457627c3f#l1685">-1685,9</a> <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/catalog/heap.c;h=45a71081d429220f5e8be693c258417eb01cb746;hb=4f622503d#l1684">+1684,6</a> @@</span><span class="section">&nbsp;RemoveAttributeById(Oid&nbsp;relid,&nbsp;AttrNumber&nbsp;attnum)</span></div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;Remove&nbsp;any&nbsp;not-null&nbsp;constraint&nbsp;the&nbsp;column&nbsp;may&nbsp;have&nbsp;*/</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;attStruct-&gt;attnotnull&nbsp;=&nbsp;false;</div> <div class="diff ctx">&nbsp;</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;/*&nbsp;We&nbsp;don&#39;t&nbsp;want&nbsp;to&nbsp;keep&nbsp;stats&nbsp;for&nbsp;it&nbsp;anymore&nbsp;*/</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;attStruct-&gt;attstattarget&nbsp;=&nbsp;0;</div> <div class="diff rem">-</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;Unset&nbsp;this&nbsp;so&nbsp;no&nbsp;one&nbsp;tries&nbsp;to&nbsp;look&nbsp;up&nbsp;the&nbsp;generation&nbsp;expression&nbsp;*/</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;attStruct-&gt;attgenerated&nbsp;=&nbsp;&#39;\0&#39;;</div> <div class="diff ctx">&nbsp;</div> <div class="diff chunk_header"><span class="chunk_info">@@ <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/catalog/heap.c;h=e80a90ef4c0d9f83cf9a00f5c9c84a1457627c3f#l1704">-1704,9</a> <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/catalog/heap.c;h=45a71081d429220f5e8be693c258417eb01cb746;hb=4f622503d#l1700">+1700,11</a> @@</span><span class="section">&nbsp;RemoveAttributeById(Oid&nbsp;relid,&nbsp;AttrNumber&nbsp;attnum)</span></div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;replacesAtt[Anum_pg_attribute_attmissingval&nbsp;-&nbsp;1]&nbsp;=&nbsp;true;</div> <div class="diff ctx">&nbsp;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;/*</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Clear&nbsp;the&nbsp;other&nbsp;<span class="marked">variable-length&nbsp;fields.&nbsp;&nbsp;This&nbsp;saves&nbsp;some&nbsp;space&nbsp;in</span></div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<span class="marked">pg_attribute&nbsp;</span>and&nbsp;removes&nbsp;no&nbsp;longer&nbsp;useful&nbsp;information.</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Clear&nbsp;the&nbsp;other&nbsp;<span class="marked">nullable&nbsp;fields.&nbsp;&nbsp;This&nbsp;saves&nbsp;some&nbsp;space&nbsp;in&nbsp;pg_attribute</span></div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;and&nbsp;removes&nbsp;no&nbsp;longer&nbsp;useful&nbsp;information.</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;nullsAtt[Anum_pg_attribute_attstattarget&nbsp;-&nbsp;1]&nbsp;=&nbsp;true;</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;replacesAtt[Anum_pg_attribute_attstattarget&nbsp;-&nbsp;1]&nbsp;=&nbsp;true;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;nullsAtt[Anum_pg_attribute_attacl&nbsp;-&nbsp;1]&nbsp;=&nbsp;true;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;replacesAtt[Anum_pg_attribute_attacl&nbsp;-&nbsp;1]&nbsp;=&nbsp;true;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;nullsAtt[Anum_pg_attribute_attoptions&nbsp;-&nbsp;1]&nbsp;=&nbsp;true;</div> </div> <div class="patch" id="patch6"> <div class="diff header">diff --git <a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/catalog/index.c;h=88f7994b5a68ad292d3411b7094870ba10452f1d">a/src/backend/catalog/index.c</a> <a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/catalog/index.c;h=fbef3d5382d9e5bbc83b12506b93319a06f099c5;hb=4f622503d">b/src/backend/catalog/index.c</a></div> <div class="diff extended_header"> index 88f7994b5a68ad292d3411b7094870ba10452f1d..fbef3d5382d9e5bbc83b12506b93319a06f099c5 100644<span class="info"> (file)</span><br/> </div> <div class="diff from_file">--- a/<a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/catalog/index.c;h=88f7994b5a68ad292d3411b7094870ba10452f1d">src/backend/catalog/index.c</a></div> <div class="diff to_file">+++ b/<a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/catalog/index.c;h=fbef3d5382d9e5bbc83b12506b93319a06f099c5;hb=4f622503d">src/backend/catalog/index.c</a></div> <div class="diff chunk_header"><span class="chunk_info">@@ <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/catalog/index.c;h=88f7994b5a68ad292d3411b7094870ba10452f1d#l325">-325,7</a> <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/catalog/index.c;h=fbef3d5382d9e5bbc83b12506b93319a06f099c5;hb=4f622503d#l325">+325,6</a> @@</span><span class="section">&nbsp;ConstructTupleDescriptor(Relation&nbsp;heapRelation,</span></div> <div class="diff ctx">&nbsp;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MemSet(to,&nbsp;0,&nbsp;ATTRIBUTE_FIXED_PART_SIZE);</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;to-&gt;attnum&nbsp;=&nbsp;i&nbsp;+&nbsp;1;</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;to-&gt;attstattarget&nbsp;=&nbsp;-1;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;to-&gt;attcacheoff&nbsp;=&nbsp;-1;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;to-&gt;attislocal&nbsp;=&nbsp;true;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;to-&gt;attcollation&nbsp;=&nbsp;(i&nbsp;&lt;&nbsp;numkeyatts)&nbsp;?&nbsp;collationIds[i]&nbsp;:&nbsp;InvalidOid;</div> <div class="diff chunk_header"><span class="chunk_info">@@ <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/catalog/index.c;h=88f7994b5a68ad292d3411b7094870ba10452f1d#l1780">-1780,10</a> <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/catalog/index.c;h=fbef3d5382d9e5bbc83b12506b93319a06f099c5;hb=4f622503d#l1779">+1779,12</a> @@</span><span class="section">&nbsp;index_concurrently_swap(Oid&nbsp;newIndexId,&nbsp;Oid&nbsp;oldIndexId,&nbsp;const&nbsp;char&nbsp;*oldName)</span></div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(HeapTupleIsValid((attrTuple&nbsp;=&nbsp;systable_getnext(scan))))</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Form_pg_attribute&nbsp;att&nbsp;=&nbsp;(Form_pg_attribute)&nbsp;GETSTRUCT(attrTuple);</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HeapTuple&nbsp;&nbsp;&nbsp;tp;</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Datum&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dat;</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bool&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isnull;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Datum&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;repl_val[Natts_pg_attribute];</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bool&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;repl_null[Natts_pg_attribute];</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bool&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;repl_repl[Natts_pg_attribute];</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attstattarget;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HeapTuple&nbsp;&nbsp;&nbsp;newTuple;</div> <div class="diff ctx">&nbsp;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;Ignore&nbsp;dropped&nbsp;columns&nbsp;*/</div> <div class="diff chunk_header"><span class="chunk_info">@@ <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/catalog/index.c;h=88f7994b5a68ad292d3411b7094870ba10452f1d#l1793">-1793,10</a> <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/catalog/index.c;h=fbef3d5382d9e5bbc83b12506b93319a06f099c5;hb=4f622503d#l1794">+1794,18</a> @@</span><span class="section">&nbsp;index_concurrently_swap(Oid&nbsp;newIndexId,&nbsp;Oid&nbsp;oldIndexId,&nbsp;const&nbsp;char&nbsp;*oldName)</span></div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Get&nbsp;attstattarget&nbsp;from&nbsp;the&nbsp;old&nbsp;index&nbsp;and&nbsp;refresh&nbsp;the&nbsp;new&nbsp;value.</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attstattarget&nbsp;=&nbsp;get_attstattarget(oldIndexId,&nbsp;att-&gt;attnum);</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tp&nbsp;=&nbsp;SearchSysCache2(ATTNUM,&nbsp;ObjectIdGetDatum(oldIndexId),&nbsp;Int16GetDatum(att-&gt;attnum));</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!HeapTupleIsValid(tp))</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elog(ERROR,&nbsp;&quot;cache&nbsp;lookup&nbsp;failed&nbsp;for&nbsp;attribute&nbsp;%d&nbsp;of&nbsp;relation&nbsp;%u&quot;,</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;att-&gt;attnum,&nbsp;oldIndexId);</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dat&nbsp;=&nbsp;SysCacheGetAttr(ATTNUM,&nbsp;tp,&nbsp;Anum_pg_attribute_attstattarget,&nbsp;&amp;isnull);</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ReleaseSysCache(tp);</div> <div class="diff ctx">&nbsp;</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;no&nbsp;need&nbsp;for&nbsp;a&nbsp;refresh&nbsp;if&nbsp;both&nbsp;match&nbsp;*/</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(attstattarget&nbsp;==&nbsp;att-&gt;attstattarget)</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;No&nbsp;need&nbsp;for&nbsp;a&nbsp;refresh&nbsp;if&nbsp;old&nbsp;index&nbsp;value&nbsp;is&nbsp;null.&nbsp;&nbsp;(All&nbsp;new</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;index&nbsp;values&nbsp;are&nbsp;null&nbsp;at&nbsp;this&nbsp;point.)</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(isnull)</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;continue;</div> <div class="diff ctx">&nbsp;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memset(repl_val,&nbsp;0,&nbsp;sizeof(repl_val));</div> <div class="diff chunk_header"><span class="chunk_info">@@ <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/catalog/index.c;h=88f7994b5a68ad292d3411b7094870ba10452f1d#l1804">-1804,7</a> <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/catalog/index.c;h=fbef3d5382d9e5bbc83b12506b93319a06f099c5;hb=4f622503d#l1813">+1813,7</a> @@</span><span class="section">&nbsp;index_concurrently_swap(Oid&nbsp;newIndexId,&nbsp;Oid&nbsp;oldIndexId,&nbsp;const&nbsp;char&nbsp;*oldName)</span></div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memset(repl_repl,&nbsp;false,&nbsp;sizeof(repl_repl));</div> <div class="diff ctx">&nbsp;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;repl_repl[Anum_pg_attribute_attstattarget&nbsp;-&nbsp;1]&nbsp;=&nbsp;true;</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;repl_val[Anum_pg_attribute_attstattarget&nbsp;-&nbsp;1]&nbsp;=&nbsp;<span class="marked">Int16GetDatum(attstattarget)</span>;</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;repl_val[Anum_pg_attribute_attstattarget&nbsp;-&nbsp;1]&nbsp;=&nbsp;<span class="marked">dat</span>;</div> <div class="diff ctx">&nbsp;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newTuple&nbsp;=&nbsp;heap_modify_tuple(attrTuple,</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RelationGetDescr(pg_attribute),</div> </div> <div class="patch" id="patch7"> <div class="diff header">diff --git <a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/commands/analyze.c;h=deef865ce6deddf57054364623902aab9c88e821">a/src/backend/commands/analyze.c</a> <a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/commands/analyze.c;h=a03495d6c95ee11e0b4a6c4b47f106e08afb1919;hb=4f622503d">b/src/backend/commands/analyze.c</a></div> <div class="diff extended_header"> index deef865ce6deddf57054364623902aab9c88e821..a03495d6c95ee11e0b4a6c4b47f106e08afb1919 100644<span class="info"> (file)</span><br/> </div> <div class="diff from_file">--- a/<a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/commands/analyze.c;h=deef865ce6deddf57054364623902aab9c88e821">src/backend/commands/analyze.c</a></div> <div class="diff to_file">+++ b/<a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/commands/analyze.c;h=a03495d6c95ee11e0b4a6c4b47f106e08afb1919;hb=4f622503d">src/backend/commands/analyze.c</a></div> <div class="diff chunk_header"><span class="chunk_info">@@ <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/commands/analyze.c;h=deef865ce6deddf57054364623902aab9c88e821#l1004">-1004,6</a> <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/commands/analyze.c;h=a03495d6c95ee11e0b4a6c4b47f106e08afb1919;hb=4f622503d#l1004">+1004,10</a> @@</span><span class="section">&nbsp;static&nbsp;VacAttrStats&nbsp;*</span></div> <div class="diff ctx">&nbsp;examine_attribute(Relation&nbsp;onerel,&nbsp;int&nbsp;attnum,&nbsp;Node&nbsp;*index_expr)</div> <div class="diff ctx">&nbsp;{</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;Form_pg_attribute&nbsp;attr&nbsp;=&nbsp;TupleDescAttr(onerel-&gt;rd_att,&nbsp;attnum&nbsp;-&nbsp;1);</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attstattarget;</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;HeapTuple&nbsp;&nbsp;&nbsp;atttuple;</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;Datum&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dat;</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;bool&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isnull;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;HeapTuple&nbsp;&nbsp;&nbsp;typtuple;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;VacAttrStats&nbsp;*stats;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i;</div> <div class="diff chunk_header"><span class="chunk_info">@@ <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/commands/analyze.c;h=deef865ce6deddf57054364623902aab9c88e821#l1013">-1013,15</a> <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/commands/analyze.c;h=a03495d6c95ee11e0b4a6c4b47f106e08afb1919;hb=4f622503d#l1017">+1017,28</a> @@</span><span class="section">&nbsp;examine_attribute(Relation&nbsp;onerel,&nbsp;int&nbsp;attnum,&nbsp;Node&nbsp;*index_expr)</span></div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(attr-&gt;attisdropped)</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;NULL;</div> <div class="diff ctx">&nbsp;</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;/*</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Get&nbsp;attstattarget&nbsp;value.&nbsp;&nbsp;Set&nbsp;to&nbsp;-1&nbsp;if&nbsp;null.&nbsp;&nbsp;(Analyze&nbsp;functions&nbsp;expect</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;-1&nbsp;to&nbsp;mean&nbsp;use&nbsp;default_statistics_target;&nbsp;see&nbsp;for&nbsp;example</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;std_typanalyze.)</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;*/</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;atttuple&nbsp;=&nbsp;SearchSysCache2(ATTNUM,&nbsp;ObjectIdGetDatum(RelationGetRelid(onerel)),&nbsp;Int16GetDatum(attnum));</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;if&nbsp;(!HeapTupleIsValid(atttuple))</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elog(ERROR,&nbsp;&quot;cache&nbsp;lookup&nbsp;failed&nbsp;for&nbsp;attribute&nbsp;%d&nbsp;of&nbsp;relation&nbsp;%u&quot;,</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attnum,&nbsp;RelationGetRelid(onerel));</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;dat&nbsp;=&nbsp;SysCacheGetAttr(ATTNUM,&nbsp;atttuple,&nbsp;Anum_pg_attribute_attstattarget,&nbsp;&amp;isnull);</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;attstattarget&nbsp;=&nbsp;isnull&nbsp;?&nbsp;-1&nbsp;:&nbsp;DatumGetInt16(dat);</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;ReleaseSysCache(atttuple);</div> <div class="diff add">+</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;Don&#39;t&nbsp;analyze&nbsp;column&nbsp;if&nbsp;user&nbsp;has&nbsp;specified&nbsp;not&nbsp;to&nbsp;*/</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;if&nbsp;(att<span class="marked">r-&gt;att</span>stattarget&nbsp;==&nbsp;0)</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;if&nbsp;(attstattarget&nbsp;==&nbsp;0)</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;NULL;</div> <div class="diff ctx">&nbsp;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;/*</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Create&nbsp;the&nbsp;VacAttrStats&nbsp;struct.</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;stats&nbsp;=&nbsp;(VacAttrStats&nbsp;*)&nbsp;palloc0(sizeof(VacAttrStats));</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;stats-&gt;attstattarget&nbsp;=&nbsp;att<span class="marked">r-&gt;att</span>stattarget;</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;stats-&gt;attstattarget&nbsp;=&nbsp;attstattarget;</div> <div class="diff ctx">&nbsp;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;/*</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;When&nbsp;analyzing&nbsp;an&nbsp;expression&nbsp;index,&nbsp;believe&nbsp;the&nbsp;expression&nbsp;tree&#39;s&nbsp;type</div> </div> <div class="patch" id="patch8"> <div class="diff header">diff --git <a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/commands/tablecmds.c;h=5e558fabf65a6f4c5e1ed956f7e994ea0dfaab57">a/src/backend/commands/tablecmds.c</a> <a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/commands/tablecmds.c;h=5496f1268261ad1d2883ad9e458d4414571bfd6e;hb=4f622503d">b/src/backend/commands/tablecmds.c</a></div> <div class="diff extended_header"> index 5e558fabf65a6f4c5e1ed956f7e994ea0dfaab57..5496f1268261ad1d2883ad9e458d4414571bfd6e 100644<span class="info"> (file)</span><br/> </div> <div class="diff from_file">--- a/<a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/commands/tablecmds.c;h=5e558fabf65a6f4c5e1ed956f7e994ea0dfaab57">src/backend/commands/tablecmds.c</a></div> <div class="diff to_file">+++ b/<a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/commands/tablecmds.c;h=5496f1268261ad1d2883ad9e458d4414571bfd6e;hb=4f622503d">src/backend/commands/tablecmds.c</a></div> <div class="diff chunk_header"><span class="chunk_info">@@ <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/commands/tablecmds.c;h=5e558fabf65a6f4c5e1ed956f7e994ea0dfaab57#l8543">-8543,10</a> <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/commands/tablecmds.c;h=5496f1268261ad1d2883ad9e458d4414571bfd6e;hb=4f622503d#l8543">+8543,14</a> @@</span><span class="section">&nbsp;ATExecSetStatistics(Relation&nbsp;rel,&nbsp;const&nbsp;char&nbsp;*colName,&nbsp;int16&nbsp;colNum,&nbsp;Node&nbsp;*newVa</span></div> <div class="diff ctx">&nbsp;{</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newtarget;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;Relation&nbsp;&nbsp;&nbsp;&nbsp;attrelation;</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;HeapTuple&nbsp;&nbsp;&nbsp;tuple;</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;HeapTuple&nbsp;&nbsp;&nbsp;tuple,</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newtuple;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;Form_pg_attribute&nbsp;attrtuple;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;AttrNumber&nbsp;&nbsp;attnum;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;ObjectAddress&nbsp;address;</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;Datum&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;repl_val[Natts_pg_attribute];</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;bool&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;repl_null[Natts_pg_attribute];</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;bool&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;repl_repl[Natts_pg_attribute];</div> <div class="diff ctx">&nbsp;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;/*</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;We&nbsp;allow&nbsp;referencing&nbsp;columns&nbsp;by&nbsp;numbers&nbsp;only&nbsp;for&nbsp;indexes,&nbsp;since&nbsp;table</div> <div class="diff chunk_header"><span class="chunk_info">@@ <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/commands/tablecmds.c;h=5e558fabf65a6f4c5e1ed956f7e994ea0dfaab57#l8559">-8559,8</a> <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/commands/tablecmds.c;h=5496f1268261ad1d2883ad9e458d4414571bfd6e;hb=4f622503d#l8563">+8563,18</a> @@</span><span class="section">&nbsp;ATExecSetStatistics(Relation&nbsp;rel,&nbsp;const&nbsp;char&nbsp;*colName,&nbsp;int16&nbsp;colNum,&nbsp;Node&nbsp;*newVa</span></div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;errmsg(&quot;cannot&nbsp;refer&nbsp;to&nbsp;non-index&nbsp;column&nbsp;by&nbsp;number&quot;)));</div> <div class="diff ctx">&nbsp;</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;Assert(IsA(newValue,&nbsp;Integer));</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;newtarget&nbsp;=&nbsp;intVal(newValue);</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;if&nbsp;(newValue)</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;{</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Assert(IsA(newValue,&nbsp;Integer));</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newtarget&nbsp;=&nbsp;intVal(newValue);</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;}</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;else</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;{</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;-1&nbsp;was&nbsp;used&nbsp;in&nbsp;previous&nbsp;versions&nbsp;to&nbsp;represent&nbsp;the&nbsp;default&nbsp;setting</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newtarget&nbsp;=&nbsp;-1;</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;}</div> <div class="diff ctx">&nbsp;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;/*</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Limit&nbsp;target&nbsp;to&nbsp;a&nbsp;sane&nbsp;range</div> <div class="diff chunk_header"><span class="chunk_info">@@ <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/commands/tablecmds.c;h=5e558fabf65a6f4c5e1ed956f7e994ea0dfaab57#l8585">-8585,7</a> <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/commands/tablecmds.c;h=5496f1268261ad1d2883ad9e458d4414571bfd6e;hb=4f622503d#l8599">+8599,7</a> @@</span><span class="section">&nbsp;ATExecSetStatistics(Relation&nbsp;rel,&nbsp;const&nbsp;char&nbsp;*colName,&nbsp;int16&nbsp;colNum,&nbsp;Node&nbsp;*newVa</span></div> <div class="diff ctx">&nbsp;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(colName)</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;{</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tuple&nbsp;=&nbsp;SearchSysCache<span class="marked">Copy</span>AttName(RelationGetRelid(rel),&nbsp;colName);</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tuple&nbsp;=&nbsp;SearchSysCacheAttName(RelationGetRelid(rel),&nbsp;colName);</div> <div class="diff ctx">&nbsp;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!HeapTupleIsValid(tuple))</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ereport(ERROR,</div> <div class="diff chunk_header"><span class="chunk_info">@@ <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/commands/tablecmds.c;h=5e558fabf65a6f4c5e1ed956f7e994ea0dfaab57#l8595">-8595,7</a> <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/commands/tablecmds.c;h=5496f1268261ad1d2883ad9e458d4414571bfd6e;hb=4f622503d#l8609">+8609,7</a> @@</span><span class="section">&nbsp;ATExecSetStatistics(Relation&nbsp;rel,&nbsp;const&nbsp;char&nbsp;*colName,&nbsp;int16&nbsp;colNum,&nbsp;Node&nbsp;*newVa</span></div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;}</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;else</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;{</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tuple&nbsp;=&nbsp;SearchSysCache<span class="marked">Copy</span>AttNum(RelationGetRelid(rel),&nbsp;colNum);</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tuple&nbsp;=&nbsp;SearchSysCacheAttNum(RelationGetRelid(rel),&nbsp;colNum);</div> <div class="diff ctx">&nbsp;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!HeapTupleIsValid(tuple))</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ereport(ERROR,</div> <div class="diff chunk_header"><span class="chunk_info">@@ <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/commands/tablecmds.c;h=5e558fabf65a6f4c5e1ed956f7e994ea0dfaab57#l8629">-8629,16</a> <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/commands/tablecmds.c;h=5496f1268261ad1d2883ad9e458d4414571bfd6e;hb=4f622503d#l8643">+8643,27</a> @@</span><span class="section">&nbsp;ATExecSetStatistics(Relation&nbsp;rel,&nbsp;const&nbsp;char&nbsp;*colName,&nbsp;int16&nbsp;colNum,&nbsp;Node&nbsp;*newVa</span></div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;errhint(&quot;Alter&nbsp;statistics&nbsp;on&nbsp;table&nbsp;column&nbsp;instead.&quot;)));</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;}</div> <div class="diff ctx">&nbsp;</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;attrtuple-&gt;attstattarget&nbsp;=&nbsp;newtarget;</div> <div class="diff rem">-</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;CatalogTupleUpdate(attrelation,&nbsp;&amp;tuple-&gt;t_self,&nbsp;tuple);</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;/*&nbsp;Build&nbsp;new&nbsp;tuple.&nbsp;*/</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;memset(repl_null,&nbsp;false,&nbsp;sizeof(repl_null));</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;memset(repl_repl,&nbsp;false,&nbsp;sizeof(repl_repl));</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;if&nbsp;(newtarget&nbsp;!=&nbsp;-1)</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;repl_val[Anum_pg_attribute_attstattarget&nbsp;-&nbsp;1]&nbsp;=&nbsp;newtarget;</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;else</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;repl_null[Anum_pg_attribute_attstattarget&nbsp;-&nbsp;1]&nbsp;=&nbsp;true;</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;repl_repl[Anum_pg_attribute_attstattarget&nbsp;-&nbsp;1]&nbsp;=&nbsp;true;</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;newtuple&nbsp;=&nbsp;heap_modify_tuple(tuple,&nbsp;RelationGetDescr(attrelation),</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;repl_val,&nbsp;repl_null,&nbsp;repl_repl);</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;CatalogTupleUpdate(attrelation,&nbsp;&amp;tuple-&gt;t_self,&nbsp;newtuple);</div> <div class="diff ctx">&nbsp;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;InvokeObjectPostAlterHook(RelationRelationId,</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RelationGetRelid(rel),</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attrtuple-&gt;attnum);</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;ObjectAddressSubSet(address,&nbsp;RelationRelationId,</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RelationGetRelid(rel),&nbsp;attnum);</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;heap_freetuple(tuple);</div> <div class="diff add">+</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;heap_freetuple(newtuple);</div> <div class="diff add">+</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;ReleaseSysCache(tuple);</div> <div class="diff ctx">&nbsp;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;table_close(attrelation,&nbsp;RowExclusiveLock);</div> <div class="diff ctx">&nbsp;</div> </div> <div class="patch" id="patch9"> <div class="diff header">diff --git <a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/parser/gram.y;h=6b88096e8e1c09baf3f654540f3554f67b471cf2">a/src/backend/parser/gram.y</a> <a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/parser/gram.y;h=3460fea56bacf8ef6b26d786b9c3965cc2a5aa6c;hb=4f622503d">b/src/backend/parser/gram.y</a></div> <div class="diff extended_header"> index 6b88096e8e1c09baf3f654540f3554f67b471cf2..3460fea56bacf8ef6b26d786b9c3965cc2a5aa6c 100644<span class="info"> (file)</span><br/> </div> <div class="diff from_file">--- a/<a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/parser/gram.y;h=6b88096e8e1c09baf3f654540f3554f67b471cf2">src/backend/parser/gram.y</a></div> <div class="diff to_file">+++ b/<a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/parser/gram.y;h=3460fea56bacf8ef6b26d786b9c3965cc2a5aa6c;hb=4f622503d">src/backend/parser/gram.y</a></div> <div class="diff chunk_header"><span class="chunk_info">@@ <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/parser/gram.y;h=6b88096e8e1c09baf3f654540f3554f67b471cf2#l337">-337,6</a> <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/parser/gram.y;h=3460fea56bacf8ef6b26d786b9c3965cc2a5aa6c;hb=4f622503d#l337">+337,7</a> @@</span><span class="section">&nbsp;static&nbsp;Node&nbsp;*makeRecursiveViewSelect(char&nbsp;*relname,&nbsp;List&nbsp;*aliases,&nbsp;Node&nbsp;*query);</span></div> <div class="diff ctx">&nbsp;%type&nbsp;&lt;list&gt;&nbsp;&nbsp;&nbsp;alter_table_cmds&nbsp;alter_type_cmds</div> <div class="diff ctx">&nbsp;%type&nbsp;&lt;list&gt;&nbsp;&nbsp;&nbsp;&nbsp;alter_identity_column_option_list</div> <div class="diff ctx">&nbsp;%type&nbsp;&lt;defelt&gt;&nbsp;&nbsp;alter_identity_column_option</div> <div class="diff add">+%type&nbsp;&lt;node&gt;&nbsp;&nbsp;&nbsp;set_statistics_value</div> <div class="diff ctx">&nbsp;</div> <div class="diff ctx">&nbsp;%type&nbsp;&lt;list&gt;&nbsp;&nbsp;&nbsp;createdb_opt_list&nbsp;createdb_opt_items&nbsp;copy_opt_list</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;transaction_mode_list</div> <div class="diff chunk_header"><span class="chunk_info">@@ <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/parser/gram.y;h=6b88096e8e1c09baf3f654540f3554f67b471cf2#l2446">-2446,18</a> <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/parser/gram.y;h=3460fea56bacf8ef6b26d786b9c3965cc2a5aa6c;hb=4f622503d#l2447">+2447,18</a> @@</span><span class="section">&nbsp;alter_table_cmd:</span></div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n-&gt;missing_ok&nbsp;=&nbsp;true;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$$&nbsp;=&nbsp;(Node&nbsp;*)&nbsp;n;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;ALTER&nbsp;TABLE&nbsp;&lt;name&gt;&nbsp;ALTER&nbsp;[COLUMN]&nbsp;&lt;colname&gt;&nbsp;SET&nbsp;STATISTICS&nbsp;<span class="marked">&lt;SignedIconst&gt;&nbsp;</span>*/</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;ALTER&nbsp;opt_column&nbsp;ColId&nbsp;SET&nbsp;STATISTICS&nbsp;<span class="marked">SignedIconst</span></div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;ALTER&nbsp;TABLE&nbsp;&lt;name&gt;&nbsp;ALTER&nbsp;[COLUMN]&nbsp;&lt;colname&gt;&nbsp;SET&nbsp;STATISTICS&nbsp;*/</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;ALTER&nbsp;opt_column&nbsp;ColId&nbsp;SET&nbsp;STATISTICS&nbsp;<span class="marked">set_statistics_value</span></div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AlterTableCmd&nbsp;*n&nbsp;=&nbsp;makeNode(AlterTableCmd);</div> <div class="diff ctx">&nbsp;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n-&gt;subtype&nbsp;=&nbsp;AT_SetStatistics;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n-&gt;name&nbsp;=&nbsp;$3;</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n-&gt;def&nbsp;=&nbsp;<span class="marked">(Node&nbsp;*)&nbsp;makeInteger($6)</span>;</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n-&gt;def&nbsp;=&nbsp;<span class="marked">$6</span>;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$$&nbsp;=&nbsp;(Node&nbsp;*)&nbsp;n;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;ALTER&nbsp;TABLE&nbsp;&lt;name&gt;&nbsp;ALTER&nbsp;[COLUMN]&nbsp;&lt;colnum&gt;&nbsp;SET&nbsp;STATISTICS&nbsp;<span class="marked">&lt;SignedIconst&gt;&nbsp;</span>*/</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;ALTER&nbsp;opt_column&nbsp;Iconst&nbsp;SET&nbsp;STATISTICS&nbsp;<span class="marked">SignedIconst</span></div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;ALTER&nbsp;TABLE&nbsp;&lt;name&gt;&nbsp;ALTER&nbsp;[COLUMN]&nbsp;&lt;colnum&gt;&nbsp;SET&nbsp;STATISTICS&nbsp;*/</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;ALTER&nbsp;opt_column&nbsp;Iconst&nbsp;SET&nbsp;STATISTICS&nbsp;<span class="marked">set_statistics_value</span></div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AlterTableCmd&nbsp;*n&nbsp;=&nbsp;makeNode(AlterTableCmd);</div> <div class="diff ctx">&nbsp;</div> <div class="diff chunk_header"><span class="chunk_info">@@ <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/parser/gram.y;h=6b88096e8e1c09baf3f654540f3554f67b471cf2#l2469">-2469,7</a> <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/parser/gram.y;h=3460fea56bacf8ef6b26d786b9c3965cc2a5aa6c;hb=4f622503d#l2470">+2470,7</a> @@</span><span class="section">&nbsp;alter_table_cmd:</span></div> <div class="diff ctx">&nbsp;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n-&gt;subtype&nbsp;=&nbsp;AT_SetStatistics;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n-&gt;num&nbsp;=&nbsp;(int16)&nbsp;$3;</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n-&gt;def&nbsp;=&nbsp;<span class="marked">(Node&nbsp;*)&nbsp;makeInteger($6)</span>;</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n-&gt;def&nbsp;=&nbsp;<span class="marked">$6</span>;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$$&nbsp;=&nbsp;(Node&nbsp;*)&nbsp;n;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;ALTER&nbsp;TABLE&nbsp;&lt;name&gt;&nbsp;ALTER&nbsp;[COLUMN]&nbsp;&lt;colname&gt;&nbsp;SET&nbsp;(&nbsp;column_parameter&nbsp;=&nbsp;value&nbsp;[,&nbsp;...&nbsp;]&nbsp;)&nbsp;*/</div> <div class="diff chunk_header"><span class="chunk_info">@@ <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/parser/gram.y;h=6b88096e8e1c09baf3f654540f3554f67b471cf2#l3070">-3070,6</a> <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/parser/gram.y;h=3460fea56bacf8ef6b26d786b9c3965cc2a5aa6c;hb=4f622503d#l3071">+3071,11</a> @@</span><span class="section">&nbsp;alter_identity_column_option:</span></div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;</div> <div class="diff ctx">&nbsp;</div> <div class="diff add">+set_statistics_value:</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SignedIconst&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;$$&nbsp;=&nbsp;(Node&nbsp;*)&nbsp;makeInteger($1);&nbsp;}</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;DEFAULT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;$$&nbsp;=&nbsp;NULL;&nbsp;}</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;</div> <div class="diff add">+</div> <div class="diff ctx">&nbsp;PartitionBoundSpec:</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;a&nbsp;HASH&nbsp;partition&nbsp;*/</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;VALUES&nbsp;WITH&nbsp;&#39;(&#39;&nbsp;hash_partbound&nbsp;&#39;)&#39;</div> </div> <div class="patch" id="patch10"> <div class="diff header">diff --git <a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/utils/cache/lsyscache.c;h=8ec83561bfa1d7fcb99b129228646c095488aab0">a/src/backend/utils/cache/lsyscache.c</a> <a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/utils/cache/lsyscache.c;h=f730aa26c47f56aef4b1ca3757f49e378f7afc29;hb=4f622503d">b/src/backend/utils/cache/lsyscache.c</a></div> <div class="diff extended_header"> index 8ec83561bfa1d7fcb99b129228646c095488aab0..f730aa26c47f56aef4b1ca3757f49e378f7afc29 100644<span class="info"> (file)</span><br/> </div> <div class="diff from_file">--- a/<a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/utils/cache/lsyscache.c;h=8ec83561bfa1d7fcb99b129228646c095488aab0">src/backend/utils/cache/lsyscache.c</a></div> <div class="diff to_file">+++ b/<a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/utils/cache/lsyscache.c;h=f730aa26c47f56aef4b1ca3757f49e378f7afc29;hb=4f622503d">src/backend/utils/cache/lsyscache.c</a></div> <div class="diff chunk_header"><span class="chunk_info">@@ <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/utils/cache/lsyscache.c;h=8ec83561bfa1d7fcb99b129228646c095488aab0#l872">-872,33</a> <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/backend/utils/cache/lsyscache.c;h=f730aa26c47f56aef4b1ca3757f49e378f7afc29;hb=4f622503d#l872">+872,6</a> @@</span><span class="section">&nbsp;get_attnum(Oid&nbsp;relid,&nbsp;const&nbsp;char&nbsp;*attname)</span></div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;InvalidAttrNumber;</div> <div class="diff ctx">&nbsp;}</div> <div class="diff ctx">&nbsp;</div> <div class="diff rem">-/*</div> <div class="diff rem">-&nbsp;*&nbsp;get_attstattarget</div> <div class="diff rem">-&nbsp;*</div> <div class="diff rem">-&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Given&nbsp;the&nbsp;relation&nbsp;id&nbsp;and&nbsp;the&nbsp;attribute&nbsp;number,</div> <div class="diff rem">-&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;the&nbsp;&quot;attstattarget&quot;&nbsp;field&nbsp;from&nbsp;the&nbsp;attribute&nbsp;relation.</div> <div class="diff rem">-&nbsp;*</div> <div class="diff rem">-&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Errors&nbsp;if&nbsp;not&nbsp;found.</div> <div class="diff rem">-&nbsp;*/</div> <div class="diff rem">-int</div> <div class="diff rem">-get_attstattarget(Oid&nbsp;relid,&nbsp;AttrNumber&nbsp;attnum)</div> <div class="diff rem">-{</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;HeapTuple&nbsp;&nbsp;&nbsp;tp;</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;Form_pg_attribute&nbsp;att_tup;</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result;</div> <div class="diff rem">-</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;tp&nbsp;=&nbsp;SearchSysCache2(ATTNUM,</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ObjectIdGetDatum(relid),</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Int16GetDatum(attnum));</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;if&nbsp;(!HeapTupleIsValid(tp))</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elog(ERROR,&nbsp;&quot;cache&nbsp;lookup&nbsp;failed&nbsp;for&nbsp;attribute&nbsp;%d&nbsp;of&nbsp;relation&nbsp;%u&quot;,</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attnum,&nbsp;relid);</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;att_tup&nbsp;=&nbsp;(Form_pg_attribute)&nbsp;GETSTRUCT(tp);</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;result&nbsp;=&nbsp;att_tup-&gt;attstattarget;</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;ReleaseSysCache(tp);</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;return&nbsp;result;</div> <div class="diff rem">-}</div> <div class="diff rem">-</div> <div class="diff ctx">&nbsp;/*</div> <div class="diff ctx">&nbsp;&nbsp;*&nbsp;get_attgenerated</div> <div class="diff ctx">&nbsp;&nbsp;*</div> </div> <div class="patch" id="patch11"> <div class="diff header">diff --git <a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/bin/pg_dump/pg_dump.c;h=22d1e6cf92261d654731e3044f1dc495ae0c5435">a/src/bin/pg_dump/pg_dump.c</a> <a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/bin/pg_dump/pg_dump.c;h=d4a888f5f137c08e8a5dc0a6b904d87a0d693ea9;hb=4f622503d">b/src/bin/pg_dump/pg_dump.c</a></div> <div class="diff extended_header"> index 22d1e6cf92261d654731e3044f1dc495ae0c5435..d4a888f5f137c08e8a5dc0a6b904d87a0d693ea9 100644<span class="info"> (file)</span><br/> </div> <div class="diff from_file">--- a/<a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/bin/pg_dump/pg_dump.c;h=22d1e6cf92261d654731e3044f1dc495ae0c5435">src/bin/pg_dump/pg_dump.c</a></div> <div class="diff to_file">+++ b/<a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/bin/pg_dump/pg_dump.c;h=d4a888f5f137c08e8a5dc0a6b904d87a0d693ea9;hb=4f622503d">src/bin/pg_dump/pg_dump.c</a></div> <div class="diff chunk_header"><span class="chunk_info">@@ <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/bin/pg_dump/pg_dump.c;h=22d1e6cf92261d654731e3044f1dc495ae0c5435#l8925">-8925,7</a> <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/bin/pg_dump/pg_dump.c;h=d4a888f5f137c08e8a5dc0a6b904d87a0d693ea9;hb=4f622503d#l8925">+8925,10</a> @@</span><span class="section">&nbsp;getTableAttrs(Archive&nbsp;*fout,&nbsp;TableInfo&nbsp;*tblinfo,&nbsp;int&nbsp;numTables)</span></div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tbinfo-&gt;dobj.name);</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tbinfo-&gt;attnames[j]&nbsp;=&nbsp;pg_strdup(PQgetvalue(res,&nbsp;r,&nbsp;i_attname));</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tbinfo-&gt;atttypnames[j]&nbsp;=&nbsp;pg_strdup(PQgetvalue(res,&nbsp;r,&nbsp;i_atttypname));</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tbinfo-&gt;attstattarget[j]&nbsp;=&nbsp;atoi(PQgetvalue(res,&nbsp;r,&nbsp;i_attstattarget));</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(PQgetisnull(res,&nbsp;r,&nbsp;i_attstattarget))</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tbinfo-&gt;attstattarget[j]&nbsp;=&nbsp;-1;</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tbinfo-&gt;attstattarget[j]&nbsp;=&nbsp;atoi(PQgetvalue(res,&nbsp;r,&nbsp;i_attstattarget));</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tbinfo-&gt;attstorage[j]&nbsp;=&nbsp;*(PQgetvalue(res,&nbsp;r,&nbsp;i_attstorage));</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tbinfo-&gt;typstorage[j]&nbsp;=&nbsp;*(PQgetvalue(res,&nbsp;r,&nbsp;i_typstorage));</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tbinfo-&gt;attidentity[j]&nbsp;=&nbsp;*(PQgetvalue(res,&nbsp;r,&nbsp;i_attidentity));</div> <div class="diff chunk_header"><span class="chunk_info">@@ <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/bin/pg_dump/pg_dump.c;h=22d1e6cf92261d654731e3044f1dc495ae0c5435#l16507">-16507,7</a> <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/bin/pg_dump/pg_dump.c;h=d4a888f5f137c08e8a5dc0a6b904d87a0d693ea9;hb=4f622503d#l16510">+16510,7</a> @@</span><span class="section">&nbsp;dumpTableSchema(Archive&nbsp;*fout,&nbsp;const&nbsp;TableInfo&nbsp;*tbinfo)</span></div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Dump&nbsp;per-column&nbsp;statistics&nbsp;information.&nbsp;We&nbsp;only&nbsp;issue&nbsp;an&nbsp;ALTER</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;TABLE&nbsp;statement&nbsp;if&nbsp;the&nbsp;attstattarget&nbsp;entry&nbsp;for&nbsp;this&nbsp;column&nbsp;is</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;no<span class="marked">n-negative&nbsp;(i.e.&nbsp;it&#39;s&nbsp;not&nbsp;the&nbsp;default&nbsp;value)</span></div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;no<span class="marked">t&nbsp;the&nbsp;default&nbsp;value.</span></div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(tbinfo-&gt;attstattarget[j]&nbsp;&gt;=&nbsp;0)</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;appendPQExpBuffer(q,&nbsp;&quot;ALTER&nbsp;%sTABLE&nbsp;ONLY&nbsp;%s&nbsp;ALTER&nbsp;COLUMN&nbsp;%s&nbsp;SET&nbsp;STATISTICS&nbsp;%d;\n&quot;,</div> </div> <div class="patch" id="patch12"> <div class="diff header">diff --git <a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/include/catalog/catversion.h;h=a94dcdc271300d38862760ac862245bd928edad8">a/src/include/catalog/catversion.h</a> <a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/include/catalog/catversion.h;h=460d80ac97e8b737b1d612aa7403b2aaf7cb2114;hb=4f622503d">b/src/include/catalog/catversion.h</a></div> <div class="diff extended_header"> index a94dcdc271300d38862760ac862245bd928edad8..460d80ac97e8b737b1d612aa7403b2aaf7cb2114 100644<span class="info"> (file)</span><br/> </div> <div class="diff from_file">--- a/<a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/include/catalog/catversion.h;h=a94dcdc271300d38862760ac862245bd928edad8">src/include/catalog/catversion.h</a></div> <div class="diff to_file">+++ b/<a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/include/catalog/catversion.h;h=460d80ac97e8b737b1d612aa7403b2aaf7cb2114;hb=4f622503d">src/include/catalog/catversion.h</a></div> <div class="diff chunk_header"><span class="chunk_info">@@ <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/include/catalog/catversion.h;h=a94dcdc271300d38862760ac862245bd928edad8#l57">-57,6</a> <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/include/catalog/catversion.h;h=460d80ac97e8b737b1d612aa7403b2aaf7cb2114;hb=4f622503d#l57">+57,6</a> @@</span><span class="section"></span></div> <div class="diff ctx">&nbsp;&nbsp;*/</div> <div class="diff ctx">&nbsp;</div> <div class="diff ctx">&nbsp;/*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yyyymmddN&nbsp;*/</div> <div class="diff rem">-#define&nbsp;CATALOG_VERSION_NO&nbsp;2024011<span class="marked">1</span>1</div> <div class="diff add">+#define&nbsp;CATALOG_VERSION_NO&nbsp;2024011<span class="marked">3</span>1</div> <div class="diff ctx">&nbsp;</div> <div class="diff ctx">&nbsp;#endif</div> </div> <div class="patch" id="patch13"> <div class="diff header">diff --git <a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/include/catalog/pg_attribute.h;h=7f4d308e8ddfdd11dc957503a27f5ac8a2ae441c">a/src/include/catalog/pg_attribute.h</a> <a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/include/catalog/pg_attribute.h;h=e2aadb941413d6a797ead54c2dfcb380324de5ee;hb=4f622503d">b/src/include/catalog/pg_attribute.h</a></div> <div class="diff extended_header"> index 7f4d308e8ddfdd11dc957503a27f5ac8a2ae441c..e2aadb941413d6a797ead54c2dfcb380324de5ee 100644<span class="info"> (file)</span><br/> </div> <div class="diff from_file">--- a/<a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/include/catalog/pg_attribute.h;h=7f4d308e8ddfdd11dc957503a27f5ac8a2ae441c">src/include/catalog/pg_attribute.h</a></div> <div class="diff to_file">+++ b/<a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/include/catalog/pg_attribute.h;h=e2aadb941413d6a797ead54c2dfcb380324de5ee;hb=4f622503d">src/include/catalog/pg_attribute.h</a></div> <div class="diff chunk_header"><span class="chunk_info">@@ <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/include/catalog/pg_attribute.h;h=7f4d308e8ddfdd11dc957503a27f5ac8a2ae441c#l158">-158,22</a> <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/include/catalog/pg_attribute.h;h=e2aadb941413d6a797ead54c2dfcb380324de5ee;hb=4f622503d#l158">+158,22</a> @@</span><span class="section">&nbsp;CATALOG(pg_attribute,1249,AttributeRelationId)&nbsp;BKI_BOOTSTRAP&nbsp;BKI_ROWTYPE_OID(75,</span></div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;Number&nbsp;of&nbsp;times&nbsp;inherited&nbsp;from&nbsp;direct&nbsp;parent&nbsp;relation(s)&nbsp;*/</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;int16&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attinhcount&nbsp;BKI_DEFAULT(0);</div> <div class="diff ctx">&nbsp;</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;/*&nbsp;attribute&#39;s&nbsp;collation,&nbsp;if&nbsp;any&nbsp;*/</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;Oid&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attcollation&nbsp;BKI_LOOKUP_OPT(pg_collation);</div> <div class="diff add">+</div> <div class="diff add">+#ifdef&nbsp;CATALOG_VARLEN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;variable-length/nullable&nbsp;fields&nbsp;start&nbsp;here&nbsp;*/</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;/*&nbsp;NOTE:&nbsp;The&nbsp;following&nbsp;fields&nbsp;are&nbsp;not&nbsp;present&nbsp;in&nbsp;tuple&nbsp;descriptors.&nbsp;*/</div> <div class="diff add">+</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;/*</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;attstattarget&nbsp;is&nbsp;the&nbsp;target&nbsp;number&nbsp;of&nbsp;statistics&nbsp;datapoints&nbsp;to&nbsp;collect</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;during&nbsp;VACUUM&nbsp;ANALYZE&nbsp;of&nbsp;this&nbsp;column.&nbsp;&nbsp;A&nbsp;zero&nbsp;here&nbsp;indicates&nbsp;that&nbsp;we&nbsp;do</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;not&nbsp;wish&nbsp;to&nbsp;collect&nbsp;any&nbsp;stats&nbsp;about&nbsp;this&nbsp;column.&nbsp;A&nbsp;<span class="marked">&quot;-1&quot;&nbsp;here&nbsp;indicates</span></div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<span class="marked">that&nbsp;no&nbsp;value&nbsp;has&nbsp;been&nbsp;explicitly&nbsp;set&nbsp;for&nbsp;this&nbsp;column,&nbsp;so&nbsp;ANALYZE</span></div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;should&nbsp;use&nbsp;the&nbsp;default&nbsp;setting.</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;not&nbsp;wish&nbsp;to&nbsp;collect&nbsp;any&nbsp;stats&nbsp;about&nbsp;this&nbsp;column.&nbsp;A&nbsp;<span class="marked">null&nbsp;value&nbsp;here</span></div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<span class="marked">indicates&nbsp;that&nbsp;no&nbsp;value&nbsp;has&nbsp;been&nbsp;explicitly&nbsp;set&nbsp;for&nbsp;this&nbsp;column,&nbsp;so</span></div> <div class="diff add">+&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<span class="marked">ANALYZE&nbsp;</span>should&nbsp;use&nbsp;the&nbsp;default&nbsp;setting.</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;int16&nbsp;is&nbsp;sufficient&nbsp;for&nbsp;the&nbsp;current&nbsp;max&nbsp;value&nbsp;(MAX_STATISTICS_TARGET).</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;int16&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attstattarget&nbsp;BKI_DEFAULT(-1);</div> <div class="diff rem">-</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;/*&nbsp;attribute&#39;s&nbsp;collation,&nbsp;if&nbsp;any&nbsp;*/</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;Oid&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attcollation&nbsp;BKI_LOOKUP_OPT(pg_collation);</div> <div class="diff rem">-</div> <div class="diff rem">-#ifdef&nbsp;CATALOG_VARLEN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;variable-length&nbsp;fields&nbsp;start&nbsp;here&nbsp;*/</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;/*&nbsp;NOTE:&nbsp;The&nbsp;following&nbsp;fields&nbsp;are&nbsp;not&nbsp;present&nbsp;in&nbsp;tuple&nbsp;descriptors.&nbsp;*/</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;int16&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attstattarget&nbsp;BKI_DEFAULT(_null_)&nbsp;BKI_FORCE_NULL;</div> <div class="diff ctx">&nbsp;</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;Column-level&nbsp;access&nbsp;permissions&nbsp;*/</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;aclitem&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attacl[1]&nbsp;BKI_DEFAULT(_null_);</div> </div> <div class="patch" id="patch14"> <div class="diff header">diff --git <a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/include/commands/vacuum.h;h=5cacefc7670ebe91cd86effe012ef10bf6b858c6">a/src/include/commands/vacuum.h</a> <a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/include/commands/vacuum.h;h=7f623b37fdc9b968b6cda144c29916c2214ce9e9;hb=4f622503d">b/src/include/commands/vacuum.h</a></div> <div class="diff extended_header"> index 5cacefc7670ebe91cd86effe012ef10bf6b858c6..7f623b37fdc9b968b6cda144c29916c2214ce9e9 100644<span class="info"> (file)</span><br/> </div> <div class="diff from_file">--- a/<a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/include/commands/vacuum.h;h=5cacefc7670ebe91cd86effe012ef10bf6b858c6">src/include/commands/vacuum.h</a></div> <div class="diff to_file">+++ b/<a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/include/commands/vacuum.h;h=7f623b37fdc9b968b6cda144c29916c2214ce9e9;hb=4f622503d">src/include/commands/vacuum.h</a></div> <div class="diff chunk_header"><span class="chunk_info">@@ <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/include/commands/vacuum.h;h=5cacefc7670ebe91cd86effe012ef10bf6b858c6#l121">-121,7</a> <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/include/commands/vacuum.h;h=7f623b37fdc9b968b6cda144c29916c2214ce9e9;hb=4f622503d#l121">+121,7</a> @@</span><span class="section">&nbsp;typedef&nbsp;struct&nbsp;VacAttrStats</span></div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;than&nbsp;the&nbsp;underlying&nbsp;column/expression.&nbsp;&nbsp;Therefore,&nbsp;use&nbsp;these&nbsp;fields&nbsp;for</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;information&nbsp;about&nbsp;the&nbsp;datatype&nbsp;being&nbsp;fed&nbsp;to&nbsp;the&nbsp;typanalyze&nbsp;function.</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</div> <div class="diff rem">-&nbsp;&nbsp;&nbsp;int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attstattarget;</div> <div class="diff add">+&nbsp;&nbsp;&nbsp;int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attstattarget;<span class="marked">&nbsp;&nbsp;/*&nbsp;-1&nbsp;to&nbsp;use&nbsp;default&nbsp;*/</span></div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;Oid&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attrtypid;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;type&nbsp;of&nbsp;data&nbsp;being&nbsp;analyzed&nbsp;*/</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;int32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attrtypmod;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;typmod&nbsp;of&nbsp;data&nbsp;being&nbsp;analyzed&nbsp;*/</div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;Form_pg_type&nbsp;attrtype;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;copy&nbsp;of&nbsp;pg_type&nbsp;row&nbsp;for&nbsp;attrtypid&nbsp;*/</div> </div> <div class="patch" id="patch15"> <div class="diff header">diff --git <a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/include/utils/lsyscache.h;h=be9ed70e8413297f9e6744ac64ad8872db9cd81a">a/src/include/utils/lsyscache.h</a> <a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/include/utils/lsyscache.h;h=e4a200b00ec9c15030cdadee53c25a74dacb79bf;hb=4f622503d">b/src/include/utils/lsyscache.h</a></div> <div class="diff extended_header"> index be9ed70e8413297f9e6744ac64ad8872db9cd81a..e4a200b00ec9c15030cdadee53c25a74dacb79bf 100644<span class="info"> (file)</span><br/> </div> <div class="diff from_file">--- a/<a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/include/utils/lsyscache.h;h=be9ed70e8413297f9e6744ac64ad8872db9cd81a">src/include/utils/lsyscache.h</a></div> <div class="diff to_file">+++ b/<a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/include/utils/lsyscache.h;h=e4a200b00ec9c15030cdadee53c25a74dacb79bf;hb=4f622503d">src/include/utils/lsyscache.h</a></div> <div class="diff chunk_header"><span class="chunk_info">@@ <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/include/utils/lsyscache.h;h=be9ed70e8413297f9e6744ac64ad8872db9cd81a#l90">-90,7</a> <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/include/utils/lsyscache.h;h=e4a200b00ec9c15030cdadee53c25a74dacb79bf;hb=4f622503d#l90">+90,6</a> @@</span><span class="section">&nbsp;extern&nbsp;Oid&nbsp;&nbsp;&nbsp;&nbsp;get_opfamily_proc(Oid&nbsp;opfamily,&nbsp;Oid&nbsp;lefttype,&nbsp;Oid&nbsp;righttype,</span></div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int16&nbsp;procnum);</div> <div class="diff ctx">&nbsp;extern&nbsp;char&nbsp;*get_attname(Oid&nbsp;relid,&nbsp;AttrNumber&nbsp;attnum,&nbsp;bool&nbsp;missing_ok);</div> <div class="diff ctx">&nbsp;extern&nbsp;AttrNumber&nbsp;get_attnum(Oid&nbsp;relid,&nbsp;const&nbsp;char&nbsp;*attname);</div> <div class="diff rem">-extern&nbsp;int&nbsp;get_attstattarget(Oid&nbsp;relid,&nbsp;AttrNumber&nbsp;attnum);</div> <div class="diff ctx">&nbsp;extern&nbsp;char&nbsp;get_attgenerated(Oid&nbsp;relid,&nbsp;AttrNumber&nbsp;attnum);</div> <div class="diff ctx">&nbsp;extern&nbsp;Oid&nbsp;get_atttype(Oid&nbsp;relid,&nbsp;AttrNumber&nbsp;attnum);</div> <div class="diff ctx">&nbsp;extern&nbsp;void&nbsp;get_atttypetypmodcoll(Oid&nbsp;relid,&nbsp;AttrNumber&nbsp;attnum,</div> </div> <div class="patch" id="patch16"> <div class="diff header">diff --git <a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/test/regress/expected/create_index.out;h=446cfa678b7c1a5c2c4eee773be5cb0061506303">a/src/test/regress/expected/create_index.out</a> <a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/test/regress/expected/create_index.out;h=79fa117cb54d3674aeda6749d8820d4dc66bb2ed;hb=4f622503d">b/src/test/regress/expected/create_index.out</a></div> <div class="diff extended_header"> index 446cfa678b7c1a5c2c4eee773be5cb0061506303..79fa117cb54d3674aeda6749d8820d4dc66bb2ed 100644<span class="info"> (file)</span><br/> </div> <div class="diff from_file">--- a/<a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/test/regress/expected/create_index.out;h=446cfa678b7c1a5c2c4eee773be5cb0061506303">src/test/regress/expected/create_index.out</a></div> <div class="diff to_file">+++ b/<a class="path" href="/gitweb/?p=postgresql.git;a=blob;f=src/test/regress/expected/create_index.out;h=79fa117cb54d3674aeda6749d8820d4dc66bb2ed;hb=4f622503d">src/test/regress/expected/create_index.out</a></div> <div class="diff chunk_header"><span class="chunk_info">@@ <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/test/regress/expected/create_index.out;h=446cfa678b7c1a5c2c4eee773be5cb0061506303#l2707">-2707,8</a> <a class="list" href="/gitweb/?p=postgresql.git;a=blob;f=src/test/regress/expected/create_index.out;h=79fa117cb54d3674aeda6749d8820d4dc66bb2ed;hb=4f622503d#l2707">+2707,8</a> @@</span><span class="section">&nbsp;SELECT&nbsp;attrelid::regclass,&nbsp;attnum,&nbsp;attstattarget</span></div> <div class="diff ctx">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attrelid&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;attnum&nbsp;|&nbsp;attstattarget&nbsp;</div> <div class="diff ctx">&nbsp;---------------------------+--------+---------------</div> <div class="diff ctx">&nbsp;&nbsp;concur_exprs_index_expr&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;100</div> <div class="diff rem">-&nbsp;concur_exprs_index_pred&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="marked">-1</span></div> <div class="diff rem">-&nbsp;concur_exprs_index_pred_2&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="marked">-1</span></div> <div class="diff add">+&nbsp;concur_exprs_index_pred&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="marked">&nbsp;&nbsp;</span></div> <div class="diff add">+&nbsp;concur_exprs_index_pred_2&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="marked">&nbsp;&nbsp;</span></div> <div class="diff ctx">&nbsp;(3&nbsp;rows)</div> <div class="diff ctx">&nbsp;</div> <div class="diff ctx">&nbsp;DROP&nbsp;TABLE&nbsp;concur_exprs_tab;</div> </div> </div> </div> <div class="page_footer"> <div class="page_footer_text">This is the main PostgreSQL git repository.</div> <a class="rss_logo" href="/gitweb/?p=postgresql.git;a=rss" title="log RSS feed">RSS</a> <a class="rss_logo" href="/gitweb/?p=postgresql.git;a=atom" title="log Atom feed">Atom</a> </div> <script type="text/javascript" src="static/gitweb.js"></script> <script type="text/javascript"> window.onload = function () { var tz_cookie = { name: 'gitweb_tz', expires: 14, path: '/' }; onloadTZSetup('local', tz_cookie, 'datetime'); }; </script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10