The TQL grammar is extended with a SELECT keyword that precedes the previously existing "filtering" conditions. I can write several field names (separated by commas ,) from the selected trackers.
SELECT is optional (to maintain backwards-compatibility of TQL language). When it is absent, the default set of columns is shown: Tracker badge and artifact title, Project label, Status, Last update date, Submitted by, Assigned to.
SELECT i_want_to, remaining_effort WHERE @last_update_date > NOW() -1m
The previous example will show two columns i_want_to and remaining_effort. Those columns will show the artifact values for fields with the same name (respectively i_want_to and remaining_effort). "Duck-typing" rules are applied to those fields for each of the selected trackers: if a field with the same name exists AND it's of a compatible type, then it is selected and will show up in the column.
Duck-typing rules:
- For selected trackers that do not have a field named
i_want_to, it will show a blank cell in the column.
- For selected trackers where the current user does not have permission to read the field, it will show a blank cell.
- If NONE of the selected trackers have a field named
i_want_to or current user has permission to read NONE of the fields, the query will fail with an error message explaining that the i_want_to field does not exist.
- If any one of the selected trackers has a field named
i_want_to but its type is not compatible with the others (see below), the query will fail with an error message explaining that the i_want_to fields are not compatible in the selected trackers.
- For selected trackers that have a field named
i_want_to that current user can see, the column cell will show the field's value for the artifacts of that tracker that match the query
Compatible field types:
- numeric fields (
int and float fields)
- text fields (
string and text)
- date and date "with time" fields
Other types of fields will be supported in later user stories.
A given field (for example i_want_to) can only be selected once. For example SELECT i_want_to, description, i_want_to will raise an error.
Figma mockup: https://www.figma.com/design/oDjT4tC3fDGP5P4JdKfkdE/Columns-choices---ST?node-id=67-21319