Re: Potential ABI breakage in upcoming minor releases
От | Aleksander Alekseev |
---|---|
Тема | Re: Potential ABI breakage in upcoming minor releases |
Дата | |
Msg-id | CAJ7c6TNRV5Bew8K3P_nJOcgT0XCQn-YYWjJ7f1-TF0Zu7qdbpw@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Potential ABI breakage in upcoming minor releases (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: Potential ABI breakage in upcoming minor releases
|
Список | pgsql-hackers |
Hi, > The allocation should be big enough. The other > hazard would be failing to initialize the field, but if the extension > uses InitResultRelInfo then that's taken care of. > So what is timescale doing differently? I see 3 usages of makeNode(ResultRelInfo) in Timescale: - src/nodes/chunk_dispatch/chunk_insert_state.c - src/copy.c - src/ts_catalog/catalog.c In the first case it's followed by InitResultRelInfo(). In the second - by ExecInitResultRelation() in its turn calls InitResultRelInfo(). The third case is the following: ``` extern TSDLLEXPORT ResultRelInfo * ts_catalog_open_indexes(Relation heapRel) { ResultRelInfo *resultRelInfo; resultRelInfo = makeNode(ResultRelInfo); resultRelInfo->ri_RangeTableIndex = 0; /* dummy */ resultRelInfo->ri_RelationDesc = heapRel; resultRelInfo->ri_TrigDesc = NULL; /* we don't fire triggers */ ExecOpenIndices(resultRelInfo, false); return resultRelInfo; } ``` Where it's used from there is hard to track but it looks like this is the reason why the new field ri_needLockTagTuple is not initialized. I'll pass this piece of information to my colleagues. -- Best regards, Aleksander Alekseev
В списке pgsql-hackers по дате отправления: