Interface JsonTableProcessingFragment

All Known Implementing Classes:
FragmentCross, FragmentLeaf, FragmentSingle, FragmentUnion

public interface JsonTableProcessingFragment
  • Method Summary

    Modifier and Type
    Method
    Description
    int[]
    Returns an array containing indexes of columns produced by the fragment within all columns produced by json_table.
    boolean
    Tries to produce output values for all columns included in the Fragment, and stores them in corresponding positions in `newRow`.
    void
    reset(com.fasterxml.jackson.databind.JsonNode item, Page input, int position)
    Prepares the Fragment to produce rows for the new JSON item.
    default void
    resetRoot(com.fasterxml.jackson.databind.JsonNode item, Page input, int position, Object[] pathParameters)
    Prepares the root Fragment to produce rows for the new JSON item and new set of path parameters.
  • Method Details

    • reset

      void reset(com.fasterxml.jackson.databind.JsonNode item, Page input, int position)
      Prepares the Fragment to produce rows for the new JSON item. Note: This method must be called for each new JSON item. Due to nesting, there might be multiple JSON items to process for a single position in the input page. Therefore, input and position may not change for subsequent calls.
      Parameters:
      item - the new JSON item
      input - the input Page currently processed by json_table function
      position - the currently processed position in the input page
    • resetRoot

      default void resetRoot(com.fasterxml.jackson.databind.JsonNode item, Page input, int position, Object[] pathParameters)
      Prepares the root Fragment to produce rows for the new JSON item and new set of path parameters. Note: at the root level, there is one JSON item and one set of path parameters to process for each position in the input page.
      Parameters:
      item - the new JSON item
      input - the input Page currently processed by json_table function
      position - the currently processed position in the input page
      pathParameters - JSON path parameters for the top-level JSON path
    • getRow

      boolean getRow()
      Tries to produce output values for all columns included in the Fragment, and stores them in corresponding positions in `newRow`. Note: According to OUTER or UNION semantics, some values might be null-padded instead of computed. Note: a single JSON item might result in multiple output rows. To fully process a JSON item, the caller must: - reset the Fragment with the JSON item - call getRow() and collect output rows as long as `true` is returned If `false` is returned, there is no output row available, and the JSON item is fully processed
      Returns:
      true if row was produced, false if row was not produced (Fragment is finished)
    • getOutputLayout

      int[] getOutputLayout()
      Returns an array containing indexes of columns produced by the fragment within all columns produced by json_table.