Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in
Celebration

Earn badges and make progress

You're on your way to the next level! Join the Kudos program to earn points and save your progress.

Deleted user Avatar
Deleted user

Level 1: Seed

25 / 150 points

Next: Root

Avatar

1 badge earned

Collect

Participate in fun challenges

Challenges come and go, but your rewards stay with you. Do more to earn more!

Challenges
Coins

Gift kudos to your peers

What goes around comes around! Share the love by gifting kudos to your peers.

Recognition
Ribbon

Rise up in the ranks

Keep earning points to reach the top of the leaderboard. It resets every quarter so you always have a chance!

Leaderboard

Come for the products,
stay for the community

The Atlassian Community can help you and your team get more value out of Atlassian products and practices.

Atlassian Community about banner
4,455,715
Community Members
 
Community Events
175
Community Groups

What is the order of operations in JQL?

Edited
Rob Horan Community Leader Aug 30, 2020

I have been looking through the documentation, but I haven't found an actual reference defining the order of operations.

I am studying for ACP-120

Is there a reference that clearly lays this out?

1 answer

1 accepted

1 vote
Answer accepted
Florian Rising Star Aug 30, 2020

I hope I understand you question correctly and you want to know the operator precedence. If so then the answer is quiet easy. It’s the same as in almost every other language. The AND operator has a stronger binding as the OR operator. So as in normal algebra where a * b + c is (a * b) + c and a * (b * c) is (a * b) + (a * c) you can translate these rules into Boolean algebra. This mean a and b or c is (a and b) or c whilst a and (b or c) is actually (a and b) or (a and c). For the variables a, b and c you can use any kind of comparison like project = myproject. 

if you want to know more about it see https://en.m.wikipedia.org/wiki/Boolean_algebra

I hope this what you wanted to know. 

Rob Horan Community Leader Aug 30, 2020

Hello, and thank you, and apologies for the long reply,

I am looking first and foremost for something that is explicitly defined for JQL.  Why?  Because I'm set to take the ACP-120 soon and I feel like I'm about to be out some money and a few hours of my life for a big fat F.  Having taken 100 (unsuccessfully) and 600 (successfully) I can tell you that the JQL questions are the toughest and most unnecessarily tricky of all.

To the point about any other language - I'm not a coder.  While I can have a robust conversation with a developer around (some) blocks of code, that's not something I can lean on, nor should it be a requirement for Jira Administration or ACP-120.  I understand how it can help, but, IMHO, if there's a stated "order of operations" that's important enough to be explicitly called out in the prep material:

  • It should be in the Jira documentation and searchable as "order of operations"
  • It should be fully fleshed out in the prep material

The CLOSEST I could find was the excerpt below, which is not an exact match:

Setting the precedence of operators

You can use parentheses in complex JQL statements to enforce the precedence of operators.

For example, if you want to find all resolved issues in the 'SysAdmin' project, as well as all issues (any status, any project) currently assigned to the system administrator (bobsmith), you can use parentheses to enforce the precedence of the boolean operators in your query, i.e.

(status=resolved AND project=SysAdmin) OR assignee=bobsmith

Note that if you do not use parentheses, the statement will be evaluated left-to-right.

You can also use parentheses to group clauses, so that you can apply the NOT operator to the group.

Am I to take this to mean that there are only three operations and that they take place in this order?

  • parentheses
  • AND
  • OR

If so, was it that difficult to state it like that?  

That last part was directed towards TPTB at Atlassian's documentation team, especially because I don't know if I'm actually correct there, or if there is more to this.

Hi,

actually there are more. 

1. comparison (=, >=, is, in, not in. ~, ...)

2. Negation (not)

3. AND

4. OR

maybe this helps

Parentheses are (that is my opinion) not actually operators but grouping elements. If you consider parentheses as operators then place it above all others. 

https://confluence.atlassian.com/jiracoreserver084/advanced-searching-979408017.html

https://support.atlassian.com/jira-software-cloud/docs/advanced-search-reference-jql-operators/

But as I said before basically Atlassian sticks to the “common sense”. The reason why AND binds stronger then OR is that this allows us to apply the rules of an Abelian Group. 

https://en.m.wikipedia.org/wiki/Abelian_group

and Propositional calculus https://en.wikipedia.org/wiki/Propositional_calculus

where the distributive property https://en.wikipedia.org/wiki/Distributive_property can be applied.

When you have these fundamentals go in your flesh and blood it feels natural to have an operator precedence as described above. That’s what I meant with “common sense”.

 

 

Like # people like this
Rob Horan Community Leader Aug 31, 2020

EXTREMELY helpful, thank you!!  If by chance we ever meet I owe you a pint!

Like Dawn Janacek likes this
Florian Rising Star Aug 31, 2020

Cheers.

Like Rob Horan likes this

Also, did not get an F! (Just renewed that cert last week)

Suggest an answer

Log in or Sign up to answer