Re: creating gist index on ltree column failed

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: jian xu <jamesxu(at)outlook(dot)com>
Cc: "pgsql-admin(at)lists(dot)postgresql(dot)org" <pgsql-admin(at)lists(dot)postgresql(dot)org>
Subject: Re: creating gist index on ltree column failed
Date: 2020-09-23 14:37:17
Message-ID: 1427099.1600871837@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

jian xu <jamesxu(at)outlook(dot)com> writes:
> I tried to create gist index on a ltree column, first I got error
> ERROR: stack depth limit exceeded

Hm. What PG version is this? If it's up-to-date, can you provide some
sample data that causes such problems?

> one thing I notice is, there are some rows with many levels(more than 1k levels) in the ltree, if I delete those rows, creating gist index works

I tried to reproduce this using just that information, but all I got was

regression=# create table t (f1 ltree);
CREATE TABLE
regression=# create index on t using gist(f1);
CREATE INDEX
regression=# insert into t select ('0.' || (select string_agg(g::text,'.') from generate_series(1,100) g))::ltree;
INSERT 0 1
regression=# insert into t select ('0.' || (select string_agg(g::text,'.') from generate_series(1,1000) g))::ltree;
ERROR: index row requires 16048 bytes, maximum size is 8191

which is perhaps an annoying limitation, but it's not a bug.

(I'm kind of wondering about the use-case for such long ltrees, anyway.)

regards, tom lane

In response to

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message jian xu 2020-09-23 16:29:40 Re: creating gist index on ltree column failed
Previous Message jian xu 2020-09-23 13:31:27 creating gist index on ltree column failed