Re: [PATCH] Add support function for containment operators
От | Laurenz Albe |
---|---|
Тема | Re: [PATCH] Add support function for containment operators |
Дата | |
Msg-id | a78242587cd008096a61de9e858202d47413dda0.camel@cybertec.at обсуждение исходный текст |
Ответ на | Re: [PATCH] Add support function for containment operators (jian he <jian.universality@gmail.com>) |
Ответы |
Re: [PATCH] Add support function for containment operators
|
Список | pgsql-hackers |
On Fri, 2023-10-13 at 14:26 +0800, jian he wrote: > Collation problem seems solved. I didn't review your patch in detail, there is still a problem with my example: CREATE TYPE textrange AS RANGE ( SUBTYPE = text, SUBTYPE_OPCLASS = text_pattern_ops ); CREATE TABLE tx (t text COLLATE "cs-CZ-x-icu"); INSERT INTO tx VALUES ('a'), ('c'), ('d'), ('ch'); SELECT * FROM tx WHERE t <@ textrange('a', 'd'); t ════ a c ch (3 rows) That was correct. EXPLAIN SELECT * FROM tx WHERE t <@ textrange('a', 'd'); QUERY PLAN ════════════════════════════════════════════════════ Seq Scan on tx (cost=0.00..30.40 rows=7 width=32) Filter: ((t >= 'a'::text) AND (t < 'd'::text)) (2 rows) But that was weird. The operators seem wrong. Look at that query: SELECT * FROM tx WHERE t >= 'a' AND t < 'd'; t ═══ a c (2 rows) But the execution plan is identical... I am not sure what is the problem here, but in my opinion the operators shown in the execution plan should be like this: SELECT * FROM tx WHERE t ~>=~ 'a' AND t ~<~ 'd'; t ════ a c ch (3 rows) Yours, Laurenz Albe
В списке pgsql-hackers по дате отправления: