Re: [pgsql-es-ayuda] Consulta que no tome en cuenta las tildes

2015-10-24 Por tema Francisco Olarte
2015-10-24 14:07 GMT+02:00 Hellmuth Vargas :
> Y porque no considerar FTS?

Normalmente es una buena solución, si no te importan los falsos
positivos ( porque me temo que te pueda devolver cosas como metodos,
metodico y/o metodologia, ahora no tengo forma de probarlo ) y que el
indice te salga algo mayor ( si no recuerdo al lo eran, pero no creo
que importe si usas la flexibilidad que te da ). No conociendo bien el
problema, yo creo que es lo mejor, y con lo que se dijo yo optaria
probablemente por FTS+app filtering si hay algun falso positivo. (
habiendolo sugerido tu con anterioridad yo me limite a indicar como se
hace para indexar sin acentos por si no queria FTS )

Francisco Olarte.

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


Re: [pgsql-es-ayuda] Consulta que no tome en cuenta las tildes

2015-10-24 Por tema Francisco Olarte
Un poco fuera de topico. No se como se traduce 'top posting' al
castellano, y soy un poco nuevo en esta lista, pero es ¿costumbre por
aqui ?

2015-10-24 14:01 GMT+02:00 Horacio Miranda :
> Soundex es para eso, si lo quieres usar bien, de lo contrario debes hacer un
> indice con todas las variantes que se te puedan imaginar.

Soundex, si no recuerdo mal ( y si knuth ya la wikipedia se equivocan,
ya que PSLM lo mire antes de contestarte la primera vez ), se invento
para los nombres de la gente en ingles, no para textos genericos en
cualquier idioma ( por eso descarta las vocales asi como "yhw" que no
suelen dar mucha informacion ). El primer problema, tildes aparte, es
que te va a dar lo mismo para metodo, metida, matado, medida, ... Lo
he usado, y nisiquiera funciona bien para los nombres en castellano (
donde en general no suele ser necesario, dado que la pronunciacion es
muy directa, normalmente con omitir tildes vas sobrao ).

No tienes que hacer un indice con todas las variantes si quieres solo
quitar tildes. Tienes que hacer un indice funcional y consultar por la
funcion. Igual que para hacer una consulta que no distinga mayusculas
de minusculas no hay que indexar or todas las variaciones, vale por
indexar por la palabra en mayusculas y preguntar por la palabra en
mayusculas.

Francisco Olarte.

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


Re: [pgsql-es-ayuda] Desactivar y activar un trigger o constraint desde sentencia SQL

2015-10-24 Por tema Carlos Joaniquet
A programa cliente me refiero a un programa de gestión que se conecta a la db 
para obtener y volcar información y desde donde quiero hacer alguna tarea en la 
que en un momento determinado necesito desactivar por ejp un trigger. El 
programa para actualizar info hace UPDATE o DELETE y para obtenerla SELECT. 
¿Qué intrucción se manda para activar-desactivar un trigger o una restricción? 
Ahora lo hago con pgAdmin manualmente. 

Me espero a actualizar. Por ahora va todo perfecto. 

Gracias

Carlos Joaniquet Tamburini

> El 24 oct 2015, a las 12:51, Francisco Olarte  
> escribió:
> 
> Buenos dias:
> 
> 2015-10-24 0:03 GMT+02:00 Carlos Joaniquet :
>> Me gustaría saber si desde un programa cliente puedo desactivar y activar 
>> un trigger o constraint desde sentencia SQL para realizar alguna tarea de 
>> mantenimiento.
> 
> ¿ A que le llamas un programa cliente ? El psql es un prgrama cliente,
> el pgadmin otro y una aplicacion en java usando JDBC, p.e., otro.
> Todos se comunican con la BD por un socket, al servidor le da igual.
> De hecho el pgrestore es otro programa cliente que hace cosas de esas
> mientras restaura, y las hace de la misma forma que cualquier otra
> aplicacion, mandando cosas por un socket.
> 
>> Por otro lado, a nivel informativo y que nada tiene  que ver, si todo me va 
>> como un tiro, me conviene pasar de versión 9.1 a 9.3? Hay que hacer muchos 
>> cambios?
> 
> Yo te recomendaria, si te vas a liar, pasar a la 9.4 ( que ya esta mas
> testeadita y te dara mas tiempo antes de ser declarada fuera de
> soporte )  ( o esperar a la 9.5 ). Yo cambie de 9.1 a 9.3 sin
> problemas ( solo la ventana de mantenimiento para tener tiempo a hacer
> dump/restore ). Lo que es mas critico en estas cosas suele ser si
> puedes parar el sistema un rato para mover las cosas con calma, es
> decir, dependes del tamaño de la BD mas que otra cosa, sin saber el
> tiempo que tardarias en hacerlo y la posibilidad de parar es dificil
> recomendar naa.
> 
> Si tu setup te lo permite intenta restaurar un backup en una maquina
> de pruebas y probar las aplicaciones, asi como medir el tiempo que
> tardas en hacer un backup + restore, y aprendete como hacer restores
> rapidos ( lo clasico, minimo log, fsync off, buena cantidad de buffers
> porque solo hay un proceso tocando ).
> 
> Francisco Olarte.
> 
> -
> Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
> Para cambiar tu suscripción:
> http://www.postgresql.org/mailpref/pgsql-es-ayuda

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


