--
Has recibido este mensaje porque estás suscrito a Grupo "ayuda-linux"
de Grupos de Google.
Si quieres publicar en este grupo, envía un mensaje de correo
electrónico a ayuda...@googlegroups.com
Para anular la suscripción a este grupo, envía un mensaje a
ayuda-linux...@googlegroups.com
Para obtener más opciones, visita este grupo en
http://groups.google.es/group/ayuda-linux?hl=es. o http://www.compunauta.com/ayuda/
Llevo usando postgres mas de 10 anios y mi opcion ha sido siempre
evitar acentos, enies y demas mounstrosidades.
Aun asi, puedes intentar varias cosas:
http://www.flexiguided.de/publications.pgcollkey.en.html
http://www.blackbagops.net/tag/postgresql/
Si alguna te funciona avisanos para sabes a que atenernos. Hace mucho
que no lo intento de nuevo, espero que ya haya algun soporte nativo
para resolver este asunto.
Saludos!
El día 4 de abril de 2011 11:08, Mario Benitez
<mariob...@hotmail.com> escribió:
Saludos.
> Saludos y gracias de antemano.
--
Gustavo Guillermo Perez
http://www.compunauta.com
http://www.compunauta.net
http://anuncios.compunauta.net
Respecto a los constraints, MySQL tiene varios drivers internos de
almacenamiento y no todos lo soportan es cierto eso no quiere decir que no
tenga soporte, al crear las tablas uno elije que tipo de storage, sabiendo
pro/cons puedes elegir entre velocidad/journaling/constraints etc.
para hacer esto te recomendaría buscar una biblioteca común de utf8 para que
conviertas las cadenas a utf8, luego las pases a minúsculas a ambas y por
último antes de hacer la comparación, reemplazar íÍïÏì por i antes de ejecutar
==.
También deberías modificar las funciones que actualizan y modifican el índice
para indexar las versiones minúsculas y con los caracteres convertidos, siendo
que no vas a alterar el registro original, solo la versión del char con el que
indexas y comparas.
Saludos.
CREATE OR REPLACE FUNCTION asciify(unicode text) RETURNS text AS $$
DECLARE
translated text;
BEGIN
translated := '';
FOR i in 1..(char_length(unicode)) LOOP
translated := translated || chr(ascii(substring(unicode,i,1))%128);
END LOOP;
RETURN translated;
END;
$$ LANGUAGE plpgsql;
No es mala porque en realidad el codigo no se interpreta cada vez que
se hace la comparacion. Cuando creas la funcion se compila y se guarda
en codigo objeto (o posiblemente maquina), haciendo que su ejecucion
sea tan rapida como las funciones nativas.
No la haz probado?
Saludos!
El día 4 de abril de 2011 16:42, Gustavo Guillermo Perez
<gus...@compunauta.com> escribió:
Lo que queria decir es la velocidad de ejecucion por cada registro es
comprable a la de un 'like' , por decir algo. Ambos tienen que hacer
sustituciones internas de un buffer en la memoria para cada llamada a
la funcion.
Asi las cosas tu programa puede ser que no se vea afectado grandemente
por esta situacion.
De cualquier manera, si estas hablando de sacar millones de registros
de una tabla, la transposicion de unos cuantos bytes sera el menor de
tus cuellos de botella.
Saludos
El día 4 de abril de 2011 16:50, Gustavo Guillermo Perez
:p
Es extremadamente facil de implementar del lado del cliente o servidor
y en cualquier lenguaje.
No necesitas mas que las vocales si usas un like y por supuesto, los
numeros son solo un lujo (A = 4).
Lo malo es que las expresiones regulares cuestan CPU, y son caras ! :D
Pero la trivialidad de la solucion lo justifica.
Saludos
http://archives.postgresql.org/pgsql-hackers/2008-05/msg00923.php
Saludos.
> Saludos.
>
> > Date: Mon, 4 Apr 2011 20:01:15 -0700
> > Subject: [AYUDA] Re: Queries de caracteres acentuados en Postgres
> > From: jgvi...@gmail.com
> > To: ayuda...@googlegroups.com
> >
> > Mario, no conozco el postgres, pero si es parecido al sql, por lo que
> > estoy viendo, fijate con la siguiente consulta:
> > Select * from tabla
> > Where Nombre like lower 'maria'
> > Abrazo
> >
> > On 4 abr, 12:59, Mario Benitez <mariobeni...@hotmail.com> wrote:
> > > Que tal estimadísimos,
> > >
> > > Mi duda con Postgres 8.4, es cómo diablos puedo ejecutar un select,
> > > donde un campo (p.e: nombre) conincida con 'maría' y me arroje los
> > > resultados:
> > >
> > > MARIA
> > > MARÍA
> > > maria
> > > maría
> > >
> > > Alguien ya resolvió esto en postgres?
> > >
> > > Saludos y gracias de antemano.
--
--