Re: [PATCHES] unknownin/out patch (was PQescapeBytea is
От | Tatsuo Ishii |
---|---|
Тема | Re: [PATCHES] unknownin/out patch (was PQescapeBytea is |
Дата | |
Msg-id | 20020415165023R.t-ishii@sra.co.jp обсуждение исходный текст |
Список | pgsql-hackers |
I'm about to commit your patches with a small fix. -- Tatsuo Ishii From: Joe Conway <mail@joeconway.com> Subject: Re: [PATCHES] unknownin/out patch (was [HACKERS] PQescapeBytea is Date: Mon, 08 Apr 2002 22:57:47 -0700 Message-ID: <3CB282DB.4050708@joeconway.com> > Joe Conway wrote: > > Tatsuo Ishii wrote: > > >>> Tatsuo Ishii wrote: > > >>> > > >>>> > > >>>> Try a multibyte encoding database. For example, > > >>>> > > >>>> $ createdb -E EUC_JP test $ psql -c 'SELECT > > >>>> SUBSTRING('1234567890' FROM 3)' test substring ----------- 3456 > > >>>> > > > > >>>> (1 row) > > >>>> > > >>>> Apparently this is wrong. -- Tatsuo Ishii > > >>> > > >>> This problem exists in CVS tip *without* the unknownin/out > > >>> patch: > > >> > > >> Sure. That has been broken for a while. > > > > > > > > > I guess this actually happened in 1.79 of varlena.c: > > > > > Yes, I was just looking at that also. It doesn't consider the case of n > > = -1 for MB. See the lines: > > > > #ifdef MULTIBYTE > > eml = pg_database_encoding_max_length (); > > > > if (eml > 1) > > { > > sm = 0; > > sn = (m + n) * eml + 3; > > } > > #endif > > > > When n = -1 this does the wrong thing. And also a few lines later: > > > > #ifdef MULTIBYTE > > len = pg_mbstrlen_with_len (VARDATA (string), sn - 3); > > > > I think both places need to test for n = -1. Do you agree? > > > > > > Joe > > > > The attached patch should fix the bug reported by Tatsuo. > > # psql -U postgres testjp > Welcome to psql, the PostgreSQL interactive terminal. > > Type: \copyright for distribution terms > \h for help with SQL commands > \? for help on internal slash commands > \g or terminate with semicolon to execute query > \q to quit > > testjp=# SELECT SUBSTRING('1234567890' FROM 3); > substring > ------------ > 34567890 > (1 row) > > Joe
В списке pgsql-hackers по дате отправления: