Обсуждение: BUG #2579: initcap should not capitalize letter after apostrophe

Поиск
Список
Период
Сортировка

BUG #2579: initcap should not capitalize letter after apostrophe

От
"Dan Franklin"
Дата:
The following bug has been logged online:

Bug reference:      2579
Logged by:          Dan Franklin
Email address:      dfranklin@fen.com
PostgreSQL version: 8.1.4
Operating system:   GNU/Linux Fedora Core 5
Description:        initcap should not capitalize letter after apostrophe
Details:

The statement
  select initcap('John''s Parents');
returns
  John'S Parents

The capital "S" after the apostrophe is incorrect.  initcap should consider
the apostrophe to be a word-constituent for the purpose of identifying word
boundaries at which to start capitalizing.

Re: BUG #2579: initcap should not capitalize letter after apostrophe

От
tomas@tuxteam.de
Дата:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Wed, Aug 16, 2006 at 09:03:08PM +0000, Dan Franklin wrote:
>
> The following bug has been logged online:
>
> Bug reference:      2579
> Logged by:          Dan Franklin
> Email address:      dfranklin@fen.com
> PostgreSQL version: 8.1.4
> Operating system:   GNU/Linux Fedora Core 5
> Description:        initcap should not capitalize letter after apostrophe
> Details:
>
> The statement
>   select initcap('John''s Parents');
> returns
>   John'S Parents
>
> The capital "S" after the apostrophe is incorrect.  initcap should consider
> the apostrophe to be a word-constituent for the purpose of identifying word
> boundaries at which to start capitalizing.

Hmm. And what about Flann O'Brien?

Tough thing, this.

Regards
- -- tomás
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)

iD8DBQFE5L60Bcgs9XrR2kYRArkQAKCBI9uYSUckPWL6jzB3PFBXNAlwSgCeOoJx
NIBRgQZYqRajtx8HrUnW1Hs=
=GI/E
-----END PGP SIGNATURE-----

Re: BUG #2579: initcap should not capitalize letter

От
Dan Franklin
Дата:
Good point.  It is probably not possible to get=20
it perfect.  But I think that possessives and=20
contractions occur more often in a typical body=20
of text than Irish names.  So it would be right=20
more often, even if it is still wrong some of the time.

         Dan  Franklin

At 03:08 PM 8/17/2006, tomas@tuxteam.de wrote:
>-----BEGIN PGP SIGNED MESSAGE-----
>Hash: SHA1
>
>On Wed, Aug 16, 2006 at 09:03:08PM +0000, Dan Franklin wrote:
> >
> > The following bug has been logged online:
> >
> > Bug reference:      2579
> > Logged by:          Dan Franklin
> > Email address:      dfranklin@fen.com
> > PostgreSQL version: 8.1.4
> > Operating system:   GNU/Linux Fedora Core 5
> > Description:        initcap should not capitalize letter after apostrop=
he
> > Details:
> >
> > The statement
> >   select initcap('John''s Parents');
> > returns
> >   John'S Parents
> >
> > The capital "S" after the apostrophe is incorrect.  initcap should cons=
ider
> > the apostrophe to be a word-constituent for the purpose of identifying =
word
> > boundaries at which to start capitalizing.
>
>Hmm. And what about Flann O'Brien?
>
>Tough thing, this.
>
>Regards
>- -- tom=C3=83=C2=A1s
>-----BEGIN PGP SIGNATURE-----
>Version: GnuPG v1.4.1 (GNU/Linux)
>
>iD8DBQFE5L60Bcgs9XrR2kYRArkQAKCBI9uYSUckPWL6jzB3PFBXNAlwSgCeOoJx
>NIBRgQZYqRajtx8HrUnW1Hs=3D
>=3DGI/E
>-----END PGP SIGNATURE-----

         Dan Franklin
         Family Education Network
         Pearson Education
         617-671-3799=20

Re: BUG #2579: initcap should not capitalize letter

От
Bruce Momjian
Дата:
Dan Franklin wrote:
> Good point.  It is probably not possible to get
> it perfect.  But I think that possessives and
> contractions occur more often in a typical body
> of text than Irish names.  So it would be right
> more often, even if it is still wrong some of the time.
>

The function came from Oracle.  How does Oracle's initcap() handle this?

---------------------------------------------------------------------------

>          Dan  Franklin
>
> At 03:08 PM 8/17/2006, tomas@tuxteam.de wrote:
> >-----BEGIN PGP SIGNED MESSAGE-----
> >Hash: SHA1
> >
> >On Wed, Aug 16, 2006 at 09:03:08PM +0000, Dan Franklin wrote:
> > >
> > > The following bug has been logged online:
> > >
> > > Bug reference:      2579
> > > Logged by:          Dan Franklin
> > > Email address:      dfranklin@fen.com
> > > PostgreSQL version: 8.1.4
> > > Operating system:   GNU/Linux Fedora Core 5
> > > Description:        initcap should not capitalize letter after apostrophe
> > > Details:
> > >
> > > The statement
> > >   select initcap('John''s Parents');
> > > returns
> > >   John'S Parents
> > >
> > > The capital "S" after the apostrophe is incorrect.  initcap should consider
> > > the apostrophe to be a word-constituent for the purpose of identifying word
> > > boundaries at which to start capitalizing.
> >
> >Hmm. And what about Flann O'Brien?
> >
> >Tough thing, this.
> >
> >Regards
> >- -- tom????s
> >-----BEGIN PGP SIGNATURE-----
> >Version: GnuPG v1.4.1 (GNU/Linux)
> >
> >iD8DBQFE5L60Bcgs9XrR2kYRArkQAKCBI9uYSUckPWL6jzB3PFBXNAlwSgCeOoJx
> >NIBRgQZYqRajtx8HrUnW1Hs=
> >=GI/E
> >-----END PGP SIGNATURE-----
>
>          Dan Franklin
>          Family Education Network
>          Pearson Education
>          617-671-3799
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 9: In versions below 8.0, the planner will ignore your desire to
>        choose an index scan if your joining column's datatypes do not
>        match

