andr-sokolov commented on code in PR #1772:
URL: https://github.com/apache/cloudberry/pull/1772#discussion_r3339114969


##########
contrib/interconnect/sql/interconnect.sql:
##########
@@ -0,0 +1,101 @@
+-- start_ignore
+DROP EXTENSION IF EXISTS interconnect;
+DROP TABLE IF EXISTS test_ic_data;
+CREATE EXTENSION IF NOT EXISTS interconnect;
+-- end_ignore
+
+-- PHASE 1: Initial non‑negativity check
+-- Verifies that all interconnect metrics are ≥ 0 (no negative values)
+SELECT
+    total_recv_queue_size >= 0,
+    recv_queue_conting_time >= 0,
+    total_capacity >= 0,
+    capacity_counting_time >= 0,
+    total_buffers >= 0,
+    buffer_counting_time >= 0,
+    retransmits >= 0,
+    startup_cached_pkts >= 0,
+    mismatches >= 0,
+    crs_errors >= 0,
+    snd_pkt_num >= 0,
+    recv_pkt_num >= 0,
+    disordered_pkt_num >= 0,
+    duplicate_pkt_num >= 0,
+    recv_ack_num >= 0,
+    status_query_msg_num >= 0
+FROM gp_interconnect_stats;
+
+CREATE TABLE test_ic_data (
+    id int
+) DISTRIBUTED RANDOMLY;
+
+INSERT INTO test_ic_data SELECT generate_series(1, 1000) AS i;
+
+-- PHASE 2: Save baseline metrics
+-- Captures current interconnect stats as baseline for future comparisons
+SELECT
+    total_recv_queue_size AS v1,
+    recv_queue_conting_time AS v2,
+    total_capacity AS v3,
+    capacity_counting_time AS v4,
+    total_buffers AS v5,
+    buffer_counting_time AS v6,
+    retransmits AS v7,
+    startup_cached_pkts AS v8,
+    mismatches AS v9,
+    crs_errors AS v10,
+    snd_pkt_num AS v11,
+    recv_pkt_num AS v12,
+    disordered_pkt_num AS v13,
+    duplicate_pkt_num AS v14,
+    recv_ack_num AS v15,
+    status_query_msg_num AS v16
+FROM gp_interconnect_stats
+LIMIT 1 \gset prev_
+
+-- PHASE 3: First comparison test
+-- Checks if current metrics are ≥ baseline values after first data insertion
+SELECT
+    cur.total_recv_queue_size >= :'prev_v1',
+    cur.recv_queue_conting_time >= :'prev_v2',
+    cur.total_capacity >= :'prev_v3',
+    cur.capacity_counting_time >= :'prev_v4',
+    cur.total_buffers >= :'prev_v5',
+    cur.buffer_counting_time >= :'prev_v6',
+    cur.retransmits >= :'prev_v7',
+    cur.startup_cached_pkts >= :'prev_v8',
+    cur.mismatches >= :'prev_v9',
+    cur.crs_errors >= :'prev_v10',
+    cur.snd_pkt_num >= :'prev_v11',
+    cur.recv_pkt_num >= :'prev_v12',
+    cur.disordered_pkt_num >= :'prev_v13',
+    cur.duplicate_pkt_num >= :'prev_v14',
+    cur.recv_ack_num >= :'prev_v15',
+    cur.status_query_msg_num >= :'prev_v16'
+FROM gp_interconnect_stats cur;
+
+INSERT INTO test_ic_data SELECT generate_series(1001, 2000) AS i;
+
+-- PHASE 4: Second comparison test
+-- Re‑checks if current metrics remain ≥ baseline after second data insertion
+SELECT
+    cur.total_recv_queue_size >= :'prev_v1',
+    cur.recv_queue_conting_time >= :'prev_v2',
+    cur.total_capacity >= :'prev_v3',
+    cur.capacity_counting_time >= :'prev_v4',
+    cur.total_buffers >= :'prev_v5',
+    cur.buffer_counting_time >= :'prev_v6',
+    cur.retransmits >= :'prev_v7',
+    cur.startup_cached_pkts >= :'prev_v8',
+    cur.mismatches >= :'prev_v9',
+    cur.crs_errors >= :'prev_v10',
+    cur.snd_pkt_num >= :'prev_v11',
+    cur.recv_pkt_num >= :'prev_v12',
+    cur.disordered_pkt_num >= :'prev_v13',
+    cur.duplicate_pkt_num >= :'prev_v14',
+    cur.recv_ack_num >= :'prev_v15',
+    cur.status_query_msg_num >= :'prev_v16'
+FROM gp_interconnect_stats cur;

