提交 1e5eb160 编写于 作者: B Bruce Momjian

Change -> and <- to use proper ampersand markups.

HEAD and 8.0.X.
上级 082283b9
<!--
$PostgreSQL: pgsql/doc/src/sgml/cvs.sgml,v 1.30 2005/01/06 01:49:22 tgl Exp $
$PostgreSQL: pgsql/doc/src/sgml/cvs.sgml,v 1.31 2005/01/22 22:06:17 momjian Exp $
-->
<appendix id="cvs">
......@@ -214,7 +214,7 @@ $ cvs checkout -r REL6_4 tc
<programlisting>
file1 file2 file3 file4 file5
1.1 1.1 1.1 1.1 /--1.1* <-*- TAG
1.1 1.1 1.1 1.1 /--1.1* &lt;-*- TAG
1.2*- 1.2 1.2 -1.2*-
1.3 \- 1.3*- 1.3 / 1.3
1.4 \ 1.4 / 1.4
......
<!--
$PostgreSQL: pgsql/doc/src/sgml/indexcost.sgml,v 2.18 2003/11/29 19:51:37 pgsql Exp $
$PostgreSQL: pgsql/doc/src/sgml/indexcost.sgml,v 2.19 2005/01/22 22:06:17 momjian Exp $
-->
<chapter id="indexcost">
......@@ -205,7 +205,7 @@ amcostestimate (Query *root,
<programlisting>
*indexSelectivity = clauselist_selectivity(root, indexQuals,
rel->relid, JOIN_INNER);
rel-&gt;relid, JOIN_INNER);
</programlisting>
</para>
</step>
......
<!--
$PostgreSQL: pgsql/doc/src/sgml/plhandler.sgml,v 1.4 2005/01/05 23:42:03 tgl Exp $
$PostgreSQL: pgsql/doc/src/sgml/plhandler.sgml,v 1.5 2005/01/22 22:06:17 momjian Exp $
-->
<chapter id="plhandler">
......@@ -121,7 +121,7 @@ plsample_call_handler(PG_FUNCTION_ARGS)
/*
* Called as a trigger procedure
*/
TriggerData *trigdata = (TriggerData *) fcinfo->context;
TriggerData *trigdata = (TriggerData *) fcinfo-&gt;context;
retval = ...
}
......
<!--
$PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.321 2005/01/15 21:11:46 tgl Exp $
$PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.322 2005/01/22 22:06:17 momjian Exp $
-->
<appendix id="release">
......@@ -7138,7 +7138,7 @@ Added documentation to tarball.
<programlisting>
Fix many CLUSTER failures (Tom)
Allow ALTER TABLE RENAME works on indexes (Tom)
Fix plpgsql to handle datetime->timestamp and timespan->interval (Bruce)
Fix plpgsql to handle datetime-&gt;timestamp and timespan-&gt;interval (Bruce)
New configure --with-setproctitle switch to use setproctitle() (Marc, Bruce)
Fix the off by one errors in ResultSet from 6.5.3, and more.
jdbc ResultSet fixes (Joseph Shraibman)
......@@ -8017,7 +8017,7 @@ Add Win1250 (Czech) support (Pavel Behal)
<programlisting>
Bug Fixes
---------
Fix text<->float8 and text<->float4 conversion functions(Thomas)
Fix text&lt;-&gt;float8 and text&lt;-&gt;float4 conversion functions(Thomas)
Fix for creating tables with mixed-case constraints(Billy)
Change exp()/pow() behavior to generate error on underflow/overflow(Jan)
Fix bug in pg_dump -z
......@@ -9225,7 +9225,7 @@ Check explicitly for points and polygons contained within polygons
using an axis-crossing algorithm(Thomas)
Add routine to convert circle-box(Thomas)
Merge conflicting operators for different geometric data types(Thomas)
Replace distance operator "<===>" with "<->"(Thomas)
Replace distance operator "<===>" with "&lt;-&gt;"(Thomas)
Replace "above" operator "!^" with "&gt;^" and "below" operator "!|" with "&lt;^"(Thomas)
Add routines for text trimming on both ends, substring, and string position(Thomas)
Added conversion routines circle(box) and poly(circle)(Thomas)
......@@ -10093,9 +10093,9 @@ more compliant to the SQL-92 standard):
char(N), varchar(N), date and time.
The following are aliases to existing postgres types:
smallint -> int2
integer, int -> int4
float, real -> float4
smallint -&gt; int2
integer, int -&gt; int4
float, real -&gt; float4
char(N) and varchar(N) are implemented as truncated text types. In
addition, char(N) does blank-padding.
* single-quote (') is used for quoting string literals; '' (in addition to
......
<!-- $PostgreSQL: pgsql/doc/src/sgml/rules.sgml,v 1.37 2004/12/30 03:13:56 tgl Exp $ -->
<!-- $PostgreSQL: pgsql/doc/src/sgml/rules.sgml,v 1.38 2005/01/22 22:06:27 momjian Exp $ -->
<Chapter Id="rules">
<Title>The Rule System</Title>
......@@ -1565,26 +1565,26 @@ UPDATE shoelace_data
<literallayout class="monospaced">
Nested Loop
-> Merge Join
-> Seq Scan
-> Sort
-> Seq Scan on s
-> Seq Scan
-> Sort
-> Seq Scan on shoelace_arrive
-> Seq Scan on shoelace_data
-&gt; Merge Join
-&gt; Seq Scan
-&gt; Sort
-&gt; Seq Scan on s
-&gt; Seq Scan
-&gt; Sort
-&gt; Seq Scan on shoelace_arrive
-&gt; Seq Scan on shoelace_data
</literallayout>
while omitting the extra range table entry would result in a
<literallayout class="monospaced">
Merge Join
-> Seq Scan
-> Sort
-> Seq Scan on s
-> Seq Scan
-> Sort
-> Seq Scan on shoelace_arrive
-&gt; Seq Scan
-&gt; Sort
-&gt; Seq Scan on s
-&gt; Seq Scan
-&gt; Sort
-&gt; Seq Scan on shoelace_arrive
</literallayout>
which produces exactly the same entries in the log table. Thus,
......@@ -1943,8 +1943,8 @@ DELETE FROM software WHERE computer.hostname = 'mypc.local.net'
<literallayout class="monospaced">
Nestloop
-> Index Scan using comp_hostidx on computer
-> Index Scan using soft_hostidx on software
-&gt; Index Scan using comp_hostidx on computer
-&gt; Index Scan using soft_hostidx on software
</literallayout>
So there would be not that much difference in speed between
......@@ -1973,9 +1973,9 @@ DELETE FROM software WHERE computer.hostname >= 'old' AND computer.hostname < 'o
<literallayout class="monospaced">
Hash Join
-> Seq Scan on software
-> Hash
-> Index Scan using comp_hostidx on computer
-&gt; Seq Scan on software
-&gt; Hash
-&gt; Index Scan using comp_hostidx on computer
</literallayout>
The other possible command is
......@@ -1989,8 +1989,8 @@ DELETE FROM computer WHERE hostname ~ '^old';
<literallayout class="monospaced">
Nestloop
-> Index Scan using comp_hostidx on computer
-> Index Scan using soft_hostidx on software
-&gt; Index Scan using comp_hostidx on computer
-&gt; Index Scan using soft_hostidx on software
</literallayout>
This shows, that the planner does not realize that the
......@@ -2030,8 +2030,8 @@ DELETE FROM software WHERE computer.manufacurer = 'bim'
<ProgramListing>
Nestloop
-> Index Scan using comp_manufidx on computer
-> Index Scan using soft_hostidx on software
-&gt; Index Scan using comp_manufidx on computer
-&gt; Index Scan using soft_hostidx on software
</ProgramListing>
In any of these cases, the extra commands from the rule system
......
<!--
$PostgreSQL: pgsql/doc/src/sgml/spi.sgml,v 1.37 2004/12/30 21:45:37 tgl Exp $
$PostgreSQL: pgsql/doc/src/sgml/spi.sgml,v 1.38 2005/01/22 22:06:27 momjian Exp $
-->
<chapter id="spi">
......@@ -2931,19 +2931,19 @@ execq(text *sql, int cnt)
*/
if (ret == SPI_OK_SELECT && SPI_processed > 0)
{
TupleDesc tupdesc = SPI_tuptable->tupdesc;
TupleDesc tupdesc = SPI_tuptable-&gt;tupdesc;
SPITupleTable *tuptable = SPI_tuptable;
char buf[8192];
int i, j;
for (j = 0; j < proc; j++)
{
HeapTuple tuple = tuptable->vals[j];
HeapTuple tuple = tuptable-&gt;vals[j];
for (i = 1, buf[0] = 0; i <= tupdesc->natts; i++)
for (i = 1, buf[0] = 0; i <= tupdesc-&gt;natts; i++)
snprintf(buf + strlen (buf), sizeof(buf) - strlen(buf), " %s%s",
SPI_getvalue(tuple, tupdesc, i),
(i == tupdesc->natts) ? " " : " |");
(i == tupdesc-&gt;natts) ? " " : " |");
elog (INFO, "EXECQ: %s", buf);
}
}
......
<!--
$PostgreSQL: pgsql/doc/src/sgml/trigger.sgml,v 1.39 2004/12/30 03:13:56 tgl Exp $
$PostgreSQL: pgsql/doc/src/sgml/trigger.sgml,v 1.40 2005/01/22 22:06:27 momjian Exp $
-->
<chapter id="triggers">
......@@ -271,10 +271,10 @@ CALLED_AS_TRIGGER(fcinfo)
</programlisting>
which expands to
<programlisting>
((fcinfo)->context != NULL && IsA((fcinfo)->context, TriggerData))
((fcinfo)-&gt;context != NULL && IsA((fcinfo)-&gt;context, TriggerData))
</programlisting>
If this returns true, then it is safe to cast
<literal>fcinfo->context</> to type <literal>TriggerData
<literal>fcinfo-&gt;context</> to type <literal>TriggerData
*</literal> and make use of the pointed-to
<structname>TriggerData</> structure. The function must
<emphasis>not</emphasis> alter the <structname>TriggerData</>
......@@ -393,8 +393,8 @@ typedef struct TriggerData
A pointer to a structure describing the relation that the trigger fired for.
Look at <filename>utils/rel.h</> for details about
this structure. The most interesting things are
<literal>tg_relation->rd_att</> (descriptor of the relation
tuples) and <literal>tg_relation->rd_rel->relname</>
<literal>tg_relation-&gt;rd_att</> (descriptor of the relation
tuples) and <literal>tg_relation-&gt;rd_rel-&gt;relname</>
(relation name; the type is not <type>char*</> but
<type>NameData</>; use
<literal>SPI_getrelname(tg_relation)</> to get a <type>char*</> if you
......@@ -541,7 +541,7 @@ PG_FUNCTION_INFO_V1(trigf);
Datum
trigf(PG_FUNCTION_ARGS)
{
TriggerData *trigdata = (TriggerData *) fcinfo->context;
TriggerData *trigdata = (TriggerData *) fcinfo-&gt;context;
TupleDesc tupdesc;
HeapTuple rettuple;
char *when;
......@@ -554,22 +554,22 @@ trigf(PG_FUNCTION_ARGS)
elog(ERROR, "trigf: not called by trigger manager");
/* tuple to return to executor */
if (TRIGGER_FIRED_BY_UPDATE(trigdata->tg_event))
rettuple = trigdata->tg_newtuple;
if (TRIGGER_FIRED_BY_UPDATE(trigdata-&gt;tg_event))
rettuple = trigdata-&gt;tg_newtuple;
else
rettuple = trigdata->tg_trigtuple;
rettuple = trigdata-&gt;tg_trigtuple;
/* check for null values */
if (!TRIGGER_FIRED_BY_DELETE(trigdata->tg_event)
&& TRIGGER_FIRED_BEFORE(trigdata->tg_event))
if (!TRIGGER_FIRED_BY_DELETE(trigdata-&gt;tg_event)
&& TRIGGER_FIRED_BEFORE(trigdata-&gt;tg_event))
checknull = true;
if (TRIGGER_FIRED_BEFORE(trigdata->tg_event))
if (TRIGGER_FIRED_BEFORE(trigdata-&gt;tg_event))
when = "before";
else
when = "after ";
tupdesc = trigdata->tg_relation->rd_att;
tupdesc = trigdata-&gt;tg_relation-&gt;rd_att;
/* connect to SPI manager */
if ((ret = SPI_connect()) < 0)
......@@ -582,8 +582,8 @@ trigf(PG_FUNCTION_ARGS)
elog(NOTICE, "trigf (fired %s): SPI_exec returned %d", when, ret);
/* count(*) returns int8, so be careful to convert */
i = DatumGetInt64(SPI_getbinval(SPI_tuptable->vals[0],
SPI_tuptable->tupdesc,
i = DatumGetInt64(SPI_getbinval(SPI_tuptable-&gt;vals[0],
SPI_tuptable-&gt;tupdesc,
1,
&amp;isnull));
......
<!--
$PostgreSQL: pgsql/doc/src/sgml/xfunc.sgml,v 1.96 2005/01/14 21:46:09 jurka Exp $
$PostgreSQL: pgsql/doc/src/sgml/xfunc.sgml,v 1.97 2005/01/22 22:06:27 momjian Exp $
-->
<sect1 id="xfunc">
......@@ -1482,8 +1482,8 @@ makepoint(Point *pointx, Point *pointy)
{
Point *new_point = (Point *) palloc(sizeof(Point));
new_point->x = pointx->x;
new_point->y = pointy->y;
new_point-&gt;x = pointx-&gt;x;
new_point-&gt;y = pointy-&gt;y;
return new_point;
}
......@@ -1665,8 +1665,8 @@ makepoint(PG_FUNCTION_ARGS)
Point *pointy = PG_GETARG_POINT_P(1);
Point *new_point = (Point *) palloc(sizeof(Point));
new_point->x = pointx->x;
new_point->y = pointy->y;
new_point-&gt;x = pointx-&gt;x;
new_point-&gt;y = pointy-&gt;y;
PG_RETURN_POINT_P(new_point);
}
......@@ -2447,7 +2447,7 @@ my_set_returning_function(PG_FUNCTION_ARGS)
if (SRF_IS_FIRSTCALL())
{
funcctx = SRF_FIRSTCALL_INIT();
oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
oldcontext = MemoryContextSwitchTo(funcctx-&gt;multi_call_memory_ctx);
/* One-time setup code appears here: */
<replaceable>user code</replaceable>
<replaceable>if returning composite</replaceable>
......@@ -2503,7 +2503,7 @@ testpassbyval(PG_FUNCTION_ARGS)
funcctx = SRF_FIRSTCALL_INIT();
/* switch to memory context appropriate for multiple function calls */
oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
oldcontext = MemoryContextSwitchTo(funcctx-&gt;multi_call_memory_ctx);
/* total number of tuples to be returned */
funcctx-&gt;max_calls = PG_GETARG_UINT32(0);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册