PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment faire une comparaison canonique XML avec PostgreSQL ?

J'ai contribué à l'implémentation du type XML dans PostgreSQL et j'ai probablement écrit la plupart de la documentation que vous citez.

Il existe un certain nombre de raisons pour lesquelles il en est actuellement ainsi :

  • La norme SQL ne spécifie aucun opérateur de comparaison pour le type xml .
  • Au moment où la mise en œuvre a commencé, le XML canonique n'était pas largement utilisé et compris (du moins par les personnes impliquées, sans doute).
  • Il existe certaines limitations où la canonisation XML ne fonctionne pas. Bien que ceux-ci puissent être rarement vus dans la pratique, cela donnerait la situation où certaines valeurs d'un type de données ne peuvent pas être comparées, ce qui entraînerait des problèmes d'indexation par exemple. (La valeur NaN des types à virgule flottante se voit attribuer une position de classement pour des raisons similaires.)
  • On peut encore se demander si la comparaison par canonisation est appropriée pour toutes les utilisations et ce que les utilisateurs veulent toujours.

Une implémentation d'une fonction de canonisation XML pour une utilisation facultative serait certainement la bienvenue. Je voudrais en fait voir un xmlcanonical séparé type, mais ce serait un peu plus de travail.