Wouldnt it be better to have one function with 1 parameter which can have 3 values only, instead of 3 seperate functions. ie
ROW_NUMBER(ROW_NUMBER|RANK|DENSE_RANK) ,and ROW_NUMBER being the default)
Row_number = row_number() = row_number(row_number)
Rank = row_number(RANK)
DENSE_RANK = row_number(DENSE_RSNK)