--
  Bruce Momjian   bruce@momjian.us
  EnterpriseDB    http://www.enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +

Re: BUG #2579: initcap should not capitalize letter

От
Stefan Kaltenbrunner
Дата:
Bruce Momjian wrote:
> Dan Franklin wrote:
>> Good point.  It is probably not possible to get
>> it perfect.  But I think that possessives and
>> contractions occur more often in a typical body
>> of text than Irish names.  So it would be right
>> more often, even if it is still wrong some of the time.
>>
>
> The function came from Oracle.  How does Oracle's initcap() handle this?

looks like our behaviour is similiar to what oracle does:

Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production

SQL> select initcap('John''s Parents') from DUAL;

INITCAP('JOHN'
--------------
John'S Parents

SQL> select initcap('Flann O''Brian') from DUAL;

INITCAP('FLAN
-------------
Flann O'Brian


Stefan

Re: BUG #2579: initcap should not capitalize letter

От
Richard Troy
Дата:
On Thu, 17 Aug 2006, Dan Franklin wrote:

> Date: Thu, 17 Aug 2006 15:34:41 -0400
> From: Dan Franklin <dfranklin@fen.com>
> To: tomas@tuxteam.de
> Cc: pgsql-bugs@postgresql.org
> Subject: Re: [BUGS] BUG #2579: initcap should not capitalize letter
>
> Good point.  It is probably not possible to get
> it perfect.  But I think that possessives and
> contractions occur more often in a typical body
> of text than Irish names.  So it would be right
> more often, even if it is still wrong some of the time.
>
>          Dan  Franklin

Two thoughts:

1) In English at least, it's only at the trailing end of a word that the
non-capitalization is clear (contractions, possessive, etc).

2) Proper names are unknowable as to what's appropriate and I posit that
there is no algorithm that works for names.

This leads to a conclusion: Never add capitalization inside a string of
letters.

Rgds,
Richard

>
> At 03:08 PM 8/17/2006, tomas@tuxteam.de wrote:
> >-----BEGIN PGP SIGNED MESSAGE-----
> >Hash: SHA1
> >
> >On Wed, Aug 16, 2006 at 09:03:08PM +0000, Dan Franklin wrote:
> > >
> > > The following bug has been logged online:
> > >
> > > Bug reference:      2579
> > > Logged by:          Dan Franklin
> > > Email address:      dfranklin@fen.com
> > > PostgreSQL version: 8.1.4
> > > Operating system:   GNU/Linux Fedora Core 5
> > > Description:        initcap should not capitalize letter after apostrophe
> > > Details:
> > >
> > > The statement
> > >   select initcap('John''s Parents');
> > > returns
> > >   John'S Parents
> > >
> > > The capital "S" after the apostrophe is incorrect.  initcap should consider
> > > the apostrophe to be a word-constituent for the purpose of identifying word
> > > boundaries at which to start capitalizing.
> >
> >Hmm. And what about Flann O'Brien?
> >
> >Tough thing, this.
> >
> >Regards
> >- -- tomás
> >-----BEGIN PGP SIGNATURE-----
> >Version: GnuPG v1.4.1 (GNU/Linux)
> >
> >iD8DBQFE5L60Bcgs9XrR2kYRArkQAKCBI9uYSUckPWL6jzB3PFBXNAlwSgCeOoJx
> >NIBRgQZYqRajtx8HrUnW1Hs=
> >=GI/E
> >-----END PGP SIGNATURE-----
>
>          Dan Franklin
>          Family Education Network
>          Pearson Education
>          617-671-3799
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 9: In versions below 8.0, the planner will ignore your desire to
>        choose an index scan if your joining column's datatypes do not
>        match
>

--
Richard Troy, Chief Scientist
Science Tools Corporation
510-924-1363 or 202-747-1263
rtroy@ScienceTools.com, http://ScienceTools.com/

Re: BUG #2579: initcap should not capitalize letter

От
Bruce Momjian
Дата:
Richard Troy wrote:
>
>
> On Thu, 17 Aug 2006, Dan Franklin wrote:
>
> > Date: Thu, 17 Aug 2006 15:34:41 -0400
> > From: Dan Franklin <dfranklin@fen.com>
> > To: tomas@tuxteam.de
> > Cc: pgsql-bugs@postgresql.org
> > Subject: Re: [BUGS] BUG #2579: initcap should not capitalize letter
> >
> > Good point.  It is probably not possible to get
> > it perfect.  But I think that possessives and
> > contractions occur more often in a typical body
> > of text than Irish names.  So it would be right
> > more often, even if it is still wrong some of the time.
> >
> >          Dan  Franklin
>
> Two thoughts:
>
> 1) In English at least, it's only at the trailing end of a word that the
> non-capitalization is clear (contractions, possessive, etc).
>
> 2) Proper names are unknowable as to what's appropriate and I posit that
> there is no algorithm that works for names.
>
> This leads to a conclusion: Never add capitalization inside a string of
> letters.

Interesting, but it worth breaking Oracle compatibility for it?

--
  Bruce Momjian   bruce@momjian.us
  EnterpriseDB    http://www.enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +