sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cómo hacer una comparación canónica de XML con PostgreSQL?

Contribuí a la implementación del tipo XML en PostgreSQL y probablemente escribí la mayor parte de la documentación que está citando.

Hay una serie de razones por las que esto es así actualmente:

  • El estándar SQL no especifica ningún operador de comparación para el tipo xml .
  • En el momento en que se inició la implementación, Canonical XML no se usaba ni entendía ampliamente (al menos por las personas involucradas, podría decirse).
  • Existen ciertas limitaciones en las que la canonicalización de XML no funciona. Aunque es posible que estos no se vean en la práctica, se produciría una situación en la que algunos valores de un tipo de datos no se pueden comparar, lo que generaría problemas con la indexación, por ejemplo. (Al valor NaN de los tipos de punto flotante se le asigna una posición de orden por razones similares).
  • Todavía es discutible si la comparación por canonicalización es apropiada para todos los usos y lo que los usuarios siempre quieren.

Una implementación de una función de canonicalización de XML para uso opcional sin duda sería bienvenida. De hecho, me gustaría ver un xmlcanonical separado tipo, pero eso sería un poco más de trabajo.