I attached a query (and its query plan) that caused the crash:
"dsa_allocate could not find 13 free pages" on one of the worker nodes. I
anonymised the query text a bit. Interestingly, this time only one (same
one) of the nodes is crashing. Since this is a production environment, I
cannot get the stack trace. Once turned off parallel execution for this
node. The whole query finished just fine. So the parallel query plan is
from one of the nodes not crashed, hopefully the same plan would have been
executed on the crashed node. In theory, every worker node has the same
bits, and very similar data.
===
psql (10.4)
\dx
List of installed extensions
Name | Version | Schema | Description
----------------+---------+------------+-----------------------------------
citus | 7.4-3 | pg_catalog | Citus distributed database
hll | 2.10 | public | type for storing hyperloglog data
plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language
On Sat, Aug 25, 2018 at 7:46 AM Sand Stone <[email protected]> wrote:
> >Can you still see the problem with Citus 7.4?
> Hi, Thomas. I actually went back to the cluster with Citus7.4 and
> PG10.4. And modified the parallel param. So far, I haven't seen any
> server crash.
>
> The main difference between crashes observed and no crash, is the set
> of Linux TCP time out parameters (to release the ports faster).
> Unfortunately, I cannot "undo" the Linux params and run the stress
> tests anymore, as this is a multi-million $ cluster and people are
> doing more useful things on it. I will keep an eye on any parallel
> execution issue.
>
>
> On Wed, Aug 15, 2018 at 3:43 PM Thomas Munro
> <[email protected]> wrote:
> >
> > On Thu, Aug 16, 2018 at 8:32 AM, Sand Stone <[email protected]>
> wrote:
> > > Just as a follow up. I tried the parallel execution again (in a stress
> > > test environment). Now the crash seems gone. I will keep an eye on
> > > this for the next few weeks.
> >
> > Thanks for the report. That's great news, but it'd be good to
> > understand why it was happening.
> >
> > > My theory is that the Citus cluster created and shut down a lot of TCP
> > > connections between coordinator and workers. If running on untuned
> > > Linux machines, the TCP ports might run out.
> >
> > I'm not sure how that's relevant, unless perhaps it causes executor
> > nodes to be invoked in a strange sequence that commit fd7c0fa7 didn't
> > fix? I wonder if there could be something different about the control
> > flow with custom scans, or something about the way Citus worker nodes
> > invoke plan fragments, or some error path that I failed to consider...
> > It's a clue that all of your worker nodes reliably crashed at the same
> > time on the same/similar queries (presumably distributed query
> > fragments for different shards), making it seem more like a
> > common-or-garden bug rather than some kind of timing-based heisenbug.
> > If you ever manage to reproduce it, an explain plan and a back trace
> > would be very useful.
> >
> > > Of course, I am using "newer" PG10 bits and Citus7.5 this time.
> >
> > Hmm. There weren't any relevant commits to REL_10_STABLE that I can
> > think of. And (with the proviso that I know next to nothing about
> > Citus) I just cloned https://github.com/citusdata/citus.git and
> > skimmed through "git diff origin/release-7.4..origin/release-7.5", and
> > nothing is jumping out at me. Can you still see the problem with
> > Citus 7.4?
> >
> > --
> > Thomas Munro
> > http://www.enterprisedb.com
>
explain(analyze, verbose) select
atimecol as atimecol, count(1) as count, sum(avg) as sum
from
(
select
partitionid, atimecol as atimecol, avg(sum/count) as avg
from atable
where atimecol >= '7/31/2018' and
atimecol <= '8/28/2018' and
aText = 'Foo' and
(jsoncol ->> 'X') = '-' and id=12345 and acol = 2 and btimecol='7/31/2018' and
btimecol<'8/29/2018'
group by partitionid, atimecol
) as subquery
group by atimecol;
QUERY PLAN
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
HashAggregate (cost=0.00..0.00 rows=0 width=0) (actual time=535.553..535.553
rows=0 loops=1)
Output: remote_scan.atimecol,
COALESCE((pg_catalog.sum(remote_scan.count))::bigint, '0'::bigint),
sum(remote_scan.sum)
Group Key: remote_scan.atimecol
-> Custom Scan (Citus Real-Time) (cost=0.00..0.00 rows=0 width=0) (actual
time=535.551..535.551 rows=0 loops=1)
Output: remote_scan.atimecol, remote_scan.count, remote_scan.sum
Task Count: 40
Tasks Shown: One of 40
-> Task
Node: host=192.168.1.10 port=8432 dbname=measures
-> GroupAggregate (cost=155839.44..155847.88 rows=200
width=24) (actual time=255.514..255.514 rows=0 loops=1)
Output: subquery.atimecol, count(1), sum(subquery.avg)
Group Key: subquery.atimecol
-> Sort (cost=155839.44..155841.05 rows=644 width=16)
(actual time=255.513..255.513 rows=0 loops=1)
Output: subquery.atimecol, subquery.avg
Sort Key: subquery.atimecol
Sort Method: quicksort Memory: 25kB
-> Subquery Scan on subquery
(cost=155720.69..155809.39 rows=644 width=16) (actual time=255.509..255.509
rows=0 loops=1)
Output: subquery.atimecol, subquery.avg
-> Finalize GroupAggregate
(cost=155720.69..155802.95 rows=644 width=24) (actual time=255.508..255.508
rows=0 loops=1)
Output: atable.deviceid,
atable.atimecol, avg((atable.sum / (atable.count)::double precision))
Group Key: atable.deviceid,
atable.atimecol
-> Gather Merge
(cost=155720.69..155790.79 rows=548 width=48) (actual time=255.507..255.507
rows=0 loops=1)
Output: atable.deviceid,
atable.atimecol, (PARTIAL avg((atable.sum / (atable.count)::double precision)))
Workers Planned: 2
Workers Launched: 2
-> Partial GroupAggregate
(cost=154720.67..154727.52 rows=274 width=48) (actual time=245.145..245.145
rows=0 loops=3)
Output: atable.deviceid,
atable.atimecol, PARTIAL avg((atable.sum / (atable.count)::double precision))
Group Key: atable.deviceid,
atable.atimecol
Worker 0: actual
time=241.308..241.308 rows=0 loops=1
Worker 1: actual
time=241.314..241.314 rows=0 loops=1
-> Sort
(cost=154720.67..154721.35 rows=274 width=28) (actual time=245.143..245.143
rows=0 loops=3)
Output:
atable.deviceid, atable.atimecol, atable.sum, atable.count
Sort Key:
atable.deviceid, atable.atimecol
Sort Method: quicksort
Memory: 25kB
Worker 0: actual
time=241.307..241.307 rows=0 loops=1
Worker 1: actual
time=241.312..241.312 rows=0 loops=1
-> Append
(cost=107.53..154709.57 rows=274 width=28) (actual time=245.042..245.042 rows=0
loops=3)
Worker 0: actual
time=241.159..241.159 rows=0 loops=1
Worker 1: actual
time=241.167..241.167 rows=0 loops=1
-> Parallel
Bitmap Heap Scan on public.atable_07_31_2018_115891 atable
(cost=107.53..5400.41 rows=9 width=28) (actual time=14.439..14.439 rows=0
loops=3)
Output:
atable.deviceid, atable.atimecol, atable.sum, atable.count
Recheck
Cond: ((atable.id = 12345) AND (atable.acol = 2) AND (atable.atimecol >=
'2018-07-31 00:00:00+00'::timestamp with time zone
) AND (atable.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time zone)
AND (atable.aText = 'Foo'::text))
Filter:
((atable.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone)
AND (atable.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zone)
AN
D ((atable.jsoncol ->> 'X'::text) = '-'::text))
Rows
Removed by Filter: 2901
Heap
Blocks: exact=1532
Worker 0:
actual time=10.554..10.554 rows=0 loops=1
Worker 1:
actual time=10.561..10.561 rows=0 loops=1
-> Bitmap
Index Scan on atable_07_31_2018_bar_pidx_115891 (cost=0.00..107.52 rows=4491
width=0) (actual time=1.733..1.733 rows=8704 loops=1)
Index Cond: ((atable.id = 12345) AND (atable.acol = 2) AND (atable.atimecol >=
'2018-07-31 00:00:00+00'::timestamp with time
zone) AND (atable.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time
zone))
-> Parallel
Index Scan using atable_08_01_2018_bar_pidx_116051 on
public.atable_08_01_2018_116051 atable_1 (cost=0.56..5966.67 rows=15 width=28)
(actual tim
e=19.664..19.664 rows=0 loops=3)
Output:
atable_1.deviceid, atable_1.atimecol, atable_1.sum, atable_1.count
Index
Cond: ((atable_1.id = 12345) AND (atable_1.acol = 2) AND (atable_1.atimecol >=
'2018-07-31 00:00:00+00'::timestamp with time
zone) AND (atable_1.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time
zone))
Filter:
((atable_1.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone)
AND (atable_1.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zone
) AND ((atable_1.jsoncol ->> 'X'::text) = '-'::text))
Rows
Removed by Filter: 3310
Worker 0:
actual time=20.063..20.063 rows=0 loops=1
Worker 1:
actual time=19.530..19.530 rows=0 loops=1
-> Parallel
Index Scan using atable_08_02_2018_bar_ux_pidx_116171 on
public.atable_08_02_2018_116171 atable_2 (cost=0.42..2.85 rows=1 width=28)
(actual ti
me=0.010..0.010 rows=0 loops=3)
Output:
atable_2.deviceid, atable_2.atimecol, atable_2.sum, atable_2.count
Index
Cond: ((atable_2.id = 12345) AND (atable_2.acol = 2) AND (atable_2.atimecol >=
'2018-07-31 00:00:00+00'::timestamp with time
zone) AND (atable_2.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time
zone))
Filter:
((atable_2.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone)
AND (atable_2.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zone
) AND ((atable_2.jsoncol ->> 'X'::text) = '-'::text))
Worker 0:
actual time=0.001..0.001 rows=0 loops=1
Worker 1:
actual time=0.002..0.002 rows=0 loops=1
-> Parallel
Bitmap Heap Scan on public.atable_08_03_2018_116371 atable_3
(cost=147.04..7399.29 rows=13 width=28) (actual time=21.362..21.362 rows=0
loops=3)
Output:
atable_3.deviceid, atable_3.atimecol, atable_3.sum, atable_3.count
Recheck
Cond: ((atable_3.id = 12345) AND (atable_3.acol = 2) AND (atable_3.atimecol >=
'2018-07-31 00:00:00+00'::timestamp with tim
e zone) AND (atable_3.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time
zone) AND (atable_3.aText = 'Foo'::text))
Filter:
((atable_3.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone)
AND (atable_3.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zone
) AND ((atable_3.jsoncol ->> 'X'::text) = '-'::text))
Rows
Removed by Filter: 3810
Heap
Blocks: exact=1632
Worker 0:
actual time=20.975..20.975 rows=0 loops=1
Worker 1:
actual time=21.505..21.505 rows=0 loops=1
-> Bitmap
Index Scan on atable_08_03_2018_bar_pidx_116371 (cost=0.00..147.03 rows=6165
width=0) (actual time=2.469..2.469 rows=11429 loops=1)
Index Cond: ((atable_3.id = 12345) AND (atable_3.acol = 2) AND
(atable_3.atimecol >= '2018-07-31 00:00:00+00'::timestamp with
time zone) AND (atable_3.atimecol <= '2018-08-28 00:00:00+00'::timestamp with
time zone))
-> Parallel
Bitmap Heap Scan on public.atable_08_04_2018_116531 atable_4
(cost=97.73..4901.29 rows=8 width=28) (actual time=14.063..14.063 rows=0
loops=3)
Output:
atable_4.deviceid, atable_4.atimecol, atable_4.sum, atable_4.count
Recheck
Cond: ((atable_4.id = 12345) AND (atable_4.acol = 2) AND (atable_4.atimecol >=
'2018-07-31 00:00:00+00'::timestamp with tim
e zone) AND (atable_4.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time
zone) AND (atable_4.aText = 'Foo'::text))
Filter:
((atable_4.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone)
AND (atable_4.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zone
) AND ((atable_4.jsoncol ->> 'X'::text) = '-'::text))
Rows
Removed by Filter: 2669
Heap
Blocks: exact=1180
Worker 0:
actual time=14.063..14.063 rows=0 loops=1
Worker 1:
actual time=14.061..14.061 rows=0 loops=1
-> Bitmap
Index Scan on atable_08_04_2018_bar_pidx_116531 (cost=0.00..97.72 rows=4078
width=0) (actual time=1.684..1.684 rows=8006 loops=1)
Index Cond: ((atable_4.id = 12345) AND (atable_4.acol = 2) AND
(atable_4.atimecol >= '2018-07-31 00:00:00+00'::timestamp with
time zone) AND (atable_4.atimecol <= '2018-08-28 00:00:00+00'::timestamp with
time zone))
Worker 0: actual time=1.684..1.684 rows=8006 loops=1
-> Parallel
Bitmap Heap Scan on public.atable_08_05_2018_116691 atable_5
(cost=91.55..4597.87 rows=8 width=28) (actual time=12.461..12.461 rows=0
loops=3)
Output:
atable_5.deviceid, atable_5.atimecol, atable_5.sum, atable_5.count
Recheck
Cond: ((atable_5.id = 12345) AND (atable_5.acol = 2) AND (atable_5.atimecol >=
'2018-07-31 00:00:00+00'::timestamp with tim
e zone) AND (atable_5.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time
zone) AND (atable_5.aText = 'Foo'::text))
Filter:
((atable_5.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone)
AND (atable_5.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zone
) AND ((atable_5.jsoncol ->> 'X'::text) = '-'::text))
Rows
Removed by Filter: 2455
Heap
Blocks: exact=745
Worker 0:
actual time=12.467..12.467 rows=0 loops=1
Worker 1:
actual time=12.458..12.458 rows=0 loops=1
-> Bitmap
Index Scan on atable_08_05_2018_bar_pidx_116691 (cost=0.00..91.54 rows=3826
width=0) (actual time=1.629..1.629 rows=7365 loops=1)
Index Cond: ((atable_5.id = 12345) AND (atable_5.acol = 2) AND
(atable_5.atimecol >= '2018-07-31 00:00:00+00'::timestamp with
time zone) AND (atable_5.atimecol <= '2018-08-28 00:00:00+00'::timestamp with
time zone))
Worker 0: actual time=1.629..1.629 rows=7365 loops=1
-> Parallel
Bitmap Heap Scan on public.atable_08_06_2018_116851 atable_6
(cost=90.44..4510.33 rows=8 width=28) (actual time=13.344..13.344 rows=0
loops=3)
Output:
atable_6.deviceid, atable_6.atimecol, atable_6.sum, atable_6.count
Recheck
Cond: ((atable_6.id = 12345) AND (atable_6.acol = 2) AND (atable_6.atimecol >=
'2018-07-31 00:00:00+00'::timestamp with tim
e zone) AND (atable_6.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time
zone) AND (atable_6.aText = 'Foo'::text))
Filter:
((atable_6.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone)
AND (atable_6.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zone
) AND ((atable_6.jsoncol ->> 'X'::text) = '-'::text))
Rows
Removed by Filter: 2503
Heap
Blocks: exact=1287
Worker 0:
actual time=13.341..13.341 rows=0 loops=1
Worker 1:
actual time=13.347..13.347 rows=0 loops=1
-> Bitmap
Index Scan on atable_08_06_2018_bar_pidx_116851 (cost=0.00..90.43 rows=3752
width=0) (actual time=1.456..1.456 rows=7509 loops=1)
Index Cond: ((atable_6.id = 12345) AND (atable_6.acol = 2) AND
(atable_6.atimecol >= '2018-07-31 00:00:00+00'::timestamp with
time zone) AND (atable_6.atimecol <= '2018-08-28 00:00:00+00'::timestamp with
time zone))
Worker 1: actual time=1.456..1.456 rows=7509 loops=1
-> Parallel
Bitmap Heap Scan on public.atable_08_07_2018_117011 atable_7
(cost=104.48..5245.02 rows=9 width=28) (actual time=19.819..19.819 rows=0
loops=3)
Output:
atable_7.deviceid, atable_7.atimecol, atable_7.sum, atable_7.count
Recheck
Cond: ((atable_7.id = 12345) AND (atable_7.acol = 2) AND (atable_7.atimecol >=
'2018-07-31 00:00:00+00'::timestamp with tim
e zone) AND (atable_7.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time
zone) AND (atable_7.aText = 'Foo'::text))
Filter:
((atable_7.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone)
AND (atable_7.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zone
) AND ((atable_7.jsoncol ->> 'X'::text) = '-'::text))
Rows
Removed by Filter: 2950
Heap
Blocks: exact=1971
Worker 0:
actual time=19.818..19.818 rows=0 loops=1
Worker 1:
actual time=19.818..19.818 rows=0 loops=1
-> Bitmap
Index Scan on atable_08_07_2018_bar_pidx_117011 (cost=0.00..104.47 rows=4368
width=0) (actual time=2.383..2.383 rows=8851 loops=1)
Index Cond: ((atable_7.id = 12345) AND (atable_7.acol = 2) AND
(atable_7.atimecol >= '2018-07-31 00:00:00+00'::timestamp with
time zone) AND (atable_7.atimecol <= '2018-08-28 00:00:00+00'::timestamp with
time zone))
-> Parallel
Bitmap Heap Scan on public.atable_08_08_2018_117171 atable_8
(cost=98.11..4930.63 rows=9 width=28) (actual time=10.521..10.521 rows=0
loops=3)
Output:
atable_8.deviceid, atable_8.atimecol, atable_8.sum, atable_8.count
Recheck
Cond: ((atable_8.id = 12345) AND (atable_8.acol = 2) AND (atable_8.atimecol >=
'2018-07-31 00:00:00+00'::timestamp with tim
e zone) AND (atable_8.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time
zone) AND (atable_8.aText = 'Foo'::text))
Filter:
((atable_8.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone)
AND (atable_8.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zone
) AND ((atable_8.jsoncol ->> 'X'::text) = '-'::text))
Rows
Removed by Filter: 2725
Heap
Blocks: exact=853
Worker 0:
actual time=10.520..10.520 rows=0 loops=1
Worker 1:
actual time=10.524..10.524 rows=0 loops=1
-> Bitmap
Index Scan on atable_08_08_2018_bar_pidx_117171 (cost=0.00..98.10 rows=4103
width=0) (actual time=1.301..1.301 rows=8174 loops=1)
Index Cond: ((atable_8.id = 12345) AND (atable_8.acol = 2) AND
(atable_8.atimecol >= '2018-07-31 00:00:00+00'::timestamp with
time zone) AND (atable_8.atimecol <= '2018-08-28 00:00:00+00'::timestamp with
time zone))
Worker 1: actual time=1.301..1.301 rows=8174 loops=1
-> Parallel
Bitmap Heap Scan on public.atable_08_09_2018_117251 atable_9
(cost=100.23..4999.86 rows=9 width=28) (actual time=4.913..4.913 rows=0 loops=3)
Output:
atable_9.deviceid, atable_9.atimecol, atable_9.sum, atable_9.count
Recheck
Cond: ((atable_9.id = 12345) AND (atable_9.acol = 2) AND (atable_9.atimecol >=
'2018-07-31 00:00:00+00'::timestamp with tim
e zone) AND (atable_9.atimecol <= '2018-08-28 00:00:00+00'::timestamp with time
zone) AND (atable_9.aText = 'Foo'::text))
Filter:
((atable_9.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone)
AND (atable_9.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zone
) AND ((atable_9.jsoncol ->> 'X'::text) = '-'::text))
Rows
Removed by Filter: 2759
Heap
Blocks: exact=286
Worker 0:
actual time=4.912..4.912 rows=0 loops=1
Worker 1:
actual time=4.911..4.911 rows=0 loops=1
-> Bitmap
Index Scan on atable_08_09_2018_bar_pidx_117251 (cost=0.00..100.23 rows=4165
width=0) (actual time=1.164..1.164 rows=8277 loops=1)
Index Cond: ((atable_9.id = 12345) AND (atable_9.acol = 2) AND
(atable_9.atimecol >= '2018-07-31 00:00:00+00'::timestamp with
time zone) AND (atable_9.atimecol <= '2018-08-28 00:00:00+00'::timestamp with
time zone))
Worker 0: actual time=1.164..1.164 rows=8277 loops=1
-> Parallel
Bitmap Heap Scan on public.atable_08_10_2018_117451 atable_10
(cost=101.21..5081.85 rows=9 width=28) (actual time=5.534..5.534 rows=0 loops=3)
Output:
atable_10.deviceid, atable_10.atimecol, atable_10.sum, atable_10.count
Recheck
Cond: ((atable_10.id = 12345) AND (atable_10.acol = 2) AND (atable_10.atimecol
>= '2018-07-31 00:00:00+00'::timestamp with
time zone) AND (atable_10.atimecol <= '2018-08-28 00:00:00+00'::timestamp with
time zone) AND (atable_10.aText = 'Foo'::text))
Filter:
((atable_10.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone)
AND (atable_10.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zo
ne) AND ((atable_10.jsoncol ->> 'X'::text) = '-'::text))
Rows
Removed by Filter: 2841
Heap
Blocks: exact=307
Worker 0:
actual time=5.533..5.533 rows=0 loops=1
Worker 1:
actual time=5.538..5.538 rows=0 loops=1
-> Bitmap
Index Scan on atable_08_10_2018_bar_pidx_117451 (cost=0.00..101.20 rows=4230
width=0) (actual time=1.121..1.121 rows=8524 loops=1)
Index Cond: ((atable_10.id = 12345) AND (atable_10.acol = 2) AND
(atable_10.atimecol >= '2018-07-31 00:00:00+00'::timestamp w
ith time zone) AND (atable_10.atimecol <= '2018-08-28 00:00:00+00'::timestamp
with time zone))
Worker 0: actual time=1.121..1.121 rows=8524 loops=1
-> Parallel
Bitmap Heap Scan on public.atable_08_11_2018_117611 atable_11
(cost=107.59..5395.58 rows=9 width=28) (actual time=5.418..5.418 rows=0 loops=3)
Output:
atable_11.deviceid, atable_11.atimecol, atable_11.sum, atable_11.count
Recheck
Cond: ((atable_11.id = 12345) AND (atable_11.acol = 2) AND (atable_11.atimecol
>= '2018-07-31 00:00:00+00'::timestamp with
time zone) AND (atable_11.atimecol <= '2018-08-28 00:00:00+00'::timestamp with
time zone) AND (atable_11.aText = 'Foo'::text))
Filter:
((atable_11.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone)
AND (atable_11.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zo
ne) AND ((atable_11.jsoncol ->> 'X'::text) = '-'::text))
Rows
Removed by Filter: 2953
Heap
Blocks: exact=312
Worker 0:
actual time=5.423..5.423 rows=0 loops=1
Worker 1:
actual time=5.412..5.412 rows=0 loops=1
-> Bitmap
Index Scan on atable_08_11_2018_bar_pidx_117611 (cost=0.00..107.58 rows=4495
width=0) (actual time=1.221..1.221 rows=8858 loops=1)
Index Cond: ((atable_11.id = 12345) AND (atable_11.acol = 2) AND
(atable_11.atimecol >= '2018-07-31 00:00:00+00'::timestamp w
ith time zone) AND (atable_11.atimecol <= '2018-08-28 00:00:00+00'::timestamp
with time zone))
Worker 0: actual time=1.221..1.221 rows=8858 loops=1
-> Parallel
Bitmap Heap Scan on public.atable_08_12_2018_117811 atable_12
(cost=94.89..4769.68 rows=8 width=28) (actual time=5.192..5.192 rows=0 loops=3)
Output:
atable_12.deviceid, atable_12.atimecol, atable_12.sum, atable_12.count
Recheck
Cond: ((atable_12.id = 12345) AND (atable_12.acol = 2) AND (atable_12.atimecol
>= '2018-07-31 00:00:00+00'::timestamp with
time zone) AND (atable_12.atimecol <= '2018-08-28 00:00:00+00'::timestamp with
time zone) AND (atable_12.aText = 'Foo'::text))
Filter:
((atable_12.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone)
AND (atable_12.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zo
ne) AND ((atable_12.jsoncol ->> 'X'::text) = '-'::text))
Rows
Removed by Filter: 2642
Heap
Blocks: exact=353
Worker 0:
actual time=5.193..5.193 rows=0 loops=1
Worker 1:
actual time=5.196..5.196 rows=0 loops=1
-> Bitmap
Index Scan on atable_08_12_2018_bar_pidx_117811 (cost=0.00..94.89 rows=3969
width=0) (actual time=0.957..0.957 rows=7927 loops=1)
Index Cond: ((atable_12.id = 12345) AND (atable_12.acol = 2) AND
(atable_12.atimecol >= '2018-07-31 00:00:00+00'::timestamp w
ith time zone) AND (atable_12.atimecol <= '2018-08-28 00:00:00+00'::timestamp
with time zone))
Worker 1: actual time=0.957..0.957 rows=7927 loops=1
-> Parallel
Bitmap Heap Scan on public.atable_08_13_2018_117931 atable_13
(cost=105.37..5308.48 rows=9 width=28) (actual time=4.916..4.916 rows=0 loops=3)
Output:
atable_13.deviceid, atable_13.atimecol, atable_13.sum, atable_13.count
Recheck
Cond: ((atable_13.id = 12345) AND (atable_13.acol = 2) AND (atable_13.atimecol
>= '2018-07-31 00:00:00+00'::timestamp with
time zone) AND (atable_13.atimecol <= '2018-08-28 00:00:00+00'::timestamp with
time zone) AND (atable_13.aText = 'Foo'::text))
Filter:
((atable_13.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone)
AND (atable_13.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zo
ne) AND ((atable_13.jsoncol ->> 'X'::text) = '-'::text))
Rows
Removed by Filter: 2942
Heap
Blocks: exact=293
Worker 0:
actual time=4.916..4.916 rows=0 loops=1
Worker 1:
actual time=4.916..4.916 rows=0 loops=1
-> Bitmap
Index Scan on atable_08_13_2018_bar_pidx_117931 (cost=0.00..105.36 rows=4427
width=0) (actual time=1.094..1.094 rows=8827 loops=1)
Index Cond: ((atable_13.id = 12345) AND (atable_13.acol = 2) AND
(atable_13.atimecol >= '2018-07-31 00:00:00+00'::timestamp w
ith time zone) AND (atable_13.atimecol <= '2018-08-28 00:00:00+00'::timestamp
with time zone))
-> Parallel
Bitmap Heap Scan on public.atable_08_14_2018_118091 atable_14
(cost=124.84..6280.54 rows=11 width=28) (actual time=6.525..6.525 rows=0
loops=3)
Output:
atable_14.deviceid, atable_14.atimecol, atable_14.sum, atable_14.count
Recheck
Cond: ((atable_14.id = 12345) AND (atable_14.acol = 2) AND (atable_14.atimecol
>= '2018-07-31 00:00:00+00'::timestamp with
time zone) AND (atable_14.atimecol <= '2018-08-28 00:00:00+00'::timestamp with
time zone) AND (atable_14.aText = 'Foo'::text))
Filter:
((atable_14.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone)
AND (atable_14.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zo
ne) AND ((atable_14.jsoncol ->> 'X'::text) = '-'::text))
Rows
Removed by Filter: 3573
Heap
Blocks: exact=294
Worker 0:
actual time=6.522..6.522 rows=0 loops=1
Worker 1:
actual time=6.524..6.524 rows=0 loops=1
-> Bitmap
Index Scan on atable_08_14_2018_bar_pidx_118091 (cost=0.00..124.83 rows=5245
width=0) (actual time=1.288..1.288 rows=10720 loops=1)
Index Cond: ((atable_14.id = 12345) AND (atable_14.acol = 2) AND
(atable_14.atimecol >= '2018-07-31 00:00:00+00'::timestamp w
ith time zone) AND (atable_14.atimecol <= '2018-08-28 00:00:00+00'::timestamp
with time zone))
-> Parallel
Bitmap Heap Scan on public.atable_08_15_2018_118251 atable_15
(cost=133.90..6723.57 rows=12 width=28) (actual time=6.582..6.582 rows=0
loops=3)
Output:
atable_15.deviceid, atable_15.atimecol, atable_15.sum, atable_15.count
Recheck
Cond: ((atable_15.id = 12345) AND (atable_15.acol = 2) AND (atable_15.atimecol
>= '2018-07-31 00:00:00+00'::timestamp with
time zone) AND (atable_15.atimecol <= '2018-08-28 00:00:00+00'::timestamp with
time zone) AND (atable_15.aText = 'Foo'::text))
Filter:
((atable_15.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone)
AND (atable_15.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zo
ne) AND ((atable_15.jsoncol ->> 'X'::text) = '-'::text))
Rows
Removed by Filter: 3746
Heap
Blocks: exact=397
Worker 0:
actual time=6.579..6.579 rows=0 loops=1
Worker 1:
actual time=6.585..6.585 rows=0 loops=1
-> Bitmap
Index Scan on atable_08_15_2018_bar_pidx_118251 (cost=0.00..133.89 rows=5609
width=0) (actual time=1.477..1.477 rows=11238 loops=1)
Index Cond: ((atable_15.id = 12345) AND (atable_15.acol = 2) AND
(atable_15.atimecol >= '2018-07-31 00:00:00+00'::timestamp w
ith time zone) AND (atable_15.atimecol <= '2018-08-28 00:00:00+00'::timestamp
with time zone))
Worker 0: actual time=1.477..1.477 rows=11238 loops=1
-> Parallel
Bitmap Heap Scan on public.atable_08_16_2018_118411 atable_16
(cost=101.89..5133.13 rows=9 width=28) (actual time=4.779..4.779 rows=0 loops=3)
Output:
atable_16.deviceid, atable_16.atimecol, atable_16.sum, atable_16.count
Recheck
Cond: ((atable_16.id = 12345) AND (atable_16.acol = 2) AND (atable_16.atimecol
>= '2018-07-31 00:00:00+00'::timestamp with
time zone) AND (atable_16.atimecol <= '2018-08-28 00:00:00+00'::timestamp with
time zone) AND (atable_16.aText = 'Foo'::text))
Filter:
((atable_16.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone)
AND (atable_16.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zo
ne) AND ((atable_16.jsoncol ->> 'X'::text) = '-'::text))
Rows
Removed by Filter: 2814
Heap
Blocks: exact=314
Worker 0:
actual time=4.783..4.783 rows=0 loops=1
Worker 1:
actual time=4.776..4.776 rows=0 loops=1
-> Bitmap
Index Scan on atable_08_16_2018_bar_pidx_118411 (cost=0.00..101.88 rows=4275
width=0) (actual time=0.966..0.966 rows=8443 loops=1)
Index Cond: ((atable_16.id = 12345) AND (atable_16.acol = 2) AND
(atable_16.atimecol >= '2018-07-31 00:00:00+00'::timestamp w
ith time zone) AND (atable_16.atimecol <= '2018-08-28 00:00:00+00'::timestamp
with time zone))
Worker 0: actual time=0.966..0.966 rows=8443 loops=1
-> Parallel
Bitmap Heap Scan on public.atable_08_17_2018_118571 atable_17
(cost=113.86..5711.06 rows=10 width=28) (actual time=6.262..6.262 rows=0
loops=3)
Output:
atable_17.deviceid, atable_17.atimecol, atable_17.sum, atable_17.count
Recheck
Cond: ((atable_17.id = 12345) AND (atable_17.acol = 2) AND (atable_17.atimecol
>= '2018-07-31 00:00:00+00'::timestamp with
time zone) AND (atable_17.atimecol <= '2018-08-28 00:00:00+00'::timestamp with
time zone) AND (atable_17.aText = 'Foo'::text))
Filter:
((atable_17.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone)
AND (atable_17.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zo
ne) AND ((atable_17.jsoncol ->> 'X'::text) = '-'::text))
Rows
Removed by Filter: 3220
Heap
Blocks: exact=343
Worker 0:
actual time=6.263..6.263 rows=0 loops=1
Worker 1:
actual time=6.262..6.262 rows=0 loops=1
-> Bitmap
Index Scan on atable_08_17_2018_bar_pidx_118571 (cost=0.00..113.85 rows=4753
width=0) (actual time=1.126..1.126 rows=9659 loops=1)
Index Cond: ((atable_17.id = 12345) AND (atable_17.acol = 2) AND
(atable_17.atimecol >= '2018-07-31 00:00:00+00'::timestamp w
ith time zone) AND (atable_17.atimecol <= '2018-08-28 00:00:00+00'::timestamp
with time zone))
-> Parallel
Bitmap Heap Scan on public.atable_08_18_2018_118731 atable_18
(cost=101.72..5124.76 rows=9 width=28) (actual time=7.255..7.255 rows=0 loops=3)
Output:
atable_18.deviceid, atable_18.atimecol, atable_18.sum, atable_18.count
Recheck
Cond: ((atable_18.id = 12345) AND (atable_18.acol = 2) AND (atable_18.atimecol
>= '2018-07-31 00:00:00+00'::timestamp with
time zone) AND (atable_18.atimecol <= '2018-08-28 00:00:00+00'::timestamp with
time zone) AND (atable_18.aText = 'Foo'::text))
Filter:
((atable_18.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone)
AND (atable_18.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zo
ne) AND ((atable_18.jsoncol ->> 'X'::text) = '-'::text))
Rows
Removed by Filter: 2841
Heap
Blocks: exact=319
Worker 0:
actual time=7.255..7.255 rows=0 loops=1
Worker 1:
actual time=7.254..7.254 rows=0 loops=1
-> Bitmap
Index Scan on atable_08_18_2018_bar_pidx_118731 (cost=0.00..101.72 rows=4264
width=0) (actual time=1.235..1.235 rows=8524 loops=1)
Index Cond: ((atable_18.id = 12345) AND (atable_18.acol = 2) AND
(atable_18.atimecol >= '2018-07-31 00:00:00+00'::timestamp w
ith time zone) AND (atable_18.atimecol <= '2018-08-28 00:00:00+00'::timestamp
with time zone))
-> Parallel
Bitmap Heap Scan on public.atable_08_19_2018_118891 atable_19
(cost=85.13..4277.95 rows=8 width=28) (actual time=5.071..5.071 rows=0 loops=3)
Output:
atable_19.deviceid, atable_19.atimecol, atable_19.sum, atable_19.count
Recheck
Cond: ((atable_19.id = 12345) AND (atable_19.acol = 2) AND (atable_19.atimecol
>= '2018-07-31 00:00:00+00'::timestamp with
time zone) AND (atable_19.atimecol <= '2018-08-28 00:00:00+00'::timestamp with
time zone) AND (atable_19.aText = 'Foo'::text))
Filter:
((atable_19.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone)
AND (atable_19.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zo
ne) AND ((atable_19.jsoncol ->> 'X'::text) = '-'::text))
Rows
Removed by Filter: 2404
Heap
Blocks: exact=275
Worker 0:
actual time=5.067..5.067 rows=0 loops=1
Worker 1:
actual time=5.074..5.074 rows=0 loops=1
-> Bitmap
Index Scan on atable_08_19_2018_bar_pidx_118891 (cost=0.00..85.12 rows=3558
width=0) (actual time=1.438..1.438 rows=7211 loops=1)
Index Cond: ((atable_19.id = 12345) AND (atable_19.acol = 2) AND
(atable_19.atimecol >= '2018-07-31 00:00:00+00'::timestamp w
ith time zone) AND (atable_19.atimecol <= '2018-08-28 00:00:00+00'::timestamp
with time zone))
-> Parallel
Bitmap Heap Scan on public.atable_08_20_2018_119051 atable_20
(cost=100.58..4562.99 rows=8 width=28) (actual time=5.374..5.374 rows=0 loops=3)
Output:
atable_20.deviceid, atable_20.atimecol, atable_20.sum, atable_20.count
Recheck
Cond: ((atable_20.id = 12345) AND (atable_20.acol = 2) AND (atable_20.atimecol
>= '2018-07-31 00:00:00+00'::timestamp with
time zone) AND (atable_20.atimecol <= '2018-08-28 00:00:00+00'::timestamp with
time zone) AND (atable_20.aText = 'Foo'::text))
Filter:
((atable_20.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone)
AND (atable_20.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zo
ne) AND ((atable_20.jsoncol ->> 'X'::text) = '-'::text))
Rows
Removed by Filter: 2534
Heap
Blocks: exact=286
Worker 0:
actual time=5.375..5.375 rows=0 loops=1
Worker 1:
actual time=5.373..5.373 rows=0 loops=1
-> Bitmap
Index Scan on atable_08_20_2018_bar_ux_pidx_119051 (cost=0.00..100.57
rows=3788 width=0) (actual time=1.414..1.414 rows=7602 loops=1)
Index Cond: ((atable_20.id = 12345) AND (atable_20.acol = 2) AND
(atable_20.atimecol >= '2018-07-31 00:00:00+00'::timestamp w
ith time zone) AND (atable_20.atimecol <= '2018-08-28 00:00:00+00'::timestamp
with time zone))
Worker 0: actual time=1.414..1.414 rows=7602 loops=1
-> Parallel
Bitmap Heap Scan on public.atable_08_21_2018_119211 atable_21
(cost=147.83..6724.24 rows=12 width=28) (actual time=7.524..7.524 rows=0
loops=3)
Output:
atable_21.deviceid, atable_21.atimecol, atable_21.sum, atable_21.count
Recheck
Cond: ((atable_21.id = 12345) AND (atable_21.acol = 2) AND (atable_21.atimecol
>= '2018-07-31 00:00:00+00'::timestamp with
time zone) AND (atable_21.atimecol <= '2018-08-28 00:00:00+00'::timestamp with
time zone) AND (atable_21.aText = 'Foo'::text))
Filter:
((atable_21.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone)
AND (atable_21.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zo
ne) AND ((atable_21.jsoncol ->> 'X'::text) = '-'::text))
Rows
Removed by Filter: 3847
Heap
Blocks: exact=434
Worker 0:
actual time=7.521..7.521 rows=0 loops=1
Worker 1:
actual time=7.525..7.525 rows=0 loops=1
-> Bitmap
Index Scan on atable_08_21_2018_bar_ux_pidx_119211 (cost=0.00..147.82
rows=5578 width=0) (actual time=1.937..1.937 rows=11540 loops=1)
Index Cond: ((atable_21.id = 12345) AND (atable_21.acol = 2) AND
(atable_21.atimecol >= '2018-07-31 00:00:00+00'::timestamp w
ith time zone) AND (atable_21.atimecol <= '2018-08-28 00:00:00+00'::timestamp
with time zone))
-> Parallel
Bitmap Heap Scan on public.atable_08_22_2018_119371 atable_22
(cost=142.13..6436.41 rows=11 width=28) (actual time=6.397..6.397 rows=0
loops=3)
Output:
atable_22.deviceid, atable_22.atimecol, atable_22.sum, atable_22.count
Recheck
Cond: ((atable_22.id = 12345) AND (atable_22.acol = 2) AND (atable_22.atimecol
>= '2018-07-31 00:00:00+00'::timestamp with
time zone) AND (atable_22.atimecol <= '2018-08-28 00:00:00+00'::timestamp with
time zone) AND (atable_22.aText = 'Foo'::text))
Filter:
((atable_22.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone)
AND (atable_22.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zo
ne) AND ((atable_22.jsoncol ->> 'X'::text) = '-'::text))
Rows
Removed by Filter: 3397
Heap
Blocks: exact=398
Worker 0:
actual time=6.400..6.400 rows=0 loops=1
Worker 1:
actual time=6.398..6.398 rows=0 loops=1
-> Bitmap
Index Scan on atable_08_22_2018_bar_ux_pidx_119371 (cost=0.00..142.12
rows=5358 width=0) (actual time=1.799..1.799 rows=10191 loops=1)
Index Cond: ((atable_22.id = 12345) AND (atable_22.acol = 2) AND
(atable_22.atimecol >= '2018-07-31 00:00:00+00'::timestamp w
ith time zone) AND (atable_22.atimecol <= '2018-08-28 00:00:00+00'::timestamp
with time zone))
Worker 0: actual time=1.799..1.799 rows=10191 loops=1
-> Parallel
Bitmap Heap Scan on public.atable_08_23_2018_119531 atable_23
(cost=116.21..5237.07 rows=9 width=28) (actual time=4.834..4.834 rows=0 loops=3)
Output:
atable_23.deviceid, atable_23.atimecol, atable_23.sum, atable_23.count
Recheck
Cond: ((atable_23.id = 12345) AND (atable_23.acol = 2) AND (atable_23.atimecol
>= '2018-07-31 00:00:00+00'::timestamp with
time zone) AND (atable_23.atimecol <= '2018-08-28 00:00:00+00'::timestamp with
time zone) AND (atable_23.aText = 'Foo'::text))
Filter:
((atable_23.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone)
AND (atable_23.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zo
ne) AND ((atable_23.jsoncol ->> 'X'::text) = '-'::text))
Rows
Removed by Filter: 2905
Heap
Blocks: exact=329
Worker 0:
actual time=4.825..4.825 rows=0 loops=1
Worker 1:
actual time=4.826..4.826 rows=0 loops=1
-> Bitmap
Index Scan on atable_08_23_2018_bar_ux_pidx_119531 (cost=0.00..116.21
rows=4350 width=0) (actual time=1.125..1.125 rows=8716 loops=1)
Index Cond: ((atable_23.id = 12345) AND (atable_23.acol = 2) AND
(atable_23.atimecol >= '2018-07-31 00:00:00+00'::timestamp w
ith time zone) AND (atable_23.atimecol <= '2018-08-28 00:00:00+00'::timestamp
with time zone))
-> Parallel
Bitmap Heap Scan on public.atable_08_24_2018_119691 atable_24
(cost=117.14..5315.90 rows=9 width=28) (actual time=9.153..9.153 rows=0 loops=3)
Output:
atable_24.deviceid, atable_24.atimecol, atable_24.sum, atable_24.count
Recheck
Cond: ((atable_24.id = 12345) AND (atable_24.acol = 2) AND (atable_24.atimecol
>= '2018-07-31 00:00:00+00'::timestamp with
time zone) AND (atable_24.atimecol <= '2018-08-28 00:00:00+00'::timestamp with
time zone) AND (atable_24.aText = 'Foo'::text))
Filter:
((atable_24.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone)
AND (atable_24.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zo
ne) AND ((atable_24.jsoncol ->> 'X'::text) = '-'::text))
Rows
Removed by Filter: 2987
Heap
Blocks: exact=843
Worker 0:
actual time=9.164..9.164 rows=0 loops=1
Worker 1:
actual time=9.156..9.156 rows=0 loops=1
-> Bitmap
Index Scan on atable_08_24_2018_bar_ux_pidx_119691 (cost=0.00..117.13
rows=4412 width=0) (actual time=1.773..1.773 rows=8961 loops=1)
Index Cond: ((atable_24.id = 12345) AND (atable_24.acol = 2) AND
(atable_24.atimecol >= '2018-07-31 00:00:00+00'::timestamp w
ith time zone) AND (atable_24.atimecol <= '2018-08-28 00:00:00+00'::timestamp
with time zone))
Worker 0: actual time=1.773..1.773 rows=8961 loops=1
-> Parallel
Bitmap Heap Scan on public.atable_08_25_2018_119851 atable_25
(cost=139.90..6354.12 rows=11 width=28) (actual time=5.723..5.723 rows=0
loops=3)
Output:
atable_25.deviceid, atable_25.atimecol, atable_25.sum, atable_25.count
Recheck
Cond: ((atable_25.id = 12345) AND (atable_25.acol = 2) AND (atable_25.atimecol
>= '2018-07-31 00:00:00+00'::timestamp with
time zone) AND (atable_25.atimecol <= '2018-08-28 00:00:00+00'::timestamp with
time zone) AND (atable_25.aText = 'Foo'::text))
Filter:
((atable_25.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone)
AND (atable_25.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zo
ne) AND ((atable_25.jsoncol ->> 'X'::text) = '-'::text))
Rows
Removed by Filter: 3346
Heap
Blocks: exact=372
Worker 0:
actual time=5.723..5.723 rows=0 loops=1
Worker 1:
actual time=5.725..5.725 rows=0 loops=1
-> Bitmap
Index Scan on atable_08_25_2018_bar_ux_pidx_119851 (cost=0.00..139.89
rows=5289 width=0) (actual time=1.282..1.282 rows=10037 loops=1)
Index Cond: ((atable_25.id = 12345) AND (atable_25.acol = 2) AND
(atable_25.atimecol >= '2018-07-31 00:00:00+00'::timestamp w
ith time zone) AND (atable_25.atimecol <= '2018-08-28 00:00:00+00'::timestamp
with time zone))
-> Parallel
Bitmap Heap Scan on public.atable_08_26_2018_120011 atable_26
(cost=108.27..4887.59 rows=8 width=28) (actual time=4.662..4.662 rows=0 loops=3)
Output:
atable_26.deviceid, atable_26.atimecol, atable_26.sum, atable_26.count
Recheck
Cond: ((atable_26.id = 12345) AND (atable_26.acol = 2) AND (atable_26.atimecol
>= '2018-07-31 00:00:00+00'::timestamp with
time zone) AND (atable_26.atimecol <= '2018-08-28 00:00:00+00'::timestamp with
time zone) AND (atable_26.aText = 'Foo'::text))
Filter:
((atable_26.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone)
AND (atable_26.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zo
ne) AND ((atable_26.jsoncol ->> 'X'::text) = '-'::text))
Rows
Removed by Filter: 2645
Heap
Blocks: exact=301
Worker 0:
actual time=4.664..4.664 rows=0 loops=1
Worker 1:
actual time=4.654..4.654 rows=0 loops=1
-> Bitmap
Index Scan on atable_08_26_2018_bar_ux_pidx_120011 (cost=0.00..108.27
rows=4061 width=0) (actual time=1.043..1.043 rows=7934 loops=1)
Index Cond: ((atable_26.id = 12345) AND (atable_26.acol = 2) AND
(atable_26.atimecol >= '2018-07-31 00:00:00+00'::timestamp w
ith time zone) AND (atable_26.atimecol <= '2018-08-28 00:00:00+00'::timestamp
with time zone))
-> Parallel
Bitmap Heap Scan on public.atable_08_27_2018_120171 atable_27
(cost=147.65..5934.25 rows=10 width=28) (actual time=5.573..5.573 rows=0
loops=3)
Output:
atable_27.deviceid, atable_27.atimecol, atable_27.sum, atable_27.count
Recheck
Cond: ((atable_27.id = 12345) AND (atable_27.acol = 2) AND (atable_27.atimecol
>= '2018-07-31 00:00:00+00'::timestamp with
time zone) AND (atable_27.atimecol <= '2018-08-28 00:00:00+00'::timestamp with
time zone) AND (atable_27.aText = 'Foo'::text))
Filter:
((atable_27.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone)
AND (atable_27.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zo
ne) AND ((atable_27.jsoncol ->> 'X'::text) = '-'::text))
Rows
Removed by Filter: 3070
Heap
Blocks: exact=336
Worker 0:
actual time=5.564..5.564 rows=0 loops=1
Worker 1:
actual time=5.584..5.584 rows=0 loops=1
-> Bitmap
Index Scan on atable_08_27_2018_bar_ux_pidx_120171 (cost=0.00..147.65
rows=4926 width=0) (actual time=1.656..1.656 rows=9211 loops=1)
Index Cond: ((atable_27.id = 12345) AND (atable_27.acol = 2) AND
(atable_27.atimecol >= '2018-07-31 00:00:00+00'::timestamp w
ith time zone) AND (atable_27.atimecol <= '2018-08-28 00:00:00+00'::timestamp
with time zone))
Worker 1: actual time=1.656..1.656 rows=9211 loops=1
-> Parallel
Bitmap Heap Scan on public.atable_08_28_2018_120331 atable_28
(cost=187.61..7496.18 rows=13 width=28) (actual time=7.649..7.649 rows=0
loops=3)
Output:
atable_28.deviceid, atable_28.atimecol, atable_28.sum, atable_28.count
Recheck
Cond: ((atable_28.id = 12345) AND (atable_28.acol = 2) AND (atable_28.atimecol
>= '2018-07-31 00:00:00+00'::timestamp with
time zone) AND (atable_28.atimecol <= '2018-08-28 00:00:00+00'::timestamp with
time zone) AND (atable_28.aText = 'Foo'::text))
Filter:
((atable_28.procdatetime >= '2018-07-31 00:00:00+00'::timestamp with time zone)
AND (atable_28.procdatetime < '2018-08-29 00:00:00+00'::timestamp with time zo
ne) AND ((atable_28.jsoncol ->> 'X'::text) = '-'::text))
Rows
Removed by Filter: 4018
Heap
Blocks: exact=530
Worker 0:
actual time=7.651..7.651 rows=0 loops=1
Worker 1:
actual time=7.650..7.650 rows=0 loops=1
-> Bitmap
Index Scan on atable_08_28_2018_bar_ux_pidx_120331 (cost=0.00..187.61
rows=6230 width=0) (actual time=2.161..2.161 rows=12055 loops=1)
Index Cond: ((atable_28.id = 12345) AND (atable_28.acol = 2) AND
(atable_28.atimecol >= '2018-07-31 00:00:00+00'::timestamp w
ith time zone) AND (atable_28.atimecol <= '2018-08-28 00:00:00+00'::timestamp
with time zone))
Worker 0: actual time=2.161..2.161 rows=12055 loops=1
Planning time: 83.668 ms
Execution time: 301.567 ms
Planning time: 6.734 ms
Execution time: 535.688 ms
(341 rows)
Time: 944.180 ms