Code

sysdb.git
10 years agoRelease SysDB 0.5.0. sysdb-0.5.0
Sebastian Harl [Mon, 6 Oct 2014 19:44:37 +0000 (21:44 +0200)]
Release SysDB 0.5.0.

10 years agoReleaseNotes: Added entry for the 0.5.0 release.
Sebastian Harl [Mon, 6 Oct 2014 19:44:03 +0000 (21:44 +0200)]
ReleaseNotes: Added entry for the 0.5.0 release.

10 years agot/valgrind.suppress: Use a pattern for the full name of gcov_exit.
Sebastian Harl [Mon, 6 Oct 2014 18:34:51 +0000 (20:34 +0200)]
t/valgrind.suppress: Use a pattern for the full name of gcov_exit.

For example, I've seen gcov_exit.part.5.

10 years agosysdbql(7): Fixed an incomplete sentence.
Sebastian Harl [Mon, 6 Oct 2014 18:24:17 +0000 (20:24 +0200)]
sysdbql(7): Fixed an incomplete sentence.

10 years agosysdbql(7): Updated documentation for attribute and field access.
Sebastian Harl [Mon, 6 Oct 2014 06:29:32 +0000 (08:29 +0200)]
sysdbql(7): Updated documentation for attribute and field access.

10 years agofrontend/grammar: Use '.' instead of ':' to access queryable object fields.
Sebastian Harl [Mon, 6 Oct 2014 06:24:13 +0000 (08:24 +0200)]
frontend/grammar: Use '.' instead of ':' to access queryable object fields.

10 years agofrontend/grammar: Access attribute values using attributes[<name>].
Sebastian Harl [Mon, 6 Oct 2014 06:18:10 +0000 (08:18 +0200)]
frontend/grammar: Access attribute values using attributes[<name>].

… instead of attribute.<name>. We'll use <obj>.<field> for all directly
accessible object fields instead.

10 years agostore_lookup: Compare attribute string values on type mismatch.
Sebastian Harl [Sun, 5 Oct 2014 18:49:19 +0000 (20:49 +0200)]
store_lookup: Compare attribute string values on type mismatch.

Given that we don't support any schema for attribute values, this sounds like
a better option than assuming that those values never match no matter which
comparison operator is used.

10 years agodata: Added sdb_data_strcmp().
Sebastian Harl [Sun, 5 Oct 2014 18:43:24 +0000 (20:43 +0200)]
data: Added sdb_data_strcmp().

This function compares the string values of two data points.

10 years agodata: Use %g format when formatting decimal numbers.
Sebastian Harl [Sun, 5 Oct 2014 18:39:33 +0000 (20:39 +0200)]
data: Use %g format when formatting decimal numbers.

This is much better human-readable and we don't need an exact representation.
In fact, given that a datum's string value is used when comparing attribute
values, the human readable format is much better suited given that chances are
higher that users will enter numbers in the same format (but it's still just a
best guess kind of thing).

10 years agodata: Added sdb_data_isnull().
Sebastian Harl [Sun, 5 Oct 2014 18:25:32 +0000 (20:25 +0200)]
data: Added sdb_data_isnull().

The function determines if a datum pointer or a string or binary datum is
NULL.

10 years agodata: Format NULL values as "<NULL>".
Sebastian Harl [Sun, 5 Oct 2014 18:23:26 +0000 (20:23 +0200)]
data: Format NULL values as "<NULL>".

10 years agostore_lookup: Fixed lookup by back-end name.
Sebastian Harl [Sun, 5 Oct 2014 17:50:20 +0000 (19:50 +0200)]
store_lookup: Fixed lookup by back-end name.

Added an integration test which reproduces the problem -- previously, all
compare operations reported a mismatch.

10 years agodata: Ensure a stable ordering in cmp() in case of type-mismatches.
Sebastian Harl [Sun, 5 Oct 2014 17:19:49 +0000 (19:19 +0200)]
data: Ensure a stable ordering in cmp() in case of type-mismatches.

So far, this doesn't make a difference but it's better style anyway.

10 years agostore_lookup: Fixed parsing of invalid compare expressions.
Sebastian Harl [Sun, 5 Oct 2014 16:19:39 +0000 (18:19 +0200)]
store_lookup: Fixed parsing of invalid compare expressions.

