- Notifications
You must be signed in to change notification settings - Fork5
Commita210be7
committed
Fix dangling-pointer problem in before-row update trigger processing.
ExecUpdate checked for whether ExecBRUpdateTriggers had returned a newtuple value by seeing if the returned tuple was pointer-equal to the oldone. But the "old one" was in estate->es_junkFilter's result slot, whichwould be scribbled on if we had done an EvalPlanQual update in response toa concurrent update of the target tuple; therefore we were comparing adangling pointer to a live one. Given the right set of circumstances wecould get a false match, resulting in not forcing the tuple to be stored inthe slot we thought it was stored in. In the case reported by Maxim Bogukin bug #5798, this led to "cannot extract system attribute from virtualtuple" failures when trying to do "RETURNING ctid". I believe there is avery-low-probability chance of more serious errors, such as generatingincorrect index entries based on the original rather than thetrigger-modified version of the row.In HEAD, change all of ExecBRInsertTriggers, ExecIRInsertTriggers,ExecBRUpdateTriggers, and ExecIRUpdateTriggers so that they continue tohave similar APIs. In the back branches I just changedExecBRUpdateTriggers, since there is no bug in the ExecBRInsertTriggerscase.1 parentfee7802 commita210be7
File tree
4 files changed
+161
-144
lines changed- src
- backend
- commands
- executor
- include/commands
4 files changed
+161
-144
lines changedLines changed: 14 additions & 15 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1836 | 1836 |
| |
1837 | 1837 |
| |
1838 | 1838 |
| |
1839 |
| - | |
| 1839 | + | |
1840 | 1840 |
| |
1841 | 1841 |
| |
1842 | 1842 |
| |
| |||
1932 | 1932 |
| |
1933 | 1933 |
| |
1934 | 1934 |
| |
1935 |
| - | |
1936 |
| - | |
| 1935 | + | |
| 1936 | + | |
| 1937 | + | |
| 1938 | + | |
1937 | 1939 |
| |
1938 | 1940 |
| |
1939 | 1941 |
| |
| |||
1960 | 1962 |
| |
1961 | 1963 |
| |
1962 | 1964 |
| |
| 1965 | + | |
1963 | 1966 |
| |
1964 | 1967 |
| |
1965 | 1968 |
| |
| |||
1983 | 1986 |
| |
1984 | 1987 |
| |
1985 | 1988 |
| |
| 1989 | + | |
| 1990 | + | |
| 1991 | + | |
| 1992 | + | |
1986 | 1993 |
| |
1987 | 1994 |
| |
1988 | 1995 |
| |
1989 | 1996 |
| |
1990 | 1997 |
| |
1991 | 1998 |
| |
1992 |
| - | |
1993 |
| - | |
1994 |
| - | |
| 1999 | + | |
1995 | 2000 |
| |
1996 |
| - | |
| 2001 | + | |
1997 | 2002 |
| |
1998 |
| - | |
1999 |
| - | |
2000 |
| - | |
2001 |
| - | |
2002 |
| - | |
| 2003 | + | |
| 2004 | + | |
2003 | 2005 |
| |
2004 | 2006 |
| |
2005 | 2007 |
| |
2006 | 2008 |
| |
2007 | 2009 |
| |
2008 | 2010 |
| |
2009 |
| - | |
2010 |
| - | |
2011 |
| - | |
2012 | 2011 |
| |
2013 | 2012 |
| |
2014 | 2013 |
| |
|
Lines changed: 120 additions & 35 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1909 | 1909 |
| |
1910 | 1910 |
| |
1911 | 1911 |
| |
1912 |
| - | |
| 1912 | + | |
1913 | 1913 |
| |
1914 |
| - | |
| 1914 | + | |
1915 | 1915 |
| |
1916 | 1916 |
| |
1917 |
| - | |
| 1917 | + | |
| 1918 | + | |
1918 | 1919 |
| |
1919 | 1920 |
| |
1920 | 1921 |
| |
| |||
1947 | 1948 |
| |
1948 | 1949 |
| |
1949 | 1950 |
| |
1950 |
| - | |
| 1951 | + | |
1951 | 1952 |
| |
1952 | 1953 |
| |
1953 |
| - | |
| 1954 | + | |
| 1955 | + | |
| 1956 | + | |
| 1957 | + | |
| 1958 | + | |
| 1959 | + | |
| 1960 | + | |
| 1961 | + | |
| 1962 | + | |
| 1963 | + | |
| 1964 | + | |
| 1965 | + | |
| 1966 | + | |
| 1967 | + | |
| 1968 | + | |
| 1969 | + | |
| 1970 | + | |
| 1971 | + | |
1954 | 1972 |
| |
1955 |
| - | |
| 1973 | + | |
1956 | 1974 |
| |
1957 | 1975 |
| |
1958 | 1976 |
| |
| |||
1966 | 1984 |
| |
1967 | 1985 |
| |
1968 | 1986 |
| |
1969 |
| - | |
| 1987 | + | |
1970 | 1988 |
| |
1971 |
| - | |
| 1989 | + | |
1972 | 1990 |
| |
1973 | 1991 |
| |
1974 |
| - | |
| 1992 | + | |
| 1993 | + | |
1975 | 1994 |
| |
1976 | 1995 |
| |
1977 | 1996 |
| |
| |||
2004 | 2023 |
| |
2005 | 2024 |
| |
2006 | 2025 |
| |
2007 |
| - | |
| 2026 | + | |
2008 | 2027 |
| |
2009 | 2028 |
| |
2010 |
| - | |
| 2029 | + | |
| 2030 | + | |
| 2031 | + | |
| 2032 | + | |
| 2033 | + | |
| 2034 | + | |
| 2035 | + | |
| 2036 | + | |
| 2037 | + | |
| 2038 | + | |
| 2039 | + | |
| 2040 | + | |
| 2041 | + | |
| 2042 | + | |
| 2043 | + | |
| 2044 | + | |
| 2045 | + | |
| 2046 | + | |
2011 | 2047 |
| |
2012 |
| - | |
| 2048 | + | |
2013 | 2049 |
| |
2014 | 2050 |
| |
2015 | 2051 |
| |
| |||
2257 | 2293 |
| |
2258 | 2294 |
| |
2259 | 2295 |
| |
2260 |
| - | |
| 2296 | + | |
2261 | 2297 |
| |
2262 | 2298 |
| |
2263 |
| - | |
| 2299 | + | |
2264 | 2300 |
| |
2265 | 2301 |
| |
| 2302 | + | |
| 2303 | + | |
2266 | 2304 |
| |
2267 | 2305 |
| |
2268 | 2306 |
| |
2269 |
| - | |
2270 | 2307 |
| |
2271 | 2308 |
| |
2272 | 2309 |
| |
2273 | 2310 |
| |
| 2311 | + | |
2274 | 2312 |
| |
2275 | 2313 |
| |
2276 | 2314 |
| |
2277 |
| - | |
| 2315 | + | |
2278 | 2316 |
| |
2279 | 2317 |
| |
2280 |
| - | |
| 2318 | + | |
2281 | 2319 |
| |
2282 |
| - | |
| 2320 | + | |
| 2321 | + | |
| 2322 | + | |
| 2323 | + | |
| 2324 | + | |
| 2325 | + | |
| 2326 | + | |
2283 | 2327 |
| |
2284 | 2328 |
| |
2285 |
| - | |
| 2329 | + | |
| 2330 | + | |
| 2331 | + | |
| 2332 | + | |
| 2333 | + | |
2286 | 2334 |
| |
2287 | 2335 |
| |
2288 | 2336 |
| |
| |||
2314 | 2362 |
| |
2315 | 2363 |
| |
2316 | 2364 |
| |
2317 |
| - | |
| 2365 | + | |
2318 | 2366 |
| |
2319 | 2367 |
| |
2320 |
| - | |
| 2368 | + | |
| 2369 | + | |
| 2370 | + | |
| 2371 | + | |
2321 | 2372 |
| |
2322 | 2373 |
| |
2323 |
| - | |
| 2374 | + | |
| 2375 | + | |
| 2376 | + | |
| 2377 | + | |
| 2378 | + | |
| 2379 | + | |
| 2380 | + | |
| 2381 | + | |
| 2382 | + | |
| 2383 | + | |
| 2384 | + | |
| 2385 | + | |
| 2386 | + | |
| 2387 | + | |
| 2388 | + | |
| 2389 | + | |
| 2390 | + | |
| 2391 | + | |
2324 | 2392 |
| |
2325 | 2393 |
| |
2326 | 2394 |
| |
| |||
2342 | 2410 |
| |
2343 | 2411 |
| |
2344 | 2412 |
| |
2345 |
| - | |
| 2413 | + | |
2346 | 2414 |
| |
2347 |
| - | |
| 2415 | + | |
2348 | 2416 |
| |
2349 | 2417 |
| |
| 2418 | + | |
| 2419 | + | |
2350 | 2420 |
| |
2351 |
| - | |
2352 |
| - | |
| 2421 | + | |
2353 | 2422 |
| |
2354 | 2423 |
| |
2355 | 2424 |
| |
| |||
2367 | 2436 |
| |
2368 | 2437 |
| |
2369 | 2438 |
| |
2370 |
| - | |
| 2439 | + | |
2371 | 2440 |
| |
2372 | 2441 |
| |
2373 |
| - | |
2374 |
| - | |
| 2442 | + | |
| 2443 | + | |
2375 | 2444 |
| |
2376 | 2445 |
| |
2377 | 2446 |
| |
2378 |
| - | |
| 2447 | + | |
2379 | 2448 |
| |
2380 | 2449 |
| |
2381 | 2450 |
| |
2382 | 2451 |
| |
2383 |
| - | |
2384 |
| - | |
2385 |
| - | |
| 2452 | + | |
| 2453 | + | |
2386 | 2454 |
| |
2387 |
| - | |
| 2455 | + | |
| 2456 | + | |
| 2457 | + | |
| 2458 | + | |
| 2459 | + | |
| 2460 | + | |
| 2461 | + | |
| 2462 | + | |
| 2463 | + | |
| 2464 | + | |
| 2465 | + | |
| 2466 | + | |
| 2467 | + | |
| 2468 | + | |
| 2469 | + | |
| 2470 | + | |
| 2471 | + | |
| 2472 | + | |
2388 | 2473 |
| |
2389 |
| - | |
| 2474 | + | |
2390 | 2475 |
| |
2391 | 2476 |
| |
2392 | 2477 |
| |
|
0 commit comments
Comments
(0)