Update on public.t12 t1
Update on public.t111 t1
-> Subquery Scan on t1
- Output: 100, t1.b, t1.c, t1.a, t1.a, t1.a, t1.a, t1.a, t1.a, t1.ctid
+ Output: 100, t1.b, t1.c, t1.a, t1.a, t1.a, t1.ctid
Filter: snoop(t1.a)
-> LockRows
Output: t1_5.a, t1_5.ctid, t1_5.b, t1_5.c, t1_5.ctid, t12.ctid, t12.tableoid
Output: t111.ctid, t111.tableoid, t111.a
Filter: (t111.a = 3)
-> Subquery Scan on t1_1
- Output: 100, t1_1.b, t1_1.c, t1_1.d, t1_1.a, t1_1.a, t1_1.a, t1_1.a, t1_1.a, t1_1.a, t1_1.ctid
+ Output: 100, t1_1.b, t1_1.c, t1_1.d, t1_1.a, t1_1.a, t1_1.a, t1_1.ctid
Filter: snoop(t1_1.a)
-> LockRows
Output: t11.a, t11.ctid, t11.b, t11.c, t11.d, t11.ctid, t12_1.ctid, t12_1.tableoid
Output: t111_1.ctid, t111_1.tableoid, t111_1.a
Filter: (t111_1.a = 3)
-> Subquery Scan on t1_2
- Output: 100, t1_2.b, t1_2.c, t1_2.e, t1_2.a, t1_2.a, t1_2.a, t1_2.a, t1_2.a, t1_2.a, t1_2.ctid
+ Output: 100, t1_2.b, t1_2.c, t1_2.e, t1_2.a, t1_2.a, t1_2.a, t1_2.ctid
Filter: snoop(t1_2.a)
-> LockRows
Output: t12_2.a, t12_2.ctid, t12_2.b, t12_2.c, t12_2.e, t12_2.ctid, t12_3.ctid, t12_3.tableoid
Output: t111_2.ctid, t111_2.tableoid, t111_2.a
Filter: (t111_2.a = 3)
-> Subquery Scan on t1_3
- Output: 100, t1_3.b, t1_3.c, t1_3.d, t1_3.e, t1_3.a, t1_3.a, t1_3.a, t1_3.a, t1_3.a, t1_3.a, t1_3.ctid
+ Output: 100, t1_3.b, t1_3.c, t1_3.d, t1_3.e, t1_3.a, t1_3.a, t1_3.a, t1_3.ctid
Filter: snoop(t1_3.a)
-> LockRows
Output: t111_3.a, t111_3.ctid, t111_3.b, t111_3.c, t111_3.d, t111_3.e, t111_3.ctid, t12_4.ctid, t12_4.tableoid
Update on public.t12 t1
Update on public.t111 t1
-> Subquery Scan on t1
- Output: (t1.a + 1), t1.b, t1.c, t1.a, t1.a, t1.a, t1.a, t1.a, t1.a, t1.ctid
+ Output: (t1.a + 1), t1.b, t1.c, t1.a, t1.a, t1.a, t1.ctid
Filter: snoop(t1.a)
-> LockRows
Output: t1_5.a, t1_5.ctid, t1_5.b, t1_5.c, t1_5.ctid, t12.ctid, t12.tableoid
Output: t111.ctid, t111.tableoid, t111.a
Filter: (t111.a = 8)
-> Subquery Scan on t1_1
- Output: (t1_1.a + 1), t1_1.b, t1_1.c, t1_1.d, t1_1.a, t1_1.a, t1_1.a, t1_1.a, t1_1.a, t1_1.a, t1_1.ctid
+ Output: (t1_1.a + 1), t1_1.b, t1_1.c, t1_1.d, t1_1.a, t1_1.a, t1_1.a, t1_1.ctid
Filter: snoop(t1_1.a)
-> LockRows
Output: t11.a, t11.ctid, t11.b, t11.c, t11.d, t11.ctid, t12_1.ctid, t12_1.tableoid
Output: t111_1.ctid, t111_1.tableoid, t111_1.a
Filter: (t111_1.a = 8)
-> Subquery Scan on t1_2
- Output: (t1_2.a + 1), t1_2.b, t1_2.c, t1_2.e, t1_2.a, t1_2.a, t1_2.a, t1_2.a, t1_2.a, t1_2.a, t1_2.ctid
+ Output: (t1_2.a + 1), t1_2.b, t1_2.c, t1_2.e, t1_2.a, t1_2.a, t1_2.a, t1_2.ctid
Filter: snoop(t1_2.a)
-> LockRows
Output: t12_2.a, t12_2.ctid, t12_2.b, t12_2.c, t12_2.e, t12_2.ctid, t12_3.ctid, t12_3.tableoid
Output: t111_2.ctid, t111_2.tableoid, t111_2.a
Filter: (t111_2.a = 8)
-> Subquery Scan on t1_3
- Output: (t1_3.a + 1), t1_3.b, t1_3.c, t1_3.d, t1_3.e, t1_3.a, t1_3.a, t1_3.a, t1_3.a, t1_3.a, t1_3.a, t1_3.ctid
+ Output: (t1_3.a + 1), t1_3.b, t1_3.c, t1_3.d, t1_3.e, t1_3.a, t1_3.a, t1_3.a, t1_3.ctid
Filter: snoop(t1_3.a)
-> LockRows
Output: t111_3.a, t111_3.ctid, t111_3.b, t111_3.c, t111_3.d, t111_3.e, t111_3.ctid, t12_4.ctid, t12_4.tableoid
QUERY PLAN
----------------------------------------------------------------
Remote Fast Query Execution
- Output: 1000, tab1_rr.val, tab1_rr.xc_node_id, tab1_rr.ctid
+ Output: 1000
Remote query: UPDATE tab1_rr SET val2 = 1000 WHERE (val = 7)
-> Update on public.tab1_rr
-> Seq Scan on public.tab1_rr
delete from tab1_rr where val = 7;
explain (verbose on, costs off) delete from tab1_rr where val = 7;
- QUERY PLAN
----------------------------------------------------------
+ QUERY PLAN
+-----------------------------------------------------
Remote Fast Query Execution
- Output: tab1_rr.val, tab1_rr.xc_node_id, tab1_rr.ctid
Node/s: datanode_1, datanode_2
Remote query: DELETE FROM tab1_rr WHERE (val = 7)
-> Delete on public.tab1_rr
-> Seq Scan on public.tab1_rr
Output: ctid
Filter: (tab1_rr.val = 7)
-(8 rows)
+(7 rows)
select * from tab1_rr where val = 7;
val | val2
-- DMLs
update tab1_hash set val2 = 1000 where val = 7;
explain (verbose on, nodes off, costs off) update tab1_hash set val2 = 1000 where val = 7;
- QUERY PLAN
----------------------------------------------------------------------
+ QUERY PLAN
+------------------------------------------------------------------
Remote Fast Query Execution
- Output: 1000, tab1_hash.val, tab1_hash.xc_node_id, tab1_hash.ctid
+ Output: 1000
Remote query: UPDATE tab1_hash SET val2 = 1000 WHERE (val = 7)
-> Update on public.tab1_hash
-> Seq Scan on public.tab1_hash
delete from tab1_hash where val = 7;
explain (verbose on, costs off) delete from tab1_hash where val = 7;
- QUERY PLAN
----------------------------------------------------------------
+ QUERY PLAN
+-------------------------------------------------------
Remote Fast Query Execution
- Output: tab1_hash.val, tab1_hash.xc_node_id, tab1_hash.ctid
Node/s: datanode_2
Remote query: DELETE FROM tab1_hash WHERE (val = 7)
-> Delete on public.tab1_hash
-> Seq Scan on public.tab1_hash
Output: ctid
Filter: (tab1_hash.val = 7)
-(8 rows)
+(7 rows)
select * from tab1_hash where val = 7;
val | val2
-- DMLs
update tab1_modulo set val2 = 1000 where val = 7;
explain (verbose on, nodes off, costs off) update tab1_modulo set val2 = 1000 where val = 7;
- QUERY PLAN
----------------------------------------------------------------------------
+ QUERY PLAN
+--------------------------------------------------------------------
Remote Fast Query Execution
- Output: 1000, tab1_modulo.val, tab1_modulo.xc_node_id, tab1_modulo.ctid
+ Output: 1000
Remote query: UPDATE tab1_modulo SET val2 = 1000 WHERE (val = 7)
-> Update on public.tab1_modulo
-> Seq Scan on public.tab1_modulo
delete from tab1_modulo where val = 7;
explain (verbose on, costs off) delete from tab1_modulo where val = 7;
- QUERY PLAN
----------------------------------------------------------------------
+ QUERY PLAN
+---------------------------------------------------------
Remote Fast Query Execution
- Output: tab1_modulo.val, tab1_modulo.xc_node_id, tab1_modulo.ctid
Node/s: datanode_2
Remote query: DELETE FROM tab1_modulo WHERE (val = 7)
-> Delete on public.tab1_modulo
-> Seq Scan on public.tab1_modulo
Output: ctid
Filter: (tab1_modulo.val = 7)
-(8 rows)
+(7 rows)
select * from tab1_modulo where val = 7;
val | val2
QUERY PLAN
------------------------------------------------------------------------
Remote Fast Query Execution
- Output: 1000, tab1_replicated.val, tab1_replicated.ctid
+ Output: 1000
Remote query: UPDATE tab1_replicated SET val2 = 1000 WHERE (val = 7)
-> Update on public.tab1_replicated
-> Seq Scan on public.tab1_replicated
QUERY PLAN
-------------------------------------------------------------
Remote Fast Query Execution
- Output: tab1_replicated.val, tab1_replicated.ctid
Node/s: datanode_1, datanode_2
Remote query: DELETE FROM tab1_replicated WHERE (val = 7)
-> Delete on public.tab1_replicated
-> Seq Scan on public.tab1_replicated
Output: ctid
Filter: (tab1_replicated.val = 7)
-(8 rows)
+(7 rows)
select * from tab1_replicated where val = 7;
val | val2
QUERY PLAN
---------------------------------------------------------------------------
Remote Fast Query Execution (cost=0.00..0.00 rows=0 width=0)
- Output: 2, xl_pp.a, xl_pp.xc_node_id, xl_pp.ctid
+ Output: 2
Node/s: datanode_1
Remote query: UPDATE xl_pp SET b = 2 WHERE (a = 200)
-> Update on public.xl_pp (cost=0.00..35.50 rows=10 width=14)
QUERY PLAN
---------------------------------------------------------------------------
Remote Fast Query Execution (cost=0.00..0.00 rows=0 width=0)
- Output: 2, xl_pp.a, xl_pp.xc_node_id, xl_pp.ctid
+ Output: 2
Node/s: datanode_1
Remote query: UPDATE xl_pp SET b = 2 WHERE (a = (200)::bigint)
-> Update on public.xl_pp (cost=0.00..35.50 rows=10 width=14)
QUERY PLAN
--------------------------------------------------------------------------
Remote Fast Query Execution (cost=0.00..0.00 rows=0 width=0)
- Output: xl_pp.a, xl_pp.xc_node_id, xl_pp.ctid
Node/s: datanode_1
Remote query: DELETE FROM xl_pp WHERE (a = 200)
-> Delete on public.xl_pp (cost=0.00..35.50 rows=10 width=6)
-> Seq Scan on public.xl_pp (cost=0.00..35.50 rows=10 width=6)
Output: ctid
Filter: (xl_pp.a = 200)
-(8 rows)
+(7 rows)
SELECT * from xl_pp where a=200;
a | b
QUERY PLAN
--------------------------------------------------------------------------
Remote Fast Query Execution (cost=0.00..0.00 rows=0 width=0)
- Output: xl_pp.a, xl_pp.xc_node_id, xl_pp.ctid
Node/s: datanode_1
Remote query: DELETE FROM xl_pp WHERE (a = 200)
-> Delete on public.xl_pp (cost=0.00..35.50 rows=10 width=6)
-> Seq Scan on public.xl_pp (cost=0.00..35.50 rows=10 width=6)
Output: ctid
Filter: (xl_pp.a = 200)
-(8 rows)
+(7 rows)
EXPLAIN VERBOSE DELETE FROM xl_pp where a=200::bigint;
QUERY PLAN
--------------------------------------------------------------------------
Remote Fast Query Execution (cost=0.00..0.00 rows=0 width=0)
- Output: xl_pp.a, xl_pp.xc_node_id, xl_pp.ctid
Node/s: datanode_1
Remote query: DELETE FROM xl_pp WHERE (a = (200)::bigint)
-> Delete on public.xl_pp (cost=0.00..35.50 rows=10 width=6)
-> Seq Scan on public.xl_pp (cost=0.00..35.50 rows=10 width=6)
Output: ctid
Filter: (xl_pp.a = '200'::bigint)
-(8 rows)
+(7 rows)
--Testing with MODULO distribution
CREATE TABLE xl_ppm (a INT2, b int) DISTRIBUTE BY MODULO(a);
QUERY PLAN
---------------------------------------------------------------------------
Remote Fast Query Execution (cost=0.00..0.00 rows=0 width=0)
- Output: 2, xl_ppm.a, xl_ppm.xc_node_id, xl_ppm.ctid
+ Output: 2
Node/s: datanode_1
Remote query: UPDATE xl_ppm SET b = 2 WHERE (a = 200)
-> Update on public.xl_ppm (cost=0.00..40.00 rows=12 width=8)
QUERY PLAN
---------------------------------------------------------------------------
Remote Fast Query Execution (cost=0.00..0.00 rows=0 width=0)
- Output: 2, xl_ppm.a, xl_ppm.xc_node_id, xl_ppm.ctid
+ Output: 2
Node/s: datanode_1
Remote query: UPDATE xl_ppm SET b = 2 WHERE (a = (200)::smallint)
-> Update on public.xl_ppm (cost=0.00..40.00 rows=12 width=8)
QUERY PLAN
---------------------------------------------------------------------------
Remote Fast Query Execution (cost=0.00..0.00 rows=0 width=0)
- Output: xl_ppm.a, xl_ppm.xc_node_id, xl_ppm.ctid
Node/s: datanode_1
Remote query: DELETE FROM xl_ppm WHERE (a = 200)
-> Delete on public.xl_ppm (cost=0.00..40.00 rows=12 width=6)
-> Seq Scan on public.xl_ppm (cost=0.00..40.00 rows=12 width=6)
Output: ctid
Filter: (xl_ppm.a = 200)
-(8 rows)
+(7 rows)
SELECT * from xl_ppm where a=200;
a | b
QUERY PLAN
---------------------------------------------------------------------------
Remote Fast Query Execution (cost=0.00..0.00 rows=0 width=0)
- Output: xl_ppm.a, xl_ppm.xc_node_id, xl_ppm.ctid
Node/s: datanode_1
Remote query: DELETE FROM xl_ppm WHERE (a = 200)
-> Delete on public.xl_ppm (cost=0.00..40.00 rows=12 width=6)
-> Seq Scan on public.xl_ppm (cost=0.00..40.00 rows=12 width=6)
Output: ctid
Filter: (xl_ppm.a = 200)
-(8 rows)
+(7 rows)
EXPLAIN VERBOSE DELETE FROM xl_ppm where a=200::INT2;
QUERY PLAN
---------------------------------------------------------------------------
Remote Fast Query Execution (cost=0.00..0.00 rows=0 width=0)
- Output: xl_ppm.a, xl_ppm.xc_node_id, xl_ppm.ctid
Node/s: datanode_1
Remote query: DELETE FROM xl_ppm WHERE (a = (200)::smallint)
-> Delete on public.xl_ppm (cost=0.00..40.00 rows=12 width=6)
-> Seq Scan on public.xl_ppm (cost=0.00..40.00 rows=12 width=6)
Output: ctid
Filter: (xl_ppm.a = '200'::smallint)
-(8 rows)
+(7 rows)
DROP TABLE xl_pp;
DROP TABLE xl_ppm;