Previously, expressions like 'host.foo != 123' would be silently accepted by
the parser.

Added test cases to reproduce and catch the problem.

10 years agoutils dbi: Guard against multiple calls to dbi_shutdown_r().
Sebastian Harl [Sun, 5 Oct 2014 16:10:09 +0000 (18:10 +0200)]
utils dbi: Guard against multiple calls to dbi_shutdown_r().

This should not happen anyway but better be safe than sorry.

10 years agoobject: Assert that object's are not free'd multiple times.
Sebastian Harl [Sun, 5 Oct 2014 16:09:00 +0000 (18:09 +0200)]
object: Assert that object's are not free'd multiple times.

Else, we'd access free'd memory when trying to do so.

10 years agofrontend/proto.h: Improved documentation of all message types.
Sebastian Harl [Sun, 5 Oct 2014 14:27:52 +0000 (16:27 +0200)]
frontend/proto.h: Improved documentation of all message types.

10 years agofrontend, proto: Include object type in FETCH and LOOKUP messages.
Sebastian Harl [Sun, 5 Oct 2014 14:25:36 +0000 (16:25 +0200)]
frontend, proto: Include object type in FETCH and LOOKUP messages.

The respective commands only support hosts at the moment but this change
prepares the wire-format to support other types as well.

10 years agoReleaseNotes: Fixed date of the 0.2.0 release.
Sebastian Harl [Sun, 5 Oct 2014 09:59:39 +0000 (11:59 +0200)]
ReleaseNotes: Fixed date of the 0.2.0 release.

10 years agosysdbql(7): Fixed example LIST output.
Sebastian Harl [Sat, 4 Oct 2014 17:15:56 +0000 (19:15 +0200)]
sysdbql(7): Fixed example LIST output.

10 years agoWhen querying services/metrics skip hosts without such children.
Sebastian Harl [Tue, 30 Sep 2014 14:40:52 +0000 (07:40 -0700)]
When querying services/metrics skip hosts without such children.

This takes into account any filters and, thus, might mean that filters have to
be evaluated multiple times: once for determining if there are any children
and then again while serializing the data. This is because filtering happens
during serialization at which point it's too late to skip a host.

10 years agosysdbql(7): Use “SysQL” as the official abbreviation.
Sebastian Harl [Tue, 30 Sep 2014 12:51:05 +0000 (05:51 -0700)]
sysdbql(7): Use “SysQL” as the official abbreviation.

This is to avoid that people will call it “SQL”. Thanks to Julian Hein (and
others) for suggesting this.

10 years agosysdbql(7): Updated documentation for the LIST command.
Sebastian Harl [Tue, 30 Sep 2014 12:49:33 +0000 (05:49 -0700)]
sysdbql(7): Updated documentation for the LIST command.

10 years agofrontend/grammar: Added support for LISTing services and metrics.
Sebastian Harl [Tue, 30 Sep 2014 12:44:07 +0000 (05:44 -0700)]
frontend/grammar: Added support for LISTing services and metrics.

10 years agostore: Added a helper function to parse object type names.
Sebastian Harl [Tue, 30 Sep 2014 12:43:42 +0000 (05:43 -0700)]
store: Added a helper function to parse object type names.

10 years agofrontend: Added support for LISTing services and metrics as well.
Sebastian Harl [Tue, 30 Sep 2014 12:40:53 +0000 (05:40 -0700)]
frontend: Added support for LISTing services and metrics as well.

When listing objects other than hosts, the returned JSON list will include the
respective type listed below each host object.

10 years agofrontend: Use sdb_proto_get_int() instead of a custom helper.
Sebastian Harl [Tue, 30 Sep 2014 12:23:49 +0000 (05:23 -0700)]
frontend: Use sdb_proto_get_int() instead of a custom helper.

10 years agoReleaseNotes: Fixed a typo.
Sebastian Harl [Wed, 24 Sep 2014 20:34:06 +0000 (13:34 -0700)]
ReleaseNotes: Fixed a typo.

10 years agostore: Fixed JSON for serialized time-series.
Sebastian Harl [Fri, 19 Sep 2014 03:38:46 +0000 (20:38 -0700)]
store: Fixed JSON for serialized time-series.

Each field needs a name, add the name to the "data" field.

10 years agostore: Don't wrap JSON serialized LIST replies in a separate object.
Sebastian Harl [Fri, 19 Sep 2014 03:24:11 +0000 (20:24 -0700)]
store: Don't wrap JSON serialized LIST replies in a separate object.

Previously, the reply was {"hosts": [<list>]} while now it's just the list.
This way, the response format matches that of other commands which return host
lists.

10 years agoutils strbuf: Exponentially increase the buffer size.
Sebastian Harl [Wed, 17 Sep 2014 09:22:54 +0000 (11:22 +0200)]
utils strbuf: Exponentially increase the buffer size.

That'll make sure that lots of small writes don't result in lots of memory
reallocations.

10 years agoutils strbuf: Added 'min_size' to be considered when shrinking the buffer.
Sebastian Harl [Wed, 17 Sep 2014 09:10:13 +0000 (11:10 +0200)]
utils strbuf: Added 'min_size' to be considered when shrinking the buffer.

It's set to the initial size of the buffer (or 64). The idea is that the
initial size should provide an estimate of a reasonable size and shrinking the
buffer below that size causes unecessary churn.

For example, this is important for the frontend's command handlers which
usually need a large buffer size but initial writes to the buffer may be
small.

10 years agoutils strbuf: Renamed buffer variables from 'strbuf' to 'buf'.
Sebastian Harl [Wed, 17 Sep 2014 09:01:11 +0000 (11:01 +0200)]
utils strbuf: Renamed buffer variables from 'strbuf' to 'buf'.

10 years agofrontend, sysdb: Correctly handle empty queries.
Sebastian Harl [Tue, 16 Sep 2014 17:36:23 +0000 (19:36 +0200)]
frontend, sysdb: Correctly handle empty queries.

Let the frontend send back a DATA message even on empty queries to make sure
the client sees the expected reply.

Let sysdb handle empty replies correctly and also not print any errors on
empty replies (successful command not returning any data).

10 years agofrontend/proto: Include the log priority in LOG messages.
Sebastian Harl [Tue, 16 Sep 2014 16:48:57 +0000 (18:48 +0200)]
frontend/proto: Include the log priority in LOG messages.

The priority is encoded as 32 bit integer in network byte order and added as a
separate field before the actual log message.

The 'sysdb' client now handles LOG messages accordingly and prefixes the
message with a string describing the priority.

10 years agofrontend/proto: Let CONNECTION_DATA not replace CONNECTION_ERROR.
Sebastian Harl [Mon, 15 Sep 2014 17:44:13 +0000 (19:44 +0200)]
frontend/proto: Let CONNECTION_DATA not replace CONNECTION_ERROR.

Instead, reserve some space for groups of status/state codes and then use a
new number / block for CONNECTION_DATA.

10 years agofrontend, proto: Include the response data type in query replies.
Sebastian Harl [Sun, 14 Sep 2014 10:14:48 +0000 (12:14 +0200)]
frontend, proto: Include the response data type in query replies.

For that purpose, use the newly added CONNECTION_DATA status instead of
CONNECTION_OK for query replies and include the data type as the first field
in the message body. The type is the same as the respective command type.

10 years agostrbuf utils: Clarified handling of binary data.
Sebastian Harl [Sun, 14 Sep 2014 10:13:41 +0000 (12:13 +0200)]
strbuf utils: Clarified handling of binary data.

10 years agoproto: Fixed/clarified authentication handshake options during startup.
Sebastian Harl [Sun, 14 Sep 2014 09:23:39 +0000 (11:23 +0200)]
proto: Fixed/clarified authentication handshake options during startup.

The server may request further authentication information from the client
before sending an OK status.

10 years agoReleaseNotes: Added some notes about compatibility.
Sebastian Harl [Sun, 14 Sep 2014 09:10:56 +0000 (11:10 +0200)]
ReleaseNotes: Added some notes about compatibility.

That is, mention that there are no compatibility guarantees at the moment (pre
1.0 versions).

10 years agofrontend: Guarantee that no async messages are sent before startup finished.
Sebastian Harl [Thu, 11 Sep 2014 06:48:40 +0000 (08:48 +0200)]
frontend: Guarantee that no async messages are sent before startup finished.

10 years agoversion-gen.sh: Added .git suffix to default version again.
Sebastian Harl [Mon, 1 Sep 2014 19:33:18 +0000 (21:33 +0200)]
version-gen.sh: Added .git suffix to default version again.

10 years agoRelease SysDB 0.4.0. sysdb-0.4.0
Sebastian Harl [Mon, 1 Sep 2014 18:41:10 +0000 (20:41 +0200)]
Release SysDB 0.4.0.

10 years agoReleaseNotes: Added 0.4.0 release.
Sebastian Harl [Mon, 1 Sep 2014 18:36:22 +0000 (20:36 +0200)]
ReleaseNotes: Added 0.4.0 release.

10 years agoSwitched all sysdb.io links to https://
Sebastian Harl [Mon, 1 Sep 2014 16:21:37 +0000 (18:21 +0200)]
Switched all sysdb.io links to https://

10 years agosysdb(7): Documented basic concepts in more detail.
Sebastian Harl [Mon, 1 Sep 2014 15:49:58 +0000 (17:49 +0200)]
sysdb(7): Documented basic concepts in more detail.

Added more in-depth documentation and examples for hosts/services, how
hostname canonicalization works, and how to use metrics and time-series.

10 years agoconfigure: Make plugin related options more consistent.
Sebastian Harl [Fri, 29 Aug 2014 08:55:18 +0000 (10:55 +0200)]
configure: Make plugin related options more consistent.

That is, use the full plugin names (except "backend" prefixes) for the
--enable-* options.

10 years agocollectd::unixsock: Support 'rrdcached' metrics as well.
Sebastian Harl [Fri, 29 Aug 2014 07:55:34 +0000 (09:55 +0200)]
collectd::unixsock: Support 'rrdcached' metrics as well.

It's the same as 'rrdtool' :-)

10 years agotimeseries::rrdtool: Added support for RRDCacheD.
Sebastian Harl [Thu, 28 Aug 2014 23:42:34 +0000 (16:42 -0700)]
timeseries::rrdtool: Added support for RRDCacheD.

After enabling RRDCacheD support, the plugin supports an additional
time-series fetcher callback which may be used to flush outstanding updates to
an RRD file before fetching data from it.

10 years agodoc/: Improved documentation around the rrdtool time-series fetcher.
Sebastian Harl [Thu, 28 Aug 2014 21:33:06 +0000 (14:33 -0700)]
doc/: Improved documentation around the rrdtool time-series fetcher.

10 years agosysdbql(7): Documented supported data types.
Sebastian Harl [Sat, 23 Aug 2014 05:21:47 +0000 (22:21 -0700)]
sysdbql(7): Documented supported data types.

10 years agofrontend: Added support for single quotes in string constants.
Sebastian Harl [Sat, 23 Aug 2014 04:39:22 +0000 (21:39 -0700)]
frontend: Added support for single quotes in string constants.

Just like in SQL, single quotes may be included in a string by specifying two
adjacent single quotes.

10 years agoAdded __attribute__((format(printf, ...))) where appropriate.
Sebastian Harl [Fri, 22 Aug 2014 06:06:04 +0000 (23:06 -0700)]
Added __attribute__((format(printf, ...))) where appropriate.

Also, fixed various (mostly minor) issues identified this way.

10 years agoplugin: Added missing argument to sdb_log() call.
Sebastian Harl [Fri, 22 Aug 2014 05:17:23 +0000 (22:17 -0700)]
plugin: Added missing argument to sdb_log() call.

10 years agosysdbql(7): Documented the ‘TIMESERIES’ command.
Sebastian Harl [Fri, 22 Aug 2014 05:01:13 +0000 (22:01 -0700)]
sysdbql(7): Documented the ‘TIMESERIES’ command.

10 years agosysdbd-collectd-unixsock(5): Documented the new 'Timeseries' options.
Sebastian Harl [Fri, 22 Aug 2014 04:55:55 +0000 (21:55 -0700)]
sysdbd-collectd-unixsock(5): Documented the new 'Timeseries' options.

