Hive's mask functions are GenericUDFs. Impala currently doesn't support Hive GenericUDFs, so we have our builtin implementation for them. Due to lack of a corresponding framework for GenericUDF in Impala (IMPALA-9271), we implement these mask functions by overloads. However, it may requires hundreds of overloads to cover all possible combinations. We just implement some important overloads, including
- those used by Ranger default masking policies,
- those with simple arguments and may be useful for users,
- an overload with all arguments in int type for full functionality. Char argument need to be converted to their ASCII value.
If you encountered errors like "No matching function with signature: mask...", it means Impala is lack of the corresponding overload. Use the following query to find the available overloads: