Re: [RFC] Removing "magic" oids
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: Noah Misch <noah@leadboat.com>
Cc: pgsql-hackers@postgresql.org
Date: 2019-07-20T19:56:34Z
Lists: pgsql-hackers
Hi,
On 2019-07-20 11:21:52 -0700, Noah Misch wrote:
> On Fri, Jul 19, 2019 at 10:12:57AM -0700, Andres Freund wrote:
> > On 2019-07-07 10:00:35 -0700, Noah Misch wrote:
> > > +# 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;"
> > > });
> >
> > Hm, perhaps we should just do something stupid an insert into a catalog
> > table, determining the oid to insert with pg_nextoid? That ought to be a
> > lot faster and thus more "stress testing" than going through a full
> > blown DDL statement? But perhaps that's just too ugly.
>
> I expect the pg_nextoid strategy could have sufficed. The ENUM strategy
> wastes some time parsing 1000 label names, discarding odd-numbered OIDs, and
> dropping the type. The pg_nextoid strategy wastes time by performing the
> insertion loop in the executor instead of dedicated C code of
> EnumValuesCreate(). Hard to say how to weight those factors.
Fair enough. Are you planning to commit your changes?
Greetings,
Andres Freund
Commits
-
Revive test of concurrent OID generation.
- dffb891d78cb 12.0 landed
- 8a0cbb88524e 13.0 landed
-
Fix typo introduced in 578b229718.
- 54bb22f66af9 12.0 landed
-
Fix pg_upgrade for oid removal.
- 12a53c732ced 12.0 landed
-
Fix sepgsql compile error caused by oid removal.
- 937e4e509998 12.0 landed
-
Remove WITH OIDS support, change oid catalog column visibility.
- 578b229718e8 12.0 landed