Re: proposal casting from XML[] to int[], numeric[], text[]
От | Pavel Stehule |
---|---|
Тема | Re: proposal casting from XML[] to int[], numeric[], text[] |
Дата | |
Msg-id | 162867790709280319h36b36442hd9934d83ff761015@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: proposal casting from XML[] to int[], numeric[], text[] ("Nikolay Samokhvalov" <nikolay@samokhvalov.com>) |
Ответы |
Re: proposal casting from XML[] to int[], numeric[], text[]
|
Список | pgsql-hackers |
> We would create wrappers returning int[], bool[], string[], but there > are several issues with such functions: > - if the type of the data located on nodes that match XPath > expression differs from what is expected, what should we do? raise exception > - in XML world, if you request for a text under some node, all > descendants should be involved in generating result string (example: > what should be returned for XML like "<em><strong>PostgreSQL</strong> > is a powerful, open source relational database system</em>" if user > requests for text under "em" node? In XML world, the correct answer is > "PostgreSQL is a powerful, open source relational database system" -- > concatenation of all strings from the node itself and all its > descendants, in the correct order. Will be this expected for RDBMS > users?). It is corect. Or we can disallow any nested elements in casting array. It's poblem only for text type. Numeric types are clear. > Regarding GIN indexes, alternative approach would be creating opclass > for xml[], it should be pretty simple (and better than creating > implicit CASTs for xml[]<->int[], xml[]<->bool[], etc). Can we do this > for 8.3 or it's too late? It would be very helpful feature. It's not practic. If I would to use it for functional indexes for xpath functions I need constructor for xml[], and I have not it currently: xpath('/root/id/text()', column)::int[] @< ARRAY[199,2200,222] > > Without that, the only way to have indexes is to use functional btree > indexes over XPath expression (smth like "...btree(((xpath('...', > field)[1]::text))" -- pretty ugly construction...) It's not usefull, if xpath returns more values Regards Pavel Stehule
В списке pgsql-hackers по дате отправления: