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
This commit is contained in:
parent
48e2b234f8
commit
e59fcbd712
@ -435,8 +435,7 @@ CREATE VIEW check_constraints AS
|
||||
SELECT CAST(current_database() AS sql_identifier) AS constraint_catalog,
|
||||
CAST(rs.nspname AS sql_identifier) AS constraint_schema,
|
||||
CAST(con.conname AS sql_identifier) AS constraint_name,
|
||||
CAST(substring(pg_get_constraintdef(con.oid) from 7) AS character_data)
|
||||
AS check_clause
|
||||
CAST(pg_get_expr(con.conbin, coalesce(c.oid, 0)) AS character_data) AS check_clause
|
||||
FROM pg_constraint con
|
||||
LEFT OUTER JOIN pg_namespace rs ON (rs.oid = con.connamespace)
|
||||
LEFT OUTER JOIN pg_class c ON (c.oid = con.conrelid)
|
||||
|
@ -57,6 +57,6 @@
|
||||
*/
|
||||
|
||||
/* yyyymmddN */
|
||||
#define CATALOG_VERSION_NO 202309181
|
||||
#define CATALOG_VERSION_NO 202309221
|
||||
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user