Re: [pgsql-es-ayuda] Consulta que no tome en cuenta las tildes

2015-10-24 Por tema Horacio Miranda

https://wiki.postgresql.org/wiki/SoundexESP


On 10/25/2015 6:21 AM, Francisco Olarte wrote:

Un poco fuera de topico. No se como se traduce 'top posting' al
castellano, y soy un poco nuevo en esta lista, pero es ¿costumbre por
aqui ?

2015-10-24 14:01 GMT+02:00 Horacio Miranda :

Soundex es para eso, si lo quieres usar bien, de lo contrario debes hacer un
indice con todas las variantes que se te puedan imaginar.


Soundex, si no recuerdo mal ( y si knuth ya la wikipedia se equivocan,
ya que PSLM lo mire antes de contestarte la primera vez ), se invento
para los nombres de la gente en ingles, no para textos genericos en
cualquier idioma ( por eso descarta las vocales asi como "yhw" que no
suelen dar mucha informacion ). El primer problema, tildes aparte, es
que te va a dar lo mismo para metodo, metida, matado, medida, ... Lo
he usado, y nisiquiera funciona bien para los nombres en castellano (
donde en general no suele ser necesario, dado que la pronunciacion es
muy directa, normalmente con omitir tildes vas sobrao ).

No tienes que hacer un indice con todas las variantes si quieres solo
quitar tildes. Tienes que hacer un indice funcional y consultar por la
funcion. Igual que para hacer una consulta que no distinga mayusculas
de minusculas no hay que indexar or todas las variaciones, vale por
indexar por la palabra en mayusculas y preguntar por la palabra en
mayusculas.

Francisco Olarte.



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


Re: [pgsql-es-ayuda] Desactivar y activar un trigger o constraint desde sentencia SQL

2015-10-24 Por tema Horacio Miranda

Primer Link en google me muestra esto.

http://stackoverflow.com/questions/3942258/how-do-i-temporarily-disable-triggers-in-postgresql


On 10/25/2015 2:07 PM, Carlos Joaniquet wrote:

A programa cliente me refiero a un programa de gestión que se conecta a la db 
para obtener y volcar información y desde donde quiero hacer alguna tarea en la 
que en un momento determinado necesito desactivar por ejp un trigger. El 
programa para actualizar info hace UPDATE o DELETE y para obtenerla SELECT. 
¿Qué intrucción se manda para activar-desactivar un trigger o una restricción? 
Ahora lo hago con pgAdmin manualmente.

Me espero a actualizar. Por ahora va todo perfecto.

Gracias

Carlos Joaniquet Tamburini


El 24 oct 2015, a las 12:51, Francisco Olarte  escribió:

Buenos dias:

2015-10-24 0:03 GMT+02:00 Carlos Joaniquet :

Me gustaría saber si desde un programa cliente puedo desactivar y activar un 
trigger o constraint desde sentencia SQL para realizar alguna tarea de 
mantenimiento.


¿ A que le llamas un programa cliente ? El psql es un prgrama cliente,
el pgadmin otro y una aplicacion en java usando JDBC, p.e., otro.
Todos se comunican con la BD por un socket, al servidor le da igual.
De hecho el pgrestore es otro programa cliente que hace cosas de esas
mientras restaura, y las hace de la misma forma que cualquier otra
aplicacion, mandando cosas por un socket.


Por otro lado, a nivel informativo y que nada tiene  que ver, si todo me va 
como un tiro, me conviene pasar de versión 9.1 a 9.3? Hay que hacer muchos 
cambios?


Yo te recomendaria, si te vas a liar, pasar a la 9.4 ( que ya esta mas
testeadita y te dara mas tiempo antes de ser declarada fuera de
soporte )  ( o esperar a la 9.5 ). Yo cambie de 9.1 a 9.3 sin
problemas ( solo la ventana de mantenimiento para tener tiempo a hacer
dump/restore ). Lo que es mas critico en estas cosas suele ser si
puedes parar el sistema un rato para mover las cosas con calma, es
decir, dependes del tamaño de la BD mas que otra cosa, sin saber el
tiempo que tardarias en hacerlo y la posibilidad de parar es dificil
recomendar naa.

