Допринесох за внедряването на типа XML в PostgreSQL и вероятно написах повечето от документацията, която цитирате.
Има няколко причини, поради които в момента това е така:
- Стандартът SQL не определя оператор за сравнение за тип
xml
. - По времето, когато внедряването започна, Canonical XML не беше широко използван и разбран (поне от участващите хора, вероятно).
- Има определени ограничения, при които XML канонизацията не работи. Въпреки че те рядко се срещат на практика, това би довело до ситуация, при която някои стойности на даден тип данни не могат да бъдат сравнени, което би довело до проблеми с индексирането например. (На NaN стойността на типовете с плаваща запетая се присвоява позиция за подреждане поради подобни причини.)
- Все още е спорно дали сравнението чрез канонизиране е подходящо за всички употреби и това, което потребителите винаги искат.
Внедряването на функция за канонизиране на XML за незадължителна употреба със сигурност би било добре дошло. Всъщност бих искал да видя отделен xmlcanonical
тип, но това би било доста повече работа.