]> granicus.if.org Git - postgresql/commitdiff
Revive test of concurrent OID generation.
authorNoah Misch <noah@leadboat.com>
Sat, 13 Jul 2019 20:34:22 +0000 (13:34 -0700)
committerNoah Misch <noah@leadboat.com>
Sat, 13 Jul 2019 20:34:22 +0000 (13:34 -0700)
Commit 578b229718e8f15fa779e20f086c4b6bb3776106 replaced it with a
concurrent "nextval" test.  That version does not detect PostgreSQL's
incompatibility with xlc 13.1.3, so bring back an OID-based test that
does.  Back-patch to v12, where that commit first appeared.

Discussion: https://postgr.es/m/20190707170035.GA1485546@rfd.leadboat.com

src/bin/pgbench/t/001_pgbench_with_server.pl

index dc2c72fa9276f078d95120fccbf31ced0ae839c6..3b097a91b28c44a81840710f777bbfc4522631a6 100644 (file)
@@ -58,27 +58,20 @@ sub pgbench
        return;
 }
 
-# Test concurrent insertion into table with serial column.  This
-# indirectly exercises LWLock and spinlock concurrency.  This test
-# makes a 5-MiB table.
-
-$node->safe_psql('postgres',
-       'CREATE UNLOGGED TABLE insert_tbl (id serial primary key); ');
-
+# Test concurrent OID generation via pg_enum_oid_index.  This indirectly
+# exercises LWLock and spinlock concurrency.
+my $labels = join ',', map { "'l$_'" } 1 .. 1000;
 pgbench(
        '--no-vacuum --client=5 --protocol=prepared --transactions=25',
        0,
        [qr{processed: 125/125}],
        [qr{^$}],
-       'concurrent insert workload',
+       'concurrent OID generation',
        {
                '001_pgbench_concurrent_insert' =>
-                 'INSERT INTO insert_tbl SELECT FROM generate_series(1,1000);'
+                 "CREATE TYPE pg_temp.e AS ENUM ($labels); DROP TYPE pg_temp.e;"
        });
 
-# cleanup
-$node->safe_psql('postgres', 'DROP TABLE insert_tbl;');
-
 # Trigger various connection errors
 pgbench(
        'no-such-database',