OK, running the latest patch. Observations: 1. Confirmed that time for count(*) on narrow sets is greatly improved: A real easy way to show this off is:
select count(*) from generate_series(1,(10^6)::integer); with about a 60% drop in time on my XP box. 2. Did ISAM style record iteration over relatively large (50k records) bill of materials. This was previous test where I reported no performance gain...for a single user (n=1). For n=6, I am seeing about a 20% reduction in the overall running time of the test, and a greatly improved overall responsiveness of the server while running the test. I tested this by doing select * from medium_sized_table while 6 backends were busy feeding records to the ISAM app. While pg under 0 load might serve the table in one second, with the n=6 test running the time might (on win32) take 5 minutes. On linux, the worst case time was around 1/(n*2). Qingqing's patch brings win32 much closer to linux! 3. A pl/pgsql function stuck in a empty loop is unkillable except by killing the process on the server, which cycles the entire server. This was the behavior before the patch, btw. I ran tests for about an hour, randomly killing/canceling backends without any problems. Merlin ---------------------------(end of broadcast)--------------------------- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match