Duda sobre creación de tipo de datos definido por el usuario

From: anthony <asotolongo(at)uci(dot)cu>
To: Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Duda sobre creación de tipo de datos definido por el usuario
Date: 2013-04-30 12:32:17
Message-ID: 517FB9D1.4090405@uci.cu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola a todos les escribo pues estoy siguiendo el manual para intentar
hacer un tipo de dato definido por el usuario, y me funciona bien, el
tema está es que si no cumple con determinado requisito el valor(en este
caso que la cadena sea mayor que 3) no deberia insertarse el valor y
entratria por ereport(ERROR... . y aunque sea menor que 3 se inserta
el valor y no lanza el mensaje de error, que pudiera estar haciendo mal
o que debo retornar en caso de que no cumpla el requisito necesario. El
código que ando escribiendo está debajo.

Ejemplo: cuando escribo "insert into ejemplo values ('aaaaaaaa')" se
inserta bien, pero si inserto "insert into ejemplo values ('a')",
también se inserta y no deberia hacerse, pues el valor del largo de la
cadena es menor que 3
:(

PG_MODULE_MAGIC;
Datum f_in(PG_FUNCTION_ARGS);
Datum f_out(PG_FUNCTION_ARGS);

PG_FUNCTION_INFO_V1(f_in);

Datum
f_in(PG_FUNCTION_ARGS)
{
char *texto = PG_GETARG_CSTRING(0);
int len;

len = strlen(texto);

///* aqui va la validación del formato, para ver si se inserta o
no ,puede ser una función externa por lo que he visto
if (len<3) {
ereport(ERROR,(errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
errmsg("invalid input syntax for new data type ."
) ));

}

PG_RETURN_TEXT_P(cstring_to_text(texto));
}

http://www.uci.cu

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Fernando Paz 2013-04-30 15:44:08 Re: ayuda con mensajes de postgres
Previous Message Marcos Michel Martinez Perez 2013-04-30 12:12:56 Re: ayuda con mensajes de postgres