Passthrough UpdateArray FD in SPARQL updates from DBus endpoint
Currently, the TrackerEndpointDBus converts an UpdateArray request into a TrackerBatch, by reading all contents and including SPARQL/RDF in it before execution, this branch:
- Fixes some remaining bugs in TTL/Trig serialization wrt blank nodes
- Decomposes TrackerResource inserts in the DBus peer into 1) small SPARQL delete operations for replaced properties and 2) Trig data for all insertions. Instead of forwarding as a full SPARQL operation with little caching possibilities.
- Adds an internal
tracker_batch_add_dbus_fd()
method to plunge the operations FD into the update machinery - Moves the UpdateArray FD reading code inside the update machinery, so that only SPARQL/RDF operations are read individually before flushing into the transaction.
This avoids possible the memory usage pressure in allocating/populating a full TrackerBatch before execution, making memory usage more stable on the D-Bus endpoint side.