Brałem udział w implementacji typu XML w PostgreSQL i prawdopodobnie napisałem większość dokumentacji, którą cytujesz.
Jest wiele powodów, dla których obecnie tak jest:
- Standard SQL nie określa operatora porównania dla typu
xml
. - W momencie rozpoczęcia implementacji kanoniczny XML nie był powszechnie używany i rozumiany (przynajmniej przez zaangażowane osoby).
- Istnieją pewne ograniczenia, w których kanonizacja XML nie działa. Chociaż mogą one być rzadko spotykane w praktyce, doprowadziłoby to do sytuacji, w której niektóre wartości typu danych nie mogą być porównywane, co prowadziłoby na przykład do problemów z indeksowaniem. (Wartość NaN typów zmiennoprzecinkowych jest przypisywana do pozycji porządkowej z podobnych powodów.)
- Nadal jest dyskusyjne, czy porównanie przez kanonizację jest odpowiednie dla wszystkich zastosowań i czego użytkownicy zawsze chcą.
Z pewnością mile widziana byłaby implementacja funkcji kanonizacji XML do opcjonalnego użytku. Właściwie chciałbym zobaczyć oddzielny xmlcanonical
typ, ale wymagałoby to trochę więcej pracy.