Handling of more values per metadata

Some of the metadata mapped in Hyppocampus accept more than one value for a single item in the filesystem. Them are handled in particular way, and have to be considered in particular way.

When executing a query asking in the WHERE clause for a metadata with multiple values an item is comprised in the result set when also one only of those values matches.

When asking for this kind of metadata (in the SELECT clause or with the getxattr(2) syscall), all assigned values are listed separated each other with the MULTIPLE_VALUES_SEPARATOR sequence.

When using the setxattr(2) syscall to turn the value of a metadata, special considerations are for multiple valued metadata: if the XATTR_REPLACE flag is specified all existing values are removed and replaced with the new one, otherwise the new value is added to the list. This is different from single valued metadata, for which if a value already exists is always replaced (until the XATTR_CREATE flag is not defined).

The removexattr(2) acts on all the values for the metadata, but the behaviour is to be changed in near future so to permit to remove a single target value.


Generated on Fri Aug 17 19:40:51 2007 for Hyppocampus by  doxygen 1.5.3