[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
|
Список | 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 по дате отправления: