Обсуждение: BUG #2579: initcap should not capitalize letter after apostrophe
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.
-----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-----
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
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. +
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
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/
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. +