Merge branch '3.3.x'

This commit is contained in:
Marc Alexander 2020-08-12 22:00:37 +02:00
commit a4572ff16b
No known key found for this signature in database
GPG key ID: 50E0D2423696F995
2 changed files with 14 additions and 14 deletions

View file

@ -208,16 +208,16 @@ class postgres_extractor extends base_extractor
} }
// Generate constraint clauses for CHECK constraints // Generate constraint clauses for CHECK constraints
$sql_checks = "SELECT conname as index_name, consrc $sql_checks = "SELECT pc.conname AS index_name, pg_get_constraintdef(pc.oid)
FROM pg_constraint, pg_class bc FROM pg_constraint pc, pg_class bc
WHERE conrelid = bc.oid WHERE pc.conrelid = bc.oid
AND bc.relname = '" . $this->db->sql_escape($table_name) . "' AND bc.relname = '" . $this->db->sql_escape($table_name) . "'
AND NOT EXISTS ( AND NOT EXISTS (
SELECT * SELECT *
FROM pg_constraint as c, pg_inherits as i FROM pg_constraint AS c, pg_inherits AS i
WHERE i.inhrelid = pg_constraint.conrelid WHERE i.inhrelid = pc.conrelid
AND c.conname = pg_constraint.conname AND c.conname = pc.conname
AND c.consrc = pg_constraint.consrc AND pg_get_constraintdef(c.oid) = pg_get_constraintdef(pc.oid)
AND c.conrelid = i.inhparent AND c.conrelid = i.inhparent
)"; )";
$result = $this->db->sql_query($sql_checks); $result = $this->db->sql_query($sql_checks);

View file

@ -559,16 +559,16 @@ class postgres extends tools
// we don't want to double up on constraints if we change different number data types // we don't want to double up on constraints if we change different number data types
if (isset($column_data['constraint'])) if (isset($column_data['constraint']))
{ {
$constraint_sql = "SELECT consrc as constraint_data $constraint_sql = "SELECT pg_get_constraintdef(pc.oid) AS constraint_data
FROM pg_constraint, pg_class bc FROM pg_constraint pc, pg_class bc
WHERE conrelid = bc.oid WHERE conrelid = bc.oid
AND bc.relname = '{$table_name}' AND bc.relname = '" . $this->db->sql_escape($table_name) . "'
AND NOT EXISTS ( AND NOT EXISTS (
SELECT * SELECT *
FROM pg_constraint as c, pg_inherits as i FROM pg_constraint AS c, pg_inherits AS i
WHERE i.inhrelid = pg_constraint.conrelid WHERE i.inhrelid = pc.conrelid
AND c.conname = pg_constraint.conname AND c.conname = pc.conname
AND c.consrc = pg_constraint.consrc AND pg_get_constraintdef(c.oid) = pg_get_constraintdef(pc.oid)
AND c.conrelid = i.inhparent AND c.conrelid = i.inhparent
)"; )";