aboutsummaryrefslogtreecommitdiff
path: root/doc/src
diff options
context:
space:
mode:
authorRobert Haas <rhaas@postgresql.org>2011-07-18 11:02:48 -0400
committerRobert Haas <rhaas@postgresql.org>2011-07-18 11:04:43 -0400
commit367bc426a1c22b9f6badb06cd41fc438fd034639 (patch)
treeeb518f0e9399e0857f0e5f79c10750e1bfdaf909 /doc/src
parent8f8a273c4d2433de57f6f0356f44ab47b7387641 (diff)
downloadpostgresql-367bc426a1c22b9f6badb06cd41fc438fd034639.tar.gz
postgresql-367bc426a1c22b9f6badb06cd41fc438fd034639.zip
Avoid index rebuild for no-rewrite ALTER TABLE .. ALTER TYPE.
Noah Misch. Review and minor cosmetic changes by me.
Diffstat (limited to 'doc/src')
-rw-r--r--doc/src/sgml/xindex.sgml9
1 files changed, 7 insertions, 2 deletions
diff --git a/doc/src/sgml/xindex.sgml b/doc/src/sgml/xindex.sgml
index a90b4e2a725..28324361a95 100644
--- a/doc/src/sgml/xindex.sgml
+++ b/doc/src/sgml/xindex.sgml
@@ -834,8 +834,10 @@ ALTER OPERATOR FAMILY integer_ops USING btree ADD
<para>
In a B-tree operator family, all the operators in the family must sort
compatibly, meaning that the transitive laws hold across all the data types
- supported by the family: <quote>if A = B and B = C, then A =
- C</>, and <quote>if A &lt; B and B &lt; C, then A &lt; C</>. For each
+ supported by the family: <quote>if A = B and B = C, then A = C</>,
+ and <quote>if A &lt; B and B &lt; C, then A &lt; C</>. Moreover, implicit
+ or binary coercion casts between types represented in the operator family
+ must not change the associated sort ordering. For each
operator in the family there must be a support function having the same
two input data types as the operator. It is recommended that a family be
complete, i.e., for each combination of data types, all operators are
@@ -851,6 +853,9 @@ ALTER OPERATOR FAMILY integer_ops USING btree ADD
by the family's equality operators, even when the values are of different
types. This is usually difficult to accomplish when the types have
different physical representations, but it can be done in some cases.
+ Furthermore, casting a value from one data type represented in the operator
+ family to another data type also represented in the operator family via
+ an implicit or binary coercion cast must not change the computed hash value.
Notice that there is only one support function per data type, not one
per equality operator. It is recommended that a family be complete, i.e.,
provide an equality operator for each combination of data types.