Si tu setup te lo permite intenta restaurar un backup en una maquina
de pruebas y probar las aplicaciones, asi como medir el tiempo que
tardas en hacer un backup + restore, y aprendete como hacer restores
rapidos ( lo clasico, minimo log, fsync off, buena cantidad de buffers
porque solo hay un proceso tocando ).

Francisco Olarte.

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


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



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


Re: [pgsql-es-ayuda] duda sobre indices

2015-10-24 Por tema Francisco Olarte
Buenos dias:

2015-10-22 22:44 GMT+02:00 Igniris Valdivia :
> tengo un indice btree que contiene dos campos digamos id1 e id2 pues se debe
> garantizar la unicidad de la combinacion de estos campos
> ahora en la consulta donde la uso se usan los operadores igual e IN como por
> ejemplo:
>
> id1=id3 AND id2 IN (1,2,3)
>
> y como el indice es compuesto la busqueda del IN la hace secuencial
> que pudiera hacer para arreglar eso sin tener que crear un nuevo indice solo
> para el capo id2 pues considero que esto ralentizaria aun mas la consulta en
> lugar de optimizarla

Como ya te han dicho, un explain analyze ayudaria. Añadire que ademas
la definicion real de las tablas/indices es necesaria, el optimizador
es un bicho complicado y diferencias pequeñas en las definciones
pueden dar grandes diferencias en los resultados.

¿ Cuando dices que la busqueda la hace secuencial a que te refieres
exactamente ? ¿ Secuencial en el resultado de buscar id1, en toda la
tabla ?

Dicho esto, en general un indice por (id1, id2) te vale para buscar
por id1 o por ambos, pero no por id2. En tu caso puede que el
opitmizador no llegue a entender todo el query, y a veces puedes
mejorarlo pidiendo (id1=id2) and (id2=1 or id2=2 or id2=3), todo es
cuestion de probar.

Francisco Olarte.

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


Re: [pgsql-es-ayuda] Consulta que no tome en cuenta las tildes

2015-10-24 Por tema Francisco Olarte
2015-10-22 22:37 GMT+02:00 Horacio Miranda :
> Por que no usar soundex ?
> http://www.postgresql.org/docs/9.1/static/fuzzystrmatch.html

¿ Porque, segun el primer parrafo de la pagina a la que apuntas "The
Soundex system is a method of matching similar-sounding names by
converting them to the same code. It was initially used by the United
States Census in 1880, 1900, and 1910. Note that Soundex is not
very useful for non-English names.<" y el uso de tildes implica
non-English names ?

AFAIK el soundex NO esta definido si hay tildes y tira todas las
vocales no iniciales. Yo en esos casos siempre he optado por hacer un
folding si se conoce el alfabeto de entrada, algo como [select
translate('Método', 'áéíóúñ','aeioun');]. Si se encapsula eso en una
funcion SQL marcada como "strict inmutable" se puede hacer un indice
por esa expresion y usarla en los queries ( si se hace cuidado, no se
puede cambiar la funcion despues de crear el indice, por algo se marca
immutable, hay que reindexar ). Yo he usado eso para cambiar las cosas
mas habituales del latin1 a ascii ( la db era utf8, pero como los
usuarios venian de windows, uno de los pocos SO que es unicode por
dentro, los datos usaban solo, como es habitual, caracteres presentes
en win1252), ya que tenia un problema similar.

Francisco Olarte.

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


Re: [pgsql-es-ayuda] Consulta que no tome en cuenta las tildes

2015-10-24 Por tema Hellmuth Vargas
Hola lista

Y porque no considerar FTS?
El oct. 22, 2015 12:30 PM, "Hellmuth Vargas"  escribió:

