HDF5 High Level APIs

H5TB: HDF5 Table

HDF5 Table development schedule

The HDF5 Table API is on a phase of continuous development. At this time we greatly appreciate comments from our users. The following shows the status of the HDF5 Table API development.

Phase 1

Completed. November 2001.

  • Make basic functions for creating, storing and retrieving data from a table.
  • Combine the table creation calls into one function. The list of parameters include the chunk size in bytes, a compress data flag, and fill-values for records.
  • The table storing functions allow saving either by records or by fields. It includes a function for appending records. This function allows appending more than one record at a time. The writing fields feature allow field names or indices to be used to specify which fields to write. They allow writing more than one field at a time.
  • The table reading functions allow reading either by records or by fields. It includes a function for reading the entire table. The reading fields feature allow field names or indices to be used to specify which fields to read. They allow reading more than one field at a time.
  • Make querying functions.
  • Define a conforming table (1-D dataspace, compound datatype, stored as chunked dataset).
  • Define how attributes on fields should be named.


Phase 2

Completed. December 2001.

  • Define API for reading/writing/querying attributes on fields. Define API for reading/writing/querying pre-defined attributes on entire table (fill-value, title, etc.)
  • Add records from second table to first table.
  • Combine records from two tables into a third.
  • Insert record into middle of table ("pushing down" all the records after it).
  • Delete record from middle of table ("pulling up" all the records after it).
  • Insert field.
  • Delete field.

 

Phase 2.1

Completed. January 2002.

  • Expand the functionality of H5TBadd_records_from to insert the records from the second table at any location in the first table.
  • H5TBcombine_tables - Add a second location ID parameter, so user's can work with tables in two different files.
  • H5TBinsert_field - Add new field to a user defined order.

 

Phase 2.2

Completed. January 2002.

  • Save the table data in packed order. Modify all functions that deal with records to read this packed format.

 

Phase 3

Not started. 

  • Sort table on a given atomic field in ascending or descending order. Use more than one field: first field is primary field, each following field determines order of records when previous field values are the same, etc.
  • Sort table using a user-provided callback function to perform comparison (like qsort() function in C).
  • Search for first record which matches an atomic field. Have 'start' and 'end' records to search.
  • Have flag for user to indicate that the table is sorted (so we can use faster searching algorithms, e.g. binary searching, etc.).
  • Search for first record which matches a user-provided callback function to perform comparison.
  • Read/write records with user-specified offsets of fields in memory buffer.
  • Insert record in sorted location in a table.