Hi Stephen, > What would be really useful would be "best case" and "worst case" > scenarios.
I've put together some data from a microbenchmark of the bcTrulen function, patched and unpatched. As for best-case, if you have a long string of trailing spaces, we can go through them at theoretically one quarter of cost (a test benchmark on x86 shows an actual reduction of 11 to 3 sec with a string of 100 spaces). Worst-case behaviour is with smaller numbers of spaces. Here are the transition points (ie, where doing the word-wise comparison is faster than byte-wise) that I see from my benchmark: align spaces 3 7 2 6 1 5 0 4 - where 'align' is the alignment of the first byte to compare (ie, at the end of the string). This is pretty much as-expected, as these transition points are the first opportunity that the new function has to do a word compare. In the worst cases, I see a 53% cost increase on x86 (with the string 'aaa ') and a 97% increase on PowerPC ('a '). So, it all depends on the number of padding spaces we'd expect to see on workload data. Fortunately, we see the larger reductions on the more expensive operations (ie, longer strings). Cheers, Jeremy -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers