mirror of
https://github.com/postgres/postgres.git
synced 2025-04-24 10:47:04 +03:00
Rework code using list_delete_cell() in MergeAttributes
When merging two attributes, we are sure that at least one remains. However, when deleting one element in the attribute list we may finish with an empty list returned as NIL by list_delete_cell(), but the code failed to track that, which is not project-like. Adjust the call so as we check for an empty list, and make use of it in an assertion. This has been introduced by e7b3349, when adding support for CREATE TABLE OF. Author: Mark Dilger Reviewed-by: Álvaro Herrera, Michael Paquier Discussion: https://postgr.es/m/CAE-h2TpPDqSWgOvfvSziOaMngMPwW+QZcmPpY8hQ_KOJ2+3hXQ@mail.gmail.com
This commit is contained in:
parent
5efd604ec0
commit
f7e954ad1c
@ -2088,7 +2088,13 @@ MergeAttributes(List *schema, List *supers, char relpersistence,
|
||||
coldef->cooked_default = restdef->cooked_default;
|
||||
coldef->constraints = restdef->constraints;
|
||||
coldef->is_from_type = false;
|
||||
list_delete_cell(schema, rest, prev);
|
||||
schema = list_delete_cell(schema, rest, prev);
|
||||
|
||||
/*
|
||||
* As two elements are merged and one is removed, we
|
||||
* should never finish with an empty list.
|
||||
*/
|
||||
Assert(schema != NIL);
|
||||
}
|
||||
else
|
||||
ereport(ERROR,
|
||||
|
Loading…
x
Reference in New Issue
Block a user