Re: BUG #18135: Incorrect memory access occurs when attaching a partition with an index
От | Tom Lane |
---|---|
Тема | Re: BUG #18135: Incorrect memory access occurs when attaching a partition with an index |
Дата | |
Msg-id | 1914031.1696215851@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: BUG #18135: Incorrect memory access occurs when attaching a partition with an index (Michael Paquier <michael@paquier.xyz>) |
Список | pgsql-bugs |
Michael Paquier <michael@paquier.xyz> writes: > FWIW, I was thinking about a case like that with 2 index attributes: > info1->attr[0] = 0, info1->attr[1] = 1 > info2->attr[0] = 1, info2->attr[1] = 0 > With a mapping from info2 to info1 like that: > attmap[0] = 1, attmap[1] = 0. > The code before 9f71e10d6 would have accessed an incorrect pointer. > The new code would return false, which would not be correct if the > expressions stored in ii_Expressions for info1/attr0 and info2/attr1 > match? I think "false" is correct. Otherwise you're claiming that an index on (expr, col1) is equivalent to an index on (col1, expr). Maybe it is equivalent for some purposes, but I don't think this function has any business assuming that it is so for all purposes. Also, the pre-existing comment clearly intends that false is the proper result here: * might differ!) Note that this implies that index columns that are * expressions appear in the same positions. We will next compare the * expressions themselves. The code just failed to enforce that fully. regards, tom lane
В списке pgsql-bugs по дате отправления: