The section of using functions on indexes could do with more explicit and deeper explanation. When you use the function on the index it becomes a full scan of the data instead as the query runner has to run the function on every row and column, effectively removing any benefit of the index. Unfortunately I learned this the hard way!
Otoh, it seems a fairly stable language (family of dialects?) so finding the pitfalls has long leverage