10 years agoAdded documentation for the new timeseries::rrdtool plugin.
Sebastian Harl [Fri, 22 Aug 2014 04:55:35 +0000 (21:55 -0700)]
Added documentation for the new timeseries::rrdtool plugin.

10 years agoREADME: Mention the support for metrics and time-series.
Sebastian Harl [Fri, 22 Aug 2014 04:44:27 +0000 (21:44 -0700)]
README: Mention the support for metrics and time-series.

10 years agosysdb-description.txt: Mention the support for metrics and time-series.
Sebastian Harl [Fri, 22 Aug 2014 04:41:43 +0000 (21:41 -0700)]
sysdb-description.txt: Mention the support for metrics and time-series.

10 years agotimeseries: Free the actual time-series object itself as well.
Sebastian Harl [Thu, 21 Aug 2014 05:18:36 +0000 (22:18 -0700)]
timeseries: Free the actual time-series object itself as well.

10 years agocollectd::unixsock: Report an error if TimeseriesBackend != rrdtool.
Sebastian Harl [Thu, 21 Aug 2014 05:10:05 +0000 (22:10 -0700)]
collectd::unixsock: Report an error if TimeseriesBackend != rrdtool.

No other backends are supported yet by the plugin. Support for other types
will require different metric store ID generation.

10 years agocollectd::unixsock: Record the, configurable, time-series store.
Sebastian Harl [Thu, 21 Aug 2014 05:03:42 +0000 (22:03 -0700)]
collectd::unixsock: Record the, configurable, time-series store.

The new config options 'TimeseriesBackend' and 'TimeseriesBaseURL' may be used
to configure the backend store to be used for fetching time-series data for
collectd metrics.

10 years agotimeseries::rrdtool: Added a plugin to fetch time-series from RRD files.
Sebastian Harl [Thu, 21 Aug 2014 03:19:47 +0000 (20:19 -0700)]
timeseries::rrdtool: Added a plugin to fetch time-series from RRD files.

Obviously, the plugin requires librrd. The configure script checks for librrd
using pkg-config.

10 years agotimeseries: Added sdb_timeseries_create().
Sebastian Harl [Thu, 21 Aug 2014 03:17:05 +0000 (20:17 -0700)]
timeseries: Added sdb_timeseries_create().

This function allocates a time-series object and pre-allocates the data array
based on size information passed to the function. All memory is initialized to
zero (except for the length information) such that the object contains valid
(but mostly useless) information.

10 years agotimeseries: Fixed timeseries_destroy().
Sebastian Harl [Thu, 21 Aug 2014 03:15:40 +0000 (20:15 -0700)]
timeseries: Fixed timeseries_destroy().

Correctly access all information indexed by data_names_len and make sure not
to access array members if the array is NULL.

10 years agostore: Fixed JSON-serialization of time-series data.
Sebastian Harl [Thu, 21 Aug 2014 03:12:58 +0000 (20:12 -0700)]
store: Fixed JSON-serialization of time-series data.

Typos caused the end-time and all values to be treated incorrectly.

10 years agoMoved backends from src/backend/ to src/plugins/backend/.
Sebastian Harl [Tue, 19 Aug 2014 03:31:00 +0000 (20:31 -0700)]
Moved backends from src/backend/ to src/plugins/backend/.

10 years agocollectd::unixsock: Store metrics instead of services.
Sebastian Harl [Sat, 16 Aug 2014 19:47:00 +0000 (12:47 -0700)]
collectd::unixsock: Store metrics instead of services.

10 years agointegration/simple_query.sh: Test another failure mode.
Sebastian Harl [Sat, 16 Aug 2014 19:43:17 +0000 (12:43 -0700)]
integration/simple_query.sh: Test another failure mode.

10 years agofrontend: Let CONNECTION_QUERY support 'TIMESERIES' queries.
Sebastian Harl [Sat, 16 Aug 2014 19:38:21 +0000 (21:38 +0200)]
frontend: Let CONNECTION_QUERY support 'TIMESERIES' queries.

10 years agofrontend/parser: Added support for the 'TIMESERIES' command.
Sebastian Harl [Sat, 16 Aug 2014 19:12:05 +0000 (21:12 +0200)]
frontend/parser: Added support for the 'TIMESERIES' command.

