PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como fazer comparação canônica XML com PostgreSQL?


Eu contribuí para a implementação do tipo XML no PostgreSQL e provavelmente escrevi a maior parte da documentação que você está citando.

Há uma série de razões pelas quais isso é atualmente o que é:
  • O padrão SQL não especifica nenhum operador de comparação para o tipo xml .
  • Na época em que a implementação foi iniciada, o XML canônico não era amplamente usado e entendido (pelo menos pelas pessoas envolvidas, sem dúvida).
  • Existem certas limitações em que a canonização de XML não funciona. Embora isso raramente seja visto na prática, isso resultaria na situação em que alguns valores de um tipo de dados não podem ser comparados, o que levaria a problemas com a indexação, por exemplo. (O valor NaN dos tipos de ponto flutuante é atribuído a uma posição de ordenação por motivos semelhantes.)
  • Ainda é discutível se a comparação por canonização é apropriada para todos os usos e o que os usuários sempre desejam.

Uma implementação de uma função de canonização de XML para uso opcional certamente seria bem-vinda. Na verdade, gostaria de ver um xmlcanonical separado tipo, mas isso daria um pouco mais de trabalho.