I had a function that was set to SECURITY INVOKER. I needed to give access to a view that uses this function to a role, so I made the function SECURITY DEFINER.
The function is STABLE and is usually inlined and takes 2 ms to run. Immediately, the function quit being inlined and took 1500ms to run. Changing the function back to SECURITY DEFINER let the function be inlined again. On postgresql 9.3.1. Is this expected behavior?