Re: Index usage for tstzrange?
От | Tom Lane |
---|---|
Тема | Re: Index usage for tstzrange? |
Дата | |
Msg-id | 1326.1363838330@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Index usage for tstzrange? (Josh Berkus <josh@agliodbs.com>) |
Ответы |
Re: Index usage for tstzrange?
Re: Index usage for tstzrange? |
Список | pgsql-performance |
Josh Berkus <josh@agliodbs.com> writes: > I just noticed that if I use a tstzrange for convenience, a standard > btree index on a timestamp won't get used for it. Example: > table a ( > id int, > val text, > ts timestamptz > ); > index a_ts on a(ts); > SELECT * FROM a WHERE ts <@ tstzrange('2013-01-01','2013-01-01 00:10:00') > ... will NOT use the index a_ts. Well, no. <@ is not a btree-indexable operator. What I find more disturbing is that this is what I get from the example in HEAD: regression=# explain SELECT * FROM a WHERE ts <@ tstzrange('2013-01-01','2013-01-01 00:10:00'); ERROR: XX000: type 1184 is not a range type LOCATION: range_get_typcache, rangetypes.c:1451 Haven't traced through it to determine exactly what's happening, but isn't this a legitimate usage? And if it isn't, surely a more user-facing error ought to be getting thrown somewhere upstream of here. regards, tom lane
В списке pgsql-performance по дате отправления: