BUG #15539: Deadcode in OpenTableList
От | PG Bug reporting form |
---|---|
Тема | BUG #15539: Deadcode in OpenTableList |
Дата | |
Msg-id | 15539-06d00ef6b1e2e1bb@postgresql.org обсуждение исходный текст |
Ответы |
Re: BUG #15539: Deadcode in OpenTableList
|
Список | pgsql-bugs |
The following bug has been logged on the website: Bug reference: 15539 Logged by: Pan Bian Email address: bianpan2016@163.com PostgreSQL version: 11.1 Operating system: Linux Description: File: src/backend/commands/publicationcmds.c Function: OpenTableList Issue details: The function OpenTableList performs the condition check " if (list_member_oid(relids, childrelid))" twice. The second condition will always evaluate to FALSE. As a result, the code (i.e., heap_close) on the true branch of the second condition check is deadcode. For your convenience, I copy-and-paste related code as follows. static List * OpenTableList(List *tables) { ... foreach(lc, tables) { ... if (recurse) { ... foreach(child, children) { Oid childrelid = lfirst_oid(child); if (list_member_oid(relids, childrelid)) //### first check continue; /* * Skip duplicates if user specified both parent and child * tables. */ if (list_member_oid(relids, childrelid)) //### second check, always be false { //### deadcode heap_close(rel, ShareUpdateExclusiveLock); continue; } /* find_all_inheritors already got lock */ rel = heap_open(childrelid, NoLock); rels = lappend(rels, rel); relids = lappend_oid(relids, childrelid); } } } list_free(relids); return rels; } Thank you, Pan Bian
В списке pgsql-bugs по дате отправления: