@@ -1163,10 +1163,10 @@ CREATE INDEX test1c_content_y_index ON test1c (content COLLATE "y");
1163
1163
</indexterm>
1164
1164
1165
1165
<para>
1166
- All indexes in <productname>PostgreSQL </> are <firstterm>secondary</>
1166
+ All indexes in <productname>&productname; </> are <firstterm>secondary</>
1167
1167
indexes, meaning that each index is stored separately from the table's
1168
1168
main data area (which is called the table's <firstterm>heap</>
1169
- in <productname>PostgreSQL </> terminology). This means that in an
1169
+ in <productname>&productname; </> terminology). This means that in an
1170
1170
ordinary index scan, each row retrieval requires fetching data from both
1171
1171
the index and the heap. Furthermore, while the index entries that match a
1172
1172
given indexable <literal>WHERE</> condition are usually close together in
@@ -1179,7 +1179,7 @@ CREATE INDEX test1c_content_y_index ON test1c (content COLLATE "y");
1179
1179
</para>
1180
1180
1181
1181
<para>
1182
- To solve this performance problem, <productname>PostgreSQL </>
1182
+ To solve this performance problem, <productname>&productname; </>
1183
1183
supports <firstterm>index-only scans</>, which can answer queries from an
1184
1184
index alone without any heap access. The basic idea is to return values
1185
1185
directly out of each index entry instead of consulting the associated heap
@@ -1226,14 +1226,14 @@ SELECT x FROM tab WHERE x = 'key' AND z < 42;
1226
1226
If these two fundamental requirements are met, then all the data values
1227
1227
required by the query are available from the index, so an index-only scan
1228
1228
is physically possible. But there is an additional requirement for any
1229
- table scan in <productname>PostgreSQL </>: it must verify that each
1229
+ table scan in <productname>&productname; </>: it must verify that each
1230
1230
retrieved row be <quote>visible</> to the query's MVCC snapshot, as
1231
1231
discussed in <xref linkend="mvcc">. Visibility information is not stored
1232
1232
in index entries, only in heap entries; so at first glance it would seem
1233
1233
that every row retrieval would require a heap access anyway. And this is
1234
1234
indeed the case, if the table row has been modified recently. However,
1235
1235
for seldom-changing data there is a way around this
1236
- problem. <productname>PostgreSQL </> tracks, for each page in a table's
1236
+ problem. <productname>&productname; </> tracks, for each page in a table's
1237
1237
heap, whether all rows stored in that page are old enough to be visible to
1238
1238
all current and future transactions. This information is stored in a bit
1239
1239
in the table's <firstterm>visibility map</>. An index-only scan, after
@@ -1284,7 +1284,7 @@ SELECT y FROM tab WHERE x = 'key';
1284
1284
SELECT f(x) FROM tab WHERE f(x) < 1;
1285
1285
</programlisting>
1286
1286
as an index-only scan; and this is very attractive if <literal>f()</> is
1287
- an expensive-to-compute function. However, <productname>PostgreSQL </>'s
1287
+ an expensive-to-compute function. However, <productname>&productname; </>'s
1288
1288
planner is currently not very smart about such cases. It considers a
1289
1289
query to be potentially executable by index-only scan only when
1290
1290
all <emphasis>columns</> needed by the query are available from the index.
@@ -1300,7 +1300,7 @@ SELECT f(x) FROM tab WHERE f(x) < 1;
1300
1300
indexable <literal>WHERE</> clauses to the index column. It will usually
1301
1301
get this right in simple queries such as shown above, but not in queries
1302
1302
that involve joins. These deficiencies may be remedied in future versions
1303
- of <productname>PostgreSQL </>.
1303
+ of <productname>&productname; </>.
1304
1304
</para>
1305
1305
1306
1306
<para>
@@ -1321,7 +1321,7 @@ SELECT target FROM tests WHERE subject = 'some-subject' AND success;
1321
1321
not need to recheck that part of the <literal>WHERE</> clause at run time:
1322
1322
all entries found in the index necessarily have <literal>success = true</>
1323
1323
so this need not be explicitly checked in the
1324
- plan. <productname>PostgreSQL </> versions 9.6 and later will recognize
1324
+ plan. <productname>&productname; </> versions 9.6 and later will recognize
1325
1325
such cases and allow index-only scans to be generated, but older versions
1326
1326
will not.
1327
1327
</para>