Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

370
Vistas
En Postgres, ejecutar ANALYZE cambia el comportamiento de la cláusula ILIKE con COLLATE

Estamos migrando una aplicación de SQL Server a Postgres e intentando emular varios aspectos de la insensibilidad a mayúsculas y minúsculas de SQL Server. Hemos creado una intercalación no determinista para respaldar la comparación de claves foráneas y las comparaciones de igualdad que no distinguen entre mayúsculas y minúsculas.

Pero estamos viendo un comportamiento extraño cuando usamos ILIKE que no podemos explicar, y agradeceríamos alguna ayuda.

Para ver el comportamiento, ejecute lo siguiente en una base de datos nueva:

 CREATE COLLATION IF NOT EXISTS public.ci (provider = icu, locale = 'und-u-ks-level2', deterministic = false); DROP TABLE IF EXISTS sort_test; CREATE TABLE sort_test (a text COLLATE public.ci); INSERT INTO sort_test SELECT md5(n::text) FROM generate_series(1, 10000) n; -- Removing the following line fixes the issue ANALYZE sort_test; -- This line throws "nondeterministic collations are not supported for ILIKE" SELECT * FROM sort_test WHERE a ILIKE 'c4ca4238a0%' COLLATE "und-x-icu";

¿Por qué ejecutar la declaración ANALYZE rompe la declaración ILIKE?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Ese comportamiento es un error de PostgreSQL .

La razón por la que funciona sin ANALYZE es que el error se produce al aplicar el operador a los "límites del histograma" en las estadísticas. Antes de ANALYZE no hay estadísticas, por lo que no arroja ningún error.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda