aboutsummaryrefslogtreecommitdiff
path: root/src/include/utils/builtins.h
diff options
context:
space:
mode:
authorKevin Grittner <kgrittn@postgresql.org>2013-10-09 14:26:09 -0500
committerKevin Grittner <kgrittn@postgresql.org>2013-10-09 14:26:09 -0500
commitf566515192461acd8d9c232f48ddac3fc965cfd8 (patch)
treed8609adb64a67bcaadbd1142bd074911aa158d87 /src/include/utils/builtins.h
parent1cccce50f374cfc6081850aedce8eb0f8b274bc5 (diff)
downloadpostgresql-f566515192461acd8d9c232f48ddac3fc965cfd8.tar.gz
postgresql-f566515192461acd8d9c232f48ddac3fc965cfd8.zip
Add record_image_ops opclass for matview concurrent refresh.
REFRESH MATERIALIZED VIEW CONCURRENTLY was broken for any matview containing a column of a type without a default btree operator class. It also did not produce results consistent with a non- concurrent REFRESH or a normal view if any column was of a type which allowed user-visible differences between values which compared as equal according to the type's default btree opclass. Concurrent matview refresh was modified to use the new operators to solve these problems. Documentation was added for record comparison, both for the default btree operator class for record, and the newly added operators. Regression tests now check for proper behavior both for a matview with a box column and a matview containing a citext column. Reviewed by Steve Singer, who suggested some of the doc language.
Diffstat (limited to 'src/include/utils/builtins.h')
-rw-r--r--src/include/utils/builtins.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/include/utils/builtins.h b/src/include/utils/builtins.h
index a5a0561a4a5..ce3f00bc12d 100644
--- a/src/include/utils/builtins.h
+++ b/src/include/utils/builtins.h
@@ -631,6 +631,13 @@ extern Datum record_gt(PG_FUNCTION_ARGS);
extern Datum record_le(PG_FUNCTION_ARGS);
extern Datum record_ge(PG_FUNCTION_ARGS);
extern Datum btrecordcmp(PG_FUNCTION_ARGS);
+extern Datum record_image_eq(PG_FUNCTION_ARGS);
+extern Datum record_image_ne(PG_FUNCTION_ARGS);
+extern Datum record_image_lt(PG_FUNCTION_ARGS);
+extern Datum record_image_gt(PG_FUNCTION_ARGS);
+extern Datum record_image_le(PG_FUNCTION_ARGS);
+extern Datum record_image_ge(PG_FUNCTION_ARGS);
+extern Datum btrecordimagecmp(PG_FUNCTION_ARGS);
/* ruleutils.c */
extern bool quote_all_identifiers;