Re: "stack depth limit exceeded" executing DELETE FROM

From: Michael Fuhr <mike(at)fuhr(dot)org>
To: "Cox, Brian" <Brian(dot)Cox(at)ca(dot)com>
Cc: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: "stack depth limit exceeded" executing DELETE FROM
Date: 2006-09-05 18:44:50
Message-ID: 20060905184450.GA41016@winnie.fuhr.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

On Tue, Sep 05, 2006 at 02:18:05PM -0400, Cox, Brian wrote:
> The following fails with a "stack depth limit exceeded":
>
> DELETE FROM some-table WHERE pk IN (pk1, pk2, ..., pkN)
>
> where pk = primary key and N is large, may be > 50000.
>
> Is there some limit as to the number of rows that can
> be deleted in a single DELETE?

The error isn't due to the number of rows being deleted but rather
from parsing the large number of items in the IN list. See the
following thread:

http://archives.postgresql.org/pgsql-general/2006-01/msg00959.php

How are you obtaining the N values? A subquery that returns the
equivalent list should work. You could also try increasing
max_stack_depth (or max_expr_depth in 7.4 and earlier), but be sure
to stay within your system's stack depth resource limit.

--
Michael Fuhr

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Tom Lane 2006-09-05 18:59:05 Re: "stack depth limit exceeded" executing DELETE FROM
Previous Message Cox, Brian 2006-09-05 18:18:05 "stack depth limit exceeded" executing DELETE FROM