> Hola Mauricio y lista
>
>
> Yo le sugeriría emplear FTS (FULL TEXT SEARCH ENGINE) pues maneja tanto
> las tildes como mayúsculas/minúsculas. El ejemplo básico (sin indices,
> columnas precalculadas, etc) es:
>
>
> SELECT  *
> FROM (VALUES ('perro'),('Método'),(
> 'MÉTODO'),('metodo'),('casa'),('lote')) AS a(dato)
>  WHERE to_tsvector('spanish',a.dato) @@ plainto_tsquery('método');
>
>
>   dato
> 
>  Método
>  MÉTODO
>  metodo
>
> (3 rows)
>
>
>
>
>
>
>
> El 22 de octubre de 2015, 12:09 p. m., mauricio pullabuestan<
> jmaurici...@yahoo.es> escribió:
>
>> Buen día
>>
>> Tengo una tabla personal con un campo cargo en donde el usuario puede
>> ingresar los cargos, existe registros en donde ingresa "Métodos" o
>> "Metodos" lo cual es un problema.
>>
>> En Sql Server hay un parámetro de configuración donde le indicaba no
>> distinguir acentos y otro parámetro para no distinguir entre mayúsculas y
>> minúsculas y a los sql no tienen nada de especial.
>>
>> Existe en postgresq algo similar?
>>
>> Quiero evitar hacer esto:
>>
>> SELECT codigo, nombres
>> FROM personal
>> where cargo ILIKE '%Métodos%' Or cargo ILIKE '%Metodos%'
>> ORDER BY nombres;
>>
>> Saludos.
>> Mauricio
>>
>
>
>
> --
> Cordialmente,
>
> Ing. Hellmuth I. Vargas S.
> Esp. Telemática y Negocios por Internet
> Oracle Database 10g Administrator Certified Associate
> EnterpriseDB Certified PostgreSQL 9.3 Associate
>
>


Re: [pgsql-es-ayuda] Desactivar y activar un trigger o constraint desde sentencia SQL

2015-10-24 Por tema Francisco Olarte
Buenos dias:

2015-10-24 0:03 GMT+02:00 Carlos Joaniquet :
> Me gustaría saber si desde un programa cliente puedo desactivar y activar un 
> trigger o constraint desde sentencia SQL para realizar alguna tarea de 
> mantenimiento.

¿ A que le llamas un programa cliente ? El psql es un prgrama cliente,
el pgadmin otro y una aplicacion en java usando JDBC, p.e., otro.
Todos se comunican con la BD por un socket, al servidor le da igual.
De hecho el pgrestore es otro programa cliente que hace cosas de esas
mientras restaura, y las hace de la misma forma que cualquier otra
aplicacion, mandando cosas por un socket.

> Por otro lado, a nivel informativo y que nada tiene  que ver, si todo me va 
> como un tiro, me conviene pasar de versión 9.1 a 9.3? Hay que hacer muchos 
> cambios?

Yo te recomendaria, si te vas a liar, pasar a la 9.4 ( que ya esta mas
testeadita y te dara mas tiempo antes de ser declarada fuera de
soporte )  ( o esperar a la 9.5 ). Yo cambie de 9.1 a 9.3 sin
problemas ( solo la ventana de mantenimiento para tener tiempo a hacer
dump/restore ). Lo que es mas critico en estas cosas suele ser si
puedes parar el sistema un rato para mover las cosas con calma, es
decir, dependes del tamaño de la BD mas que otra cosa, sin saber el
tiempo que tardarias en hacerlo y la posibilidad de parar es dificil
recomendar naa.

Si tu setup te lo permite intenta restaurar un backup en una maquina
de pruebas y probar las aplicaciones, asi como medir el tiempo que
tardas en hacer un backup + restore, y aprendete como hacer restores
rapidos ( lo clasico, minimo log, fsync off, buena cantidad de buffers
porque solo hay un proceso tocando ).

Francisco Olarte.

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


Re: [pgsql-es-ayuda] Consulta que no tome en cuenta las tildes

2015-10-24 Por tema Horacio Miranda
Soundex es para eso, si lo quieres usar bien, de lo contrario debes 
hacer un indice con todas las variantes que se te puedan imaginar.


On 10/24/2015 11:41 PM, Francisco Olarte wrote:

2015-10-22 22:37 GMT+02:00 Horacio Miranda :

Por que no usar soundex ?
http://www.postgresql.org/docs/9.1/static/fuzzystrmatch.html


¿ Porque, segun el primer parrafo de la pagina a la que apuntas "The
Soundex system is a method of matching similar-sounding names by
converting them to the same code. It was initially used by the United
States Census in 1880, 1900, and 1910. Note that Soundex is not
very useful for non-English names.<" y el uso de tildes implica
non-English names ?

AFAIK el soundex NO esta definido si hay tildes y tira todas las
vocales no iniciales. Yo en esos casos siempre he optado por hacer un
folding si se conoce el alfabeto de entrada, algo como [select
translate('Método', 'áéíóúñ','aeioun');]. Si se encapsula eso en una
funcion SQL marcada como "strict inmutable" se puede hacer un indice
por esa expresion y usarla en los queries ( si se hace cuidado, no se
puede cambiar la funcion despues de crear el indice, por algo se marca
immutable, hay que reindexar ). Yo he usado eso para cambiar las cosas
mas habituales del latin1 a ascii ( la db era utf8, pero como los
usuarios venian de windows, uno de los pocos SO que es unicode por
dentro, los datos usaban solo, como es habitual, caracteres presentes
en win1252), ya que tenia un problema similar.

Francisco Olarte.



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