Hi devs, As you probably know, UsersClass and GroupsClass overwrite the newProperty implementation from ListClass and hard code the usage of LargeStringProperty. The implementation from ListClass takes into account the relational storage and multiple selection meta properties while UsersClass and GroupsClass are completely ignoring them. Do you have any idea why? It's been like this for more than 11 years..
The hard coded LargeStringProperty was introduced in https://github.com/xwiki/xwiki-platform/commit/e4800bd2ebf97d2e12282ab56ff58750df1571b6 even though at that point ListClass#newProperty was already taking into account relational storage. As for the hard coded StringProperty that was before it, it is since the start of the XWiki history I can access on GitHub, same as the ListClass#newProperty implementation that take into account relational storage. So I have no idea why we had to overwrite ListClass#newProperty in UsersClass and GroupsClass. The big problem is that in the current state the Users and Groups properties cannot be filtered in Oracle because they are stored as CLOB. See http://jira.xwiki.org/browse/XWIKI-14634 and https://jira.xwiki.org/browse/XWIKI-15500 . Fixing this by removing UsersClass#newProperty and GroupsClass#newProperty requires a migrator and breaks existing queries that join the LargeStringProperty table to get the users and groups values. Is it acceptable to break those queries? I'm afraid there are quite a lot of them, especially since we have examples of such queries on https://extensions.xwiki.org/xwiki/bin/view/Extension/Query+Module . WDYT? Thanks, Marius

