Pig
  1. Pig
  2. PIG-3568

Define the semantics of POStatus.STATUS_NULL

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.13.0
    • Component/s: None
    • Labels:
      None

      Description

      The meaning of POStatus.STATUS_NULL is not well documented and there are conflicting view points on its interpretation. The two interpretations are:

      1. POStatus.STATUS_NULL indicates that the pulled output IS null. This is mostly found in expression operators, particularly comparison operators.

      2. POStatus.STATUS_NULL indicates that the pull did not produce any output. This is backed up by its usage in POPackage (not JoinPackage) for flattening an empty bag, and PigGenericMapBase where pulls on the operator pipeline that result in STATUS_NULL are discarded.

      I propose that 2 should be the official definition going forward. The first meaning is easily indicated by (null, STATUS_OK) and all the relational operators already seem to follow 2. I'd like to hear others' opinions as well though.

      1. PIG-3568.1.patch
        36 kB
        Mark Wagner
      2. PIG-3568.2.patch
        37 kB
        Mark Wagner

        Issue Links

          Activity

          Cheolsoo Park made changes -
          Link This issue breaks PIG-3679 [ PIG-3679 ]
          Cheolsoo Park made changes -
          Status Patch Available [ 10002 ] Resolved [ 5 ]
          Fix Version/s 0.13.0 [ 12324971 ]
          Resolution Fixed [ 1 ]
          Mark Wagner made changes -
          Attachment PIG-3568.2.patch [ 12614159 ]
          Mark Wagner made changes -
          Status Open [ 1 ] Patch Available [ 10002 ]
          Mark Wagner made changes -
          Attachment PIG-3568.1.patch [ 12613891 ]
          Mark Wagner made changes -
          Field Original Value New Value
          Description The meaning of POStatus.STATUS_NULL is not well documented and there are conflicting view points on its interpretation. The two interpretations are:

          1. POStatus.STATUS_NULL indicates that the pulled output IS null. This is mostly found in expression operators, particularly comparison operators.

          2. POStatus.STATUS_NULL indicates that the pull did not produce any output. This is backed up by its usage in POPackage (not JoinPackage) for flattening an empty bag, and PigGenericMapBase where pulls on the operator pipeline that result in STATUS_NULL are discarded.

          I propose that 2 should be the official definition going forward. The first meaning is easily indicated by (null, STATUS_OK) and all the relational operators already seem to follow 2. I'd like others opinions as well though.
          The meaning of POStatus.STATUS_NULL is not well documented and there are conflicting view points on its interpretation. The two interpretations are:

          1. POStatus.STATUS_NULL indicates that the pulled output IS null. This is mostly found in expression operators, particularly comparison operators.

          2. POStatus.STATUS_NULL indicates that the pull did not produce any output. This is backed up by its usage in POPackage (not JoinPackage) for flattening an empty bag, and PigGenericMapBase where pulls on the operator pipeline that result in STATUS_NULL are discarded.

          I propose that 2 should be the official definition going forward. The first meaning is easily indicated by (null, STATUS_OK) and all the relational operators already seem to follow 2. I'd like to hear others' opinions as well though.
          Mark Wagner created issue -

            People

            • Assignee:
              Mark Wagner
              Reporter:
              Mark Wagner
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development