Uploaded image for project: 'Tajo (Retired)'
  1. Tajo (Retired)
  2. TAJO-408

Improve function system



    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 0.8.0, 0.9.0
    • None
    • Function/UDF
    • None


      Currently, function system was designed few years ago. So, there are lack of key features necessary for functions and user-defined functions.

      I have discussed this issue with epsilon. We could summary the following issues.

      • There is no way to describe explanation of functions.
        • For user convenience, Tajo needs to show users function information, including signature, parameters, results, descriptions, and examples.
      • TajoMaster registers lots of functions at startup time. This is a burden to maintain registration codes. We need to improve this to automatically register built-in functions in a specific package.
      • Currently, the way to find matched function is too strict.
        • Due to this function match system, we have to register functions for each parameter type combination.
        • Function match mechanism should consider type compatibility. For example, count(val:integer) can be compatibly to count(val:long). In this case, we need to only register count(val:bigint) function. Tajo has to find count(val:bigint) even though count(val:integer) function is called.
      • We need more elaborate UDF regestration system.
        • Currently, registering a user-defined function requires system restart. There is no way to register UDFs in runtime.
        • Tajo should provide a run-time UDF registration system.
        • It should involve user jars distribution.
        • It should provide 'CREATE FUNCTION' and 'DROP FUNCTION' statements.
        • The registration functions are stored in catalog system, and they should be loaded even though a Tajo cluster is restarted.

      This is an umbrella issue. we'll create one or more sub tasks for the above issues.




            epsilon SeongHwa Ahn
            hyunsik Hyunsik Choi
            0 Vote for this issue
            0 Start watching this issue