(My config : SonarQube: 6.7.6 , PL/SQL plugin 3.4.1 (build 2576))
I had a doubt to open this here or in suggest new feature category.
As it concerns an enhancement (a kind of false-positive) of an existing rule and not a new rule, I open it here. Feel free to move if it is not the right place.
My remark concerns the detection of Decode usages.
I agree with the rule and prefer to use Case is most of the cases.
But when the decode has only one matching value and the default, for readability it is better to keep decode.
See below example:
SELECT emp.first_name as first_name, emp.last_name as last_name, DECODE(show_data_flag, 'Y', emp.salary, 'Hidden') as salary, DECODE(show_data_flag, 'Y', emp.bonus, 'Hidden') as bonus, ... FROM employee ...
SELECT emp.first_name as first_name, emp.last_name as last_name, CASE WHEN show_data_flag = 'Y' THEN emp.salary ELSE 'Hidden' END as salary, CASE WHEN show_data_flag = 'Y' THEN emp.bonus ELSE 'Hidden' END as bonus, ... FROM employee ...
Thanks in advance to take the time to evaluate this.