Uploaded image for project: 'Drivers'
  1. Drivers
  2. DRIVERS-758

Support for JavaScript User Defined Functions

    • Type: Icon: Task Task
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Component/s: None
    • Labels:
      None
    • $i18n.getText("admin.common.words.hide")
      Key Status/Resolution FixVersion
      JAVA-3471 Won't Do
      CSHARP-2804 Fixed 2.11.0
      $i18n.getText("admin.common.words.show")
      #scriptField, #scriptField *{ border: 1px solid black; } #scriptField{ border-collapse: collapse; } #scriptField td { text-align: center; /* Center-align text in table cells */ } #scriptField td.key { text-align: left; /* Left-align text in the Key column */ } #scriptField a { text-decoration: none; /* Remove underlines from links */ border: none; /* Remove border from links */ } /* Add green background color to cells with FixVersion */ #scriptField td.hasFixVersion { background-color: #00FF00; /* Green color code */ } /* Center-align the first row headers */ #scriptField th { text-align: center; } Key Status/Resolution FixVersion JAVA-3471 Won't Do CSHARP-2804 Fixed 2.11.0

      Downstream Change Summary

      null

      Description of Linked Ticket

      Epic Summary

      Summary

      Allow users to specify JavaScript user-defined functions (expressions) and accumulators in Agg pipelines. This functionality was delivered as part of “MapReduce in Agg” (PM-776) and will be exposed through this project.

      Motivation

      We want to empower users to write custom expressions in order to implement behaviors not supported by MQL. This will bring us closer to parity with many databases, in particular DocumentDB, that support UDFs in JS and several other languages. It was also a critical feature for ETL pipelines in Tableau Prep.

      The most common use case is projecting computed columns and filtering, however, the concept can also be used to parameterize operations like sorting with a custom comparator or clustering with a distance function, as well as custom $group keys.
      Last but not least, this effort is a prerequisite to deprecate the MR command (PM-1470).

      Documentation

      Scope Document
      Technical Design Document

            Assignee:
            Unassigned Unassigned
            Reporter:
            backlog-server-pm Backlog - Core Eng Program Management Team
            Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: