arrdom2v1-checkattr.patch

text/plain

Filename: arrdom2v1-checkattr.patch
Type: text/plain
Part: 1
Message: Re: Domains versus polymorphic functions, redux

Patch

Same data as JSON: GET /api/v1/attachments/:id/patch the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes. API reference →
Format: unified
File+
src/backend/catalog/heap.c 0 0
diff --git a/src/backend/catalog/heap.c b/src/backend/catalog/heap.c
index 71c9931..41fd13e 100644
*** a/src/backend/catalog/heap.c
--- b/src/backend/catalog/heap.c
***************
*** 530,536 **** CheckAttributeType(const char *attname,
  
  		containing_rowtypes = list_delete_first(containing_rowtypes);
  	}
! 	else if (OidIsValid((att_typelem = get_element_type(atttypid))))
  	{
  		/*
  		 * Must recurse into array types, too, in case they are composite.
--- 530,536 ----
  
  		containing_rowtypes = list_delete_first(containing_rowtypes);
  	}
! 	else if (OidIsValid((att_typelem = get_base_element_type(atttypid))))
  	{
  		/*
  		 * Must recurse into array types, too, in case they are composite.
diff --git a/src/test/regress/expindex 26e7bfd..f84da45 100644
*** a/src/test/regress/expected/alter_table.out
--- b/src/test/regress/expected/alter_table.out
***************
*** 1516,1521 **** alter table recur1 add column f2 recur1; -- fails
--- 1516,1524 ----
  ERROR:  composite type recur1 cannot be made a member of itself
  alter table recur1 add column f2 recur1[]; -- fails
  ERROR:  composite type recur1 cannot be made a member of itself
+ create domain array_of_recur1 as recur1[];
+ alter table recur1 add column f2 array_of_recur1; -- fails
+ ERROR:  composite type recur1 cannot be made a member of itself
  create temp table recur2 (f1 int, f2 recur1);
  alter table recur1 add column f2 recur2; -- fails
  ERROR:  composite type recur1 cannot be made a member of itself
diff --git a/src/test/regress/sql/alter_table.sqindex 0ed16fb..b5d76ea 100644
*** a/src/test/regress/sql/alter_table.sql
--- b/src/test/regress/sql/alter_table.sql
***************
*** 1128,1133 **** alter table tab1 alter column b type varchar; -- fails
--- 1128,1135 ----
  create temp table recur1 (f1 int);
  alter table recur1 add column f2 recur1; -- fails
  alter table recur1 add column f2 recur1[]; -- fails
+ create domain array_of_recur1 as recur1[];
+ alter table recur1 add column f2 array_of_recur1; -- fails
  create temp table recur2 (f1 int, f2 recur1);
  alter table recur1 add column f2 recur2; -- fails
  alter table recur1 add column f2 int;