Skip to content

Commit a08a2ae

Browse files
peterepull[bot]
authored andcommitted
Simplify information schema check constraint deparsing
The computation of the column information_schema.check_constraints.check_clause used pg_get_constraintdef() plus some string manipulation to get the check clause back out. This ended up with an extra pair of parentheses, which is only an aesthetic problem, but also with suffixes like "NOT VALID", which don't belong into that column. We can fix both of these problems and simplify the code by just using pg_get_expr() instead. Discussion: https://www.postgresql.org/message-id/799b59ef-3330-f0d2-ee23-8cdfa1740987@eisentraut.org
1 parent 9ab8acc commit a08a2ae

File tree

2 files changed

+2
-3
lines changed

2 files changed

+2
-3
lines changed

src/backend/catalog/information_schema.sql

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -435,8 +435,7 @@ CREATE VIEW check_constraints AS
435435
SELECT CAST(current_database() AS sql_identifier) AS constraint_catalog,
436436
CAST(rs.nspname AS sql_identifier) AS constraint_schema,
437437
CAST(con.conname AS sql_identifier) AS constraint_name,
438-
CAST(substring(pg_get_constraintdef(con.oid) from 7) AS character_data)
439-
AS check_clause
438+
CAST(pg_get_expr(con.conbin, coalesce(c.oid, 0)) AS character_data) AS check_clause
440439
FROM pg_constraint con
441440
LEFT OUTER JOIN pg_namespace rs ON (rs.oid = con.connamespace)
442441
LEFT OUTER JOIN pg_class c ON (c.oid = con.conrelid)

src/include/catalog/catversion.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,6 @@
5757
*/
5858

5959
/* yyyymmddN */
60-
#define CATALOG_VERSION_NO 202309181
60+
#define CATALOG_VERSION_NO 202309221
6161

6262
#endif

0 commit comments

Comments
 (0)