Uploaded image for project: 'Phoenix'
  1. Phoenix
  2. PHOENIX-1578

Support explicit storage of null values

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 4.3.0
    • None
    • None

    Description

      Null values are currently represented implicitly by a lack of a KeyValue for a given field. This is implemented by using an HBase delete to remove cells when a given field is set to null via an upsert statement.

      However, this method of setting values to null causes all previous versions of the given field to be removed on the next major compaction, which prevents doing flashback queries for the given field.

      One workaround for this is to enable KEEP_DELETED_CELLS on the underlying HBase table – however, this means that SQL deletes (i.e. DELETE FROM TABLE) will never actually remove the data.

      This ticket is to propose a flag (defined at table level) which specifies that null values to be explicitly stored in HBase. This flag should not change the behavior of a SQL DELETE statement, i.e. a SQL DELETE will still cause a record to be permanently deleted (including historical data).

      The use of this flag in combination with KEEP_DELETED_CELLS=false and VERSIONS=unlimited will allow Phoenix to provide true row-level versioning.

      Additional background in this mail thread: http://s.apache.org/kwz

      Attachments

        1. PHOENIX-1578-docs.patch
          5 kB
          Gabriel Reid
        2. PHOENIX-1578.patch
          260 kB
          Gabriel Reid
        3. PHOENIX-1578.2.patch
          317 kB
          Gabriel Reid

        Issue Links

          Activity

            People

              gabriel.reid Gabriel Reid
              gabriel.reid Gabriel Reid
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: