Fix pg_dump to not emit invalid SQL for an empty operator class.
This is a backport of the below commit from upstream to handle empty operator classes in pg_dump. The bug was first found in Greenplum but applied as an upstream-first fix. Cherry-picking was not possible due to interim changes not yet in Greenplum. commit 0461b66e Author: Tom Lane <tgl@sss.pgh.pa.us> Date: Fri May 26 12:51:05 2017 -0400 Fix pg_dump to not emit invalid SQL for an empty operator class. If an operator class has no operators or functions, and doesn't need a STORAGE clause, we emitted "CREATE OPERATOR CLASS ... AS ;" which is syntactically invalid. Fix by forcing a STORAGE clause to be emitted anyway in this case. (At some point we might consider changing the grammar to allow CREATE OPERATOR CLASS without an opclass_item_list. But probably we'd want to omit the AS in that case, so that wouldn't fix this pg_dump issue anyway.) It's been like this all along, so back-patch to all supported branches. Daniel Gustafsson, tweaked by me to avoid a dangling-pointer bug Discussion: https://postgr.es/m/D9E5FC64-7A37-4F3D-B946-7E4FB468F88A@yesql.se
Showing
想要评论请 注册 或 登录