2006-11-18 Dave Beckett * librdf/rdf_storage_sqlite.c: Track when a stream is active and store pending queries for SQLite in a list an apply after. (librdf_storage_sqlite_exec): When the execution returns SQLITE_LOCKED and in a stream, save the query for running later. (librdf_storage_sqlite_serialise, librdf_storage_sqlite_find_statements, librdf_storage_sqlite_context_serialise, librdf_storage_sqlite_get_contexts): Mark in stream. (librdf_storage_sqlite_serialise_finished, librdf_storage_sqlite_find_statements_finished librdf_storage_sqlite_context_serialise_finished): End in stream. (librdf_storage_sqlite_query_flush): Added. Fixes Issue #0000139 http://bugs.librdf.org/mantis/view.php?id=139 2006-10-31 Dave Beckett * librdf/Makefile.am: FIx AM_CPPFLAGS AM_CFLAGS 2006-10-22 Dave Beckett * configure.ac, librdf/win32_rdf_config.h: Bump version to 1.0.5 2006-10-21 Dave Beckett * librdf/rdf_storage_sqlite.c: (librdf_storage_sqlite_literal_helper): Check for no language or no datatype when they are NULL. Fixes Issue#0000136 http://bugs.librdf.org/mantis/view.php?id=136 2006-10-14 Dave Beckett * librdf/rdf_storage_sqlite.c: Add a 'sychronous' storage option for the sqlite store with values off, normal or full. (librdf_storage_sqlite_init, librdf_storage_sqlite_open): set synchronous flag and do creation in a transaction. (librdf_storage_sqlite_contains_statement, librdf_storage_sqlite_context_add_statement): Add transaction around operation. (librdf_storage_sqlite_context_remove_statement): Add trailing ; * librdf/rdf_storage_mysql.c: Revert change: > r11074 | dajobe | 2006-07-29 17:18:34 -0700 (Sat, 29 Jul 2006) | 5 lines > (librdf_storage_mysql_add_statements): Use > librdf_storage_mysql_context_add_statements. > (librdf_storage_mysql_context_add_statements): Add check for adding > duplicate statements and remove the check when in bulk mode. 2006-10-08 Dave Beckett * librdf/rdf_storage_hashes.c: (librdf_storage_hashes_add_remove_statement, librdf_storage_hashes_contains_statement): Fix debug calls. Fixes Issue#0000132 http://bugs.librdf.org/mantis/view.php?id=132 * librdf/rdf_query.c: (librdf_query_register_factory): Fix debug call. Fixes Issue#0000132 http://bugs.librdf.org/mantis/view.php?id=132 * librdf/rdf_serializer.c: (main): Reuse serializer * librdf/rdf_node.c: (main): Free test big literal. * librdf/rdf_node.c: (main): Add test for big 100,000-length literal. * librdf/rdf_node.c: (librdf_new_node_from_literal): Call librdf_new_node_from_typed_counted_literal directly. (librdf_new_node_from_typed_counted_literal): Added, with guts of librdf_new_node_from_typed_literal. (librdf_new_node_from_typed_literal): Call librdf_new_node_from_typed_counted_literal with additional strlen()s. (librdf_node_encode, librdf_node_decode): Added new long literal type 'N' when the string length > 0xFFFF. Does not affect existing shorter literal encoding. Use librdf_new_node_from_typed_counted_literal to save un-necessary strlen()s. * librdf/rdf_node.h: Added librdf_new_node_from_typed_counted_literal prototype. * librdf/rdf_node_internal.h: struct librdf_node_s now counts XML language length * librdf/rdf_node.c: Add tests for node encoding URIs, literals * librdf/rdf_list.c, librdf/rdf_list_internal.h: rdf_list_context restores current and next fields. When a node is deleted, just adjust the next pointer. 2006-10-07 Dave Beckett * librdf/rdf_list.c: (librdf_list_iterators_replace_node): Remove next field, just use librdf_iterator_next() to move on. (librdf_list_get_iterator, librdf_list_iterator_next_method): Remove use of next field. * librdf/rdf_list_internal.h: struct librdf_list_iterator_context_s looses the next field. * librdf/rdf_storage_list.c: (librdf_storage_list_context_add_statement): Free some fields before freeing the memory the pointers were stored in after errors. * librdf/rdf_storage.c: The stream to node iterator code was altered to now save the grabbed object node and/or context nodes taken from the shared librdf_stream that it converts so even if the librdf_stream moves on, the librdf_nodes are preserved. (librdf_storage_stream_to_node_iterator_next_method): Delete any saved object/context nodes so they will get refreshed. (librdf_storage_stream_to_node_iterator_get_method): Save object/context nodes after retrieving them from the shared librdf_statement got from the librdf_stream. (librdf_storage_stream_to_node_iterator_finished): Free the new saved node fields. (librdf_storage_node_stream_to_node_create): Copy the node1, node2 explicitly rather than fake around with NULLing out them in the librdf_storage_stream_to_node_iterator_finished function. * librdf/rdf_serializer.c: (main): tests for serialize stream to string/file handle * librdf/Makefile.am: add test.rdf to CLEANFILES * librdf/rdf_serializer_raptor.c: Removed unused var * librdf/rdf_serializer_internal.h: Added factory methods: serialize_stream_to_file_handle, serialize_stream_to_counted_string and serialize_stream_to_iostream * librdf/rdf_serializer_raptor.c: (librdf_serializer_raptor_serialize_stream_to_file_handle, librdf_serializer_raptor_serialize_stream_to_counted_string librdf_serializer_raptor_serialize_stream_to_iostream): Added * librdf/rdf_serializer.c: (librdf_serializer_serialize_stream_to_file_handle, librdf_serializer_serialize_stream_to_file, librdf_serializer_serialize_stream_to_string, librdf_serializer_serialize_stream_to_counted_string librdf_serializer_serialize_stream_to_iostream): Added to satisfy the request in Issue#000092 http://bugs.librdf.org/mantis/view.php?id=92 * librdf/rdf_serializer.h: Added prototypes for librdf_serializer_serialize_stream_to_file_handle, librdf_serializer_serialize_stream_to_file, librdf_serializer_serialize_stream_to_string, librdf_serializer_serialize_stream_to_counted_string and librdf_serializer_serialize_stream_to_iostream * librdf/rdf_parser.c: docs * librdf/rdf_parser.c: (main): Add accept header test * librdf/rdf_parser_raptor.c: (librdf_parser_raptor_get_accept_header): fix * librdf/rdf_parser_raptor.c: (librdf_parser_raptor_get_accept_header): Added. * librdf/rdf_parser.c: (librdf_parser_get_accept_header): Added. * librdf/rdf_parser.h: Added librdf_parser_get_accept_header prototype. * librdf/rdf_parser_internal.h: struct librdf_parser_factory_s gains get_accept_header * librdf/rdf_serializer_raptor.c: (librdf_serializer_raptor_constructor): Grab and register the label with librdf_serializer_register_factory. * librdf/rdf_serializer_internal.h: struct librdf_serializer_factory_s gains label field * librdf/rdf_serializer.h: librdf_parser_register_factory gains Add label arg. Added librdf_serializer_enumerate prototype * librdf/rdf_serializer.c: Replace world->serializers with raptor_sequence of parsers. (librdf_serializer_register_factory): Add label arg. * librdf/rdf_init_internal.h: struct librdf_world_s field serializers is now a raptor_sequence * librdf/rdf_init_internal.h: struct librdf_world_s field parsers is now a raptor_sequence * librdf/rdf_parser_internal.h: struct librdf_parser_factory_s gains label field. * librdf/rdf_parser.h: librdf_parser_register_factory gains Add label arg. Added librdf_parser_enumerate prototype * librdf/rdf_parser_raptor.c: (librdf_parser_raptor_constructor): Grab and register the label with librdf_parser_register_factory. * librdf/rdf_parser.c: Replace world->parsers with raptor_sequence of parsers (librdf_parser_register_factory): Add label arg. * librdf/rdf_list.c: Less debugging of list iterator changes 2006-10-06 Dave Beckett * librdf/rdf_node.c: cast * librdf/rdf_model.c: (test): During an iteration delete the current triple item and the next triple item. * librdf/rdf_list.c: Rename iterator_context fields to next_ic, prev_ic. Store next pointer and use that to handle deleting the next item. * librdf/rdf_list_internal.h: Rename fields to next_ic, prev_ic * librdf/rdf_list.c: Move structs to rdf_list_iternal.h * librdf/rdf_list_internal.h: Add iterator contexts * librdf/rdf_list.c: Added librdf_list_iterators_replace_node to move iterators past deleted nodes. * librdf/rdf_list.c: *** empty log message *** * librdf/rdf_list.c: Moved internal structs here. (librdf_list_add_iterator_context, librdf_list_remove_iterator_context): Added. (librdf_list_get_iterator): Add to list of iterators with librdf_list_add_iterator_context on success. (librdf_list_iterator_finished): Remove from list of iterators * librdf/rdf_storage.c: autodocs * librdf/rdf_model.c: autodocs * librdf/rdf_list.c: (librdf_free_list): Warn if iterators were running at exit. * librdf/rdf_list_internal.h: Add struct librdf_list_iterator_context_s * librdf/rdf_internal.h: Remove rdf_list_internal.h * librdf/rdf_parser_raptor.c: statements field is now a dynamic librdf_list* * librdf/rdf_heuristics.c: statements field is now a dynamic librdf_list* * librdf/rdf_parser.c: (librdf_parser_parse_as_stream, librdf_parser_parse_into_model): Allow NULL base_uri (librdf_parser_parse_string_as_stream, librdf_parser_parse_string_into_model, librdf_parser_parse_counted_string_as_stream, librdf_parser_parse_counted_string_into_model): Allow NULL base_uri, remove assertion failure. (main): Add const and count failures. * librdf/rdf_parser_raptor.c: Changes to allow NULL base uris in parsing, but to fail if it is omitted but required. (librdf_parser_raptor_new_statement_handler): Incoming URIs are always absolute so just use librdf_new_node_from_uri. (librdf_parser_raptor_parse_file_handle_as_stream): Fail if base_uri is NULL but required. (librdf_parser_raptor_parse_as_stream_common): Fail if base_uri is NULL but required. Report fopen failure as an error. (librdf_parser_raptor_parse_uri_into_model_common): docs allowing NULL base_uri. (librdf_parser_raptor_parse_into_model_common): Fail if base_uri is NULL but required. (librdf_parser_raptor_parse_uri_into_model): docs allowing NULL base_uri. * librdf/rdf_heuristics.c: const in test data * librdf/rdf_node.c: const in test data * librdf/rdf_storage_postgresql.c: (librdf_storage_postgresql_hash): Take const type, string. * librdf/rdf_storage_mysql.c: (librdf_storage_mysql_hash): Take const type, string. * librdf/rdf_storage_hashes.c: const in test data * librdf/rdf_storage.c: (librdf_storage_enumerate): Do not check unsigned int < 0 * librdf/rdf_serializer.c: const in test data * librdf/rdf_query_results.c: (librdf_query_results_to_file): log fopen failure error * librdf/rdf_query.c: const in test data * librdf/rdf_model.c: (librdf_model_enumerate): Do not check unsigned int < 0 * librdf/rdf_log_internal.h: librdf_log prototype takes REDLAND_PRINTF_FORMAT * librdf/rdf_hash_internal.h: librdf_hash factory method open Take const identifier. librdf_hash_open prototype changed to take const identifier * librdf/rdf_hash_memory.c: (librdf_hash_memory_open): Take const identifier. * librdf/rdf_hash_bdb.c: (librdf_hash_bdb_open): Take const identifier. * librdf/rdf_hash.h: Change librdf_hash_print_values prototype to take const key_string. * librdf/rdf_hash.c: (librdf_hash_open, librdf_hash_print_values): Take const identifier, key_string. const in test data * librdf/rdf_digest.c: const in test data * librdf/librdf.h: Added REDLAND_PRINT_FORMAT 2006-09-10 Dave Beckett * librdf/rdf_storage_sqlite.c: (librdf_storage_sqlite_literal_helper): Move stringbuffer allocation to after sqlite_string_escape so if it fails, no memory is lost. (librdf_storage_sqlite_contains_statement): If librdf_storage_sqlite_statement_operator_helper fails, free the stringbuffer. (librdf_storage_sqlite_context_remove_statement): If librdf_storage_sqlite_statement_operator_helper fails, free the stringbuffer. Fixes issue #0000116 http://bugs.librdf.org/mantis/view.php?id=116 2006-09-04 Dave Beckett * librdf/rdf_serializer.c: (librdf_serializer_serialize_model_to_file): Report an error when failed to fopen to create a file. * librdf/rdf_storage_postgresql.c: (librdf_storage_postgresql_hash): Take const char* string arg. * librdf/rdf_storage_mysql.c: Add mysql reconnect option 2006-08-26 Dave Beckett * librdf/rdf_node.c: (librdf_new_node_from_blank_identifier): Autodocs Fixes issue#00001114 http://bugs.librdf.org/mantis/view.php?id=114 2006-08-20 Dave Beckett * librdf/rdf_internal.h: tweak debug macros 2006-08-16 Dave Beckett * librdf/rdf_storage.c: (librdf_storage_context_remove_statements): Doc fix 2006-08-11 Dave Beckett * librdf/rdf_query_rasqal.c: (rasqal_redland_new_triples_source): Do not die if a sequence of data graphs is found, instead empty the sequence of data graphs. 2006-07-29 Dave Beckett * librdf/rdf_heuristics.c, librdf/rdf_heuristics.h: Add some more const fixes. Fixes Issue #0000107 http://bugs.librdf.org/mantis/view.php?id=107 * librdf/rdf_init_internal.h: struct librdf_world_s gains raptor_sequence of models * librdf/rdf_model.c: Switch to a raptor_sequence of models. (librdf_finish_model): Use raptor_free_sequence. (librdf_delete_model_factories): Deleted. (librdf_free_model_factory): Added helper for raptor_free_sequence. (librdf_model_register_factory, librdf_get_model_factory): Switch to use sequences. (librdf_model_enumerate): Added. * librdf/rdf_model.h: Added librdf_model_enumerate * librdf/rdf_model_storage.c: (librdf_init_model_storage): Update for librdf_model_register_factory world arg. * librdf/rdf_model_internal.h: struct librdf_model_factory_s loses world, next fields, gains label. librdf_model_register_factory gains label field librdf_get_model_factory gains world field * librdf/rdf_storage.h: librdf_storage_enumerate gains world args. * librdf/rdf_storage_internal.h: librdf_get_storage_factory gains world args. * librdf/rdf_storage.c: (librdf_get_storage_factory, librdf_storage_enumerate): Add world args. * librdf/rdf_storage.c: Switch to a raptor_sequence of storages. (librdf_init_storage): Re-order, first thing registered is the default. (librdf_finish_storage): Use raptor_free_sequence. (librdf_delete_storage_factories): Deleted. (librdf_free_storage_factory): Added helper for raptor_free_sequence. (librdf_storage_register_factory, librdf_get_storage_factory, librdf_storage_enumerate): Switch to use sequences. * librdf/rdf_init_internal.h: (struct librdf_world_s): Add raptor_sequence of storages * librdf/rdf_storage_internal.h: (struct librdf_storage_factory_s): Lose world and next fields. * librdf/rdf_storage_sqlite.c: (librdf_storage_sqlite_context_remove_statements): Remove unused vars * librdf/rdf_storage_sqlite.c: (librdf_storage_sqlite_context_remove_statements): Added. Fixes Issue #0000103 http://bugs.librdf.org/mantis/view.php?id=103 * librdf/rdf_storage_sqlite.c: Wrap all sqlite_FREE calls on error messages so that they are only called with SQLITE API v2. Fixes Issue #0000105 http://bugs.librdf.org/mantis/view.php?id=105 * librdf/rdf_storage_postgresql.c: (librdf_storage_postgresql_add_statements): Use librdf_storage_postgresql_context_add_statements. (librdf_storage_postgresql_context_add_statements): Add check for adding duplicate statements and remove the check when in bulk mode. * librdf/rdf_storage_mysql.c: (librdf_storage_mysql_add_statements): Use librdf_storage_mysql_context_add_statements. (librdf_storage_mysql_context_add_statements): Add check for adding duplicate statements and remove the check when in bulk mode. 2006-07-11 Dave Beckett * librdf/rdf_storage_mysql.c: cast 2006-07-05 Dave Beckett * librdf/rdf_hash.c, librdf/rdf_heuristics.c, librdf/rdf_iterator.c, librdf/rdf_model.c, librdf/rdf_node.c, librdf/rdf_parser.c, librdf/rdf_query.c, librdf/rdf_serializer.c, librdf/rdf_statement.c, librdf/rdf_storage.c, librdf/rdf_stream.c, librdf/rdf_uri.c, librdf/rdf_utf8.c: (main): More const decls for program. 2006-07-04 Dave Beckett * librdf/rdf_digest.c: (main): Revalidate digest answers * librdf/rdf_digest.c, librdf/rdf_hash.c, librdf/rdf_heuristics.c, librdf/rdf_iterator.c, librdf/rdf_node.c, librdf/rdf_parser.c, librdf/rdf_query.c, librdf/rdf_serializer.c, librdf/rdf_statement.c, librdf/rdf_storage_internal.h, librdf/rdf_stream.c, librdf/rdf_uri.c, librdf/rdf_utf8.c: Fixes for calls to librdf_basename in unit tests * librdf/rdf_storage_file.c: Add const for some char* args: (librdf_storage_file_init): argument name * librdf/rdf_storage_sqlite.c: Add const for some char* args: (librdf_storage_sqlite_init): argument name * librdf/rdf_storage_tstore.c: Add const for some char* args: (librdf_storage_tstore_init): argument name * librdf/rdf_storage_mysql.c: Add const for some char* args: (librdf_storage_mysql_init): argument name * librdf/rdf_storage_list.c: Add const for some char* args: (librdf_storage_list_init): argument name * librdf/rdf_storage_postgresql.c: Add const for some char* args: (librdf_storage_postgresql_init): argument name * librdf/rdf_init.c: Added string.h and (protected by HAVE_UNISTD_H) unistd.h headers * librdf/rdf_storage_hashes.c: Add const for some char* args: (librdf_storage_hashes_register): argument name (librdf_storage_hashes_register): argument name (librdf_storage_hashes_init): argument name * librdf/rdf_storage.c: Add const for some char* args: (librdf_new_storage): argument storage_name (librdf_new_storage_with_options): arguments storage_name, name (librdf_new_storage_from_factory): argument name * librdf/rdf_storage.h: Add const for some char* args: librdf_new_storage argument storage_name librdf_new_storage_with_options arguments storage_name, name librdf_new_storage_from_factory argument name * librdf/rdf_model.c: Update to add const for some char* args: (librdf_new_model): argument options_string (librdf_model_add_string_literal_statement): argument xml_language (librdf_model_add_typed_literal_statement): argument xml_language * librdf/rdf_digest.h: Add const for some char* args: librdf_new_digest argument name * librdf/rdf_model.h: Add const for some char* args: librdf_new_model argument options_string librdf_model_add_string_literal_statement argument xml_language librdf_model_add_typed_literal_statement argument xml_language * librdf/rdf_log.c: (librdf_log_simple): Handle attempting to fputs a NULL message. * librdf/rdf_storage_hashes.c: (librdf_storage_hashes_init_common): Do not free any options here. (librdf_storage_hashes_open): Free any options after passing them to librdf_hash_open * librdf/rdf_digest.c: (main): Count failures in digest checks and return them in the return. * librdf/rdf_digest.c, librdf/rdf_hash.c, librdf/rdf_heuristics.c, librdf/rdf_iterator.c, librdf/rdf_model.c, librdf/rdf_node.c, librdf/rdf_parser.c, librdf/rdf_query.c, librdf/rdf_serializer.c, librdf/rdf_statement.c, librdf/rdf_storage.c, librdf/rdf_stream.c, librdf/rdf_uri.c, librdf/rdf_utf8.c: use librdf_basename * librdf/rdf_init.h: Added internal prototype for librdf_basename * librdf/rdf_init.c: (librdf_basename): Added 2006-07-03 Dave Beckett * librdf/rdf_storage_postgresql.c: make it legal C again 2006-07-02 Dave Beckett * librdf/rdf_query_rasqal.c: (rasqal_redland_bind_match): Tidy docs and make the graph field (aka origin) match redland context. (rasqal_redland_init_triples_match): If a context node is given, use librdf_model_find_statements_in_context 2006-06-30 Dave Beckett * librdf/rdf_storage_postgresql.c: (librdf_storage_postgresql_init): Use option 'database' like mysql does as well as 'dbname'. If neither is present, allocate memory for copying the user name rather than use a shared pointer. 2006-06-29 Dave Beckett * librdf/rdf_serializer_raptor.c: remove ORDINAL code comment references 2006-06-18 Dave Beckett * librdf/rdf_storage.c: (librdf_storage_add_statement, librdf_storage_add_statements, librdf_storage_contains_statement): Document and enforce that only legal RDF triples are only allowed. * librdf/rdf_statement.c: (librdf_statement_is_complete): Document and enforce that only complete and legal RDF triples are only allowed. * librdf/rdf_model.c: (librdf_model_add_statement, librdf_model_add, librdf_model_add_typed_literal_statement, librdf_model_add_string_literal_statement, librdf_model_contains_statement): Document and enforce legal RDF triples are only allowed. 2006-06-05 Dave Beckett * librdf/rdf_model.c: docucomments typos 2006-05-05 Dave Beckett * librdf/win32_rdf_config.h: bumped to 1.0.4 2006-05-03 Dave Beckett * librdf/rdf_parser_raptor.c: (librdf_parser_raptor_error_handler, librdf_parser_raptor_warning_handler): Context is a now a librdf_parser_raptor_context not a transient stream context. (librdf_parser_raptor_parse_file_handle_as_stream, librdf_parser_raptor_parse_as_stream_common, librdf_parser_raptor_parse_into_model_common): Set parser factory context to be raptor error context. * librdf/rdf_utf8.c: Revert change to use raptor_utf8_to_unicode_char - it breaks since unsigned long in raptor != librdf_unichar / u32 in librdf for all archs. 2006-05-02 Dave Beckett * librdf/rdf_utf8.c: (librdf_utf8_to_unicode_char, librdf_utf8_to_latin1, librdf_utf8_print, main): Use raptor_utf8_to_unicode_char. * librdf/rdf_node.c: (librdf_new_node_from_literal, librdf_new_node_from_typed_literal): An empty language string is equivalent to a NULL pointer. This makes calling this slightly easier from higher-level languages. 2006-04-24 Dave Beckett * librdf/rdf_uri.c: (librdf_uri_is_file_uri): Replace raptor 1.4.9-deprecated raptor_uri_is_file_uri with raptor_uri_uri_string_is_file_uri * librdf/rdf_files.c: (main): Remove test for deprecated function. * librdf/rdf_storage_postgresql.c: Use UINT64_T_FMT instead of %llu for portability. (librdf_storage_postgresql_init): Use escaped_name in query. * librdf/rdf_storage_mysql.c: Use UINT64_T_FMT instead of %llu for portability. (librdf_storage_mysql_init): Use escaped_name in query. * librdf/rdf_types.h: Define UINT64_T_FMT with the portable sprintf formatting for a 64-bit unsigned int %I64u on win32, %llu (gcc) elsewhere. 2006-03-27 Dave Beckett * librdf/win32/librdf.vcproj: redland win32 build files update from John Barstow * librdf/win32_rdf_config.h: redland win32 build files update from John Barstow * librdf/rdf_init.c: Protect #include with defines as elsewhere * librdf/rdf_parser_raptor.c: (librdf_parser_raptor_new_statement_handler): Allow RAPTOR_IDENTIFIER_TYPE_RESOURCE and RAPTOR_IDENTIFIER_TYPE_PREDICATE raptor predicate types again. 2006-03-18 Dave Beckett * librdf/Makefile.am: fix make libraptor.la & librasqal.la rules * librdf/rdf_query.c: (main): Cast for size_t 2006-03-09 Dave Beckett * librdf/rdf_parser_raptor.c: Add close_fh flag to librdf_parser_raptor_stream_context to manage tidying up a FILE*. (librdf_parser_raptor_parse_file_handle_as_stream): Added close_fh flag to ask for fclose(fh) on exit. (librdf_parser_raptor_parse_as_stream_common): Do not fclose(fh) before it actually likely gets read. (librdf_parser_raptor_serialise_finished): fclose(fh) here if asked for. * librdf/rdf_parser_raptor.c: (librdf_parser_raptor_parse_file_handle_as_stream): Work with NULL base_uri. 2006-03-02 Dave Beckett * librdf/rdf_log.h, librdf/rdf_serializer.h, librdf/rdf_serializer_internal.h: Include raptor.h when raptor definitions are used in headers 2006-02-19 Dave Beckett * librdf/rdf_parser_raptor.c: (librdf_parser_raptor_get_next_statement): Remove bad use of fclose() on a FILE* not opened here. 2006-02-15 Dave Beckett * librdf/win32_rdf_config.h: Bumped version to 1.0.4 * librdf/redland.spec.in: disable postgresql for now * librdf/redland.spec.in: require postgresql-devel * librdf/redland.spec.in: require db4-devel 2006-02-11 Dave Beckett * rdf_node.c (librdf_new_node_from_literal, librdf_new_node_from_typed_literal): Fail if both a datatype URI/datatype flag and a language is given. Fixes issue 0000069 http://bugs.librdf.org/mantis/view.php?id=69 (main): Add tests for this. * rdf_digest_sha1.c (librdf_digest_sha1_constructor): Fix over eager docstring fix. * rdf_digest_md5.c (librdf_digest_md5_constructor): Fix over eager docstring fix. 2006-01-26 Dave Beckett * Makefile.am, rdf_storage.c, rdf_storage_internal.h, rdf_storage_postgresql.c: Added PostgreSQL storage backend contributed by Shi Wenzhong based on the MySQL backend. Fixes issue 0000046 http://bugs.librdf.org/mantis/view.php?id=46 * rdf_storage_mysql.c: 2006 * rdf_init.c (librdf_world_get_genid): Include process ID in generated blank ID . Fixes bug 0000037 http://bugs.librdf.org/mantis/view.php?id=37 (patch from Marc Powell) * rdf_model.c (main): Update test serialization length * Makefile.am, librdf.h, rdf_concepts.c, rdf_concepts.h, rdf_concepts_internal.h, rdf_digest.c, rdf_digest.h, rdf_digest_internal.h, rdf_digest_md5.c, rdf_digest_openssl.c, rdf_digest_sha1.c, rdf_files.c, rdf_files.h, rdf_hash.c, rdf_hash.h, rdf_hash_bdb.c, rdf_hash_cursor.c, rdf_hash_internal.h, rdf_hash_memory.c, rdf_heuristics.c, rdf_heuristics.h, rdf_init.h, rdf_init_internal.h, rdf_internal.h, rdf_iterator.c, rdf_iterator.h, rdf_iterator_internal.h, rdf_list.c, rdf_list.h, rdf_list_internal.h, rdf_log_internal.h, rdf_model.c, rdf_model_internal.h, rdf_model_storage.c, rdf_node.c, rdf_node_internal.h, rdf_parser.c, rdf_parser_internal.h, rdf_parser_raptor.c, rdf_query.c, rdf_query.h, rdf_query_internal.h, rdf_query_rasqal.c, rdf_query_results.c, rdf_query_triples.c, rdf_serializer.c, rdf_serializer.h, rdf_serializer_internal.h, rdf_serializer_raptor.c, rdf_statement.c, rdf_statement.h, rdf_statement_internal.h, rdf_storage.c, rdf_storage.h, rdf_storage_file.c, rdf_storage_hashes.c, rdf_storage_internal.h, rdf_storage_list.c, rdf_storage_mysql.c, rdf_storage_sqlite.c, rdf_storage_tstore.c, rdf_stream.c, rdf_stream.h, rdf_stream_internal.h, rdf_types.h, rdf_uri.c, rdf_uri.h, rdf_uri_internal.h, rdf_utf8.c, rdf_utf8.h, redland.h, win32_rdf_config.h: 2006 * librdf.h, rdf_statement.h, rdf_utf8.h: autodocs 2006-01-25 Dave Beckett * rdf_init.c, rdf_init.h, rdf_parser.h: autodocs * rdf_init.h: Removed never-existed function prototype librdf_world_set_uris_hash * rdf_query_results.c, rdf_node.c, rdf_stream.h, rdf_node.h, rdf_storage.c: autodocs * rdf_storage.h: Removed never-existed function prototype librdf_storage_get * rdf_init.c, rdf_log.h, rdf_log.c, rdf_iterator.h: autodocs * rdf_iterator.h: Removed never-existed function prototype librdf_iterator_finished * rdf_stream.c, rdf_uri.c, rdf_statement.c, rdf_storage.c, rdf_query_results.c, rdf_parser.c, rdf_query.c, rdf_model_storage.c, rdf_node.c, rdf_model.c, rdf_iterator.c, rdf_list.c, rdf_hash.c, rdf_hash_cursor.c, rdf_digest.c: autodocs * rdf_files.h: Deprecated librdf_files_temporary_file_name * rdf_files.c (librdf_files_temporary_file_name): Deprecated + autodocs * rdf_concepts.h, rdf_model.h: autodocs 2005-09-14 Dave Beckett * rdf_parser_raptor.c (librdf_parser_raptor_parse_file_handle_as_stream): Renamed from librdf_parser_raptor_parse_file_as_stream and use FILE* arg. (librdf_parser_raptor_parse_as_stream_common): Update to handle rename. * rdf_serializer_internal.h: struct librdf_serializer_factory_s gains serialize_model_to_iostream method. * rdf_serializer_raptor.c (librdf_serializer_raptor_serialize_model_to_iostream): Added to write to a raptor_iostream object. * rdf_serializer.c (librdf_serializer_serialize_model_to_iostream): Added to write to a raptor_iostream object. * rdf_serializer.h: Added librdf_serializer_serialize_model_to_iostream 2005-08-11 Dave Beckett * redland.spec.in: - Update Source: - Do not require python-devel at build time - Add sqlite-devel build requirement. - Use %configure and %makeinstall 2005-07-31 Dave Beckett * Makefile.am: adjust source of librasqal.la 2005-07-23 Dave Beckett * redland.spec.in: date typo 2005-07-21 Dave Beckett * rdf_concepts.h: Move some docs into the sgml template * redland.spec.in: Updated for gtk-doc locations * rdf_concepts.h: docs * rdf_serializer.c, rdf_parser.c: docucomment @Deprecated tags 2005-07-19 Dave Beckett * Makefile.am: Remove 1-function headers from dist * rdf_node.h: removed librdf_node_init - has no code * rdf_uri.c (librdf_uri_print): xml fix * rdf_node.h: librdf_node_init removed - in header only * rdf_node.c, rdf_query_results.c: More fixes for gtkdoc * rdf_concepts.c, rdf_digest.c, rdf_digest.h, rdf_digest_md5.c, rdf_digest_openssl.c, rdf_digest_sha1.c, rdf_hash.c, rdf_hash.h, rdf_hash_bdb.c, rdf_hash_cursor.c, rdf_hash_memory.c, rdf_heuristics.c, rdf_init.c, rdf_init.h, rdf_iterator.c, rdf_iterator.h, rdf_list.c, rdf_log.c, rdf_log.h, rdf_model.c, rdf_model.h, rdf_model_storage.c, rdf_node.c, rdf_node.h, rdf_parser.c, rdf_parser.h, rdf_parser_raptor.c, rdf_query.c, rdf_query.h, rdf_query_results.c, rdf_query_triples.c, rdf_serializer.c, rdf_serializer.h, rdf_serializer_raptor.c, rdf_statement.c, rdf_statement.h, rdf_storage.c, rdf_storage.h, rdf_storage_hashes.c, rdf_storage_list.c, rdf_storage_mysql.c, rdf_storage_sqlite.c, rdf_storage_tstore.c, rdf_stream.c, rdf_stream.h, rdf_uri.c, rdf_uri.h, rdf_utf8.c: Automated docucomments updates for gtk-doc * rdf_concepts_internal.h, rdf_digest_internal.h, rdf_hash_internal.h, rdf_iterator_internal.h, rdf_list_internal.h, rdf_log_internal.h, rdf_model_internal.h, rdf_node_internal.h, rdf_query_internal.h, rdf_serializer_internal.h, rdf_statement_internal.h, rdf_storage_internal.h, rdf_stream_internal.h, rdf_uri_internal.h: Comment words. * rdf_list_internal.h: Remove some calls to public headers that are in redland.h also. * Makefile.am: Added more internal headers * librdf.h, rdf_concepts.h, rdf_digest.h, rdf_hash.c, rdf_hash.h, rdf_hash_bdb.c, rdf_hash_memory.c, rdf_init.h, rdf_internal.h, rdf_iterator.h, rdf_list.h, rdf_log.h, rdf_model.h, rdf_model_storage.h, rdf_node.h, rdf_parser.h, rdf_query.h, rdf_serializer.h, rdf_statement.h, rdf_storage.h, rdf_storage_hashes.c, rdf_stream.h, rdf_uri.h: Use rdf_MODULE_internal.h headers. * rdf_concepts_internal.h, rdf_digest_internal.h, rdf_hash_internal.h, rdf_iterator_internal.h, rdf_list_internal.h, rdf_log_internal.h, rdf_model_internal.h, rdf_node_internal.h, rdf_parser_internal.h, rdf_query_internal.h, rdf_serializer_internal.h, rdf_statement_internal.h, rdf_storage_internal.h, rdf_stream_internal.h: Added rdf_MODULE_internal.h headers. * rdf_hash_bdb.h, rdf_hash_memory.h, rdf_storage_hashes.h, rdf_storage_list.h: delete 1 function headers * Makefile.am: Added rdf_init_internal.h rdf_uri_internal.h * librdf.h, rdf_concepts.c, rdf_digest.c, rdf_digest_md5.c, rdf_digest_sha1.c, rdf_hash.c, rdf_hash_bdb.c, rdf_hash_cursor.c, rdf_hash_memory.c, rdf_init.c, rdf_init.h, rdf_init_internal.h, rdf_internal.h, rdf_iterator.c, rdf_list.c, rdf_log.c, rdf_model.c, rdf_model.h, rdf_model_storage.c, rdf_node.c, rdf_parser.c, rdf_parser_raptor.c, rdf_query.c, rdf_query_results.c, rdf_query_triples.c, rdf_serializer.c, rdf_serializer_raptor.c, rdf_statement.c, rdf_storage.c, rdf_storage_hashes.c, rdf_storage_list.c, rdf_storage_mysql.c, rdf_storage_sqlite.c, rdf_storage_tstore.c, rdf_stream.c, rdf_uri.c, rdf_uri.h, rdf_uri_internal.h, rdf_utf8.c: Updates for gtk-doc. Pull out internal headers. 2005-07-18 Dave Beckett * rdf_concepts.c: death to M&S for xml docs 2005-07-17 Dave Beckett * rdf_storage_tstore.c: Unbreak 3store backend from not compiling. 2005-06-22 Dave Beckett * rdf_storage_mysql.c: win32 fixes from John Barstow. 2005-06-17 Dave Beckett * rdf_hash.c: Ignore fwrite return values (gcc4 warning). It's not like anyone ever checks fprintf, fputs either... * rdf_storage_list.c: remove librdf_node_encode2 * redland.spec.in: License not Copyright header 2005-06-16 Dave Beckett * rdf_stream.c, rdf_storage_tstore.c, rdf_storage_sqlite.c, rdf_storage_mysql.c, rdf_storage_list.c, rdf_storage_hashes.c, rdf_storage.c, rdf_statement.c, rdf_serializer_raptor.c, rdf_query_rasqal.c, rdf_query.c, rdf_parser_raptor.c, rdf_list.c, rdf_hash_memory.c, rdf_hash_bdb.c, rdf_hash.c: Remove \n from the end of log messages. * rdf_node.c (librdf_node_encode): Give an error when a node cannot be encoded due to string data being too long. Remove legacy 0.9.12+ #if-defed out encoding code. It remains in librdf_node_decode. 2005-06-10 Dave Beckett * win32_rdf_config.h: Bumped version to 1.0.3 2005-06-02 Dave Beckett * rdf_stream.c (librdf_free_stream): Only call finished_method if it exists. This likely caused crashes with empty iterators 2005-05-29 Dave Beckett * win32_rdf_config.h: Bumped version to 1.0.2 * rdf_storage_mysql.c: remove errbuff 2005-05-28 Dave Beckett * rdf_storage_mysql.c: Define mysql common symbol errbuff if NEED_MYSQL_ERRBUFF defined. 2005-05-23 Dave Beckett * Makefile.am: Added COMPILE_LINK rule for making tests in one step. * rdf_digest_sha1.c (SHA1Transform): Take const buffer * rdf_digest_md5.c: duplicate const * rdf_hash.c: docs * rdf_uri.c (librdf_uri_get_digest): No need to call librdf_digest_init as the constructor does that. * rdf_digest.c: Docs. (librdf_new_digest_from_factory): Call init factory method here. (librdf_digest_init): Note this is a re-init. * rdf_digest.c (librdf_digest_update_string): Added. * rdf_digest.h: Added prototype for librdf_digest_update_string * rdf_digest_sha1.c, rdf_digest_openssl.c, rdf_digest_md5.c: Update the factory method to take a const buffer. * rdf_digest.c (librdf_digest_get_digest_length): Added. * rdf_digest.h: Factory method update takes const buffer. Reduced public API removing methods mentioning librdf_digest_factory. Added prototype for librdf_digest_get_digest_length * rdf_hash.c (librdf_hash_get_as_boolean, librdf_hash_get_as_long librdf_hash_get_del): Take const key args * rdf_hash.h: Make librdf_hash_get_as_boolean, librdf_hash_get_as_long and librdf_hash_get_del take const key args * rdf_hash.c: (librdf_new_hash_from_string, librdf_new_hash_from_array_of_strings): return NULL if inner constructor fails. * rdf_hash.h: Make public API smaller; do not mention librdf_hash_factory or librdf_hash_datum. Added prototypes for new public constructors librdf_new_hash_from_string and librdf_new_hash_from_array_of_strings * rdf_hash.c: (librdf_new_hash_from_string, librdf_new_hash_from_array_of_strings): Added constructors around internal functions for use by public API. (librdf_hash_from_array_of_strings): Take const array. (main): Update for const args. * win32/README.txt: Add win32 README.txt 2005-05-20 Dave Beckett * rdf_digest.h, rdf_hash.h, rdf_internal.h, librdf.h: The changes below fix Issue #0000019 http://bugs.librdf.org/mantis/view.php?id=19 by making the hash and digest classes part of the public API. * Makefile.am, rdf_internal.h, librdf.h: Add rdf_digest.h and rdf_hash.h to public includes. * rdf_digest.h, rdf_hash.h: Make API public, declare with REDLAND_API * rdf_digest.h, rdf_hash.h: Moved class init/finish methods into internal * rdf_query.c: (main) option of memory/disk test and comments * rdf_model.c: (main) comments * Makefile.am: clean any sqlite test file * rdf_storage_sqlite.c: The change below fixes Issue #0000006 - http://bugs.librdf.org/mantis/view.php?id=6 * rdf_storage_sqlite.c (librdf_storage_sqlite_serialise): Do not free query stringbuffer before reporting error. (librdf_storage_sqlite_serialise_next_statement): Finish if failed. (librdf_storage_sqlite_find_statements): Restructure need_and code and fix AND string count. Do not free query stringbuffer before reporting error. (librdf_storage_sqlite_find_statements_end_of_stream): Do not read an extra statement when testing for end, only if there is no current statement. (librdf_storage_sqlite_find_statements_next_statement): Finish if failed. (librdf_storage_sqlite_context_serialise): Do not free query stringbuffer before reporting error. (librdf_storage_sqlite_context_serialise_end_of_stream): Do not read an extra context when testing for end, only if there is no current context. (librdf_storage_sqlite_context_serialise_next_statement): Finish if failed. (librdf_storage_sqlite_get_contexts_is_end): Do not read an extra context when testing for end, only if there is no current context. (librdf_storage_sqlite_get_contexts_next_method): Finish if failed. (librdf_storage_sqlite_get_contexts): Do not free query stringbuffer before reporting error. * rdf_storage_sqlite.c (librdf_storage_sqlite_serialise_end_of_stream): Do not read an extra statement when testing for end, only if there is no current statement. 2005-05-19 Dave Beckett * Makefile.am: Added win32 subdir * win32/msvc.def, win32/Makefile.am, win32/librdf.vcproj: Import configuration from John Barstow * rdf_internal.h: Added REDLAND_INLINE * librdf.h: REDLAND_API before public statics * win32_rdf_config.h: Added REDLAND_INLINE Defines updated for win32 (John Barstow) * rdf_model.c (librdf_model_supports_contexts): Use REDLAND_INLINE 2005-05-18 Dave Beckett * rdf_log.h: Added LIBRDF_FROM_MEMORY * rdf_init.c (librdf_sign_malloc, librdf_sign_calloc, librdf_sign_realloc, librdf_sign_free): Added for signed memory checking. * rdf_internal.h: Added signed memory functions * rdf_storage_sqlite.c, rdf_storage_mysql.c, rdf_storage_list.c, rdf_storage_hashes.c, rdf_storage.c: Revert returning an empty iterator on failure to create an inner iterator, which is caused only by out of memory. * rdf_storage_list.c (librdf_storage_list_serialise): Return empty stream if list iterator ends. (librdf_storage_list_context_serialise): Return empty stream if contexts hash iterator ends. * rdf_storage_hashes.c (librdf_storage_hashes_serialise_common): Return empty stream if hash iterator ends. (librdf_storage_hashes_context_serialise): Return empty stream if contexts hash iterator ends. * rdf_model.c (librdf_model_find_statements_in_context): Return empty stream if context_as_stream returns nULL * rdf_stream.c (librdf_new_empty_stream): Added helper for empty stream. * rdf_stream.h: Added prototype for librdf_new_empty_stream * rdf_storage_sqlite.c (librdf_storage_sqlite_get_contexts): Return an empty iterator when the iterator fails to be constructed. * rdf_storage_mysql.c (librdf_storage_mysql_get_context): Return an empty iterator when the contexts returns NULL immediately or the iterator fails to be constructed. * rdf_storage_list.c (librdf_storage_list_get_contexts): Return an empty iterator when the hashes keys iterator returns NULL or the hashes iterator fails to be constructed. * rdf_storage_hashes.c (librdf_storage_hashes_node_iterator_create): Return an empty iterator when the hahes node iterator returns NULL. * rdf_storage.c (librdf_storage_node_stream_to_node_create): Return an empty iterator when find_statements returns NULL. * rdf_iterator.c (librdf_new_empty_iterator): Added helper to make an always-empty iterator. * rdf_iterator.h: Added prototype for librdf_new_empty_iterator * rdf_query_rasqal.c (redland_node_to_rasqal_literal): Use rasqal_alloc_memory to make things for inside rasqal. 2005-05-17 Dave Beckett * rdf_init.c (librdf_world_open): Init query after parser and explain why. * rdf_query_rasqal.c (rasqal_redland_init_triples_match): Renamed from rasqal_redland_new_triples_match. Update for rasqal 0.9.9. Takes an existing rasqal_triples_match structure and returns non-0 on failure. 2005-05-12 Dave Beckett * rdf_query_rasqal.c (librdf_query_rasqal_get_limit, librdf_query_rasqal_set_limit, librdf_query_rasqal_get_offset, librdf_query_rasqal_set_offset): Added to implement factory methods for get/setting of query results limit and offsets. (librdf_query_rasqal_register_factory): Register the above methods. * rdf_query.c (librdf_query_get_limit, librdf_query_set_limit, librdf_query_get_offset, librdf_query_set_offset): Added to provide access to new factory methods for get/setting of query results limit - max results to return and offset - initial results to skip. * rdf_query.h: Added factory methods: get_limit, set_limit, get_offset and set_offset. Added prototypes for librdf_query_get_limit, librdf_query_set_limit, librdf_query_get_offset and librdf_query_set_offset 2005-05-08 Dave Beckett * rdf_storage_mysql.c: Added MySQL connection handle pooling by Morten Frederiksen. Added librdf_storage_mysql_connection_status enum and staruct librdf_storage_mysql_connection to store used/opened connections. (librdf_storage_mysql_init_connections, librdf_storage_mysql_finish_connections): Added to init/finish connections (librdf_storage_mysql_get_handle): Added helper to get a connection handle either from the pool or make a new one. (librdf_storage_mysql_release_handle): Release a connection handle back to the pool. (librdf_storage_mysql_*): Use the connection pool to get handles using librdf_storage_mysql_get_handle. No longer return 0-mysql_errno(&context->connection) error codes, just -1 as the connection is strictly no longer available. Fixes Issue#0000027 - http://bugs.librdf.org/mantis/view.php?id=27 2005-05-06 Dave Beckett * rdf_storage_mysql.c (librdf_storage_mysql_hash): Copy the first 8 bytes of digest into unsigned 64bit hash using a method portable across big/little endianness. Fixes Issue#0000023 - http://bugs.librdf.org/mantis/view.php?id=23 (Morten Frederiksen) 2005-04-18 Dave Beckett * rdf_storage_list.c (librdf_storage_list_node_equals): Not equal if only one context is NULL. 2005-04-17 Dave Beckett * rdf_query.c: Mark class librdf_init/finish_FOO as INTERNAL. Tidy head doc * rdf_log.c: Export several useful internal documented functions marked INTERNAL. * rdf_serializer.c, rdf_storage.c, rdf_uri.c, rdf_init.c, rdf_model.c, rdf_parser.c, rdf_digest.c, rdf_hash.c, rdf_concepts.c: Mark class librdf_init/finish_FOO as INTERNAL. Tidy head doc, 2005. 2005-04-08 Dave Beckett * rdf_serializer.c, rdf_serializer_raptor.c, rdf_storage.c, rdf_storage_sqlite.c, rdf_stream.c, rdf_log.c, rdf_node.c: Add missing switch cases to make -Wswitch-enum happy. * rdf_query_rasqal.c (rasqal_redland_new_triples_source): Use new rasqal 0.9.8+ rasqal_query_get_data_graph_sequence * rdf_node.h: Remove unused LIBRDF_NODE_TYPE_RESERVED1 (#3) from librdf_node_type enum 2005-03-24 Dave Beckett * rdf_storage.c (librdf_storage_node_stream_to_node_create): node1 or node2 can be NULL but not both - edit docs and assertion. 2005-02-17 Dave Beckett * rdf_statement.c (librdf_free_statement): with threads fix 2005-02-12 Dave Beckett * rdf_query_rasqal.c (librdf_query_rasqal_execute): Free any existing stored rasqal result before executing. (librdf_query_rasqal_free_results): Zap results pointer after freeing rasqal results. 2005-02-07 Dave Beckett * rdf_node.c (librdf_node_encode): init datatype_uri_string to prevent a gcc warning. 2005-02-06 Dave Beckett * win32_rdf_config.h: Bumped version to 1.0.1 * win32_rdf_config.h: 1.0.0 * Snapshotted redland_1_0_0 for 1.0.0 release 2005-02-01 Dave Beckett * rdf_query_rasqal.c (librdf_query_rasqal_query_results_update_statement): Handle empty rstatement right away. (librdf_query_rasqal_results_as_stream): If no statements at all, return NULL. * rdf_query_rasqal.c: (librdf_query_rasqal_query_results_next_statement) Remove unused vars. * rdf_query_rasqal.c (librdf_query_rasqal_query_results_update_statement): Return 0 * rdf_query_rasqal.c: Protect all query results from NULL pointers. (librdf_query_rasqal_query_results_end_of_stream, librdf_query_rasqal_query_results_update_statement, librdf_query_rasqal_query_results_next_statement, librdf_query_rasqal_query_results_get_statement librdf_query_rasqal_query_results_finished): Added, implementing RDF graph query results. (librdf_query_rasqal_results_as_stream): Updated to use the above. 2005-01-31 Dave Beckett * rdf_query_rasqal.c (librdf_query_rasqal_results_is_bindings, librdf_query_rasqal_results_is_boolean, librdf_query_rasqal_results_is_graph, librdf_query_rasqal_results_get_boolean): Added, calling rasqal. (librdf_query_rasqal_results_as_stream): Added, not implemented. * rdf_query_results.c (librdf_query_results_as_stream): Moved to end to match new query results. (librdf_query_results_is_bindings, librdf_query_results_is_boolean, librdf_query_results_is_graph, librdf_query_results_get_boolean, librdf_query_results_as_stream): Added. * rdf_query.h: Added results_is_bindings, results_is_boolean, results_is_grpah and results_get_boolean factory methods. Added prototypes for librdf_query_results_is_bindings, librdf_query_results_is_boolean, librdf_query_results_is_graph and librdf_query_results_get_boolean 2005-01-30 Dave Beckett * rdf_query.c: docs * rdf_query.c (main): C99 * rdf_storage_sqlite.c: Casts for C++ * rdf_query_rasqal.c (rasqal_redland_bind_match): Casts for C++ and calculate, return the matched parts. Updated untested origin code. (librdf_query_rasqal_execute): Remove code for rasqal < 0.9.4 fixes. 2005-01-14 Dave Beckett * rdf_model.h: Added librdf_model_contains_context * rdf_model.c (librdf_model_contains_context): Added, to find a context node in a model. (main): Added test. 2005-01-13 Dave Beckett * win32_rdf_config.h: Do not define REDLAND_INTERNAL at all. LIBRDF_INTERNAL should be defined in the build configuration * librdf.h: Use LIBRDF_INTERNAL not REDLAND_INTERNAL 2005-01-11 Dave Beckett * rdf_serializer.c (main): Update latest raptor 1.4.3+ style serialised rdf/xml length. * rdf_serializer.c (librdf_serializer_serialize_model_to_file_handle): Require FILE* to be not null. * rdf_query_rasqal.c (rasqal_redland_bind_match): Update return to add parts arg, return. (librdf_query_rasqal_results_to_counted_string): Added to implement query results as string factory method, via Rasqal. (librdf_query_rasqal_results_to_file_handle): Added to implement query results to a file handle factory method, via Rasqal. * rdf_query_results.c (librdf_query_results_to_counted_string, librdf_query_results_to_string): Added to write formatted query results as a syntax in a string (via Rasqal). (librdf_query_results_to_file_handle, librdf_query_results_to_file): Added to write formatted query results as a syntax to a file or already open FILE* handle (via Rasqal) * rdf_query.c (main): Add query results to string test. * rdf_query.h: Added results_to_counted_string, results_to_file_handle to librdf_query_factory. Added prototypes for librdf_query_results_to_counted_string, librdf_query_results_to_string, librdf_query_results_to_file_handle and librdf_query_results_to_file to public api. 2005-01-06 Dave Beckett * rdf_query_rasqal.c: Invert return value of rasqal_triples_match factory method bind_match. Now returns 0 on failure. 2005-01-05 Dave Beckett * rdf_storage_sqlite.c: Implement get_contexts. (librdf_storage_sqlite_get_next_context_common, librdf_storage_sqlite_get_contexts_is_end, librdf_storage_sqlite_get_contexts_next_method, librdf_storage_sqlite_get_contexts_get_method, librdf_storage_sqlite_get_contexts_finished, librdf_storage_sqlite_get_contexts): Implement, based on find_statements technique. No special database schema support for contexts at present. 2004-12-29 Dave Beckett * rdf_storage_sqlite.c: Make get_contexts fail rather than do useless things. * rdf_storage_sqlite.c: Moved GET_COLUMN* defines to top. Deleted all index_contexts - always supported. (librdf_storage_sqlite_statement_helper): Work when statement=NULL. (librdf_storage_sqlite_add_statements): Handle when max=4 for contexts. (librdf_storage_sqlite_serialise): Debug prepared query. (librdf_storage_sqlite_context_add_statement): Handle when max=4 for contexts. librdf_storage_sqlite_context_serialise_stream_context updated to add sqlite fields. (librdf_storage_sqlite_context_serialise): Implemented, based on librdf_storage_sqlite_serialise and related functions. * rdf_storage_sqlite.c (librdf_storage_sqlite_context_add_statement): Kill fixme, done. * rdf_storage_sqlite.c (librdf_storage_sqlite_set_helper): Add length arg. (librdf_storage_sqlite_uri_helper, librdf_storage_sqlite_blank_helper, librdf_storage_sqlite_literal_helper): Pass length to librdf_storage_sqlite_set_helper. (librdf_storage_sqlite_statement_helper): Do context nodes. (librdf_storage_sqlite_add_statements): Do context node field when present. (librdf_storage_sqlite_statement_operator_helper): Added, with content mostly from librdf_storage_sqlite_contains_statement. (librdf_storage_sqlite_contains_statement): Use above. (librdf_storage_sqlite_serialise, librdf_storage_sqlite_find_statements): Always free stringbuffer. (librdf_storage_sqlite_context_add_statement): Do context node field when present. (librdf_storage_sqlite_context_remove_statement): Implemented using librdf_storage_sqlite_statement_operator_helper. * rdf_storage_sqlite.c: Added sqlite_DB define for another 2/3 hide (librdf_storage_sqlite_serialise): Use raptor_stringbuffer_length(sb) for request length. * rdf_storage_sqlite.c: Alter GET_COLUMN* defines to take vm arg. * rdf_storage_sqlite.c: Fix sqlite_FREE and GET_COLUMN defines for sqlite API v3 * rdf_storage_sqlite.c: casts for c++ * rdf_storage_sqlite.c: Replace all use of fields with unsigned char* fields. * rdf_storage_sqlite.c (sqlite_string_escape): Emit 'string' - 2 more chars. (librdf_storage_sqlite_uri_helper, librdf_storage_sqlite_blank_helper): Malloc expressions based on actual lengths. (librdf_storage_sqlite_literal_helper): Remove ''s * rdf_storage_sqlite.c (librdf_storage_sqlite_set_helper): Take unsigned values string. (librdf_storage_sqlite_get_helper): Take unsigned expression string. (librdf_storage_sqlite_uri_helper): Use unsigned expression. (librdf_storage_sqlite_literal_helper): Use stringbuffer to build expression. (librdf_storage_sqlite_contains_statement): use stringbuffer to build request. * rdf_storage_sqlite.c (librdf_storage_sqlite_open): Auto-set new if file is missing. * rdf_storage_sqlite.c: Revert over EXEC named change. * rdf_storage_sqlite.c: Add macros sqlite_STATEMENT, sqlite_EXEC, sqlite_CLOSE, sqlite_FREE to hide more V2/V3 differences. (librdf_storage_sqlite_open): For V2 open failing, set rc. * rdf_storage_sqlite.c (librdf_storage_sqlite_get_next_common): Free temporary datatype uri * rdf_node.c (librdf_node_to_counted_string): Free temporary datatype_uri_string. * rdf_storage_sqlite.c (librdf_storage_sqlite_serialise_finished): Free any statement, context node. librdf_storage_sqlite_find_statements_stream_context add to store query_statement (librdf_storage_sqlite_find_statements): Store query statement. (librdf_storage_sqlite_find_statements_finished): Free any query statement, statement or context node. * rdf_storage_sqlite.c: Change context parts pzTail, ppVm to zTail, vm and for sqlite V2 use vm not vm & ppVm. * rdf_storage_sqlite.c: Use SQLITE_API with 2 or 3 to distinguish apis * rdf_storage_sqlite.c: Casts for c++ * rdf_serializer_raptor.c (librdf_serializer_raptor_set_namespace): Cast for c++ 2004-12-28 Dave Beckett * rdf_storage_sqlite.c (librdf_storage_sqlite_exec): Turn fprintf to debug message. (librdf_storage_sqlite_get_next_common): turn printing all column data into debug messages. (librdf_storage_sqlite_find_statements): Turn fprintf to debug message. * rdf_storage_sqlite.c: code style * rdf_storage_sqlite.c (sqlite_construct_select_helper): Added, to build serialise and find_statements query parts. (librdf_storage_sqlite_serialise): Move most of query building into sqlite_construct_select_helper and now call it. (librdf_storage_sqlite_find_statements): Use sqlite_construct_select_helper to build guts of query, then add the WHERE ... * rdf_storage_sqlite.c (librdf_storage_sqlite_serialise): Use raptor_stringbuffer to construct big request. (librdf_storage_sqlite_get_next_common): Add pointer to statement, context_node args. Fill in statement and context node from column values. Debug print out column names, values. (librdf_storage_sqlite_serialise_end_of_stream, librdf_storage_sqlite_serialise_next_statement, librdf_storage_sqlite_find_statements_next_statement, ): Update call to librdf_storage_sqlite_get_next_common. 2004-12-27 Dave Beckett * rdf_storage_sqlite.c (librdf_storage_sqlite_get_helper, librdf_storage_sqlite_add_statements, librdf_storage_sqlite_context_add_statement): Use raptor_stringbuffer to construct requests. * rdf_storage_sqlite.c (librdf_storage_sqlite_set_helper): Use raptor_stringbuffer to construct request. * rdf_storage_sqlite.c: Added TRIPLE_NONE node_type (librdf_storage_sqlite_node_helper): Fail with NULL node. (librdf_storage_sqlite_statement_helper): Handle NULL nodes, set ID to -1, type to TRIPLE_NONE. (librdf_node_to_sqlite_string): Deleted, not used. (librdf_storage_sqlite_find_statements): Use raptor_stringbuffer to construct request. * rdf_storage_sqlite.c (librdf_storage_sqlite_literal_helper): Use IDs for datatype URI. (librdf_storage_sqlite_open): Make uriindex. * rdf_storage_sqlite.c (sqlite_string_escape): Escape ' as '' not \' (librdf_storage_sqlite_uri_helper): Renamed from librdf_storage_sqlite_store_uri_helper (librdf_storage_sqlite_blank_helper): Renamed from librdf_storage_sqlite_store_blank_helper (librdf_storage_sqlite_literal_helper): Added (librdf_storage_sqlite_node_helper): Use librdf_storage_sqlite_literal_helper. (librdf_storage_sqlite_open): If new, unlink the file so no need to do DROP TABLE. * rdf_storage_sqlite.c (librdf_storage_sqlite_init): is_new flag set right, really really. Added data-driven table descriptions - table_info, NTABLES, sqlite_table_numbers, sqlite_tables, triple_part, triple_node_type, triples_fields. Reorder helper functions. (sqlite_string_escape): Now always obeys raw_len and nul-terminates the output. (librdf_storage_sqlite_exec): Debug print all SQL exec (librdf_storage_sqlite_set_helper, librdf_storage_sqlite_get_helper): Added, using table info. (librdf_storage_sqlite_store_uri_helper): Added, returns or makes an ID for the given URI. (librdf_storage_sqlite_store_blank_helper): Added, returns or makes an ID for the given blank node ID. (librdf_storage_sqlite_node_helper): Added, turns a librdf_node into appropriate table IDs, node type and returns to user. (librdf_storage_sqlite_statement_helper): Uses librdf_storage_sqlite_node_helper to get node ids, types and field names for all of a statement. (librdf_storage_sqlite_open): Use data tables for DROP TABLE, CREATE TABLE (librdf_storage_sqlite_size): Use librdf_storage_sqlite_exec only. (librdf_storage_sqlite_add_statements): Updated dummy INSERT for new schema. (librdf_storage_sqlite_contains_statement): Use librdf_storage_sqlite_statement_helper to build query. (librdf_storage_sqlite_context_add_statement): Use librdf_storage_sqlite_statement_helper to build INSERT. Ignores context fields for now. 2004-12-26 Dave Beckett * rdf_storage_sqlite.c: Handle sqlite3 and sqlite2 (librdf_storage_sqlite_init): Init is_new correctly. (librdf_storage_sqlite_open): Create tables, indexes when new. (librdf_storage_sqlite_get_1int_callback): Grab count value from argv[0] (librdf_storage_sqlite_size): Works. (librdf_storage_sqlite_add_statements): Dummy INSERT works. (librdf_storage_sqlite_contains_statement): Dummy sql added. librdf_storage_sqlite_serialise_stream_context added sqlite3 fields (librdf_storage_sqlite_serialise, librdf_storage_sqlite_get_next_common, librdf_storage_sqlite_serialise_finished): sqlite3 support librdf_storage_sqlite_find_statements_stream_context added sqlite3 fields (librdf_storage_sqlite_find_statements, librdf_storage_sqlite_find_statements_finished): sqlite3 support (librdf_storage_sqlite_context_add_statement): Dummy INSERT added. (librdf_init_storage_sqlite): Storage name now 'sqlite'. 2004-12-25 Dave Beckett * rdf_serializer.c, rdf_model.c (main): Cast for size_t to int * rdf_concepts.c: Removed librdf_concept_labels - never used. 2004-12-23 Dave Beckett * rdf_serializer.c (librdf_get_serializer_factory): Ensure that if mime_type or type_uri are not NULL, the factory must have a non-NULL item and it must match. * rdf_parser.c (librdf_get_parser_factory): Ensure that if mime_type or type_uri are not NULL, the factory must have a non-NULL item and it must match. 2004-12-21 Dave Beckett * rdf_storage_mysql.c (librdf_storage_mysql_init): Applied patch from Morten to only use mysql_real_escape_string if a connection was made. (librdf_storage_mysql_find_statements_in_context_next_statement): Do not call librdf_storage_mysql_find_statements_in_context_finished when errors happen, the iterator class will do that on destruction. (librdf_storage_mysql_get_contexts_next_context): Do not call librdf_storage_mysql_get_contexts_finished when errors happen, the iterator class will do that on destruction. 2004-12-08 Dave Beckett * rdf_uri.c (librdf_new_uri_relative_to_base): Ask for 1 more char for new URI buffer for raptor_uri_resolve_uri_reference to allow inserting of a missing "/" path. 2004-11-26 Dave Beckett * Makefile.am: Remove rdf_storage_tstore.h rdf_storage_mysql.h 2004-11-23 Dave Beckett * rdf_storage_mysql.h, rdf_storage_tstore.h: Deleted 2004-11-22 Dave Beckett * Makefile.am: Use STORAGE_ conditionals instead of @STORAGE_OBJS@ * rdf_storage.c: Delete rdf_storage_hashes.h and rdf_storage_list.h includes, they are called from rdf_storage.h already. (librdf_init_storage) Use STORAGE_ defines. * rdf_storage_sqlite.c: don't sleep now, this should be fixed later * rdf_storage.h: Use STORAGE_ defines. Delete rdf_storage_tstore.h and rdf_storage_mysql.h includes * rdf_storage.c (librdf_init_storage): Added call to librdf_init_storage_sqlite * Makefile.am: Added rdf_storage_sqlite.c * rdf_storage.h: added librdf_init_storage_sqlite prototype * rdf_storage_sqlite.c: sqlite storage 2004-11-10 Dave Beckett * rdf_serializer_raptor.c (librdf_serializer_raptor_set_namespace): raptor_serialize_set_namespace, typo * rdf_serializer.c (librdf_serializer_set_namespace): Note may not be implemented. * rdf_query_results.c (librdf_query_results_as_stream): Docs, note implemented. * rdf_serializer_raptor.c (librdf_serializer_raptor_get_feature, librdf_serializer_raptor_set_feature): Added to use new serializer features. (librdf_serializer_raptor_set_namespace): Added calling raptor_serializer_set_namespace which should work sometime. * rdf_query_results.c (librdf_free_query_results): Add docs. * redland.h, rdf_utf8.h, rdf_node.h, rdf_model.h, rdf_list.h, librdf.h: Applied patch from René Puls to allow for Redland public headers to be in a different directory structure. If LIBRDF_OBJC_FRAMEWORK is defined, the headers are in a Redland subdirectory. Only applies to public Redland header files that #include other public header files. rasqal.h includes raptor.h so needs modifying also. * rdf_storage_mysql.c, rdf_storage_hashes.c, rdf_storage_file.c: Changed sync methods to return an int status. * rdf_storage.c (librdf_storage_sync): Changed to return an int. API change but most C won't care much. * rdf_storage.h: sync factory method returns a status int API CHANGE: librdf_storage_sync returns an int * rdf_model_storage.c (librdf_model_storage_sync): Changed to return an int. * rdf_model.c (librdf_model_sync): Changed to return an int. API change but most C won't care much. * rdf_model.h: sync factory method returns a status int API CHANGE: librdf_model_sync returns an int 2004-11-09 Dave Beckett * rdf_query_triples.c (librdf_query_triples_init): Add new base_uri argument, not used. * rdf_query_rasqal.c (librdf_query_rasqal_init): Use new base_uri argument and store that, not language URI. * rdf_query.h: Update query factory init method to add base_uri argument. API CHANGE: Add base_uri argument to librdf_new_query and librdf_new_query_from_factory * rdf_query.c (librdf_new_query, librdf_new_query_from_factory): Add optional base_uri argument. Stop overloading query language identifier URI and base URI. (main): Update test to match. * rdf_query.c (librdf_get_query_factory): librdf_uri_equals test was negated 2004-11-08 Dave Beckett * rdf_storage_mysql.c (librdf_storage_mysql_init): Return failure early if connection failed. 2004-11-07 Dave Beckett * rdf_storage_mysql.c (librdf_storage_mysql_find_statements_with_options): Ensure subject, predicate and object are initialised. * rdf_query_triples.c (librdf_query_triples_init): Ensure subject, predicate are initialised. Free them only if they are set. * rdf_node.c (librdf_node_to_counted_string): Init datatype_uri_string, language_len. 2004-11-02 Dave Beckett * win32_rdf_config.h: Bumped version to 0.9.20 2004-11-01 Dave Beckett * rdf_serializer.c (main): Update expected result length. * rdf_serializer_raptor.c, rdf_serializer.c, rdf_query_rasqal.c, rdf_query.c, rdf_parser.c, rdf_model.c, rdf_init.c: Casts for C++ 2004-10-25 Dave Beckett * rdf_query_rasqal.c (librdf_query_rasqal_execute): Fix for rasqal bug in rasqal_new_triples_source that refuses to run if query->sources is NULL. Remove this when rasqal 0.9.4 is out. 2004-10-24 Dave Beckett * rdf_query.c (librdf_query_register_factory): Take a uri_string argument. * rdf_query.h: Modify librdf_query_register_factory to take a uri_string * rdf_query_rasqal.c (librdf_query_rasqal_constructor): Use rasqal_languages_enumerate to register all languages that rasqal has. * rdf_query_rasqal.c (librdf_query_rasqal_constructor): Use rasqal_languages_enumerate to register all languages that rasqal has. 2004-10-21 Dave Beckett * rdf_parser_raptor.c (librdf_parser_raptor_new_statement_handler): Do not copy datatype URIs for new statements. * rdf_serializer.c (librdf_serializer_serialize_model_to_counted_string, librdf_serializer_serialize_model_to_string): Do not require a base_uri. * rdf_serializer_raptor.c (librdf_serializer_raptor_serialize_statement): Convert statement object URI correctly. (librdf_serializer_raptor_serialize_model_to_counted_string): Zap string, string_length before starting. * rdf_parser_raptor.c (librdf_parser_raptor_new_statement_handler): Copy datatype URIs for new statements. 2004-10-20 Dave Beckett * rdf_query_rasqal.c: Update redland support to rasqal changes after addition of origin. * rdf_model.h: Change librdf_model_to_counted_string and librdf_model_to_string to return unsigned char* * rdf_model.c (librdf_model_to_counted_string,librdf_model_to_string): Return unsigned char* * rdf_model.c (librdf_model_to_counted_string, librdf_model_to_string): Added. (main): Added test for above. * rdf_model.h: Added librdf_model_to_counted_string, librdf_model_to_string * rdf_serializer_raptor.c: Added errors, warnings counting in context. (librdf_serializer_raptor_error_handler, librdf_serializer_raptor_warning_handler): Added, called by raptor serializing code. (librdf_serializer_raptor_serialize_model_to_file_handle): Link to error, warning handlers above. (librdf_serializer_raptor_serialize_model_to_counted_string): Added. (librdf_serializer_raptor_register_factory): Update for new factory method names. * rdf_serializer.c (librdf_serializer_serialize_model_to_counted_string): Added to return string length. (main): Test serialize to string. * rdf_serializer.h: Rename factory method to serialize_model_to_counted_string Added librdf_serializer_serialize_model_to_counted_string * rdf_serializer.c (main): rdf/xml bad predicate URI is now an error * rdf_serializer.c (main): Use librdf_serializer_serialize_model_to_file_handle * rdf_serializer_rdfxml.c: Deleted. raptor does all this now * Makefile.am: Remove rdf_serializer_rdfxml.c * rdf_serializer.h: Renamed factory method serialize_model to serialize_model_to_file_handle. Added factory method serialize_model_to_string. Deprecated librdf_serializer_serialize_model Added librdf_serializer_serialize_model_to_file_handle as new name Added librdf_serializer_serialize_model_to_string * rdf_serializer.c (librdf_serializer_serialize_model): Deprecate name. (librdf_serializer_serialize_model_to_file_handle): Added, new name for above. (librdf_serializer_serialize_model_to_string): Added. (librdf_init_serializer): Let raptor make all * rdf_storage_file.c (librdf_storage_file_sync): Use librdf_serializer_serialize_model_to_file_handle not deprecated librdf_serializer_serialize_model * rdf_serializer_raptor.c: Converted to use raptor_serializer. (librdf_serializer_raptor_serialize_model_to_file_handle): Renamed from librdf_serializer_raptor_serialize_model. (librdf_serializer_raptor_serialize_model_to_string): Added. (librdf_serializer_raptor_constructor): Register from raptor's enumeration of serializers. 2004-10-15 Dave Beckett * rdf_serializer.c (main): Add serializer error and warning report tests * rdf_query_rasqal.c (librdf_query_rasqal_results_get_bindings): Casts for variable names array. * rdf_serializer_rdfxml.c (rdf_serializer_rdfxml_print_xml_attribute): Take serializer arg. Use librdf_log directly to give a better error message since raptor_xml_escape_string only dies on UTF-8 errors. (librdf_serializer_print_statement_as_rdfxml): Replcae librdf_serializer_warning with direct librdf_log call as above. * rdf_serializer.h: Deleted librdf_serializer_error and librdf_serializer_warning * rdf_serializer.c (librdf_serializer_error, librdf_serializer_warning): Deleted. * rdf_serializer_rdfxml.c (rdf_serializer_rdfxml_print_as_xml_content): Deleted and inlined. Use raptor_xml_escape_string to properly escape UTF-8. * rdf_serializer_rdfxml.c (rdf_serializer_rdfxml_print_xml_attribute): Add an error return value and pass on failures. (librdf_serializer_print_statement_as_rdfxml): Add an error return value and pass on failures. Try to slightly recover from errors. * rdf_serializer_rdfxml.c (librdf_serializer_rdfxml_serialize_model): Use raptor_free_memory. 2004-10-07 Dave Beckett * rdf_init.h: Update librdf_world_get_feature and librdf_world_set_feature to use librdf_node* * rdf_init.c (librdf_world_get_feature): Document and change to return librdf_node* (librdf_world_set_feature): Document and change to use librdf_node* value. 2004-09-22 Dave Beckett * rdf_storage.c (librdf_storage_context_add_statement, librdf_storage_context_add_statements): With a NULL context, call the non-context method as documented. Fix NULL statement pointer checks. 2004-09-06 Dave Beckett * rdf_log.c (librdf_fatal): Off by 1 in snprintf on OSX 2004-08-30 Dave Beckett * rdf_storage_mysql.c (librdf_storage_mysql_get_contexts): Removed bogus '+' in the sql statement. Thanks to DJ Adams for finding this. 2004-08-17 Dave Beckett * win32_rdf_config.h: 0.9.19 2004-08-13 Dave Beckett * rdf_parser.c, rdf_storage.c, rdf_storage_hashes.c, rdf_model.c, rdf_model_storage.c: Documentation - Note that the model, storage and parser get_feature methods return new librdf_node objects 2004-08-12 Dave Beckett * rdf_model.c (librdf_model_context_add_statement, librdf_model_context_add_statements, librdf_model_context_remove_statement, librdf_model_context_remove_statements, librdf_model_context_as_stream, librdf_model_context_serialize): Return failure when contexts are not supported, don't just carry on. 2004-08-03 Dave Beckett * rdf_statement.h, librdf/rdf_statement.c: Revert statement usage counting. * rdf_init.c (librdf_free_world): Destroy nodes, statements mutexes. (librdf_world_init_mutex): Init nodes, statements mutexes. * rdf_init.h: Added statements mutex * rdf_statement.c: Statements are now usage counted, Removed old macros throughout. (librdf_new_statement): Set usage to 1. (librdf_new_statement_from_statement): Rewrite to use usage. (librdf_free_statement): Free when usage is zero, using mutex to protect shared structures. * rdf_statement.h: Statements are now usage counted, Removed old macros 2004-08-02 Dave Beckett * rdf_parser_raptor.c (librdf_parser_raptor_parse_as_stream_common, librdf_parser_raptor_parse_into_model_common): Add a length parameter, calculate it if it is 0. (librdf_parser_raptor_parse_uri_as_stream, librdf_parser_raptor_parse_string_as_stream): Updates for change above. (librdf_parser_raptor_parse_counted_string_as_stream, librdf_parser_raptor_parse_counted_string_into_model): Added, taking a counted string with length>0, calling one of the common functions above. (librdf_parser_raptor_register_factory): Register new methods. * rdf_parser.c (librdf_parser_parse_counted_string_as_stream, librdf_parser_parse_counted_string_into_model): Added, taking a counted string with length>0, calling the new parser factory methods. (main): Test code updated to test rdfxml, ntriples and turtle with four different parsing methods for one parser. This tests - a) memory model checks for same triples b) parsing works with four methods c) parsing with same parser multiple times works * rdf_parser.h: Added factory methods parse_counted_string_into_model, parse_counted_string_as_stream as variants of the uncounted versions. Added prototypes for librdf_parser_parse_counted_string_as_stream, librdf_parser_parse_counted_string_into_model 2004-07-28 Dave Beckett * rdf_storage_tstore.c (librdf_storage_list_add_statement): Note FIXME - cannot enforce not adding duplicate statements. * rdf_storage_mysql.c (librdf_storage_mysql_add_statement, librdf_storage_mysql_add_statements): Enforce not adding duplicate statements. * rdf_storage_list.c (librdf_storage_list_add_statement): Enforce not adding duplicate statements. (librdf_storage_list_add_statements): Enforce not adding duplicate statements. Tidy the code. * rdf_storage_hashes.c (librdf_storage_hashes_add_statement): Enforce not adding duplicate statements. This is not needed for librdf_storage_hashes_add_statements since it calls the above method. * rdf_storage.c: (librdf_storage_add_statement,librdf_storage_add_statements): Document that duplicate statements are ignored on addition. * rdf_model.c (librdf_model_add_statement): Document that duplicate statements are ignored and use librdf_model_contains_statement to enforce it. (librdf_model_add_statements): Document that duplicate statements are ignored. 2004-07-27 Dave Beckett * rdf_storage_mysql.c: cast for c++ 2004-07-27 Morten Frederiksen * Updated to latest version of the MySQL storage written by Morten Frederiksen * rdf_storage_mysql.c: Add new storage options: bulk - if inserts should be optimized by locking and index optimizations merge - if a table with merged models should be maintained Added a digest object to the storage context for use and re-use of MD5 digesting. (librdf_storage_mysql_hash): Changed to use context digest option. (librdf_storage_mysql_init): Added and documented the bulk and merge options. Document the new option, already implemented, to create tables. Update the MySQL schemas. (librdf_storage_mysql_merge): Added, to re/create merged view of all models. (librdf_storage_mysql_terminate): Tidy up digest from context. (librdf_storage_mysql_sync): Added to flush tables. Now used by librdf_storage_mysql_close. (librdf_storage_mysql_size, librdf_storage_mysql_node_hash): Updated for new schema. (librdf_storage_mysql_start_bulk, librdf_storage_mysql_stop_bulk): Added, to start and stop bulk op. (librdf_storage_mysql_context_add_statements): Add bulk start operations when enabled. (librdf_storage_mysql_context_add_statement_helper, librdf_storage_mysql_contains_statement, librdf_storage_mysql_remove_statement): Docucomments. Updated for new schema. (librdf_storage_mysql_context_remove_statements): Updated for new schema. (librdf_storage_mysql_serialise, librdf_storage_mysql_find_statements, librdf_storage_mysql_find_statements_in_context): Docucomments (librdf_storage_mysql_find_statements_with_options): Docucomments. Updated for new schema. (librdf_storage_mysql_find_statements_in_context_next_statement): Add checking there is a statement to return. (librdf_storage_mysql_get_contexts): Updated for new schema. 2004-07-27 Dave Beckett * rdf_query_rasqal.c, rdf_parser_raptor.c, rdf_node.c, rdf_log.c: Casts for C++ 2004-07-23 Dave Beckett * rdf_parser.c, rdf_model.c: Replace parser name "raptor" with "rdfxml" 2004-07-19 Dave Beckett * redland.spec.in: remove redland-perl, redland-python 2004-07-13 Dave Beckett * redland.spec.in: Use MAKE_PL_OPTS along with "make Makefile.perl" to ensure that the right flags get passed in, rather than invoking perl Makefile.PL directly 2004-07-12 Dave Beckett * redland.spec.in: Ship /usr/share/redland/Redland.i in redland-devel * rdf_query_results.c (librdf_query_results_get_bindings): Fix docucomment so jade works again 2004-07-09 Dave Beckett * rdf_log.c: Replace librdf.h, raptor.h with redland.h. 2004-07-09 Edd Dumbill * rdf_log.c: add accessors for components of the librdf_log_message type. * rdf_log.h: add prototypes for the accessors, deleted unused prototypes for librdf_log_set_handler and librdf_log_set_level. 2004-07-09 Dave Beckett * redland.h: Include rasqal.h, reorder so raptor.h is first. 2004-07-09 Dave Beckett * rdf_query_results.c, rdf_utf8.c, rdf_uri.c, rdf_stream.c, rdf_storage_tstore.c, rdf_storage_mysql.c, rdf_storage_list.c, rdf_storage_hashes.c, rdf_storage_file.c, rdf_storage.c, rdf_statement.c, rdf_serializer_rdfxml.c, rdf_serializer_raptor.c, rdf_serializer.c, rdf_query_triples.c, ChangeLog, rdf_query_rasqal.c, rdf_query.c, rdf_parser_raptor.c, rdf_parser.c, rdf_node.c, rdf_model_storage.c, rdf_model.c, rdf_list.c, rdf_iterator.c, rdf_init.c, rdf_heuristics.c, rdf_hash_memory.c, rdf_hash_cursor.c, rdf_hash_bdb.c, rdf_hash.c, rdf_files.c, rdf_digest_sha1.c, rdf_digest_openssl.c, rdf_digest_md5.c, rdf_digest.c, rdf_concepts.c: Use redland.h in all files not a selection of librdf.h, raptor.h and rasqal.h 2004-07-09 Edd Dumbill * rdf_log.c: add accessors for components of the librdf_log_message type. * rdf_log.h: add prototypes for the accessors, deleted unused prototypes for librdf_log_set_handler and librdf_log_set_level. 2004-07-08 Dave Beckett * rdf_query_results.c (librdf_query_results_get_bindings): Added a doc example * rdf_query_results.c: doc * rdf_log.c (librdf_log_simple): Use correct user_data. Patch from René Puls. * rdf_query.h: Added internal librdf_query_add_query_result, librdf_query_remove_query_result prototypes * Makefile.am: Added rdf_query_results.c * rdf_query.c, rdf_query_results.c: Moved librdf_query_results to separate file, for doc purposes mostly 2004-07-05 Dave Beckett * rdf_storage.c (librdf_storage_node_stream_to_node_create): node2 can be NULL such as when called by librdf_storage_get_arcs_out, librdf_storage_get_arcs_in. 2004-06-30 Dave Beckett * Makefile.am: Added $(DEFS) to test compile & link lines * rdf_types.h: Define u64 for WIN32 as a typedef for __int64 * librdf.h: Added REDLAND_STATIC to define REDLAND_API to nothing. * Makefile.am: Added win32_rdf_config.h * win32_rdf_config.h: redland WIN32 hard-coded config * rdf_storage.c, rdf_storage_file.c, rdf_storage_hashes.c, rdf_storage_list.c, rdf_storage_mysql.c, rdf_storage_tstore.c, rdf_stream.c, rdf_uri.c, rdf_utf8.c, rdf_hash_memory.c, rdf_heuristics.c, rdf_init.c, rdf_iterator.c, rdf_list.c, rdf_log.c, rdf_model.c, rdf_model_storage.c, rdf_node.c, rdf_parser.c, rdf_parser_raptor.c, rdf_query.c, rdf_query_rasqal.c, rdf_query_triples.c, rdf_serializer.c, rdf_serializer_raptor.c, rdf_serializer_rdfxml.c, rdf_statement.c, rdf_concepts.c, rdf_digest.c, rdf_digest_md5.c, rdf_digest_openssl.c, rdf_digest_sha1.c, rdf_files.c, rdf_hash.c, rdf_hash_bdb.c, rdf_hash_cursor.c: Added #include when WIN32 defined 2004-06-29 Dave Beckett * rdf_storage.c (librdf_storage_find_statements_in_context): When applying map, copy the statement so it can be freed later. * rdf_model.c (librdf_model_find_statements_in_context): When applying map, copy the statement so it can be freed later. 2004-06-24 Dave Beckett * rdf_node.c (librdf_node_get_li_ordinal): if oops, do not always return -1 2004-06-22 Dave Beckett * rdf_query.h: Added results field to query. Added next field to query_results. * rdf_query.c: (librdf_query_add_query_result, librdf_query_remove_query_result): Now take query_results args. * rdf_query.c: Added usage counting of query between query & query-results. (librdf_query_add_query_result, librdf_query_remove_query_result): Added (librdf_free_query, librdf_new_query_from_factory, librdf_new_query_from_query): Added usage counts. (librdf_query_execute): Link query to query_results on success. (librdf_free_query_results): Do not return after factory cleanup but continue to clean up more. * rdf_query.h: Added usage count to query * rdf_query_rasqal.c (librdf_query_rasqal_free_results): Do not free query_results here, it is done by librdf_free_query_results 2004-06-21 Dave Beckett * rdf_query_rasqal.c (librdf_query_rasqal_free_results): Free the query_results * rdf_query_rasqal.c (rasqal_redland_bind_match): free the literal returned by redland_node_to_rasqal_literal since a new one is made by rasqal_literal_as_node. * rdf_query.h: query factory free_results method returns no value * rdf_query.c (librdf_free_query_results): Add debug assertion 2004-06-01 Dave Beckett * librdf.h: Added librdf_query_results * rdf_storage.c, rdf_storage.h: Removed librdf_storage_query_as_stream, librdf_storage_query_as_bindings and replaced with librdf_storage_query_execute * rdf_model_storage.c: Removed librdf_model_storage_query_as_stream, librdf_model_storage_query_as_bindings and replaced with librdf_model_storage_query_execute * rdf_model.c: Removed librdf_model_query, librdf_model_query_string, librdf_model_query_as_stream, librdf_model_query_as_bindings and replaced with librdf_model_query_execute * rdf_model.h: In factory, removed query_as_stream, replaced with query_execute. Removed librdf_model_query, librdf_model_query_string, librdf_model_query_as_stream, librdf_model_query_as_bindings and replaced with librdf_model_query_execute * rdf_query_triples.c, rdf_query_rasqal.c, rdf_query.c, rdf_query.h: Added librdf_query_results. Renamed all librdf_query results methods to match (like rasqal 0.9.1) 2004-05-30 Dave Beckett * Makefile.am: Don't use LIBRDF_INTERNAL_LIBS except in dependencies of librdf.la * rdf_log.h: librdf_log_level_func has a return value * rdf_log.c (librdf_log_simple): Return if error, warning messages are handled by the specific handlers. 2004-05-29 Dave Beckett * redland.pc.in: Use LIBRDF_PKGCONFIG_LIBS * redland.pc.in: Replace LIBRDF_LIBS with LIBRDF_EXTERNAL_LIBS * Makefile.am: Remove LIBRDF_LIBS and add LIBRDF_INTERNAL_LIBS 2004-05-28 Dave Beckett * Makefile.am: Use automakefile conditional MEMCMP 2004-05-18 Dave Beckett * rdf_query_rasqal.c: Update for renaming of librdf_query_get_result_binding_by_name to librdf_query_get_result_binding_value_by_name and factory equiv. * rdf_query.h: Renamed librdf_query_get_result_binding_by_name to librdf_query_get_result_binding_value_by_name and factory equiv. * rdf_query.c (librdf_query_get_result_binding_value_by_name): Renamed from librdf_query_get_result_binding_by_name 2004-05-13 Dave Beckett * rdf_internal.h: Use positive assert enable defines. * rdf_query_rasqal.c (rasqal_redland_bind_match): use redland_node_to_rasqal_literal 2004-05-07 Dave Beckett * rdf_query_rasqal.c: New error/warning handler names * rdf_parser_raptor.c (librdf_parser_raptor_generate_id_handler): Use raptor_free_memory to free raptor alloced id * rdf_query.c: Don't use uninitialised names. * rdf_query.c: docucomments * rdf_query_rasqal.c (librdf_query_rasqal_get_result_bindings): Use rasqal_query_get_bindings_count. (librdf_query_rasqal_get_bindings_count): Added, calling rasqal_query_get_bindings_count. * rdf_query.c (librdf_query_get_bindings_count): typo * rdf_query.h: Added get_bindings_count factory method * rdf_query.h: Added librdf_query_get_bindings_count * rdf_query.c (librdf_query_get_bindings_count): Added. * rdf_query_rasqal.c (librdf_query_rasqal_error_handler, librdf_query_rasqal_warning_handler): Added (librdf_query_rasqal_init): Hook up above when initialising a new query. * rdf_log.c (librdf_log_simple): Too annoying to die for regular errors when debugging. * rdf_storage_list.c (librdf_storage_list_context_add_statement, librdf_storage_list_context_remove_statement): Run time warning if called with a non-NULL context and contexts are not supported. (librdf_storage_list_context_serialise, librdf_storage_list_get_contexts): Run time warning if called and contexts are not supported. * rdf_storage_hashes.c (librdf_storage_hashes_get_contexts): Run time warning if called and contexts are not supported. * rdf_storage_hashes.c (librdf_storage_hashes_context_add_statement, librdf_storage_hashes_context_serialise): Run time warning if called and contexts are not supported. (librdf_storage_hashes_context_remove_statement): Run time warning if called with a non-NULL context and contexts are not supported. * rdf_model.c (librdf_model_supports_contexts): Added helper, internal. (librdf_new_model_with_options, librdf_new_model_from_model): Initialise supports_contexts. (librdf_model_context_add_statement, librdf_model_context_add_statements, librdf_model_context_remove_statement, librdf_model_context_remove_statements, librdf_model_context_as_stream, librdf_model_context_serialize, librdf_model_get_contexts): Run time warning if called and contexts are not supported. (librdf_model_find_statements_in_context): Run time warning if called with a non-NULL context and contexts are not supported. * rdf_model.h: Added supports_contexts internal field. 2004-05-06 Dave Beckett * rdf_query.c (main): Free model, storage * rdf_query.c: (main) free returned query variable values * rdf_parser.h: Deleted internal librdf_parser_error and librdf_parser_warning Deprecated librdf_parser_set_error and librdf_parser_set_warning. * rdf_parser.c (librdf_parser_error, librdf_parser_warning): Deleted - internal and never used. (librdf_parser_set_error, librdf_parser_set_warning): Deprecated, never worked. * rdf_query.c: docucomments * rdf_query.c: Added assertions * rdf_query_rasqal.c: Renamed librdf_query_rasqal_get_result_binding to librdf_query_rasqal_get_result_binding_value. Added librdf_query_rasqal_get_result_binding_name * rdf_query.h: Renamed librdf_query_get_result_binding to librdf_query_get_result_binding_value. Added librdf_query_get_result_binding_name Changed factory methods to match. * rdf_query.c (librdf_query_get_result_binding_value): Renamed from librdf_query_get_result_binding. (librdf_query_get_result_binding_name): Added. * rdf_query_triples.h: deleted, not needed * rdf_query.c: docucomment 2004-05-05 Dave Beckett * rdf_query.c: add vars * rdf_query.c (main): Added a real query language test. * rdf_model.h: Added librdf_model_query_as_stream, librdf_model_query_as_bindings, librdf_model_query_string * rdf_model.c (librdf_model_query_as_stream, librdf_model_query_as_bindings): Added (librdf_model_query_string): Deprecated * rdf_storage.h: Added librdf_storage_query_as_stream, librdf_storage_query_as_bindings * rdf_storage.c (librdf_storage_query_as_stream,librdf_storage_query_as_bindings): Added * rdf_query.h: Substantially changed. open, close methods gone. Added all the binding access methods from rasqal. * rdf_query.c: Substantially changed. open, close gone. (librdf_query_run_as_stream,librdf_query_run_as_bindings): Added Added all the binding access methods from rasqal. * rdf_query_rasqal.c: Querying with Rasqal * rdf_model_storage.c (librdf_model_storage_query_as_stream, librdf_model_storage_query_as_bindings): Added. * rdf_query_triples.c: Remove open, close methods. Rename run method. * rdf_init.h: added query_factories to world * Makefile.am: Removed rdf_query_triples.h, added rdf_query-rasqal.c * rdf_internal.h: Removed LIBRDF_DEBUG macros * rdf_init.h: Removed librdf_error, librdf_warning as no longer used. * rdf_log.c (librdf_log_simple): When debugging, all errors are fatal. (librdf_error, librdf_warning): Removed, no longer used. * rdf_stream.c, rdf_storage_tstore.c, rdf_storage_list.c, rdf_storage_hashes.c, rdf_storage.c, rdf_statement.c, rdf_serializer_rdfxml.c, rdf_serializer_raptor.c, rdf_query.c, rdf_parser_raptor.c, rdf_node.c, rdf_model.c, rdf_list.c, rdf_hash_memory.c, rdf_hash_bdb.c, rdf_hash.c, rdf_digest.c: Replace LIBRDF_DEBUG macro uses with librdf_log * redland.spec.in, redland.pc.in: SUBST raptor, rasqal min versions and use in build, packaging files. * redland.pc.in, redland.spec.in, Makefile.am: added rasqal 2004-04-25 Dave Beckett * rdf_node.c (librdf_node_get_blank_identifier): Assert typo. 2004-04-14 Dave Beckett * rdf_node.c (librdf_node_to_counted_string): Encode language and datatype for literal strings. 2004-04-12 Dave Beckett * Makefile.am: Apply local cppflags to AM_CFLAGS, for building tests 2004-04-11 Dave Beckett * rdf_parser.c (main): Need to init node, concepts before parser. * rdf_log.h, rdf_log.c (librdf_test_error,librdf_test_warning): Added for testing errors. * rdf_model.h: Added librdf_model_load * rdf_model.c (librdf_model_load): Added, using parser guessing via raptor_guess_parser_name if no name is given. * rdf_parser_raptor.c: Move raptor_new_parser to the init factory method rather than making a new one for each parsing. Add a raptor_parser* rdf_parser field to the context structure. (librdf_parser_raptor_get_feature): Call raptor_get_feature if it is not known here. (librdf_parser_raptor_set_feature): Call raptor_set_feature. 2004-04-09 Dave Beckett * rdf_uri.c, rdf_storage_tstore.h, rdf_storage_tstore.c, rdf_storage_mysql.h, rdf_storage_mysql.c, rdf_storage_list.h, rdf_storage_list.c, rdf_storage_hashes.h, rdf_storage_hashes.c, rdf_storage_file.c, rdf_storage.h, rdf_storage.c, rdf_serializer.c, rdf_query_triples.h, rdf_query_triples.c, rdf_query.h, rdf_query.c, rdf_parser.c, rdf_node.c, rdf_model_storage.h, rdf_model_storage.c, rdf_model.h, rdf_model.c, rdf_internal.h, rdf_hash.c, rdf_digest.c, rdf_concepts.c: Add world field to all LIBRDF_FATAL1 calls. Add world parameter to all factory registrations. * rdf_log.h: Added more log facilities. * rdf_digest.h: Added world field * rdf_internal.h, rdf_query.c: zap LIBRDF_FATAL2 2004-04-08 Dave Beckett * rdf_serializer_rdfxml.c (librdf_serializer_rdfxml_raptor_error_handler): Just pass message on to librdf_log_simple as a single string, don't add a prefix. * rdf_parser_raptor.c: (librdf_parser_raptor_error_handler,librdf_parser_raptor_warning_handler): Just pass message on to librdf_log_simple with locator, don't add a prefix. * rdf_storage_mysql.c, rdf_storage_file.c, rdf_query_triples.c, rdf_hash_bdb.c: Replace librdf_error and some LIBRDF_ERROR2 with librdf_log. * redland.h: Compiling with Redland requires raptor.h * librdf.h: Use rdf_log.h * rdf_init.h: Use rdf_log structs inside world. Added librdf_world_set_logger. Deprecated older internal librdf_error/librdf_warning. * rdf_init.c: Moved error/warning code to rdf_log.c/.h (librdf_world_set_logger): Added. * Makefile.am: Added rdf_log.c rdf_log.h * rdf_log.c, rdf_log.h: RDF logging 2004-03-16 Dave Beckett * rdf_parser_raptor.c, rdf_parser.c: docs 2004-03-10 Dave Beckett * redland.pc.in: Use -lrdf (patch from Curtis Hovey) 2004-02-24 Dave Beckett * librdf.h: Add stdio.h 2004-02-23 Dave Beckett * rdf_uri.h: Remove #include Make librdf_uri_get_digest internal. * rdf_node.h: Make librdf_node_get_digest internal. * librdf.h: Add stdio.h * rdf_uri.h, rdf_node.h: header * rdf_uri.h: Remove include rdf_digest.h - an internal header, should not be called from a public one. Make librdf_uri_get_digest internal. * rdf_node.h: Make librdf_node_get_digest internal. 2004-02-02 Dave Beckett * rdf_stream.c, rdf_storage_mysql.c, rdf_parser_raptor.c, rdf_node.c, rdf_model.c, rdf_iterator.c, rdf_init.c, rdf_heuristics.c: Docucomment fixes - missing args, renamed args. 2004-02-01 Dave Beckett * rdf_stream.c, rdf_statement.c, rdf_iterator.c: Note explicitly that iterator/stream return SHARED pointers to the current object(or statement), context node 2004-01-31 Dave Beckett * rdf_parser_raptor.c (librdf_parser_raptor_constructor): Use raptor_syntaxes_enumerate. * redland.spec.in, redland.pc.in, redland.h, rdf_internal.h, librdf.h: Restore "Redland RDF Application Framework" not "Library" 2004-01-30 Dave Beckett * rdf_storage_tstore.c: Switch to use option database, not db. * rdf_hash_bdb.c (librdf_hash_bdb_open): Check identifier is not NULL. * redland.spec.in: Build with mysql, without threestore * redland.spec.in: Update deps, perl >=5.8.0, python >=2.2.0 * redland.spec.in: Require Raptor 1.2.0+ * redland.spec.in: Fix install for python. * redland.spec.in: Remove setup.py 2004-01-25 Dave Beckett * rdf_storage_file.c (librdf_storage_file_init): Cast for URI. * rdf_storage_hashes.c (librdf_storage_hashes_get_contexts_get_method): World in error arg. * rdf_storage_list.c (librdf_storage_list_get_contexts_get_method): World in error arg. * rdf_internal.h: Made assertions print out, but not abort in standard compile. Added LIBRDF_DISABLE_ASSERT_MESSAGES to prevent the output code. Added LIBRDF_DISABLE_ASSERT to prevent the assertions entirely. * rdf_storage_tstore.c: Use storage usage tracking. (librdf_storage_tstore_serialise, librdf_storage_tstore_serialise_finished): Add/remove storage usage. (librdf_storage_tstore_find_statements, librdf_storage_tstore_find_finished): Add/remove storage usage. * rdf_storage_mysql.c: Use storage usage tracking. (librdf_storage_mysql_find_statements_with_options, librdf_storage_mysql_find_statements_in_context_finished): Add/remove storage usage. (librdf_storage_mysql_get_contexts, librdf_storage_mysql_get_contexts_finished): Add/remove storage usage. * rdf_storage_list.c: Use storage usage tracking. (librdf_storage_list_serialise, librdf_storage_list_serialise_finished): Add/remove storage usage. (librdf_storage_list_context_serialise, librdf_storage_list_context_serialise_finished): Add/remove storage usage. (librdf_storage_list_get_contexts_finished, librdf_storage_list_get_contexts): Add/remove storage usage. * rdf_storage_hashes.c: Use storage usage tracking. (librdf_storage_hashes_serialise_common, librdf_storage_hashes_serialise_finished): Add/remove storage usage. (librdf_storage_hashes_node_iterator_finished, librdf_storage_hashes_node_iterator_create): Add/remove storage usage. (librdf_storage_hashes_context_serialise, librdf_storage_hashes_context_serialise_finished): Add/remove storage usage. (librdf_storage_hashes_get_contexts, librdf_storage_hashes_get_contexts_finished): Add/remove storage usage. * rdf_model_storage.c (librdf_model_storage_create, librdf_model_storage_destroy): Add and release a reference to the used storage. * rdf_storage.h: Add usage tracking to librdf_model. Added librdf_storage_add_reference, librdf_storage_remove_reference * rdf_storage.c: Add usage tracking. (librdf_new_storage_from_storage,librdf_new_storage_from_factory): Set usage to 1 on creation. (librdf_free_storage): Decrement usage, free if 0. (librdf_storage_add_reference,librdf_storage_remove_reference): Added. (librdf_storage_stream_to_node_iterator_finished, librdf_storage_node_stream_to_node_create); Add storage usage tracking. * rdf_model.h: Add usage tracking to librdf_model. Added librdf_model_add_reference, librdf_model_remove_reference * rdf_model.c: Add usage tracking. (librdf_new_model_with_options,librdf_new_model_from_model): Set usage to 1 on creation. (librdf_free_model): Decrement usage, free if 0. (librdf_model_add_reference,librdf_model_remove_reference): Added. 2004-01-24 Dave Beckett * rdf_storage_mysql.c: Change schema. Table Literals, column Language remove default '' * rdf_storage_mysql.c: Change schema. Table Literals, column Language varchar(6) to text. 2004-01-22 Dave Beckett * rdf_model.c (librdf_model_get_source, librdf_model_get_arc, librdf_model_get_target): Fail if iterator returns NULL. 2004-01-20 Dave Beckett * rdf_storage_mysql.c: Literal matching seems to be working. * rdf_storage_mysql.c: Added basic (LIKE) literal searching when option match-substring=true * rdf_storage_mysql.c (librdf_storage_mysql_find_statements_with_options): Added, making this the general query method renamed from librdf_storage_mysql_find_statements_in_context, not using the options just yet. * rdf_model_storage.c (librdf_model_storage_find_statements_with_options): Added, passing it through to the model storage. * rdf_model.c (librdf_model_find_statements_with_options): Added, optional. * rdf_model.h: Added factory method find_statements_with_options Added librdf_model_find_statements_with_options Added option LIBRDF_MODEL_FIND_OPTION_MATCH_SUBSTRING_LITERAL * rdf_storage.c (librdf_storage_find_statements_with_options): Added, optional. * rdf_storage.h: Added factory method find_statements_with_options Added librdf_storage_find_statements_with_options 2004-01-17 Dave Beckett * rdf_storage_tstore.c, rdf_storage_mysql.c, rdf_storage_list.c, rdf_storage_hashes.c, rdf_storage_file.c: Updated to add store labels. * rdf_storage.h: Added label to librdf_storage_factory librdf_storage_register_factory gains label arg Added librdf_storage_enumerate prototype. * rdf_storage.c: Added labels to factory. (librdf_storage_register_factory): Added label arg. (librdf_storage_enumerate): Added, to get basic store info. * rdf_storage_file.c (librdf_storage_file_size): For consistency, use the model call. * rdf_storage.h, rdf_storage.c: Added librdf_init_storage_file * Makefile.am: Added rdf_storage_file.c * rdf_storage_file.c: Persistent store in file (r/w) and uri (r) * rdf_serializer.h: Re-export librdf_serializer_serialize_model 2004-01-16 Dave Beckett * rdf_serializer.c (librdf_serializer_serialize_model): re-export * rdf_serializer.c (librdf_serializer_serialize_model): static, internal. * rdf_serializer.h: Do not export librdf_serializer_serialize_model 2004-01-15 Dave Beckett * rdf_storage_hashes.c (librdf_storage_hashes_get_contexts): Added, implementing get_contexts for hashes storage implementation. 2004-01-14 Dave Beckett * rdf_serializer_raptor.c (librdf_serializer_print_statement_as_ntriple): Emit literal datatype URI in N-Triples encoding. * rdf_serializer_raptor.c (librdf_serializer_print_statement_as_ntriple): break * rdf_serializer_raptor.c (librdf_serializer_print_statement_as_ntriple): Emit subject and predicate URIs in N-Triples encoding. Add some checks. * rdf_serializer_raptor.c (librdf_serializer_print_statement_as_ntriple): Emit URIs in UTF-8 * rdf_uri.c, rdf_storage_hashes.c, rdf_storage.c, rdf_statement.c, rdf_serializer.c, rdf_query.c, rdf_parser_raptor.c, rdf_parser.c, rdf_node.c, rdf_model.c, rdf_internal.h, rdf_hash_bdb.c, rdf_hash.c, rdf_digest.c: LIBRDF_DEBUG* lose their function arg * rdf_storage_mysql.c, rdf_storage_list.c, rdf_storage_hashes.c, rdf_parser_raptor.c: Various casts for C++ (g++) to be happier. * rdf_uri.c, rdf_stream.c, rdf_storage_tstore.c, rdf_storage_mysql.c, rdf_storage_list.c, rdf_storage_hashes.c, rdf_storage.c, rdf_statement.c, rdf_serializer_rdfxml.c, rdf_serializer.c, rdf_query.c, rdf_parser_raptor.c, rdf_parser.c, rdf_node.c, rdf_model.c, rdf_list.c, rdf_internal.h, rdf_hash_memory.c, rdf_hash_bdb.c, rdf_hash.c, rdf_digest.c, rdf_concepts.c: LIBRDF_ERROR* and LIBRDF_FATAL* lose their function arg * rdf_serializer.c, rdf_parser.c, rdf_storage.c: Add a bunch of LIBRDF_ASSERT* for object pointers. * rdf_node.c (librdf_node_get_literal_value_is_wf_xml): Only check non-NULL datatype URIs. * rdf_node.c (librdf_new_node_from_blank_identifier): Removed assertion, can be NULL. * rdf_model.c: Add a bunch of LIBRDF_ASSERT* for object pointers. * rdf_internal.h: fix macros again for not debugging. * rdf_internal.h: fix macros for not debugging. * rdf_statement.c: Add a bunch of LIBRDF_ASSERT* for object pointers. * rdf_internal.h: Assert macros tweaks. * rdf_node.c, rdf_uri.c: Add a bunch of LIBRDF_ASSERT* for object pointers. * rdf_internal.h (LIBRDF_ASSERT_RETURN, LIBRDF_ASSERT_OBJECT_POINTER_RETURN, LIBRDF_ASSERT_OBJECT_POINTER_RETURN_VALUE): Added macros. (LIBRDF_ERROR1,LIBRDF_ERROR2,LIBRDF_ERROR3,LIBRDF_FATAL1,LIBRDF_FATAL2): Use ANSI C99 __func__ rather than the function arg, renamed them to "notused" for now. * rdf_uri.c (librdf_new_uri): Return NULL if string is NULL or empty (0 length). * rdf_init.c (librdf_free_world, librdf_world_open): Add raptor dependency notes. 2004-01-13 Dave Beckett * Makefile.am: Add LIBRDF_EXTERNAL_CPPFLAGS for rdf_uri_test * rdf_serializer.h, rdf_serializer.c: Adjust librdf_serializer_get_feature, librdf_serializer_set_feature to use librdf_node not strings. * rdf_storage_mysql.c (librdf_storage_mysql_get_feature): Added, to return contexts always. * rdf_storage_list.c (librdf_storage_list_get_feature): Added, to return contexts or not. * rdf_storage_hashes.c (librdf_storage_hashes_get_feature): Added, to return contexts or not. * rdf_model_storage.c (librdf_model_storage_set_feature): Added, calling librdf_storage_set_feature * rdf_model_storage.c (librdf_model_storage_get_feature): Added, calling librdf_storage_get_feature * rdf_storage.h: Added storage methods, factory methods get_feature, set_feature now with librdf_uri* for feature property name, librdf_node* for values. * rdf_storage.c (librdf_storage_get_feature,librdf_storage_set_feature): Added * rdf_model.c (librdf_model_get_feature,librdf_model_set_feature): Added * rdf_model.h: Added parser methods, factory methods get_feature, set_feature now with librdf_uri* for feature property name, librdf_node* for values. * rdf_parser_raptor.c, rdf_parser.h, rdf_parser.c: parser methods, factory methods get_feature, set_feature now use librdf_node* for values. 2004-01-12 Dave Beckett * rdf_storage_mysql.c (librdf_storage_mysql_find_statements_in_context): Copy the query statement and/or query context_node so that they live during the streaming. (librdf_storage_mysql_find_statements_in_context_finished): Free them. * rdf_storage_mysql.c: (librdf_storage_mysql_find_statements_in_context_next_statement): Clear current_context pointer after free. * rdf_storage_mysql.c: fix * rdf_storage_mysql.c (librdf_storage_mysql_init): Default to port 3306. * rdf_storage_mysql.c: (librdf_storage_mysql_get_contexts_next_context) row= * rdf_storage_mysql.c: (librdf_storage_mysql_find_statements_in_context_next_statement): Allow a NULL context to be returned. 2004-01-11 Dave Beckett * rdf_storage_list.c (librdf_storage_list_get_contexts_get_method): Use icontext in debug arg. * rdf_storage_hashes.c (librdf_storage_hashes_context_serialise): Return NULL if no contexts. * rdf_model_storage.c (librdf_model_storage_get_contexts): Added, implementing get_contexts for model_storage implementation. * rdf_storage_list.c (librdf_storage_list_get_contexts): Added to implement get_contexts along with: (librdf_storage_list_get_contexts_is_end librdf_storage_list_get_contexts_next_method librdf_storage_list_get_contexts_get_method librdf_storage_list_get_contexts_finished): Helper functions for the get_contexts method. * rdf_storage_hashes.c: Deleted librdf_storage_hashes_find_map and share the same code now in librdf_stream_statement_find_map * rdf_stream.h: Added prototoype for librdf_stream_statement_find_map * rdf_stream.c (librdf_stream_statement_find_map): Added, formerly librdf_storage_list_find_map * rdf_model.h: Add factory methods find_statements_in_context, get_contexts. Add prototypes for librdf_model_find_statements_in_context and librdf_model_get_contexts * rdf_model.c (librdf_model_find_statements_in_context): Added, calling the factory method otherwise using librdf_stream_statement_find_map over a stream of the statements in the context. (librdf_model_get_contexts): Added. (main): Test code, add a get_contexts call; does not yet work on memory, hashed stores. * rdf_storage.c (librdf_storage_stream_in_context_map): Deleted. (librdf_storage_find_statements_in_context): Do not use the above but use librdf_stream_statement_find_map over a stream of the statements in the context. * rdf_storage_list.c (librdf_storage_list_find_map): Renamed to librdf_stream_statement_find_map and moved to rdf_stream.c * rdf_storage_mysql.c: Enable factory methods find_statements_in_context, get_contexts. * rdf_storage.h: Add factory methods find_statements_in_context, get_contexts. Add prototypes for librdf_storage_find_statements_in_context and librdf_storage_get_contexts * rdf_storage.c (librdf_storage_stream_in_context_map): Added, helper for librdf_storage_find_statements_in_context when not in the factory. (librdf_storage_find_statements_in_context): Added. (librdf_storage_get_contexts): Added. * rdf_storage_list.c: (librdf_storage_list_find_map, librdf_storage_list_find_statements): Update to new stream map API. * rdf_storage_hashes.c: (librdf_storage_hashes_find_map, librdf_storage_hashes_find_statements): Update to new stream map API. * rdf_stream.h, rdf_stream.c: Change stream mapping to use a list of maps, matching the iterator code exactly except using librdf_statement*, not void*. Add typedefs librdf_stream_map_handler, librdf_stream_map_free_context_handler. Add librdf_stream_map internal structure. Change stream interals to use librdf_stream_map. Deleted librdf_stream_set_map. Added librdf_stream_add_map using typedefs. * rdf_iterator.h: Add free_context handler to librdf_iterator_map Define typedefs librdf_iterator_map_handler and librdf_iterator_map_free_context_handler Change librdf_iterator_add_map to have free_context handler arg. * rdf_iterator.c (librdf_iterator_free_iterator_map): Use free_context handler. (librdf_iterator_add_map): Add optional free_context handler, use typedefs. * rdf_storage_mysql.c: year 2004 assgment in if()s fixes for gcc warnings. * rdf_storage_mysql.c: Import from morten 2004-01-11 2004-01-07 Dave Beckett * rdf_parser_raptor.c: Handle LIBRDF_PARSER_FEATURE_ERROR_COUNT LIBRDF_PARSER_FEATURE_WARNING_COUNT to return error and warning counts after (during?) a parser. Since the first error is fatal, it will either be 0 or 1. Warnings can be larger. (librdf_parser_raptor_get_feature): Added. * rdf_parser.h: Added LIBRDF_PARSER_FEATURE_ERROR_COUNT LIBRDF_PARSER_FEATURE_WARNING_COUNT * rdf_types.h: Restore u64 tests * rdf_storage.h, rdf_storage.c, rdf_model.c: Documentation: Note that context methods with a NULL context are equivalent to the equivalent methods without the context argument. * rdf_heuristics.h, rdf_heuristics.c: Added librdf_heuristic_is_blank_node, librdf_heuristic_get_blank_node 2004-01-05 Dave Beckett * rdf_model_storage.c (librdf_model_storage_context_serialize): Use librdf_storage_context_as_stream * rdf_storage_hashes.c: Add some int to librdf_statement_part casts. * redland.spec.in: - added redland-python package - export some more docs 2004-01-04 Dave Beckett * rdf_stream.h: dates Make librdf_new_stream_from_node_iterator final arg be the enum. * rdf_iterator.h: dates note deprecation of librdf_iterator_have_elements * rdf_serializer.h, rdf_parser.h, rdf_digest.h: Change void *c to void *_context in prototypes. Helps remove some declaration shadowing warnings. * rdf_uri.h, rdf_stream.h, rdf_stream.c, rdf_storage.h, rdf_storage.c, rdf_statement.h, rdf_statement.c, rdf_serializer.h, rdf_query.h, rdf_parser.h, rdf_node.h, rdf_model.h, rdf_iterator.h, rdf_init.h, rdf_concepts.h: Tidy up the headers, split internal/public stuff more clearly. Export public functions with REDLAND_API * librdf.h: Moved internal stuff to rdf_internal.h; include it. * Makefile.am: Made rdf_hash.h rdf_digest.h rdf_types.h rdf_model_storage.h rdf_heuristics.h rdf_list.h rdf_hash_bdb.h rdf_hash_memory. rdf_files.h rdf_storage_list.h rdf_storage_hashes.h rdf_query_triples.h source-only headers, never installed. * rdf_storage_mysql.h, rdf_storage_tstore.h: Restored * rdf_internal.h: rdf_internal.h 2004-01-03 Dave Beckett * rdf_iterator.c (librdf_iterator_update_current_element): Fix iteration when using a list of map functions. (librdf_iterator_map_remove_duplicate_nodes): Deleted, never used. * rdf_storage.c (librdf_storage_node_stream_to_node_create): and nearby, remove prototypical duplicate removing options since it never worked and changing it now would confuse. * rdf_storage.c: Removed rdf_storage_mysql/tstore.h * rdf_storage.h: Moved mysql, tstore prototypes here. * rdf_storage_tstore.c: Removed rdf_storage_tstore.h * rdf_storage_tstore.h, rdf_storage_mysql.h: 1 function defined here moved to rdf_storage.h * librdf.h: restore accidently deleted #endif * librdf.h: No longer NEED_EXPAT_SOURCE * redland.spec.in, redland.pc.in: name * rdf_parser_raptor.c: Correctly use SYSTEM_FREE * rdf_parser_raptor.c: Remove some FIXMEs; replacing LIBRDF_FREE with SYSTEM_FREE now that raptor is never compiled with redland internals enabled even when in the source tree. 2004-01-02 Dave Beckett * rdf_parser_raptor.c (librdf_parser_raptor_parse_file_as_stream): Use pcontext->parser_name with raptor_new_parser. (librdf_parser_raptor_constructor): Register the default parser last always (rdfxml) and preserve the raptor old name as a true alias. --- See ../Changelog.[1-9]* for older changes