Hi, Tom, Thank you so much for pointing out the problems. The first one seems very silly :-(. For the second one, I may stay out of trouble if I don't use transform() at all (I can tolerate some error without transform), am I right? --- On Wed 07/11, Tom Lane < tgl@xxxxxxxxxxxxx > wrote: From: Tom Lane [mailto: tgl@xxxxxxxxxxxxx] To: delphet@xxxxxxxxxx Cc: pgsql-general@xxxxxxxxxxxxxx Date: Wed, 11 Jul 2007 15:33:41 -0400 Subject: Re: [GENERAL] exit code -1073741819 "Shuo Liu" <delphet@xxxxxxxxxx> writes:>> Whoa ... that is a whole lot more data than I'm used to seeing in>> TopMemoryContext. How many stats dump lines are there exactly (from>> here to the crash report)? > OK, I didn't know that was a surprise. There are about 600 stats dump lines > in between.Well, my suspicion was correct: there were boatloads of memory contexts,but we weren't seeing all of them. The answer is twofold:1. Your function is opening a cursor (maybe more than one, I didn't readtoo carefully) on each iteration, and not closing it. This results ina sizable amount of memory being eaten --- it looks like a couplehundred K per cursor on my machine. Eventually you run out of memory.2. PostGIS has a bug that causes a guaranteed crash once you run out ofmemory, if you've been using transform(), because it sets up a memorycontext that has no stats() method. That's why the context statsprintout failed partway through --- it crashed as soon as it came toone of the PostGIS contexts.I've complained to the PostGIS folk about the latter, and hopefullythey'll fix it in their next release. Meanwhile, you need to be morecareful about closing cursors when you're done with them. regards, tom lane---------------------------(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 _______________________________________________ Join Excite! - http://www.excite.com The most personalized portal on the Web!