[v9.2] DROP Reworks Part.1 - Consolidate routines to handle DropStmt

Поиск
Список
Период
Сортировка
От Kohei KaiGai
Тема [v9.2] DROP Reworks Part.1 - Consolidate routines to handle DropStmt
Дата
Msg-id BANLkTi=jtKuUBF2B5eKC7oS1E-FwY4KFmw@mail.gmail.com
обсуждение исходный текст
Ответы Re: [v9.2] DROP Reworks Part.1 - Consolidate routines to handle DropStmt  (Kohei KaiGai <kaigai@kaigai.gr.jp>)
Список pgsql-hackers
The attached patch can be applied on the part-0 patch, and enables to
consolidate routines to handle DropStmt into one common function;
    void RemoveObjects(DropStmt *stmt);

The top-half of object deletion steps are almost consist of the following steps.
1) Look up object-Id of the supplied object name
   If not found, it raises an error or a notice with skip this deletion.
2) Apply ownership checks on the target object itself or the schema
that underlies
  the target object.
3) Add the ObjectAddress of the target object into ObjectAddresses, then invokes
   performMultipleDeletions() or performDeletion().

However, we don't need to have individual routines for each object classes,
because get_object_address takes up the portion of (1), and
check_object_ownership also takes up the portion of (2).
Here is no differences between most of objects classes on the (3).

So, the new RemoveObjects() consolidates routines to handle DropStmt for
each object classes. Instead of this common function, the following routines
were eliminated.
  RemoveRelations(DropStmt *drop);
  RemoveTypes(DropStmt *drop);
  DropCollationsCommand(DropStmt *drop);
  DropConversionsCommand(DropStmt *drop);
  RemoveSchemas(DropStmt *drop);
  RemoveTSParsers(DropStmt *drop);
  RemoveTSDictionaries(DropStmt *drop);
  RemoveTSTemplates(DropStmt *drop);
  RemoveTSConfigurations(DropStmt *drop);
  RemoveExtensions(DropStmt *drop);

Routines to handle other DROP statement (such as RemoveFuncStmt or
DropPLangStmt) are not scope of this patch to restrain the patch size.
However, it is not a tough work to fit these objects with this structure.
(It may need a discussion for databases, tablespaces and roles)

Thanks,
--
KaiGai Kohei <kaigai@kaigai.gr.jp>

Вложения

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Franklin Haut
Дата:
Сообщение: Re: 9.1 beta1 error
Следующее
От: Bruce Momjian
Дата:
Сообщение: Re: Creating new remote branch in git?