Thread: Interesting behavior change in 8.2.x
Hi, While inspecting a report from pgpool-II user, I found an interesting behavior change in 8.2 series. When connecting to 8.2.13 using 9.0's psql, I got following error message: 11034 2010-12-27 14:50:57 JST FATAL: unrecognized configuration parameter "application_name" However if I connect to 8.2.18, I got no such error message. This makes pgpool-II confusing if those version of PostgreSQL are mixed used as backend. It seems somewhere between 8.2.13 and 8.2.18, an behavior change was made. According to a someone who were inspecting this, the change was precisely made between 8.2.14 and 8.2.15. I couldn't find related item in HISTORY of 8.2.15. Does anybody know if this change was intentional? If so, why? -- Tatsuo Ishii SRA OSS, Inc. Japan English: http://www.sraoss.co.jp/index_en.php Japanese: http://www.sraoss.co.jp
On Mon, Dec 27, 2010 at 3:06 PM, Tatsuo Ishii <ishii@postgresql.org> wrote: > It seems somewhere between 8.2.13 and 8.2.18, an behavior change was > made. According to a someone who were inspecting this, the change was > precisely made between 8.2.14 and 8.2.15. I couldn't find related > item in HISTORY of 8.2.15. http://archives.postgresql.org/message-id/20091202174139.F380E753FB7%40cvs.postgresql.org > Does anybody know if this change was > intentional? If so, why? Yes, it's intentional. It's for preventing 9.0 or later libpq from causing useless connection failures when connecting to the old servers. Regards, -- Fujii Masao NIPPON TELEGRAPH AND TELEPHONE CORPORATION NTT Open Source Software Center
On Mon, Dec 27, 2010 at 6:06 AM, Tatsuo Ishii <ishii@postgresql.org> wrote: > Hi, > > While inspecting a report from pgpool-II user, I found an interesting > behavior change in 8.2 series. > > When connecting to 8.2.13 using 9.0's psql, I got following error > message: > > 11034 2010-12-27 14:50:57 JST FATAL: unrecognized configuration parameter "application_name" > > However if I connect to 8.2.18, I got no such error message. This > makes pgpool-II confusing if those version of PostgreSQL are mixed > used as backend. > > It seems somewhere between 8.2.13 and 8.2.18, an behavior change was > made. According to a someone who were inspecting this, the change was > precisely made between 8.2.14 and 8.2.15. I couldn't find related > item in HISTORY of 8.2.15. Does anybody know if this change was > intentional? If so, why? It was intentional. The application_name GUC was added to libpq for 9.0 as a startup parameter to allow connections to indicate what they were. A change was backported to prevent the server from rejecting this parameter if libpq tried to set it, instead we simply ignore it (if memory serves). The reason is, that we need to set application_name early in the connection process, before we know the server version, so we need the server to ignore it if we want people to be able to use the 9.0 libpq with older servers (which of course, we do). -- Dave Page Blog: http://pgsnake.blogspot.com Twitter: @pgsnake EnterpriseDB UK: http://www.enterprisedb.com The Enterprise PostgreSQL Company