Purpose of this issue implement - Allow select column from window tabs - with following decisions. ()
The original PR has a lot of limitation, a lot of discussions led to better design breaking changes, summary (need as possible better specification :
Feel free to change the scope, I tried to collect inputs from and https://github.com/idempiere/idempiere/pull/272
AD_UserQuery.Code is limited to only 2000 characters
2pack issue - if we want to transfer saved search definitions, this is not possible with _id usage.
and suggestion for additional improvements:
the request to use _uu instead of _id
additional note for the 2pack issue: with _id, the 2pack issue can also be addressed through custom 2pack handler for the user query table. For this approach, the 2pack handler will do the translation between _id and _uu in the pack out/pack in process.
whether the child tab query will combine with the child tab's where clause. - change the structure to ad_userquery and ad_userqeryline. quite a bit more works, more compatibility issue to solve but it does solve the 2pack and ad_userquery.code length issue.
If we continue with the single table AD_UserQuery approach, the length of AD_UserQuery.Code should be increased to the max length supported by both Oracle and PostgreSQL (Json is another option here but that will add more migration work).
As I’ve mention above, using uuid is not a must - the 2pack export/import issue can be addressed by custom 2pack handler for AD_UserQuery table.
The best would start using JSON
It is more generic, it is something we chatted would be applicable in various places (any, multi-selection field, here…) - if we should define stages of JSON field type implementation probably would be applicable before release. (just an idea…). Exactly we should have a big motivation to use JSON in this implementation well.
Support for json field type is a very broad topic that covers db data type, UI and reporting support. What’s needed for this ticket though is just db datatype support since the ad_userquery.code is not visible on screen.