pgsql: Use perfect hash for NFC and NFKC Unicode Normalization quick ch

2020-10-11 Thread Michael Paquier
Use perfect hash for NFC and NFKC Unicode Normalization quick check This makes the normalization quick check about 30% faster for NFC and 50% faster for NFKC than the binary search used previously. The hash lookup reuses the existing array of bit fields used for the binary search to get the quick

pgsql: For ppc gcc, implement 64-bit compare_exchange and fetch_add wit

2020-10-11 Thread Noah Misch
For ppc gcc, implement 64-bit compare_exchange and fetch_add with asm. While xlc defines __64BIT__, gcc does not. Due to this oversight in commit 30ee5d17c20dbb282a9952b3048d6ad52d56c371, gcc builds continued implementing 64-bit atomics by way of intrinsics. Back-patch to v13, where that commit

pgsql: Choose ppc compare_exchange constant path for more operand value

2020-10-11 Thread Noah Misch
Choose ppc compare_exchange constant path for more operand values. The implementation uses smaller code when the "expected" operand is a small constant, but the implementation needlessly defined the set of acceptable constants more narrowly than the ABI does. Core PostgreSQL and PGXN don't use th

pgsql: Choose ppc compare_exchange constant path for more operand value

2020-10-11 Thread Noah Misch
Choose ppc compare_exchange constant path for more operand values. The implementation uses smaller code when the "expected" operand is a small constant, but the implementation needlessly defined the set of acceptable constants more narrowly than the ABI does. Core PostgreSQL and PGXN don't use th

pgsql: For ppc gcc, implement 64-bit compare_exchange and fetch_add wit

2020-10-11 Thread Noah Misch
For ppc gcc, implement 64-bit compare_exchange and fetch_add with asm. While xlc defines __64BIT__, gcc does not. Due to this oversight in commit 30ee5d17c20dbb282a9952b3048d6ad52d56c371, gcc builds continued implementing 64-bit atomics by way of intrinsics. Back-patch to v13, where that commit

pgsql: Adjust cycle detection examples and tests

2020-10-11 Thread Peter Eisentraut
Adjust cycle detection examples and tests Adjust the existing cycle detection example and test queries to put the cycle column before the path column. This is mainly because the SQL-standard CYCLE clause puts them in that order, and so if we added that feature that would make the sequence of exam