Pavan Deolasee wrote: > > Please see updated version of the patch. This includes further code > refactoring and bug fixes. > > heapam code is now refactored and I have also added several comments > in that code as well as vacuum and create index related code. > > In the previous version, we were not collecting aborted heap-only > tuples since they are not part of any chain. This version deals with > such tuples. > > There is also some cleanup in the VACUUM FULL area. Especially > we have dealt with the redirected line pointers by pointing them to > the first non-dead tuple in the chain. Since we hold exclusive lock > on the relation, we can easily do that. > > Anyways, we still need a comprehensive writeup, but if someone > wants to test things further, this patch should be used.
tried to test a bit on my Solaris 10 install(sun studio , 64bit build) but I'm hitting the following while trying to initdb a new cluster: program terminated by signal SEGV (no mapping at the fault address) Current function is PageGetRedirectingOffset 1186 offsets[ItemIdGetRedirect(lp) - 1] = offnum; (dbx) where =>[1] PageGetRedirectingOffset(page = 0xfffffd7ffdf2bea0 "", offsets = 0xfffffd7fffdfd2fc, size = 582), line 1186 in "bufpage.c" [2] lazy_scan_heap(onerel = 0xc7fcd8, vacrelstats = 0xcb9940, Irel = 0xcd0008, nindexes = 2), line 434 in "vacuumlazy.c" [3] lazy_vacuum_rel(onerel = 0xc7fcd8, vacstmt = 0xc34e70, bstrategy = 0xcb76d8), line 187 in "vacuumlazy.c" [4] vacuum_rel(relid = 2608U, vacstmt = 0xc34e70, expected_relkind = 'r'), line 1109 in "vacuum.c" [5] vacuum(vacstmt = 0xc34e70, relids = (nil), bstrategy = 0xcb76d8, isTopLevel = '\001'), line 424 in "vacuum.c" [6] ProcessUtility(parsetree = 0xc34e70, queryString = 0xbcd978 "VACUUM pg_depend;\n", params = (nil), isTopLevel = '\001', dest = 0xb0f440, completionTag = 0xfffffd7fffdff5d0 ""), line 997 in "utility.c" [7] PortalRunUtility(portal = 0xcc5328, utilityStmt = 0xc34e70, isTopLevel = '\001', dest = 0xb0f440, completionTag = 0xfffffd7fffdff5d0 ""), line 1179 in "pquery.c" [8] PortalRunMulti(portal = 0xcc5328, isTopLevel = '\001', dest = 0xb0f440, altdest = 0xb0f440, completionTag = 0xfffffd7fffdff5d0 ""), line 1267 in "pquery.c" [9] PortalRun(portal = 0xcc5328, count = 9223372036854775807, isTopLevel = '\001', dest = 0xb0f440, altdest = 0xb0f440, completionTag = 0xfffffd7fffdff5d0 ""), line 814 in "pquery.c" [10] exec_simple_query(query_string = 0xc34c08 "VACUUM pg_depend;\n"), line 967 in "postgres.c" [11] PostgresMain(argc = 8, argv = 0xb94c68, username = 0xb8dd10 "pgbuild"), line 3527 in "postgres.c" [12] main(argc = 9, argv = 0xb94c60), line 186 in "main.c" Stefan ---------------------------(end of broadcast)--------------------------- TIP 1: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to [EMAIL PROTECTED] so that your message can get through to the mailing list cleanly