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
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 |