Use array ALL() function, and remove json/jsonb casts
authorMatthew Schinckel <matt@schinckel.net>
Fri, 23 Jan 2015 09:06:54 +0000 (19:36 +1030)
committerMatthew Schinckel <matt@schinckel.net>
Fri, 23 Jan 2015 09:06:54 +0000 (19:36 +1030)
commitdfe2d929120c61160c6ca192a65aafc2cd544d9f
tree45d5d5a56f884f7976be95c4220a7e1702f317fd
parent097d1712ac6bce8ffbca895101dacf8f33444e17
Use array ALL() function, and remove json/jsonb casts

<pre>
[[local]:5432] matt@~ =# EXPLAIN ANALYZE SELECT to_json('x2'::text)::jsonb ?| ARRAY['x', 'y'] FROM generate_series(1,100000);
                                                        QUERY PLAN
--------------------------------------------------------------------------------------------------------------------------
 Function Scan on generate_series  (cost=0.00..20.00 rows=1000 width=0) (actual time=23.261..357.720 rows=100000 loops=1)
 Planning time: 0.051 ms
 Execution time: 376.334 ms
(3 rows)

Time: 376.732 ms

[[local]:5432] matt@~ =# EXPLAIN ANALYZE SELECT 'x2' <> ALL( ARRAY['x', 'y']) FROM generate_series(1,100000);
                                                       QUERY PLAN
-------------------------------------------------------------------------------------------------------------------------
 Function Scan on generate_series  (cost=0.00..12.50 rows=1000 width=0) (actual time=22.687..59.327 rows=100000 loops=1)
 Planning time: 0.112 ms
 Execution time: 71.561 ms
(3 rows)

Time: 72.162 ms
</pre>
pg_jsonb_delete_op.sql