v1-0002-Modifying-toast-corruption-test-expected-output.patch.WIP
application/octet-stream
Filename: v1-0002-Modifying-toast-corruption-test-expected-output.patch.WIP
Type: application/octet-stream
Part: 1
Message:
Re: pg_amcheck contrib application
From 66a52460c1aea17fe83064ae9110a36b260a3cb3 Mon Sep 17 00:00:00 2001
From: Mark Dilger <mark.dilger@enterprisedb.com>
Date: Mon, 26 Apr 2021 08:52:38 -0700
Subject: [PATCH v1 2/2] Modifying toast corruption test expected output
Making the test expected output match the output generated by
Robert's patch.
---
src/bin/pg_amcheck/t/004_verify_heapam.pl | 50 ++++++++++++++---------
1 file changed, 30 insertions(+), 20 deletions(-)
diff --git a/src/bin/pg_amcheck/t/004_verify_heapam.pl b/src/bin/pg_amcheck/t/004_verify_heapam.pl
index 4d66eb64fe..a1772f6b0a 100644
--- a/src/bin/pg_amcheck/t/004_verify_heapam.pl
+++ b/src/bin/pg_amcheck/t/004_verify_heapam.pl
@@ -304,7 +304,7 @@ close($file)
$node->start;
# Ok, Xids and page layout look ok. We can run corruption tests.
-plan tests => 38;
+plan tests => 49;
# Check that pg_amcheck runs against the uncorrupted table without error.
$node->command_ok(['pg_amcheck', '-p', $port, 'postgres'],
@@ -526,12 +526,13 @@ for (my $tupidx = 0; $tupidx < ROWCOUNT; $tupidx++)
push (@corruptions, "UPDATE $toastname SET chunk_seq = chunk_seq + 1000 WHERE chunk_id = $value_id_to_corrupt");
$header = header(0, $offnum, 2);
push @expected,
- qr/${header}toast value 16459 chunk 0 has sequence number 1000, but expected sequence number 0/,
- qr/${header}toast value 16459 chunk 1 has sequence number 1001, but expected sequence number 1/,
- qr/${header}toast value 16459 chunk 2 has sequence number 1002, but expected sequence number 2/,
- qr/${header}toast value 16459 chunk 3 has sequence number 1003, but expected sequence number 3/,
- qr/${header}toast value 16459 chunk 4 has sequence number 1004, but expected sequence number 4/,
- qr/${header}toast value 16459 chunk 5 has sequence number 1005, but expected sequence number 5/;
+ qr/${header}toast value 16459 index scan returned chunk 1000 when expecting chunk 0/,
+ qr/${header}toast value 16459 chunk 1000 follows last expected chunk 5/,
+ qr/${header}toast value 16459 chunk 1001 follows last expected chunk 5/,
+ qr/${header}toast value 16459 chunk 1002 follows last expected chunk 5/,
+ qr/${header}toast value 16459 chunk 1003 follows last expected chunk 5/,
+ qr/${header}toast value 16459 chunk 1004 follows last expected chunk 5/,
+ qr/${header}toast value 16459 chunk 1005 follows last expected chunk 5/;
}
elsif ($offnum == 17)
{
@@ -539,12 +540,16 @@ for (my $tupidx = 0; $tupidx < ROWCOUNT; $tupidx++)
push (@corruptions, "UPDATE $toastname SET chunk_seq = chunk_seq * 1000 WHERE chunk_id = $value_id_to_corrupt");
$header = header(0, $offnum, 2);
push @expected,
- qr/${header}toast value $value_id_to_corrupt chunk 1 has sequence number 1000, but expected sequence number 1/,
- qr/${header}toast value $value_id_to_corrupt chunk 2 has sequence number 2000, but expected sequence number 2/,
- qr/${header}toast value $value_id_to_corrupt chunk 3 has sequence number 3000, but expected sequence number 3/,
- qr/${header}toast value $value_id_to_corrupt chunk 4 has sequence number 4000, but expected sequence number 4/,
- qr/${header}toast value $value_id_to_corrupt chunk 5 has sequence number 5000, but expected sequence number 5/;
-
+ qr/${header}toast value 16460 index scan returned chunk 1000 when expecting chunk 1/,
+ qr/${header}toast value 16460 chunk 1000 follows last expected chunk 5/,
+ qr/${header}toast value 16460 index scan returned chunk 2000 when expecting chunk 1001/,
+ qr/${header}toast value 16460 chunk 2000 follows last expected chunk 5/,
+ qr/${header}toast value 16460 index scan returned chunk 3000 when expecting chunk 2001/,
+ qr/${header}toast value 16460 chunk 3000 follows last expected chunk 5/,
+ qr/${header}toast value 16460 index scan returned chunk 4000 when expecting chunk 3001/,
+ qr/${header}toast value 16460 chunk 4000 follows last expected chunk 5/,
+ qr/${header}toast value 16460 index scan returned chunk 5000 when expecting chunk 4001/,
+ qr/${header}toast value 16460 chunk 5000 follows last expected chunk 5/;
}
elsif ($offnum == 18)
{
@@ -567,13 +572,18 @@ INSERT INTO $toastname (chunk_id, chunk_seq, chunk_data)
));
$header = header(0, $offnum, 2);
push @expected,
- qr/${header}toast value $value_id_to_corrupt chunk 6 has sequence number 1000, but expected sequence number 6/,
- qr/${header}toast value $value_id_to_corrupt chunk 7 has sequence number 1010, but expected sequence number 7/,
- qr/${header}toast value $value_id_to_corrupt chunk 8 has sequence number 1020, but expected sequence number 8/,
- qr/${header}toast value $value_id_to_corrupt chunk 9 has sequence number 1030, but expected sequence number 9/,
- qr/${header}toast value $value_id_to_corrupt chunk 10 has sequence number 1040, but expected sequence number 10/,
- qr/${header}toast value $value_id_to_corrupt chunk 11 has sequence number 1050, but expected sequence number 11/,
- qr/${header}toast value $value_id_to_corrupt was expected to end at chunk 6, but ended at chunk 12/;
+ qr/${header}toast value $value_id_to_corrupt index scan returned chunk 1000 when expecting chunk 6/,
+ qr/${header}toast value $value_id_to_corrupt chunk 1000 follows last expected chunk 5/,
+ qr/${header}toast value $value_id_to_corrupt index scan returned chunk 1010 when expecting chunk 1001/,
+ qr/${header}toast value $value_id_to_corrupt chunk 1010 follows last expected chunk 5/,
+ qr/${header}toast value $value_id_to_corrupt index scan returned chunk 1020 when expecting chunk 1011/,
+ qr/${header}toast value $value_id_to_corrupt chunk 1020 follows last expected chunk 5/,
+ qr/${header}toast value $value_id_to_corrupt index scan returned chunk 1030 when expecting chunk 1021/,
+ qr/${header}toast value $value_id_to_corrupt chunk 1030 follows last expected chunk 5/,
+ qr/${header}toast value $value_id_to_corrupt index scan returned chunk 1040 when expecting chunk 1031/,
+ qr/${header}toast value $value_id_to_corrupt chunk 1040 follows last expected chunk 5/,
+ qr/${header}toast value $value_id_to_corrupt index scan returned chunk 1050 when expecting chunk 1041/,
+ qr/${header}toast value $value_id_to_corrupt chunk 1050 follows last expected chunk 5/;
}
write_tuple($file, $offset, $tup);
}
--
2.21.1 (Apple Git-122.3)