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

From: Jan Wieck <JanWieck(at)Yahoo(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 21:03:57
Message-ID: 200107032103.f63L3v424094@jupiter.us.greatbridge.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

RISKO Gergely wrote:
[Charset iso-8859-1,iso- unsupported, skipping...]

> Hello!
>
> I found a funny bug in postgres with c functions. (or feature??)
> Let's say we have got an function like this:
> CREATE FUNCTION hupper(text)
> RETURNS text
> AS '/fun.so'
> LANGUAGE 'c';

This is actually neither a feature, nor a bug in Postgres.
Your function is violating some coding rules.

The text argument handed into is actually residing inside the
shared buffer cache. So you're not supposed to change it!

Your function isn't safe for compressed or toasted values. If
you accidentially have big data in that column, it might
crash the backend completely.

A function returning text has to allocate the return value
with palloc().

Look into utils/adt/*.c for examples how to deal correctly
with text attributes.

Jan

--

#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me. #
#================================================== JanWieck(at)Yahoo(dot)com #

_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2001-07-03 21:11:46 Re: Buffer access rules, and a probable bug
Previous Message Alex Pilosov 2001-07-03 20:32:21 Re: New SQL Datatype RECURRINGCHAR