Thread: Old-client/new-server...issues?
I am working on my final 7.4 -> 9.0 upgrade. Data-type (auto-coalesce and foreign-key), query and encoding issues are resolved. Dump/restore is tested. But... I have a few old client systems that are difficult/infeasible to update. I know the recommended procedure is to update clients ahead of server but what problems am I likely to encounter connecting to a 9.0 server from a 7.4 client? The client software is primarily in C, Python, Perl, Ruby and PHP with some Bash scripts using psql. Note again - the database isn't using any data-types that didn't exist in 7.4 and the queries themselves are tested OK with 9.0 so I'm more interested in backend format and related issues. Cheers, Steve
On 7/06/2011 8:32 AM, Steve Crawford wrote: > I am working on my final 7.4 -> 9.0 upgrade. Data-type (auto-coalesce > and foreign-key), query and encoding issues are resolved. Dump/restore > is tested. But... > > I have a few old client systems that are difficult/infeasible to update. > I know the recommended procedure is to update clients ahead of server > but what problems am I likely to encounter connecting to a 9.0 server > from a 7.4 client? Reliance on implicit casts to/from text in queries may be a problem. You could also have issues if the clients rely on metadata obtained from the database - for example, enumerating columns in a table or listing tables. I know this has been an issue when using older JDBC drivers against newer servers, and wouldn't be too surprised if similar issues existed with libpq. -- Craig Ringer Tech-related writing at http://soapyfrogs.blogspot.com/
Craig Ringer <craig@postnewspapers.com.au> writes: > On 7/06/2011 8:32 AM, Steve Crawford wrote: >> I am working on my final 7.4 -> 9.0 upgrade. Data-type (auto-coalesce >> and foreign-key), query and encoding issues are resolved. Dump/restore >> is tested. But... >> >> I have a few old client systems that are difficult/infeasible to update. >> I know the recommended procedure is to update clients ahead of server >> but what problems am I likely to encounter connecting to a 9.0 server >> from a 7.4 client? > Reliance on implicit casts to/from text in queries may be a problem. > You could also have issues if the clients rely on metadata obtained from > the database - for example, enumerating columns in a table or listing > tables. I know this has been an issue when using older JDBC drivers > against newer servers, and wouldn't be too surprised if similar issues > existed with libpq. libpq itself is pretty metadata-ignorant. Higher-level stuff such as python or perl DBI interfaces (or JDBC, as Craig says) would pose much more risk. At the same time, if you are sticking with a 7.4-era libpq, you're missing literally years worth of bug fixes ... and I think the compatibility risks associated with an update there are pretty minimal compared to what you're already buying into with the server-side upgrade. So my advice would be to try to relink all your old apps against more modern versions of libpq as well as any higher-level client drivers you are using. regards, tom lane