Exception Handling in C-Language Functions?

From: rahul143 <rk204885(at)gmail(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Exception Handling in C-Language Functions?
Date: 2012-12-03 05:18:57
Message-ID: 1354511937712-5734656.post@n5.nabble.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general pgsql-www

I have the created a C-Language function (code is below). Now, I
wonder: How do I handle exceptions, for example if malloc cannot assign
the necessary memory? Do "palloc" and "pfree" handle such a case
cleanly? Should I simply use an "assert"?

#include "postgres.h"
#include <string.h>
#include <stdlib.h>
#include "fmgr.h"
#include "libinn.h"

PG_FUNCTION_INFO_V1(ffiinews_uwildmat);

/* Wrapper for INN's function uwildmat. Needs parameters in UTF-8. */
Datum ffiinews_uwildmat(PG_FUNCTION_ARGS) {
VarChar *text = PG_GETARG_VARCHAR_P(0);
VarChar *pattern = PG_GETARG_VARCHAR_P(1);
int text_len = VARSIZE(text)-VARHDRSZ;
int pattern_len = VARSIZE(pattern)-VARHDRSZ;
char *tmp_text = (char *)malloc(text_len+1);
if (tmp_text == NULL)
; /* What now? */
char *tmp_pattern = (char *)malloc(pattern_len+1);
if (tmp_pattern == NULL)
; /* What now? */
strncpy(tmp_text, VARDATA(text), text_len);
tmp_text[text_len] = '\0';
strncpy(tmp_pattern, VARDATA(pattern), pattern_len);
tmp_pattern[pattern_len] = '\0';
bool matches = uwildmat(tmp_text, tmp_pattern);

-----

--
View this message in context: http://postgresql.1045698.n5.nabble.com/GENERAL-Exception-Handling-in-C-Language-Functions-tp5734656.html
Sent from the PostgreSQL - general mailing list archive at Nabble.com.

Responses

Browse pgsql-general by date

  From Date Subject
Next Message rahul143 2012-12-03 05:20:40 [SQL] Calling Functions in RULEs
Previous Message rahul143 2012-12-03 05:18:07 Postgres PHP error

Browse pgsql-www by date

  From Date Subject
Next Message Alvaro Herrera 2012-12-03 06:14:54 MODERATOR WARNING Re: [GENERAL] Exception Handling in C-Language Functions?
Previous Message Jason Godden 2012-12-02 04:03:09 Re: melbourne-au-pug