Review Comment:
   The query uses one table only, so alias is redundant
   ```suggestion
   SELECT
       total_recv_queue_size >= :'prev_v1',
       recv_queue_conting_time >= :'prev_v2',
       total_capacity >= :'prev_v3',
       capacity_counting_time >= :'prev_v4',
       total_buffers >= :'prev_v5',
       buffer_counting_time >= :'prev_v6',
       retransmits >= :'prev_v7',
       startup_cached_pkts >= :'prev_v8',
       mismatches >= :'prev_v9',
       crs_errors >= :'prev_v10',
       snd_pkt_num >= :'prev_v11',
       recv_pkt_num >= :'prev_v12',
       disordered_pkt_num >= :'prev_v13',
       duplicate_pkt_num >= :'prev_v14',
       recv_ack_num >= :'prev_v15',
       status_query_msg_num >= :'prev_v16'
   FROM gp_interconnect_stats;
   ```



##########
contrib/interconnect/sql/interconnect.sql:
##########
@@ -0,0 +1,101 @@
+-- start_ignore
+DROP EXTENSION IF EXISTS interconnect;
+DROP TABLE IF EXISTS test_ic_data;
+CREATE EXTENSION IF NOT EXISTS interconnect;
+-- end_ignore
+
+-- PHASE 1: Initial non‑negativity check
+-- Verifies that all interconnect metrics are ≥ 0 (no negative values)
+SELECT
+    total_recv_queue_size >= 0,
+    recv_queue_conting_time >= 0,
+    total_capacity >= 0,
+    capacity_counting_time >= 0,
+    total_buffers >= 0,
+    buffer_counting_time >= 0,
+    retransmits >= 0,
+    startup_cached_pkts >= 0,
+    mismatches >= 0,
+    crs_errors >= 0,
+    snd_pkt_num >= 0,
+    recv_pkt_num >= 0,
+    disordered_pkt_num >= 0,
+    duplicate_pkt_num >= 0,
+    recv_ack_num >= 0,
+    status_query_msg_num >= 0
+FROM gp_interconnect_stats;
+
+CREATE TABLE test_ic_data (
+    id int
+) DISTRIBUTED RANDOMLY;
+
+INSERT INTO test_ic_data SELECT generate_series(1, 1000) AS i;
+
+-- PHASE 2: Save baseline metrics
+-- Captures current interconnect stats as baseline for future comparisons
+SELECT
+    total_recv_queue_size AS v1,
+    recv_queue_conting_time AS v2,
+    total_capacity AS v3,
+    capacity_counting_time AS v4,
+    total_buffers AS v5,
+    buffer_counting_time AS v6,
+    retransmits AS v7,
+    startup_cached_pkts AS v8,
+    mismatches AS v9,
+    crs_errors AS v10,
+    snd_pkt_num AS v11,
+    recv_pkt_num AS v12,
+    disordered_pkt_num AS v13,
+    duplicate_pkt_num AS v14,
+    recv_ack_num AS v15,
+    status_query_msg_num AS v16
+FROM gp_interconnect_stats
+LIMIT 1 \gset prev_

Review Comment:
   Why do we need `LIMIT 1`?



##########
contrib/interconnect/sql/interconnect.sql:
##########
@@ -0,0 +1,101 @@
+-- start_ignore
+DROP EXTENSION IF EXISTS interconnect;
+DROP TABLE IF EXISTS test_ic_data;
+CREATE EXTENSION IF NOT EXISTS interconnect;
+-- end_ignore
+
+-- PHASE 1: Initial non‑negativity check
+-- Verifies that all interconnect metrics are ≥ 0 (no negative values)
+SELECT
+    total_recv_queue_size >= 0,
+    recv_queue_conting_time >= 0,
+    total_capacity >= 0,
+    capacity_counting_time >= 0,
+    total_buffers >= 0,
+    buffer_counting_time >= 0,
+    retransmits >= 0,
+    startup_cached_pkts >= 0,
+    mismatches >= 0,
+    crs_errors >= 0,
+    snd_pkt_num >= 0,
+    recv_pkt_num >= 0,
+    disordered_pkt_num >= 0,
+    duplicate_pkt_num >= 0,
+    recv_ack_num >= 0,
+    status_query_msg_num >= 0
+FROM gp_interconnect_stats;
+
+CREATE TABLE test_ic_data (
+    id int
+) DISTRIBUTED RANDOMLY;
+
+INSERT INTO test_ic_data SELECT generate_series(1, 1000) AS i;

Review Comment:
   What about CTAS to use one query instead of two?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to