'hits': [{
'title': h[3],
'url': "%s%s" % (h[1], h[2]),
- 'abstract': h[4].replace("[[[[[[", "<b>").replace("]]]]]]","</b>"),
+ 'abstract': h[4].replace("[[[[[[", "<strong>").replace("]]]]]]","</strong>"),
'rank': h[5]} for h in hits[:-1]],
})
</p>
<p>
Please note that if you are using your account from a different
-community site than <i>www.postgresql.org</i>, you may need to log
+community site than <em>www.postgresql.org</em>, you may need to log
out and back in again for the email to be updated on that site.
</p>
{%else%}
<h1>{{title}}s</h1>
<p>
Objects in red are awaiting moderator approval. Note that modifying a previously
-approved object <i>may</i> result in it being un-approved if the changes are
+approved object <em>may</em> result in it being un-approved if the changes are
extensive.
</p>
<ul>
<h1>Organisations</h1>
<p>
The following organisations are registered in our database. Note that any
-organisations listed as <i>Migrated Connections</i> are organisations that
+organisations listed as <em>Migrated Connections</em> are organisations that
have been migrated from our old website and not been given a proper
manager in the new system. If you are the manager of one of these
organisations, please send an email to
</tr>
<tr>
<th>Email</th>
- <td>{{user.email}} {%if can_change_email%}(<i><a href="change_email/">change</a></i>){%else%}
+ <td>{{user.email}} {%if can_change_email%}(<em><a href="change_email/">change</a></em>){%else%}
<br/><br/>
The email address of this account cannot be changed, because the account does
not have a local password, most likely because it's connected to a third
{%extends "admin/base.html"%}
-{%block branding%}Welcome to the PostgreSQL website administration site | <b><a href="/admin/pending/">Pending</a></b> moderation | <b><a href="/admin/purge/">Purge</a></b> from frontend{%endblock%}
+{%block branding%}Welcome to the PostgreSQL website administration site | <strong><a href="/admin/pending/">Pending</a></strong> moderation | <strong><a href="/admin/purge/">Purge</a></strong> from frontend{%endblock%}
{%block extrahead%}
<link rel="stylesheet" href="/media/css/jquery-ui.css" type="text/css">
</ul>
<p>
{%if original.org.email%}
-New notification: <input type="text" name="new_notification" style="width:400px;" /> (<b>Note!</b> This comment is emailed to the organisation!)<br/>
+New notification: <input type="text" name="new_notification" style="width:400px;" /> (<strong>Note!</strong> This comment is emailed to the organisation!)<br/>
To send a notification on rejection, first add the notification above and hit
"Save and continue editing". Then as a separate step, delete the record.
{%else%}
-Organisation has <b>no email</b>, so cannot send notifications to it!
+Organisation has <strong>no email</strong>, so cannot send notifications to it!
{%endif%}
</p>
<hr/>
{%if not forloop.first %}/{%endif%}
{%if ver.version.current %}
{%if ver.version == page.version %}
- <b>current ({{ver.display_version}})</b>
+ <strong>current ({{ver.display_version}})</strong>
{%else%}
<a href="/docs/current/static/{{ver.file}}" title="This page in current version">current</a>
(<a href="/docs/{{ver.display_version}}/static/{{ver.file}}" title="This page in version {{ver.display_version}}">{{ver.display_version}}</a>)
{%endif%}
{%else%}
{%if ver.version == page.version %}
- <b>{{ver.display_version}}</b>
+ <strong>{{ver.display_version}}</strong>
{%else%}
<a href="/docs/{{ver.display_version}}/static/{{ver.file}}" title="This page in version {{ver.display_version}}">{{ver.display_version}}</a>
{%endif%}
{%for ver in devel_versions %}
{%if not forloop.first %}/{%endif%}
{%if ver.version == page.version %}
- <b>{{ver.display_version}}</b>
+ <strong>{{ver.display_version}}</strong>
{% else %}
<a href="/docs/{{ver.display_version}}/static/{{ver.file}}" title="This page in version {{ver.display_version}}" rel="nofollow">{{ver.display_version}}</a>
{%endif%}
{%for ver in unsupported_versions %}
{%if not forloop.first %}/{%endif%}
{%if ver.version == page.version %}
- <b>{{ver.display_version}}</b>
+ <strong>{{ver.display_version}}</strong>
{% else %}
<a href="/docs/{{ver.display_version}}/static/{{ver.file}}" title="This page in version {{ver.display_version}}" rel="nofollow">{{ver.display_version}}</a>
{%endif%}
{%endblock%}
{%block contents%}
<h1>Choose a download mirror</h1>
-<p><b>Downloading: </b> {{path}}</p>
+<p><strong>Downloading:</strong> {{path}}</p>
{%if near_mirrors%}
-<p><b>We think these mirrors are near you:</b></p>
+<p><strong>We think these mirrors are near you:</strong></p>
<div id="nearmirrorwrap">
{%for mirror in near_mirrors%}
{%include "downloads/inc_mirror.html"%}
</div>
{%endif%}
-<p><b>Choose any other mirror in the world:</b></p>
+<p><strong>Choose any other mirror in the world:</strong></p>
<div id="mainmirrorwrap">
{%for mirror in all_mirrors%}
{%include "downloads/inc_mirror.html"%}
{%endfor%}
-<p><i><b>Note:</b> The PostgreSQL Global Development Group do not endorse or
+<p><em><strong>Note:</strong> The PostgreSQL Global Development Group do not endorse or
recommend any products listed, and cannot vouch for the quality or reliability
-of any of them.</i></p>
+of any of them.</em></p>
{%endblock%}
</p>
<p>
The most common reason for tihs error is that your browser
-<b>does not allow cookies</b> on this request. Cookies are required for the
+<strong>does not allow cookies</strong> on this request. Cookies are required for the
cross site protection to work.
</p>
<p>
-The internal reason given was: <i>{{reason}}</i>
+The internal reason given was: <em>{{reason}}</em>
</p>
{%endblock%}
{%for eventblock in eventblocks%}
{%if eventblocks|length > 1%}<h2><a name="{{eventblock.anchor|slugify}}">{{eventblock.name}}</a></h2>{%endif%}
<p>
-<i><b>Note:</b> The PostgreSQL Global Development Group does not endorse any
+<em><strong>Note:</strong> The PostgreSQL Global Development Group does not endorse any
events run by third parties. No guarantee of the quality of events is offered
-whatsoever. For information on <a href="/community/recognition/#conferences">Community Conference Recognition</a>, please review the guidelines <a href="/community/recognition/#conferences">here</a>.</i>
+whatsoever. For information on <a href="/community/recognition/#conferences">Community Conference Recognition</a>, please review the guidelines <a href="/community/recognition/#conferences">here</a>.</em>
</p>
{%for event in eventblock.events %}
<div><a href="/about/event/{{event.id}}/">{{event.title}}</a></div>
-<div>Date: <b>{{event.displaydate|safe}}</b></div>
-<div>Location: <b>{{event.locationstring}}</b></div>
-{%if event.language%}<div>Language: <b>{{event.language}}</b></div>{%endif%}
+<div>Date: <strong>{{event.displaydate|safe}}</strong></div>
+<div>Location: <strong>{{event.locationstring}}</strong></div>
+{%if event.language%}<div>Language: <strong>{{event.language}}</strong></div>{%endif%}
<div>
{{event.summary|markdown}}
</div>
{%block title%}{{obj.title}}{%endblock%}
{%block contents%}
<h1>{{obj.title}}</h1>
-<div class="eventdate">Date: <b>{{obj.displaydate|safe}}</b></div>
+<div class="eventdate">Date: <strong>{{obj.displaydate|safe}}</strong></div>
<div>Location: {{obj.locationstring}}</div>
{%if obj.language%}<div>Language: {{obj.language}}</div>{%endif%}
{{obj.details|markdown}}
{%if obj.has_organisation%}
<p>Posted by {{obj.org}}{%if obj.org.email%} ({{obj.org.email}}){%endif%}.</p>
{%else%}
-<p><i>This event has been migrated from a previous version of the PostgreSQL
-website. We apologise for any formatting issues caused by the migration.</i></p>
+<p><em>This event has been migrated from a previous version of the PostgreSQL
+website. We apologise for any formatting issues caused by the migration.</em></p>
{%endif%}
<p>
-<i><b>Note:</b> The PostgreSQL Global Development Group does not endorse any
+<em><strong>Note:</strong> The PostgreSQL Global Development Group does not endorse any
events run by third parties. No guarantee of the quality of events is offered
-whatsoever.</i>
+whatsoever.</em>
</p>
{%endblock%}
<div id="pgFrontFeature">
<div id="pgFrontFeatureContent">
- <p><b>1<sup>st</sup> March 2018</b></p>
+ <p><strong>1<sup>st</sup> March 2018</strong></p>
<h1 id="txtFrontFeatureHeading">
PostgreSQL 10.3 Released!
<h3 class="txtHomeHeader">> Featured User</h3>
<div id="pgFrontUserContent">
<div id="txtFrontUserText">{{quote.quote}}</div>
- <div id="txtFrontUserName"><b>{{quote.who}}, <a href="{{quote.link}}">{{quote.org}}</a></b></div>
+ <div id="txtFrontUserName"><strong>{{quote.who}}, <a href="{{quote.link}}">{{quote.org}}</a></strong></div>
<div id="txtFrontUserLink">
<img src="/media/img/layout/blt_blu_arrow.png" width="6" height="5" alt="" /><a href="/about/casestudies">Case Studies</a><span class="txtDivider">|</span><a href="/about/quotesarchive" title="See more quotes">More Quotes</a><span class="txtDivider">|</span><a href="/about/users" title="See featured users">Featured Users</a>
</div>
<h3 class="txtHomeHeader">> Latest Releases</h3>
<div id="pgFrontLatestReleasesWrap">
{%for v in versions %}
- <b>{{v.numtree}}.{{v.latestminor}}</b> · {{v.reldate}} · <a href="/docs/{{v.numtree}}/static/{{v.relnotes}}">Notes</a>
+ <strong>{{v.numtree}}.{{v.latestminor}}</strong> · {{v.reldate}} · <a href="/docs/{{v.numtree}}/static/{{v.relnotes}}">Notes</a>
<br />
{%endfor%}
</div>
- <div id="pgFrontLatestReleasesNote"><b><a href="/download">Download</a></b> | <a href="/versions.rss" title="Versions RSS Feed"><img class="pgRSSImage" src="/media/img/misc/ico_rss.png" width="28" height="13" alt="Versions RSS Feed" /></a><br /><a href="/support/versioning">Why should I upgrade?</a><br/><a href="/developer/roadmap/">Upcoming releases</a></div>
+ <div id="pgFrontLatestReleasesNote"><strong><a href="/download">Download</a></strong> | <a href="/versions.rss" title="Versions RSS Feed"><img class="pgRSSImage" src="/media/img/misc/ico_rss.png" width="28" height="13" alt="Versions RSS Feed" /></a><br /><a href="/support/versioning">Why should I upgrade?</a><br/><a href="/developer/roadmap/">Upcoming releases</a></div>
</div> <!-- pgFrontLatestreleases -->
<div id="pgFrontShortcuts">
<h3 class="txtHomeHeader">> Shortcuts</h3>
<p>
By submitting a bug through this form you agree that all contents of the bug report,
-including your personal information as listed, will be posted to the <b>public</b>
+including your personal information as listed, will be posted to the <strong>public</strong>
<a href="/list/pgsql-bugs/">pgsql-bugs</a> mailing list, and archived in the
-<b>public</b> list archives.
+<strong>public</strong> list archives.
</p>
{%block title%}{{obj.title}}{%endblock%}
{%block contents%}
<h1>{{obj.title}}</h1>
-<div class="newsdate">Posted on <b>{{obj.displaydate}}</b></div>
+<div class="newsdate">Posted on <strong>{{obj.displaydate}}</strong></div>
{{obj.content|markdown}}
{%if obj.is_migrated%}
-<p><i>This post has been migrated from a previous version of the PostgreSQL
-website. We apologise for any formatting issues caused by the migration.</i></p>
+<p><em>This post has been migrated from a previous version of the PostgreSQL
+website. We apologise for any formatting issues caused by the migration.</em></p>
{%endif%}
{%for t in obj.tags.all%}
<span class="newstag"><a href="/about/newsarchive/{{t.urlname}}/">{{t.name}}</a></span>
{%for obj in news %}
<h2><a href="/about/news/{{obj.id}}/">{{obj.title}}</a></h2>
-<div class="newsdate">Posted on <b>{{obj.displaydate}}</b></div>
+<div class="newsdate">Posted on <strong>{{obj.displaydate}}</strong></div>
{{obj.content|markdown|striptags|truncatewords:20}}
{%endfor%}
<p><a href="/account/news/new/">Submit news</a></p>
of data it can manage and in the number of concurrent users it can
accommodate. There are active PostgreSQL instances in production environments that
manage many terabytes of data, as well as clusters managing petabytes. Some general PostgreSQL limits are
-included in the table below. </p><div class="informaltable"><a name="table1"></a><table border="0"><colgroup><col /><col /></colgroup><thead><tr><th><span class="bold"><b>Limit</b></span></th><th><span class="bold"><b>Value</b></span></th></tr></thead><tbody><tr><td>Maximum Database Size</td><td>Unlimited</td></tr><tr><td>Maximum Table Size</td><td>32 TB</td></tr><tr><td>Maximum Row Size</td><td>1.6 TB</td></tr><tr><td>Maximum Field Size</td><td>1 GB</td></tr><tr><td>Maximum Rows per Table</td><td>Unlimited</td></tr><tr><td>Maximum Columns per Table</td><td>250 - 1600 depending on column types</td></tr><tr><td>Maximum Indexes per Table</td><td>Unlimited</td></tr></tbody></table></div>
+included in the table below. </p><div class="informaltable"><a name="table1"></a><table border="0"><colgroup><col /><col /></colgroup><thead><tr><th><span class="bold"><strong>Limit</strong></span></th><th><span class="bold"><strong>Value</strong></span></th></tr></thead><tbody><tr><td>Maximum Database Size</td><td>Unlimited</td></tr><tr><td>Maximum Table Size</td><td>32 TB</td></tr><tr><td>Maximum Row Size</td><td>1.6 TB</td></tr><tr><td>Maximum Field Size</td><td>1 GB</td></tr><tr><td>Maximum Rows per Table</td><td>Unlimited</td></tr><tr><td>Maximum Columns per Table</td><td>250 - 1600 depending on column types</td></tr><tr><td>Maximum Indexes per Table</td><td>Unlimited</td></tr></tbody></table></div>
<p>PostgreSQL has won <a href="/about/quotesarchive">praise from its users</a> and <a href="/about/awards">industry recognition</a>, including the Linux New Media Award for Best Database System and five time winner of the The Linux Journal Editors' Choice Award for best DBMS.
</p>
<a name="immunity"></a>
<h2>Immunity to over-deployment</h2>
-<p>Over-deployment is what some proprietary database vendors regard as their #1 licence compliance problem. With PostgreSQL, no-one can sue you for breaking licensing agreements, as there is <b>no associated licensing cost for the software.</b></p>
+<p>Over-deployment is what some proprietary database vendors regard as their #1 licence compliance problem. With PostgreSQL, no-one can sue you for breaking licensing agreements, as there is <strong>no associated licensing cost for the software.</strong></p>
<p>This has several additional advantages:</p>
<ul>
<li>More profitable business models with wide-scale deployment.</li>
<table cellpadding="5">
<tr>
<td colspan="2">
- <b>2008 Developer.com Product of the Year, Database Tool</b>
+ <strong>2008 Developer.com Product of the Year, Database Tool</strong>
<br/>
<br/>
"And the winner is PostgreSQL. This one surprised us and taught us something about our audience base. We need to do a better job of covering this topic! Postgresql.org touts this product as "The world's most advanced open source database" and after seeing the votes, they may just be correct."
<tr><td colspan="2"><hr /></td></tr>
<tr>
<td colspan="2">
- <b>2006 Linux Journal Editors' Choice Awards for Best Database</b>
+ <strong>2006 Linux Journal Editors' Choice Awards for Best Database</strong>
<br/>
<br/>
"It handles everything we throw at it and just keeps working, flawlessly. It's almost invisible from an administrative perspective. It handles huge quantities of data, and it has all of the goodies that we expect in a relational database (such as referential integrity, column-level constraints and checks, server-side functions, subselects and unions). The original 8.1 release, which came out in November 2005, included a number of new features, such as two-phase commits. We can't recommend PostgreSQL highly enough."
<tr><td colspan="2"><hr /></td></tr>
<tr>
<td colspan="2">
- <b>2005 Linux Journal Editors' Choice Awards for Best Database</b>
+ <strong>2005 Linux Journal Editors' Choice Awards for Best Database</strong>
<br/>
<br/>
"More and more organizations are working with high-end database systems but can't afford, or don't want, a full-time database administrator. PostgreSQL complies with SQL standards but needs less babysitting than complicated legacy databases. Ludovic calls it, "easy to install, configure and relatively easy to tune for performance." In our June 2005 issue, he covered Slony-I, which adds replication to PostgreSQL, giving you multisite redundancy, increased performance or both. Reuven points out that PostgreSQL has programmer-friendly features, which for 8.0, include server-side scripting in Perl."
<tr><td colspan="2"><hr /></td></tr>
<tr>
<td>
- <b>2004 ArsTechnica Best Server Application Award</b>
+ <strong>2004 ArsTechnica Best Server Application Award</strong>
<br/>
<br/>
"It's rare for any kind of sizable organization to not use a database for anything, and to that end, PostgreSQL provides a very reliable solution for Linux users. Sporting many advanced features missing from other available database packages, PostgreSQL is a perennial favorite for many of our developers. "
<tr><td colspan="2"><hr /></td></tr>
<tr>
<td>
- <b>2004 Linux Journal Editors' Choice Awards for Best Database</b>
+ <strong>2004 Linux Journal Editors' Choice Awards for Best Database</strong>
<br/>
<br/>
"I strongly recommend PostgreSQL to anyone who needs a relational database."
<tr><td colspan="2"><hr /></td></tr>
<tr>
<td>
- <b>2004 Linux New Media Award For Best Database</b>
+ <strong>2004 Linux New Media Award For Best Database</strong>
<br/>
<br/>
"The PostgreSQL team has demonstrated that it is possible to produce a database with the price and ease of administration of MySQL, but with the feature set of Oracle. "
<tr><td colspan="2"><hr /></td></tr>
<tr>
<td>
- <b>2003 Linux Journal Editors' Choice Awards for Best Database</b>
+ <strong>2003 Linux Journal Editors' Choice Awards for Best Database</strong>
<br/>
<br/>
</td>
<tr><td colspan="2"><hr /></td></tr>
<tr>
<td>
- <b>2002 Linux New Media Editors Choice Award for Best Database</b>
+ <strong>2002 Linux New Media Editors Choice Award for Best Database</strong>
<br/>
<br/>
</td>
<tr><td colspan="2"><hr /></td></tr>
<tr>
<td>
- <b>2000 Linux Journal Editors' Choice Awards for Best Database</b>
+ <strong>2000 Linux Journal Editors' Choice Awards for Best Database</strong>
<br/>
<br/>
"For ``big-database'' features and the configurability and administration advantages of open source, we give PostgreSQL a big thumbs-up."
<tr><td colspan="2"><hr /></td></tr>
<tr>
<td>
- <b>1999 LinuxWorld Editor's Choice Award for Best Database</b>
+ <strong>1999 LinuxWorld Editor's Choice Award for Best Database</strong>
<br/>
<br/>
</td>
<h1>Frequently Asked Questions</h1>
-<p><b>Q: What is the current version of PostgreSQL?</b><br />
+<p><strong>Q: What is the current version of PostgreSQL?</strong><br />
A: 10, which was released October 5, 2017. This is our 28th major release in 30 years of development. We release a new version of PostgreSQL every year, which is unique among SQL databases.</p>
-<p><b>Q: What will the version number of the next release be? What will the version number of the next patch release be?</b><br />
+<p><strong>Q: What will the version number of the next release be? What will the version number of the next patch release be?</strong><br />
A: The next release of PostgreSQL will be version 11, and will follow a two-part version numbering scheme. So the first patch release for 10 will be 10.1. The version of PostgreSQL released in 2018 will be version 11.</p>
-<p><b>Q: Why are older versions that are labeled 9.6.6 or 9.5.9?</b><br />
+<p><strong>Q: Why are older versions that are labeled 9.6.6 or 9.5.9?</strong><br />
A: Because of the long history of our project the first two decimals are major releases. Thus 9.6, 9.5 etc. were all major releases. Minor releases have numbers like 9.6.6. Since version 10, the project has adopted a two-part version numbering scheme.</p>
-<p><b>Q: How is PostgreSQL licensed? How much does it cost?</b><br />
+<p><strong>Q: How is PostgreSQL licensed? How much does it cost?</strong><br />
A: PostgreSQL is released under the OSI-approved PostgreSQL License. There is no fee, even for use in commercial software products. Please see <a href="/about/licence">the PostgreSQL License</a></p>
-<p><b>Q: How many developers work on PostgreSQL?</b><br />
+<p><strong>Q: How many developers work on PostgreSQL?</strong><br />
A: About 200. As with other open source projects, of course, we depend on hundreds of community members for documentation, translations, advocacy, conferences, website development, infrastructure, and peer-to-peer support.</p>
-<p><b>Q: How many PostgreSQL users are there, worldwide?</b><br />
+<p><strong>Q: How many PostgreSQL users are there, worldwide?</strong><br />
A: Our wide distribution through the open source world and liberal licensing make that a difficult question to answer with any accuracy. 451Research estimates that around 30% of tech companies use PostgreSQL for core applications as of 2012, and around 11% of Debian users worldwide install PostgreSQL. A previous version, 8.0, had an estimated one million downloads within a seven months of release. However, most users get PostgreSQL with a Linux distribution, or with some of the many other products, OSS software, and hardware devices that include PostgreSQL. SDMagazine in a survey in summer 2004 estimated us as the 5th most popular SQL database system in the US for new projects, we are the most popular database download on Freshmeat, and many people have called us the most popular major database system in Japan. We have approximately 35,000 people on our community mailing lists, but of course many users do not subscribe to a list.</p>
-<p><b>Q: Can we talk to some of your users?</b><br />
+<p><strong>Q: Can we talk to some of your users?</strong><br />
A: Please contact press@postgresql.org and our press volunteers will try to arrange a contact.</p>
-<p><b>Q: What company owns PostgreSQL?</b><br />
+<p><strong>Q: What company owns PostgreSQL?</strong><br />
A: None. We are an unincorporated association of volunteers and companies who share code under the PostgreSQL License. The PostgreSQL project involves a couple dozen companies who either support PostgreSQL contributors or directly contribute corporate projects to our repository. Some of our major corporate sponsors are on the <a href="/about/sponsors">sponsors page,</a> and there are many more companies who contribute to the project in other ways.</p>
-<p><b>Q: Where can people get support for PostgreSQL?</b><br />
+<p><strong>Q: Where can people get support for PostgreSQL?</strong><br />
A: There are several companies which provide paid support for PostgreSQL. Most of them are regional in nature. People should contact the nearest regional contact volunteer to be connected with one or more companies, or check our <a href="/support/professional_support/">professional services list</a>.</p>
-<p><b>Q: What's the relationship between the PostgreSQL Project, EnterpriseDB, 2ndQuadrant, CommandPrompt, SRA, Heroku, Crunchy Data and others?</b><br />
+<p><strong>Q: What's the relationship between the PostgreSQL Project, EnterpriseDB, 2ndQuadrant, CommandPrompt, SRA, Heroku, Crunchy Data and others?</strong><br />
A: The PostgreSQL project enjoys the support of multiple companies who sell products or services built with PostgreSQL, and in turn contribute code, money and staff time to the project. None of them "own" PostgreSQL, nor is any individual company responsible for PostgreSQL code development. This is the same as Linux, Apache and FreeBSD.</p>
-<p><b>Q: Does PostgreSQL run on the Cloud?</b><br />
+<p><strong>Q: Does PostgreSQL run on the Cloud?</strong><br />
A: Yes. Like other open source databases, PostgreSQL is easy to run in both containers and virtual machines and is highly portable. Many companies have support for PostgreSQL in cloud hosting environments, including Heroku, Amazon, VMware, Engine Yard, Compose.io, EnterpriseDB, and Red Hat.</p>
-<p><b>Q: How does PostgreSQL compare to MySQL?</b><br />
+<p><strong>Q: How does PostgreSQL compare to MySQL?</strong><br />
A: This is a topic that can start several hours of discussion. As a quick summary, MySQL is the "easy-to-use, web developer" database, and PostgreSQL is the "feature-rich, standards-compliant" database. PostgreSQL is liberally licensed and owned by its community; MySQL is GPL-licensed and owned by Oracle. Beyond that, each database user should make his own evaluation; open source software makes doing comparisons very easy.</p>
-<p><b>Q: How does PostgreSQL compare to Oracle/DB2/MS SQL Server/Informix?</b><br />
+<p><strong>Q: How does PostgreSQL compare to Oracle/DB2/MS SQL Server/Informix?</strong><br />
A: Our feature set is generally considered to be very competitive with other leading SQL RDBMSes. Certainly there are features some of them have which we don't, and the reverse is also true. To date, only a few benchmarks have been published showing PostgreSQL to be within 10-30% of proprietary competitors (sometimes faster, sometimes slower). However, we have had many users migrate from other database systems – primarily Oracle and Informix – and they are completely satisfied with the performance of their PostgreSQL systems.</p>
-<p><b>Q: How does PostgreSQL compare to "NoSQL"?</b><br />
+<p><strong>Q: How does PostgreSQL compare to "NoSQL"?</strong><br />
A: The term "NoSQL" covers such a diverse array of non-relational database implementations ... from tiny embedded databases like BerkeleyDB to massive clustered data processing platforms like Hadoop ... that it's impossible to comment on them as a general class. Non-relational databases preceded relational databases and have existed alongside them for forty years, so choosing between relational and nonrelational databases is nothing new. Users should choose the database whose features, implementation, and community support their current application needs. Further, using multiple different databases for large projects is fast becoming the norm, and PostgreSQL users are no exception.</p>
-<p><b>Q: Are there any published benchmarks for PostgreSQL?</b><br />
+<p><strong>Q: Are there any published benchmarks for PostgreSQL?</strong><br />
A: To date there is one: a <a href="http://www.spec.org/jAppServer2004/results/res2007q3/jAppServer2004-20070703-00073.html">SpecJAppserver2004 benchmark</a>, which at time of publication was within 10% of the leading commercial SQL RDBMS. We are not certain when another benchmark will be published, as verifiable benchmarks are expensive and time-consuming for a not-for-profit community to undertake.</p>
-<p><b>Q: When will PostgreSQL get database server clustering?</b><br />
+<p><strong>Q: When will PostgreSQL get database server clustering?</strong><br />
A: We already have it. Since no one type of clustering satisfies all needs, we have several different clustering tools which take various clustering approaches. The open source projects PostgresXC and Postgres-XL are available, as well as open source forks and proprietary tools such as Greenplum Database, Aster Data, CitusData and several others. Also, PostgreSQL is supported by filesystem-based clustering systems for failover, including ones from Red Hat, Microsoft, Veritas and Oracle.</p>
-<p><b>Q: When will 10 come out?</b><br />
+<p><strong>Q: When will 10 come out?</strong><br />
A: The PostgreSQL project begins work on the next version of PostgreSQL in July of each year, and it generally takes 12 to 15 months to work to a release. So expect 10 around September 2017. We are the only major SQL database which releases every year.</p>
-<p><b>Q: What features will 10 have?</b><br />
+<p><strong>Q: What features will 10 have?</strong><br />
A: As always, we can't be certain what will go in and what won't; the project has strict quality standards that not all patches can make before deadline. All we can tell you is what's currently being worked on, which includes additional parallel operations, aggregation push-down for FDWs, built-in streaming logical replication with pg_logical, SCRAM authentication, improvements to continous backup, improved hash indexes, reduced Write-Ahead Logging, quorum commit for replicas, and several other features. By the time 10 is released, though, this feature list will have changed considerably.</p>
-<p><b>Q: How do you pronounce PostgreSQL</b><br />
+<p><strong>Q: How do you pronounce PostgreSQL</strong><br />
A: post-GRES-que-ell, per this <a href="/files/postgresql.mp3">audio file</a>. Many people, however, just say "post-GRES" or "post-GREZ".</p>
{%endblock%}
<h1>Backend Flowchart</h1>
<center>
-<h3><i>Click on an item</i> to see more detail or look at the full
+<h3><em>Click on an item</em> to see more detail or look at the full
<a href="https://wiki.postgresql.org/wiki/Backend_flowchart">index.</a></h3>
<p><img src="../../../media/img/developer/backend/flow.gif" usemap="#flowmap" alt="flowchart" />
or <a
href="https://git.postgresql.org/gitweb/?p=postgresql.git;a=blob;f=src/include/nodes/parsenodes.h">SelectStmt.</a></p>
-<p>The statement is then identified as complex (<i>SELECT / INSERT /
-UPDATE / DELETE</i>) or simple, e.g <i>CREATE USER, ANALYZE,</i>
+<p>The statement is then identified as complex (<em>SELECT / INSERT /
+UPDATE / DELETE</em>) or simple, e.g <em>CREATE USER, ANALYZE,</em>
etc. Simple utility commands that do not require the executor are processed by statement-specific
functions in the <a href="https://wiki.postgresql.org/wiki/Backend_flowchart#commands">commands</a> module.
Complex statements require more handling.</p>
<p>The parser takes a complex query, and creates a <a
href="https://git.postgresql.org/gitweb/?p=postgresql.git;a=blob;f=src/include/nodes/parsenodes.h">Query</a>
structure that contains all the elements used by complex queries.
-Query.qual holds the <i>WHERE</i> clause qualification, which is filled
+Query.qual holds the <em>WHERE</em> clause qualification, which is filled
in by <a
href="https://git.postgresql.org/gitweb/?p=postgresql.git;a=blob;f=src/backend/parser/parse_clause.c">transformWhereClause().</a>
Each table referenced in the query is represented by a <a
href="https://git.postgresql.org/gitweb/?p=postgresql.git;a=blob;f=src/include/nodes/parsenodes.h">RangeTableEntry,</a>
-and they are linked together to form the <i>range table</i> of the
+and they are linked together to form the <em>range table</em> of the
query, which is generated by <a
href="https://git.postgresql.org/gitweb/?p=postgresql.git;a=blob;f=src/backend/parser/parse_clause.c">transformFromClause().</a>
Query.rtable holds the query's range table.</p>
-<p>Certain queries, like <i>SELECT,</i> return columns of data. Other
-queries, like <i>INSERT</i> and <i>UPDATE,</i> specify the columns
+<p>Certain queries, like <em>SELECT,</em> return columns of data. Other
+queries, like <em>INSERT</em> and <em>UPDATE,</em> specify the columns
modified by the query. These column references are converted to <a
href="https://git.postgresql.org/gitweb/?p=postgresql.git;a=blob;f=src/include/nodes/primnodes.h">TargetEntry</a>
-entries, which are linked together to make up the <i>target list</i> of
+entries, which are linked together to make up the <em>target list</em> of
the query. The target list is stored in Query.targetList, which is
generated by <a
href="https://git.postgresql.org/gitweb/?p=postgresql.git;a=blob;f=src/backend/parser/parse_target.c">transformTargetList().</a></p>
-<p>Other query elements, like aggregates(<i>SUM()</i>), <i>GROUP
-BY,</i> and <i>ORDER BY</i> are also stored in their own Query
+<p>Other query elements, like aggregates(<em>SUM()</em>), <em>GROUP
+BY,</em> and <em>ORDER BY</em> are also stored in their own Query
fields.</p>
<p>The next step is for the Query to be modified by any
-<i>VIEWS</i> or <i>RULES</i> that may apply to the query. This is
+<em>VIEWS</em> or <em>RULES</em> that may apply to the query. This is
performed by the <a href="https://wiki.postgresql.org/wiki/Backend_flowchart#rewrite">rewrite</a>
system.</p>
<p>The <a
href="https://wiki.postgresql.org/wiki/Backend_flowchart#optimizer_path">optimizer</a>
uses the Query structure to determine the best table join order and join
-type of each table in the RangeTable, using Query.qual(<i>WHERE</i>
+type of each table in the RangeTable, using Query.qual(<em>WHERE</em>
clause) to consider optimal index usage.</p> The <a
href="https://wiki.postgresql.org/wiki/Backend_flowchart#optimizer_path">path</a>
module then generates an optimal <a
<h2>Upcoming minor releases</h2>
<p>
-The PostgreSQL project aims to make <i>at least</i> one minor release every quarter,
+The PostgreSQL project aims to make <em>at least</em> one minor release every quarter,
on a predefined schedule. If it becomes necessary due to an important bugfix or
security issue, more releases will be made between these dates, so this list should
be considered a minimum. At each of these dates, a new minor release will be made
<p>
<strong>Be Foresighted:</strong> Include a full plan of action with your proposal, about one half to a full page of what you're going to do and how you think you will do it, and possibly even what you will do if your initial approach does not work.
</p><p>
-<strong>Be Documented:</strong> Include academic references, as links or brief quotes, which back up your ideas. That kind of stuff impresses us. On the other hand, do <i>not</i> include 15 pages of reference materials; we won't read it. Summarize.
+<strong>Be Documented:</strong> Include academic references, as links or brief quotes, which back up your ideas. That kind of stuff impresses us. On the other hand, do <em>not</em> include 15 pages of reference materials; we won't read it. Summarize.
</p><p>
<strong>Be Known:</strong> If you know anyone in open source who can vouch for your code quality
and/or diligence, use them as a reference.
we offered up the TODO list as ideas, but stuff that we'd never thought of
before got moderated up even if it didn't get accepted.
</p><p>
-<strong>Be Realistic:</strong> SoC requires you to <i>complete</i> a project in 3 months or less. So don't be so bold that your proposal can't be finished. One proposal we
+<strong>Be Realistic:</strong> SoC requires you to <em>complete</em> a project in 3 months or less. So don't be so bold that your proposal can't be finished. One proposal we
rejected almost immediately said "As a whole, I think this idea is too large
to be pulled off by one person in 3 months." We agreed.
</p><p>
<b>Current version at publication</b>: 9.0<br />
<b>Format</b>: Paperback<br />
<b>Published</b>: November 2010<br />
- <i>This is the official reference documentation for the PostgreSQL RDBMS, in printed format.</i>
+ <em>This is the official reference documentation for the PostgreSQL RDBMS, in printed format.</em>
</td>
</tr>
<tr>
There are source code and binary <a href="/download/snapshots">packages</a>
of beta and release candidates, and of the current development code available
for testing and evaluation of new features. Note that these builds should
-be used <b>for testing purposes only</b>, and not for production systems.
+be used <strong>for testing purposes only</strong>, and not for production systems.
</p>
<h2>3rd party distributions</h2>
<h3>Big Data Analytics with PostgreSQL</h3>
<p>
<a href="https://2ndquadrant.com/2uda/">2ndQuadrant Unified Data Analytics</a>
-(2UDA – pronounced <i>tudor</i>) is a data analytics application suite
+(2UDA – pronounced <em>tudor</em>) is a data analytics application suite
that unifies databases, spreadsheets, data mining and visualisation in one
seamless desktop installer. Once installed, 2UDA gives users access to the
dramatic data visualisation and data mining capabilities of Orange, utilizing
<h1>Linux downloads (other)</h1>
<p>
-<b>Note!</b> These are the generic Linux download instructions. If you
+<strong>Note!</strong> These are the generic Linux download instructions. If you
are using one of the major Linux distributions, you should read the
distribution specific instructions:
</p>
<option value="wheezy">Wheezy (7.x)</option>
</select>
</li>
- <li>Create the file <i>/etc/apt/sources.list.d/pgdg.list</i>, and add a line
+ <li>Create the file <em>/etc/apt/sources.list.d/pgdg.list</em>, and add a line
for the repository
<code>deb http://apt.postgresql.org/pub/repos/apt/ <span id="series-deb">YOUR_DEBIAN_VERSION_HERE</span>-pgdg main</code>
</li>
<h2>Included in distribution</h2>
<p>
Debian includes PostgreSQL by default. To install PostgreSQL on
-Debian, use the <i>apt-get</i> (or other apt-driving) command:
+Debian, use the <em>apt-get</em> (or other apt-driving) command:
</p>
<code>
apt-get install postgresql-9.6
</p>
<p>
-<i>Note:</i> The installers do not integrate with
+<em>Note:</em> The installers do not integrate with
platform-specific packaging systems.
</p>
</p>
<p>
-<i>Note:</i> The cross distribution packages do not fully integrate with
+<em>Note:</em> The cross distribution packages do not fully integrate with
the platform-specific packaging systems.
</p>
<h2>Included in distribution</h2>
<p>
These distributions all include PostgreSQL by default. To install
-PostgreSQL from these repositories, use the <i>yum</i> command on RHEL 5,6 and 7,
-or <i>dnf</i> command on Fedora 24+:
+PostgreSQL from these repositories, use the <em>yum</em> command on RHEL 5,6 and 7,
+or <em>dnf</em> command on Fedora 24+:
</p>
<p>
<code>
<p>
RPMs for SUSE Linux and openSUSE are available from the
<a href="https://build.opensuse.org/">openSUSE Build Service</a>
-in the project <i>server:database:postgresql</i>.
+in the project <em>server:database:postgresql</em>.
Platform-specific RPM packages are available for PostgreSQL
as well as a variety of related software.
Use the <a href="http://software.opensuse.org/search">search facility</a>
<option value="trusty">Trusty (14.04)</option>
</select>
</li>
- <li>Create the file <i>/etc/apt/sources.list.d/pgdg.list</i>, and add a line
+ <li>Create the file <em>/etc/apt/sources.list.d/pgdg.list</em>, and add a line
for the repository
<code>deb http://apt.postgresql.org/pub/repos/apt/ <span id="series-deb">YOUR_UBUNTU_VERSION_HERE</span>-pgdg main</code>
</li>
<h2>Included in distribution</h2>
<p>
Ubuntu includes PostgreSQL by default. To install PostgreSQL on
-Ubuntu, use the <i>apt-get</i> (or other apt-driving) command:
+Ubuntu, use the <em>apt-get</em> (or other apt-driving) command:
</p>
<code>
apt-get install postgresql-9.6
Development snapshots are built from the latest source code and
beta/rc versions that the developers are working on.
These are 'bleeding edge' versions of PostgreSQL and
-<font color="red"><b>should not be used in production systems</b></font>
+<font color="red"><strong>should not be used in production systems</strong></font>
as they have had little or no testing or quality control.
</p>
<li>Configuration Setting Privilege Escalation: in the event that an attacker
has a legitimate login on the database server, and the server is configured
such that this user name and the database name are identical (e.g. user
- <i>web</i>, database <i>web</i>), then this vulnerability may be used to
+ <em>web</em>, database <em>web</em>), then this vulnerability may be used to
temporarily set one configuration variable with the privileges of the
superuser.</li>
<li>Arbitrary Code Execution: if the attacker meets all of the qualifications
under 2 above, and has the ability to save files to the filesystem as well
- (even to the <i>tmp</i> directory), then they can use the vulnerability to
+ (even to the <em>tmp</em> directory), then they can use the vulnerability to
load and execute arbitrary C code. SELinux will prevent this specific
type of exploit.</li>
</ol>
<table border="0" cellpadding="0" cellspacing="0" class="tblBasicGrey">\r
<tr>\r
<td class="colFirst">Name</td>\r
- <td class="colMid"><b>{{s.org.name}}</b>{%if s.url%} (<a href="{{s.url}}">{{s.url}}</a>){%endif%}</td>\r
+ <td class="colMid"><strong>{{s.org.name}}</strong>{%if s.url%} (<a href="{{s.url}}">{{s.url}}</a>){%endif%}</td>\r
<th class="colLast" />\r
</tr>
{%if s.provides_hosting and s.provides_support %}\r
{%else%}
<!-- docbot goes here -->
{%if hitcount == 0 %}
- <p>Your search for <b>{{query}}</b> returned no hits.</p>
+ <p>Your search for <strong>{{query}}</strong> returned no hits.</p>
{%else%}
<h2>Results {{firsthit}}-{{lasthit}} of {%if hitcount == 1000%}more than 1000{%else%}{{hitcount}}{%endif%}.</h2>
{%if pagelinks %}Result pages: {{pagelinks|safe}}<br/><br/>{%endif%}
{%else%}
<!-- docbot goes here -->
{%if hitcount == 0 %}
- <p>Your search for <b>{{query}}</b> returned no hits.</p>
+ <p>Your search for <strong>{{query}}</strong> returned no hits.</p>
{%else%}
<h2>Results {{firsthit}}-{{lasthit}} of {%if hitcount == 1000%}more than 1000{%else%}{{hitcount}}{%endif%}.</h2>
{%if pagelinks %}Result pages: {{pagelinks|safe}}<br/><br/>{%endif%}
<h1>Versioning policy</h1>
<p>
-<i>We always recommend that all users run the latest available minor release for whatever major version is in use.</i>
+<em>We always recommend that all users run the latest available minor release for whatever major version is in use.</em>
</p>
<p>
</p>
<p>
-Minor releases are numbered by increasing the last part of the version number. Beginning with version 10, this is the second part of the version number, e.g. 10.0 to 10.1; for older versions this is the third part of the version number, e.g. 9.5.3 to 9.5.4. The PostgreSQL team only adds bug fixes to minor releases. All users should upgrade to the most recent minor release as soon as possible. While upgrades always have some risk, PostgreSQL minor releases fix only frequently-encountered, <a href="/support/security">security</a>, and data corruption bugs to reduce the risk associated with upgrading. <i>The community considers not upgrading to be riskier than upgrading</i>.
+Minor releases are numbered by increasing the last part of the version number. Beginning with version 10, this is the second part of the version number, e.g. 10.0 to 10.1; for older versions this is the third part of the version number, e.g. 9.5.3 to 9.5.4. The PostgreSQL team only adds bug fixes to minor releases. All users should upgrade to the most recent minor release as soon as possible. While upgrades always have some risk, PostgreSQL minor releases fix only frequently-encountered, <a href="/support/security">security</a>, and data corruption bugs to reduce the risk associated with upgrading. <em>The community considers not upgrading to be riskier than upgrading</em>.
</p>
<p>
<h2>PostgreSQL release support policy</h2>
<p>
The PostgreSQL project aims to fully support a major release for
-<b>five years</b>. After its end-of-life (EOL) month ends, a major version receives one final <a href="/developer/roadmap/">minor release</a>. After that final minor release, bug fixing ceases for that major version.
+<strong>five years</strong>. After its end-of-life (EOL) month ends, a major version receives one final <a href="/developer/roadmap/">minor release</a>. After that final minor release, bug fixing ceases for that major version.
</p>
<p>
{%block title%}Survey Results: {{survey}}{%endblock%}
{%block contents%}
<h1>Survey Results</h1>
-<p>The current results of our <b>{{survey}}</b> survey are:</p>
+<p>The current results of our <strong>{{survey}}</strong> survey are:</p>
<div class="tblBasic">
<table border="0" cellpadding="0" cellspacing="0" class="tblBasicGrey">
</tr>
{%endfor%}
<tr class="lastrow">
- <td class="colFirst"><b>Total</b></td>
+ <td class="colFirst"><strong>Total</strong></td>
<td class="colMid">{{survey.totalvotes}}</td>
<td class="colLast"></td>
</tr>