Also made the `tablespaces_are()` examples a bit more realistic.
In the function tests, the return value of a function was not always consistently formatted. For example, `function_returns()` would find "bool" instead of "boolean".
… testing environments and consistent with "prove" command)
Copied OS detection from Perl's `Configure` script to new script, `getos.sh`. OS detection should now be much more accurate.
As I was writing a blog entry for 0.22, I realized that it made more sense to keep the set and bag functions grouped spearately: sets with sets and bags with bags. I also updated the link to the summary of result set function arguments to the new name of the section.
In updating for 8.0, I got rid of all the `E''`s in `sql/resultset.sql` and `sql/valueset.sql`, but since they had backslashes in them, they broke in later versions. Fortunately, I was able to replaces those backslashes (in regular expressions) with character classes (`[(]` instead of `\\(`), thus eliminating the problem in all versions of PostgreSQL. Also updated the 8.3 install patch, since I deleted a line while working on 8.0. Also got the 8.3 patch to apply again!
Looks like I will have to figure out some way to avoid E'' in the resultset tests. In higher versions of PostgreSQL, that is. Not sure how I'll do it, but that's coming next.
It turns out that PostgreSQL 8.1 and earlier don't support the `VALUES` statement. So I moved all the tests in `sql/resultset.sql` to `sql/valueset.sql` and disabled them for 8.1 and earlier. Then I changed all the uses of `VALUES` in `sql/resultset.sql` to use either `UNION` queries (for set- and bag-comparing functions, where order doesn't matter) or temporary tables (for result-comparing functions, where order does matter).