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));
}
-
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
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 |