Syntax is: TIMESERIES <host>.<metric> [START <datetime>] [END <datetime>]

10 years agostore: Added sdb_store_fetch_timeseries().
Sebastian Harl [Sat, 16 Aug 2014 17:11:45 +0000 (19:11 +0200)]
store: Added sdb_store_fetch_timeseries().

The function fetches a time-series for a specified host's metric and
serializes it into a JSON buffer.

10 years agotimeseries: Added 'data_names_len' field.
Sebastian Harl [Sat, 16 Aug 2014 17:10:51 +0000 (19:10 +0200)]
timeseries: Added 'data_names_len' field.

Else, a user cannot tell how many different sequences are stored in a
data-series.

10 years agotimeseries: Added sdb_timeseries_destroy().
Sebastian Harl [Sat, 16 Aug 2014 17:10:06 +0000 (19:10 +0200)]
timeseries: Added sdb_timeseries_destroy().

10 years agoplugin: Added sdb_plugin_fetch_timeseries().
Sebastian Harl [Sat, 16 Aug 2014 16:14:06 +0000 (18:14 +0200)]
plugin: Added sdb_plugin_fetch_timeseries().

This function fetches a time-series from a named backend data-store using a
previously registered "time-series fetcher" callback.

10 years agocore: Introduced the concept of time-series.
Sebastian Harl [Sat, 16 Aug 2014 10:17:15 +0000 (12:17 +0200)]
core: Introduced the concept of time-series.

A timeseries describes one or multiple sequences of data-points where each
data-point is a timestamp and a value.

A new type of plugin, "time-series fetchers", has been introduced to access
time-series information from arbitrary data-stores.

10 years agostore: Store "data-store" information alongside metrics.
Sebastian Harl [Sat, 16 Aug 2014 10:08:16 +0000 (12:08 +0200)]
store: Store "data-store" information alongside metrics.

A metric data-store describes how to access data (e.g. time-series) of a
metric.

10 years agostore.h: Removed very outdated comments in the documentation.
Sebastian Harl [Sat, 16 Aug 2014 06:38:32 +0000 (08:38 +0200)]
store.h: Removed very outdated comments in the documentation.

10 years agoREADME: Updated Travis-CI and coveralls links.
Sebastian Harl [Sun, 3 Aug 2014 21:26:30 +0000 (23:26 +0200)]
README: Updated Travis-CI and coveralls links.

The main repo has been moved from tokkee/sysdb to sysdb/sysdb.

10 years agointegration tests: Added simple tests for service and metric queries.
Sebastian Harl [Sun, 3 Aug 2014 20:34:14 +0000 (22:34 +0200)]
integration tests: Added simple tests for service and metric queries.

To make that work, let the mock_plugin store some metrics as well.

10 years agostore_lookup_test: Added various tests for metrics.
Sebastian Harl [Sun, 3 Aug 2014 20:16:30 +0000 (22:16 +0200)]
store_lookup_test: Added various tests for metrics.

10 years agostore: Added support for storing metric objects.
Sebastian Harl [Sat, 2 Aug 2014 22:39:20 +0000 (00:39 +0200)]
store: Added support for storing metric objects.

10 years agostore: Added core support for “metrics” objects.
Sebastian Harl [Sat, 2 Aug 2014 22:07:29 +0000 (00:07 +0200)]
store: Added core support for “metrics” objects.

This is going to be used to store information about available metrics (in the
broadest sense). A metric is any kind of queryable value like performance
data.

10 years agosysdbql(7): Updated documentation to keep up with the latest changes.
Sebastian Harl [Sat, 2 Aug 2014 21:22:57 +0000 (23:22 +0200)]
sysdbql(7): Updated documentation to keep up with the latest changes.

10 years agofrontend/grammar: Changes ‘FETCH 'name'’ to ‘FETCH host 'name'’.
Sebastian Harl [Sat, 2 Aug 2014 21:05:44 +0000 (23:05 +0200)]
frontend/grammar: Changes ‘FETCH 'name'’ to ‘FETCH host 'name'’.

This also seems more consistent.

