PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come eseguire il confronto canonico XML con PostgreSQL?

Ho contribuito all'implementazione del tipo XML in PostgreSQL e probabilmente ho scritto la maggior parte della documentazione che stai citando.

Ci sono una serie di ragioni per cui attualmente è così:

  • Lo standard SQL non specifica alcun operatore di confronto per il tipo xml .
  • Al momento dell'implementazione, Canonical XML non era ampiamente utilizzato e compreso (almeno dalle persone coinvolte, probabilmente).
  • Ci sono alcune limitazioni in cui la canonicalizzazione XML non funziona. Sebbene questi possano essere visti raramente nella pratica, ciò produrrebbe la situazione in cui alcuni valori di un tipo di dati non possono essere confrontati, il che porterebbe, ad esempio, a problemi con l'indicizzazione. (Al valore NaN dei tipi a virgola mobile viene assegnata una posizione di ordinamento per ragioni simili.)
  • È ancora discutibile se il confronto per canonizzazione sia appropriato per tutti gli usi e ciò che gli utenti vogliono sempre.

Sarebbe certamente gradita un'implementazione di una funzione di canonizzazione XML per un uso facoltativo. In realtà mi piacerebbe vedere un xmlcanonical separato digitare, ma sarebbe un po' più di lavoro.