Automatically prefix all log messages with the plugin name (if available).
Include strings.h which is required for strcasecmp().
data: Use a predefined format for sdb_strftime(). Also, print the nanosecond fraction of a second.
data: Add basic support for a boolean type. This change breaks backward compatibility of the network protocol because it changes the encoding of a datum. I felt this is still acceptable (given the current (non-)compatibility promise) and it made the order of types feel more natural ;-)
data: Let sdb_data_array_get support DATETIME, BINARY, REGEX values.
data: sdb_data_strcmp supports arrays because sdb_data_format supports it.
data: Return the number of bytes that would have been returned. That is, behave as documented, even if the buffer is NULL or otherwise too small. Return size_t instead of an integer.
data: Let strlen/format handle NULL values correctly.
data: Let sdb_data_parse() accept a const string and copy it if necessary. Given that we need a copy for regex values anyway, this is more consistent.
data: Free binary and regex array values as well.
data: Let sdb_data_cmp() support all array types.
Use stdbool.h's bool type instead of _Bool. That'll work with C++ as well.
Make sure to print non-a-number as 'nan'. Some versions of GNU libc use '-nan' instead which we don't want. For example, Go's JSON package doesn't support that at all.
data: Let concat support empty arrays; add various tests for empty arrays.
data: Let inarray() support <array> IN <array> checks. This check returns true if all elements of the first array are included in the second array where order does not matter.
data: Support array + element concatenation. That is, concatenation may be used to prepend to or append to an array.
data: Let strlen() and format() support string/decimal/integer arrays.
core: Improved style related to conditionals using many branches.
data: Don't treat empty arrays (value = NULL) as NULL. Treating them as NULL leads to weird behavior when using ANY/ALL iterators.
data: Added sdb_data_array_get(). This function retrieves an array element, returning an "alias" to its value.