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