Re: funny (cache (?)) bug in postgres (7.x tested)

From: Alex Pilosov <alex(at)pilosoft(dot)com>
To: RISKO Gergely <risko(at)atom(dot)hu>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: funny (cache (?)) bug in postgres (7.x tested)
Date: 2001-07-03 20:26:38
Message-ID: Pine.BSO.4.10.10107031625150.18587-100000@spider.pilosoft.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thu, 28 Jun 2001, RISKO Gergely wrote:

> text *hupper (text *a) {
> int hossz,i;
>
> hossz=a->vl_len;
> for (i=0;i<hossz;i++)
> {
> char ch;
> ch=a->vl_dat[i];
> if ((ch>=97)&(ch<=122)) ch=ch-32;
> else if (ch=='') ch='';
> else if (ch=='') ch='';
> else if (ch=='') ch='';
> else if (ch=='') ch='';
> else if (ch=='') ch='';
> else if (ch=='') ch='';
> else if (ch=='') ch='';
> else if (ch=='') ch='';
> else if (ch=='') ch='';
> a->vl_dat[i]=ch;
> }
>
> return a;
> }
(Rest snipped).

You are not supposed to write directly to the argument you are given. You
must construct a new text value (by allocating space via palloc) and
copy your string there. By overwriting existing values, you potentially
corrupt postgres' cache, resulting in your behaviour.

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Alex Pilosov 2001-07-03 20:32:21 Re: New SQL Datatype RECURRINGCHAR
Previous Message Dmitry G. Mastrukov 2001-07-03 20:19:23 Re: Re: New data type: uniqueidentifier