Re: ALTER command reworks
Dimitri Fontaine <dimitri@2ndquadrant.fr>
From: Dimitri Fontaine <dimitri@2ndQuadrant.fr>
To: Kohei KaiGai <kaigai@kaigai.gr.jp>
Cc: Alvaro Herrera <alvherre@2ndquadrant.com>, Robert Haas <robertmhaas@gmail.com>, PgHacker <pgsql-hackers@postgresql.org>
Date: 2012-12-03T10:27:40Z
Lists: pgsql-hackers
Kohei KaiGai <kaigai@kaigai.gr.jp> writes: > The attached patch is a revised version. I think you fixed all the problems I could see with your patch. It applies cleanly (with some offsets), compiles cleanly (I have a custom Makefile with CUSTOM_COPT=-Werror) and passes regression tests. I'll go mark it as ready for commiter. Thanks! > It follows the manner in ExecAlterObjectSchemaStmt(); that tries to check > name duplication for object classes that support catcache with name-key. > Elsewhere, it calls individual routines for each object class to solve object > name and check namespace conflicts. > For example, RenameFunction() is still called from ExecRenameStmt(), > however, it looks up the given function name and checks namespace > conflict only, then it just invokes AlterObjectRename_internal() in spite > of system catalog updates by itself. I think that's much better this way. > It allows to use this consolidated routine by object classes with special > rule for namespace conflicts, such as collation. > In addition, this design allowed to eliminate get_object_type() to pull > OBJECT_* enum from class_id/object_id pair. Thanks for having done this refactoring. Regards, -- Dimitri Fontaine http://2ndQuadrant.fr PostgreSQL : Expertise, Formation et Support