10 years agofrontend/grammar: Changed ‘LIST …’ to ‘LIST hosts …’.
Sebastian Harl [Sat, 2 Aug 2014 20:52:25 +0000 (22:52 +0200)]
frontend/grammar: Changed ‘LIST …’ to ‘LIST hosts …’.

This seems more consistent.

10 years agofrontend/parser: Let ‘LIST’ and ‘FETCH’ accept optional filters as well.
Sebastian Harl [Sat, 2 Aug 2014 20:16:59 +0000 (22:16 +0200)]
frontend/parser: Let ‘LIST’ and ‘FETCH’ accept optional filters as well.

This allows for more consistent results across different types of queries.

10 years agofrontend/parser: Simplified handling of MATCHING and FILTER clauses.
Sebastian Harl [Sat, 2 Aug 2014 19:51:13 +0000 (21:51 +0200)]
frontend/parser: Simplified handling of MATCHING and FILTER clauses.

Make LOOKUP MATCHING clauses optional.

10 years agofrontend/proto.h: Documented the current frontend protocol.
Sebastian Harl [Sat, 2 Aug 2014 19:30:00 +0000 (21:30 +0200)]
frontend/proto.h: Documented the current frontend protocol.

10 years agofrontend: Let sdb_fe_<cmd> check the current command.
Sebastian Harl [Sat, 2 Aug 2014 18:20:16 +0000 (20:20 +0200)]
frontend: Let sdb_fe_<cmd> check the current command.

Now that the code is no longer internal-only, we'll have to be a bit careful
about what the users passes in.

10 years agofrontend: Split up command_handle() into several sdb_fe_<cmd> functions.
Sebastian Harl [Sat, 2 Aug 2014 18:14:50 +0000 (20:14 +0200)]
frontend: Split up command_handle() into several sdb_fe_<cmd> functions.

One big function is not very nice to handle.

10 years agofrontend: Renamed sdb_fe_<cmd> functions to sdb_fe_exec_<cmd>.
Sebastian Harl [Sat, 2 Aug 2014 18:13:49 +0000 (20:13 +0200)]
frontend: Renamed sdb_fe_<cmd> functions to sdb_fe_exec_<cmd>.

That name better describes what the function is doing.

10 years agodata: Simplified the implementation of expr_eval().
Sebastian Harl [Sat, 2 Aug 2014 17:42:24 +0000 (19:42 +0200)]
data: Simplified the implementation of expr_eval().

10 years agofrontend: Make sure to not read to much from a connection buffer.
Sebastian Harl [Sat, 2 Aug 2014 15:10:49 +0000 (17:10 +0200)]
frontend: Make sure to not read to much from a connection buffer.

The current command, as stored in the connection buffer, is not necessarily
nil-terminated. That's only the case if there's no further data in the buffer
(which will *often* be the case in the current implementation when using
'sysdb' as the client) but the code should never rely on that.

In cases where the function operating on the data does not support specifying
the length of the string to work on, copy the data to a temporary buffer
first.

10 years agostore_expr: Fixed a memory leak in an error condition.
Sebastian Harl [Sat, 2 Aug 2014 10:59:44 +0000 (12:59 +0200)]
store_expr: Fixed a memory leak in an error condition.

10 years agostore_expr: Evaluate constant expressions early.
Sebastian Harl [Sat, 2 Aug 2014 10:57:16 +0000 (12:57 +0200)]
store_expr: Evaluate constant expressions early.

That is, when creating a new expression objects, evaluate it right away if its
left and right operands are constant values.

10 years agodata: Document the use of dynamically allocated data in expr_eval().
Sebastian Harl [Sat, 2 Aug 2014 10:41:37 +0000 (12:41 +0200)]
data: Document the use of dynamically allocated data in expr_eval().

10 years agodata: Let sdb_data_expr_eval() check it's arguments.
Sebastian Harl [Sat, 2 Aug 2014 10:35:12 +0000 (12:35 +0200)]
data: Let sdb_data_expr_eval() check it's arguments.

10 years agoversion-gen.sh: Added .git suffix to default version again.
Sebastian Harl [Fri, 1 Aug 2014 18:44:57 +0000 (20:44 +0200)]
version-gen.sh: Added .git suffix to default version again.