Skip to main content

REST API Support for Auto-Purge

The Auto-Purge feature is available in the REST API. This feature requires a partitioned table, which is set up as shown below. You will define a rule that will determine the partition number (for example, you might use part of the datetime stamp to create a partition for every day or month). You will also specify the maximum number of active partitions. After this value has been exceeded, partitions will be deleted automatically.

To create a partitioned table, you need to create a "partition index" on an existing table. The JSON request syntax to create an index includes a partition property that allows specifying a partitioned file setting as follows:

partition   {

    description:

        Optional parameter. If set, the index is a partition index and the table becomes a
         partitioned table with the settings defined by this property

        rule*   string
        An expression that evaluates to an integer will be used as a partition number.

        numberofbits    integer
        Optional parameter. Set the number of bits used to store the raw partition
 number. By default, 16 bits of the 64-bit record offset are used to reference the raw
 partition number, allowing each partitioned file to support up to 65535 member files
 over its lifetime. A value of 0 defaults to 16 bits, values less than 4 bits default to
 4 bits (maximum 15 member files), and 32 bits is the maximum value.

        maximumactive   integer
        Number of maximum active partitions. When this maximum is exceeded, c-tree's
 auto purging feature takes care of purging.

         }

Example of use:

{
    "unique": true,
    "fields": [
        {
            "name": "custnumb",
            "ascending": true
        }
    ],
    "partition": {
        "rule": "custnumb - 1",
        "numberofbits": 16,
        "maximumactive": 30
    }
}

The JSON returned when describing the table includes "remarks" information about the partitioned file setting. The "remarks" property is ignored when defining the table structure. For example:

remarks {

    description:

         Read-only optional property. Contains information about the table structure that is set
         through other means than a table definition during creation

    partitioned {

        description:

         The table is partitioned

        partition_index string
        The name of the partition index

        rule string
        The partition rule

        numberofbits integer
        Optional parameter. Set the number of bits used to store the raw partition number.
        By default, 16 bits of the 64-bit record offset are used to reference the raw partition number,
        allowing each partitioned file to support up to 65535 member files over its lifetime.
        A value of 0 defaults to 16 bits, values less than 4 bits default to 4 bits (maximum 15 member
        files), and 32 bits is the maximum value.

        maximumactive integer
        number of maximum active partitions, when exceeding the maximum c-tree's auto-purging feature
        takes care of purging

    }
}

Example of use:

{
  "fields": [
    {
      "name": "custnumb",
      "type": "INTEGER"
    },
    {
      "name": "custzipc",
      "type": "CHAR",
      "length": 9
    },
    {
      "name": "custstat",
      "type": "CHAR",
      "length": 2
    },
    {
      "name": "custrtng",
      "type": "CHAR",
      "length": 1
    },
    {
      "name": "custname",
      "type": "VARCHAR",
      "length": 47
    },
    {
      "name": "custaddr",
      "type": "VARCHAR",
      "length": 47
    },
    {
      "name": "custcity",
      "type": "VARCHAR",
      "length": 47
    }
  ],
  "remarks": {
    "partitioned": {
      "partition_index": "partidx2",
      "rule": "custnumb - 1",
      "numberofbits": 16,
      "maximumactive": 30
    }
  }
}