Hi,
I have a use case where I need to create sequences concurrently. I use sequences instead of a table with counters to
keeplock contention for incrementing the id low. The creation of new sequences rarely occurs during normal application
operation.
I check via information_schema.sequences if a sequence already exists and catch errors that occur with concurrent
accessif the corresponding sequence already exists.
I wrote a stress test that simulates the behavior with heavy concurrency. I get the following three different error
codes:
42P07
42710
23505
I would have expected only 42710 (duplicate_object).
Is this behavior intentional?
Are there possibly other error codes that the stress test did not uncover and that I should consider?
"create sequence if not exists ..." does not prevent errors with concurrency.
Tested with "PostgreSQL 12.6 on x86_64-apple-darwin16.7.0, compiled by Apple LLVM version 8.1.0 (clang-802.0.42),
64-bit"
Best regards,
Marc-Olaf Jaschke