| -- |
| -- @description Interconncet flow control test case: single guc value |
| -- @created 2012-11-06 |
| -- @modified 2012-11-06 |
| -- @tags executor |
| -- @gpdb_version [4.2.3.0,main] |
| -- Create a table |
| CREATE TEMP TABLE small_table(dkey INT, jkey INT, rval REAL, tval TEXT default 'abcdefghijklmnopqrstuvwxyz') DISTRIBUTED BY (dkey); |
| -- Generate some data |
| INSERT INTO small_table VALUES(generate_series(1, 5000), generate_series(5001, 10000), sqrt(generate_series(5001, 10000))); |
| -- Functional tests |
| -- Skew with gather+redistribute |
| SELECT ROUND(foo.rval * foo.rval)::INT % 30 AS rval2, COUNT(*) AS count, SUM(length(foo.tval)) AS sum_len_tval |
| FROM (SELECT 5001 AS jkey, rval, tval FROM small_table ORDER BY dkey LIMIT 3000) foo |
| JOIN small_table USING(jkey) |
| GROUP BY rval2 |
| ORDER BY rval2; |
| rval2 | count | sum_len_tval |
| -------+-------+-------------- |
| 0 | 100 | 2600 |
| 1 | 100 | 2600 |
| 2 | 100 | 2600 |
| 3 | 100 | 2600 |
| 4 | 100 | 2600 |
| 5 | 100 | 2600 |
| 6 | 100 | 2600 |
| 7 | 100 | 2600 |
| 8 | 100 | 2600 |
| 9 | 100 | 2600 |
| 10 | 100 | 2600 |
| 11 | 100 | 2600 |
| 12 | 100 | 2600 |
| 13 | 100 | 2600 |
| 14 | 100 | 2600 |
| 15 | 100 | 2600 |
| 16 | 100 | 2600 |
| 17 | 100 | 2600 |
| 18 | 100 | 2600 |
| 19 | 100 | 2600 |
| 20 | 100 | 2600 |
| 21 | 100 | 2600 |
| 22 | 100 | 2600 |
| 23 | 100 | 2600 |
| 24 | 100 | 2600 |
| 25 | 100 | 2600 |
| 26 | 100 | 2600 |
| 27 | 100 | 2600 |
| 28 | 100 | 2600 |
| 29 | 100 | 2600 |
| (30 rows) |
| |
| -- Set GUC value to its min value |
| SET gp_interconnect_queue_depth = 1; |
| SHOW gp_interconnect_queue_depth; |
| gp_interconnect_queue_depth |
| ----------------------------- |
| 1 |
| (1 row) |
| |
| SELECT ROUND(foo.rval * foo.rval)::INT % 30 AS rval2, COUNT(*) AS count, SUM(length(foo.tval)) AS sum_len_tval |
| FROM (SELECT 5001 AS jkey, rval, tval FROM small_table ORDER BY dkey LIMIT 3000) foo |
| JOIN small_table USING(jkey) |
| GROUP BY rval2 |
| ORDER BY rval2; |
| rval2 | count | sum_len_tval |
| -------+-------+-------------- |
| 0 | 100 | 2600 |
| 1 | 100 | 2600 |
| 2 | 100 | 2600 |
| 3 | 100 | 2600 |
| 4 | 100 | 2600 |
| 5 | 100 | 2600 |
| 6 | 100 | 2600 |
| 7 | 100 | 2600 |
| 8 | 100 | 2600 |
| 9 | 100 | 2600 |
| 10 | 100 | 2600 |
| 11 | 100 | 2600 |
| 12 | 100 | 2600 |
| 13 | 100 | 2600 |
| 14 | 100 | 2600 |
| 15 | 100 | 2600 |
| 16 | 100 | 2600 |
| 17 | 100 | 2600 |
| 18 | 100 | 2600 |
| 19 | 100 | 2600 |
| 20 | 100 | 2600 |
| 21 | 100 | 2600 |
| 22 | 100 | 2600 |
| 23 | 100 | 2600 |
| 24 | 100 | 2600 |
| 25 | 100 | 2600 |
| 26 | 100 | 2600 |
| 27 | 100 | 2600 |
| 28 | 100 | 2600 |
| 29 | 100 | 2600 |
| (30 rows) |
| |
| -- Set GUC value to its max value |
| SET gp_interconnect_queue_depth = 4096; |
| SHOW gp_interconnect_queue_depth; |
| gp_interconnect_queue_depth |
| ----------------------------- |
| 4096 |
| (1 row) |
| |
| SELECT ROUND(foo.rval * foo.rval)::INT % 30 AS rval2, COUNT(*) AS count, SUM(length(foo.tval)) AS sum_len_tval |
| FROM (SELECT 5001 AS jkey, rval, tval FROM small_table ORDER BY dkey LIMIT 3000) foo |
| JOIN small_table USING(jkey) |
| GROUP BY rval2 |
| ORDER BY rval2; |
| rval2 | count | sum_len_tval |
| -------+-------+-------------- |
| 0 | 100 | 2600 |
| 1 | 100 | 2600 |
| 2 | 100 | 2600 |
| 3 | 100 | 2600 |
| 4 | 100 | 2600 |
| 5 | 100 | 2600 |
| 6 | 100 | 2600 |
| 7 | 100 | 2600 |
| 8 | 100 | 2600 |
| 9 | 100 | 2600 |
| 10 | 100 | 2600 |
| 11 | 100 | 2600 |
| 12 | 100 | 2600 |
| 13 | 100 | 2600 |
| 14 | 100 | 2600 |
| 15 | 100 | 2600 |
| 16 | 100 | 2600 |
| 17 | 100 | 2600 |
| 18 | 100 | 2600 |
| 19 | 100 | 2600 |
| 20 | 100 | 2600 |
| 21 | 100 | 2600 |
| 22 | 100 | 2600 |
| 23 | 100 | 2600 |
| 24 | 100 | 2600 |
| 25 | 100 | 2600 |
| 26 | 100 | 2600 |
| 27 | 100 | 2600 |
| 28 | 100 | 2600 |
| 29 | 100 | 2600 |
| (30 rows) |
| |