I am getting more curious, WIndows is consistent, but Azure/Linux is not.
select '.' < '0'; -- true, true
select '.x' < '0x'; -- false, true
select '.1' < '01'; -- false, true
select '..' < '0.'; -- true, true
select '..1' < '0.1'; -- false, true
On Windows: PostgreSQL 16.2, compiled by Visual C++ build 1937, 64-bit
On Azure: PostgreSQL 16.3 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 11.2.0, 64-bit
The following bug has been logged on the website:
Bug reference: 18523
Logged by: Patrick van Dijk
Email address: patrick.van.dijk@gmail.com
PostgreSQL version: 16.3
Operating system: Windows vs Linux/Azure
Description:
When I try the following on a Azure/Linux version of PostgreSQL i see some
strange results that are not correct.
On Windows the behavior is correct.
select '|' < '0'; -- true, true, this is correct
select '|1' < '01'; -- false, true, Azure/Linux is wrong
select '||' < '0|'; -- true, true, this is correct
select '||1' < '0|1'; -- false, true, Azure/Linux is wrong
When the first character compares <, then no matter what follows, it should
be <...