2006-11-26 Dave Beckett * configure.ac: libxml minimum version is now 2.6.8 since 2.6.7 crashes on PPC64 Linux. 2.6.8 was released March 2004 so this should be no burden. 2006-11-21 Dave Beckett * configure.ac: Minimum raptor version is 1.4.11 2006-10-30 Dave Beckett * Snapshotted rasqal_0_9_13 for 0.9.13 release * src/rasqal_raptor.c: (rasqal_raptor_new_triples_source): Check for RAPTOR_FEATURE_NO_NET before using it. 2006-10-29 Dave Beckett * src/rasqal_engine.c, src/rasqal_expr.c, src/rasqal_graph_pattern.c, src/rasqal_literal.c, src/rasqal_query_results.c, src/rasqal_raptor.c, src/rasqal_redland.c: Correct calls to calloc() - count first, then size. * docs/tmpl/section-general.sgml, docs/tmpl/section-query.sgml: docs 2006-10-24 Dave Beckett * src/rasqal_engine.c: (rasqal_engine_execute_init): Add hacky top-level graph before rasqal_query_results_init() is run so that the gp_data gets set correctly. * src/sparql_lexer.l: Look for NULL *yytext at end of input instead of EOF * src/rdql_lexer.l: Look for NULL *yytext at end of input instead of EOF (rdql_copy_regex_token): int c since it may return EOF which may be negative. 2006-10-23 Dave Beckett * docs/rasqal-sections.txt: add new functions about features 2006-10-14 Dave Beckett * utils/roqet.c: Added -f/--feature option to set query features * src/rasqal_raptor.c: (rasqal_raptor_new_triples_source): Use RASQAL_FEATURE_NO_NET to enable parser RAPTOR_FEATURE_NO_NET * src/rasqal.h: Added rasqal_feature RASQAL_FEATURE_NO_NET Added prototypes for rasqal_features_enumerate, rasqal_get_feature_count, rasqal_feature_from_uri, rasqal_feature_value_type, rasqal_query_set_feature_string, rasqal_query_get_feature, rasqal_query_get_feature_string. Prototype of rasqal_query_set_feature changed to return an int. * src/rasqal_internal.h: rasqal_query_s gains features table * src/rasqal_query.c: (rasqal_query_set_feature): Now returns an int and has a feature. (rasqal_query_set_feature_string, rasqal_query_get_feature, rasqal_query_get_feature_string): Added. * src/rasqal_feature.c: Added rasqal_feature.c * src/Makefile.am: Added rasqal_feature.c 2006-10-13 Dave Beckett * src/rasqal_expr.c: (rasqal_free_triple): Free any origin. Fixes Issue#0000133 http://bugs.librdf.org/mantis/view.php?id=133 2006-10-07 Dave Beckett * src/rasqal_map.c: (rasqal_map_node_print_visit): Delete old debug messages. Fixes Issue#0000131 http://bugs.librdf.org/mantis/view.php?id=131 2006-10-05 Dave Beckett * configure.ac: More -W flags * src/rdql_lexer.l, src/rdql_parser.y, src/sparql_lexer.l, src/sparql_parser.y: Casts * utils/roqet.c: int cast * utils/roqet.c: const * src/rasqal_literal.c, src/rasqal_query.c, src/rasqal_query_results.c, src/rdql_common.h, src/rdql_lexer.l, src/sparql_common.h, src/sparql_lexer.l, src/sparql_parser.y: Add some casting around error/warning handlers. Fix a few signed/unsigned comparisons * src/rasqal_general.c: (rasqal_languages_enumerate, rasqal_escaped_name_to_utf8_string): Discard tests for unsigned int < 0. (rasqal_uri_init, rasqal_uri_finish): Use ANSI style void declaration. * src/rasqal_engine.c: (rasqal_engine_expand_wildcards): Add missing format arg in error. * configure.ac: In maintainer mode, add all the supported -W options to the MAINTAINER_CFLAGS * src/rasqal_internal.h: Added RASQAL_PRINTF_FORMAT to allow declaring of functions with a printf-style format argument declare many error/warning/*varargs prototypes with it if they take a printf-style format argument. 2006-10-01 Dave Beckett * tests/engine/Makefile.am: Add AM_CPPFLAGS/CFLAGS to allow compiling out of source dir with external raptor * utils/Makefile.am: Tidy AM_CPPFLAGS/CFLAGS to remove duplicated symbols 2006-09-28 Dave Beckett * tests/engine/rasqal_graph_test.c: Added 2nd query * tests/engine/rasqal_graph_test.c: parameterise the input data graphs * tests/engine/rasqal_graph_test.c: Add tests structure to make this more data driven. * data/graph-c.ttl: add graph-c.ttl * data/Makefile.am: graph-c.ttl * tests/engine/rasqal_graph_test.c: Rasqal RDF Query GRAPH Tests 2006-09-27 Dave Beckett * src/rasqal_engine.c: (rasqal_engine_do_step): Added a hack to check an outer constraint expression. Fixes Issue#0000129 http://bugs.librdf.org/mantis/view.php?id=129 * tests/engine/Makefile.am: Added rasqal_graph_test.c. Invoke all tests with the data dir * tests/engine/rasqal_order_test.c: Take data dir as a parameter. 2006-09-26 Dave Beckett * docs/tmpl/section-query_results.sgml: update * data/Makefile.am, data/graph-a.ttl, data/graph-b.ttl: Add graph test data files * src/rasqal_raptor.c: (rasqal_raptor_free_triples_source): Free source URIs and literals only if allocated. * src/rasqal_engine.c: (rasqal_engine_query_results_update): Fix logic to set failed flag as well as finished flag when rasqal_engine_get_next_result fails. 2006-09-24 Dave Beckett * src/sparql_parser.y: Fix debug messages since propertyListNotEmpty is now ordered forward. * src/sparql_parser.y: (PropertyListNotEmpty, ObjectList): Take more care not to reverse order of triple patterns as they appeared in the query. * src/rasqal_engine.c: (rasqal_engine_merge_triples): Merge only all adjacent sequences of basic graph pattern triples, not anything with triples such as optional BGP triples. Fixes Issue #0000080 http://bugs.librdf.org/mantis/view.php?id=80 * ChangeLog: add fix bug note * src/rasqal_engine.c: (rasqal_engine_group_graph_pattern_get_next_match, rasqal_engine_triple_graph_pattern_get_next_match): Added from the content of rasqal_engine_graph_pattern_get_next_match. 2006-09-23 Dave Beckett * src/rasqal_engine.c: (rasqal_engine_graph_pattern_get_next_match): Tidy code * src/rasqal_engine.c: (rasqal_reset_triple_meta): Reset executed flag. (rasqal_engine_graph_pattern_get_next_match): When an exact triple match is performed, set the executed flag and next time backtrack. Also set the flag when a pattern triple match is executed. Fixes Issue #0000094 http://bugs.librdf.org/mantis/view.php?id=94 * src/rasqal.h: rasqal_triple_meta gains executed field * src/rasqal_query_results.c: autodocs * docs/rasqal-sections.txt: Remove rasqal_query_results_syntaxes_enumerate * docs/tmpl/section-query_results_formatter.sgml: Title * docs/rasqal-overrides.txt: rasqal_graph_query_results_formatter * docs/tmpl/section-query_results_formatter.sgml: Short + long descriptions * docs/rasqal-docs.xml: Added file section-query_results_formatter.xml * docs/rasqal-sections.txt: Added section-query_results_formatter FILE * utils/roqet.c: Update to use new rasqal_query_results_formatter class. * src/rasqal_query_results.c: Reorganised to create a rasqal_query_results_formatter class for formatting query results. (rasqal_query_results_formats_enumerate): Added, renamed from rasqal_query_results_syntaxes_enumerate. (rasqal_get_query_results_formatter_factory): Added helper function. (rasqal_new_query_results_formatter): Added new constructor (rasqal_free_query_results_formatter): Added new destructor (rasqal_query_results_formatter_write): Added new writer method. (rasqal_query_results_get_results_format_uri_by_name): Deleted public function now handled by constructor. * src/rasqal_internal.h: Added rasqal_query_results_writer typedef. Added rasqal_query_results_format_factory Added struct rasqal_query_results_formatter_s * src/rasqal.h: Added rasqal_query_results_formatter class Added rasqal_query_results_formats_enumerate prototype (was rasqal_query_results_syntaxes_enumerate) Added rasqal_new_query_results_formatter, rasqal_free_query_results_formatter and rasqal_query_results_formatter_write prototypes. Deleted rasqal_query_results_get_results_format_uri_by_name prototype. * tests/engine/Makefile.am: Automakefile for query engine tests * tests/Makefile.am, tests/engine, tests/engine/rasqal_order_test.c (from /rasqal/trunk/tests/rasqal_order_test.c:11290), tests/rasqal_order_test.c: Add engine test dir and move order test there * configure.ac: Added test/engine/Makefile 2006-09-08 Dave Beckett * docs/tmpl/section-graph_pattern.sgml, docs/tmpl/section-query.sgml, docs/tmpl/section-query_results.sgml: Updated for new functions * configure.ac: Allow LEX to be set to things that aren't exactly 'flex' 2006-09-07 Dave Beckett * src/rasqal_engine.c, src/rasqal_graph_pattern.c, src/rasqal_internal.h: Move column field from graph_pattern to execution data * src/rasqal_graph_pattern.c: (rasqal_new_graph_pattern, rasqal_graph_pattern_add_triples): Delete fields moved to gp_data. * src/rasqal_engine.c: rasqal_engine_gp_data gains optional_graph_pattern, current_graph_pattern, optional_graph_pattern_matches_count and matches_returned (rasqal_new_gp_data, rasqal_free_gp_data): Init, free new fields. (rasqal_new_engine_execution_data, rasqal_engine_graph_pattern_reset): Add new fields. (rasqal_engine_graph_pattern_init, rasqal_engine_execute_init, rasqal_engine_move_to_graph_pattern, rasqal_engine_do_step, rasqal_engine_do_optional_step, rasqal_engine_get_next_result): Updates to use gp_data not gp for moved fields. 2006-09-06 Dave Beckett * src/rasqal_internal.h: (struct rasqal_graph_pattern_s): Loses fields optional_graph_pattern, current_graph_pattern, optional_graph_pattern_matches_count and matches_returned into execution graph pattern data. * src/rasqal_engine.c: (rasqal_engine_check_limit_offset): Another off-by-1 in offsets (rasqal_engine_execute_order): Skip initial offset of results in an ordering. * tests/rasqal_order_test.c: (main): Add limit/offset=1 tests 2006-09-04 Dave Beckett * tests/rasqal_order_test.c: Add limit & offset testing * tests/Makefile.am, tests/rasqal_order_test.c: Added query result order test * src/Makefile.am: run-rasqal-query-test: build rasqal_query_test * data/Makefile.am: added animals.nt * data/animals.nt: Animals * src/rasqal_engine.c: (rasqal_engine_graph_pattern_reset): Added, taking the resetting part of graph pattern initialising out of rasqal_engine_graph_pattern_init. (rasqal_engine_graph_pattern_init): Now just does once-only initialising, rest moved to new rasqal_engine_graph_pattern_reset. 2006-09-03 Dave Beckett * utils/roqet.c: Remove hard-coded query results format enum and use rasqal_query_results_syntaxes_enumerate to discover them and rasqal_query_results_get_results_format_uri_by_name to find them by user-specified name (-r NAME). (roqet_query_results_print_as_xml): Deleted. * src/rasqal_query_results.c: Added factory for constructing query results into a syntax: rasqal_query_results_format_factory. (rasqal_query_results_format_register_factory and rasqal_free_query_results_format_factory): Added. (rasqal_init_query_results): Added, registering all the query syntax formats using rasqal_query_results_format_register_factory. (rasqal_finish_query_results): Added. (rasqal_query_results_syntaxes_enumerate): Added to get info on query results syntaxes. (rasqal_query_results_write): Find and then use factory function writer to do all the work. (rasqal_query_results_get_results_format_uri_by_name): Added to get the URI for a query result format from it's short name. * src/rasqal.h: Added prototypes for rasqal_query_results_syntaxes_enumerate and rasqal_query_results_get_results_format_uri_by_name * src/rasqal_internal.h: Add prototypes for rasqal_init_query_results and rasqal_finish_query_results * src/rasqal_general.c: (rasqal_init): Call rasqal_init_query_results (rasqal_finish): Call rasqal_finish_query_results 2006-08-25 Dave Beckett * src/rasqal_expr.c: (rasqal_expression_evaluate): RASQAL_EXPR_LANG - Fail if a variable has an undefined value rather than try to execute a NULL pointer. Fixes issue #0000113 http://bugs.librdf.org/mantis/view.php?id=113 2006-08-23 Dave Beckett * src/win32_rasqal_config.h: Include float.h and #define isnan. Fixes Issue #0000111 http://bugs.librdf.org/mantis/view.php?id=111 2006-08-20 Dave Beckett * autogen.sh: Track where programs are discovered. * src/rdql_parser.y: Added labels for some tokens to enable better error messages. Add %destructor to tidy up tokens when doing error recovery. * src/sparql_parser.y: Added labels for some tokens to enable better error messages. Add %destructor to tidy up tokens when doing error recovery. * configure.ac: flex check - warn before failing * configure.ac: recommend flex 2.5.33 * configure.ac: Update to point at main flex site whichq finally gets 2.5.33 after 9 years 2006-08-18 Dave Beckett * configure.ac: Strip more -O flags from incoming CFLAGS, CXXFLAGS and CPPFLAGS. * configure.ac: Patch configure.ac to remove un-necessary tests for C++ or F77++ compilers that libtool stupidly insists on 2006-07-30 Dave Beckett * src/rasqal_query.c: (rasqal_query_write_sparql_20060406): Add newline after verb when there are no args. * src/rasqal_query.c: (rasqal_query_execute): Add query/query_results link early so reference counting is done right. Fixes Issue#0000095 http://bugs.librdf.org/mantis/view.php?id=95 2006-07-05 Dave Beckett * src/rasqal_query.c: (rasqal_query_print): Rewrite many fprintf to fputs 2006-07-04 Dave Beckett * src/rasqal_engine.c: (rasqal_new_gp_data): Zero new structure * src/rasqal.h: Correct win32 static linking of rasqal Fixes Issue#0000100 http://bugs.librdf.org/mantis/view.php?id=100 * configure.ac: allow PKGCONFIG_REQUIRES to append correctly to an empty string * configure.ac, rasqal.pc.in: Fix PKGCONFIG vars not substituted correctly in configure.ac and remove @LDFLAGS from rasqal.pc.in. Fixes Issue#0000098 http://bugs.librdf.org/mantis/view.php?id=98 * src/rasqal_engine.c: Typedef rasqal_engine_gp_data gains gp and triple_meta field. (rasqal_new_gp_data): Init gp field. (rasqal_free_gp_data): Tidy up triple_meta field content. (rasqal_engine_graph_pattern_get_next_match): Get rasqal_engine_gp_data from sequence of gp_data. Take rasqal_triple_meta from that data. (rasqal_new_engine_execution_data): Init rasqal_engine_gp_data for all graph patterns. (rasqal_engine_graph_pattern_order): Renamed from rasqal_graph_pattern_order. (rasqal_engine_graph_pattern_init): Renamed from rasqal_graph_pattern_init. (rasqal_engine_execute_init): Call rasqal_engine_graph_pattern_init. (rasqal_engine_move_to_graph_pattern): Gains query_results arg. (rasqal_engine_do_step, rasqal_engine_do_optional_step): Call rasqal_engine_move_to_graph_pattern with query_results arg. * src/rasqal_graph_pattern.c: (rasqal_free_graph_pattern): Remove triple_meta cleanup. (rasqal_graph_pattern_order): Deleted and renamed to rasqal_free_gp_data. (rasqal_graph_pattern_init): Deleted and renamed to rasqal_engine_graph_pattern_init. 2006-07-03 Dave Beckett * src/rasqal_query.c: (rasqal_free_query): Free graph_patterns_sequence (rasqal_query_prepare_count_graph_patterns): Add next graph pattern to index sequence. (rasqal_query_prepare): Initialise graph_patterns_sequence using rasqal_query_graph_pattern_visit with rasqal_query_prepare_count_graph_patterns. * src/rasqal_internal.h: (struct rasqal_graph_pattern_s): Remove triple_meta field, now in engine's rasqal_engine_gp_data. rasqal_graph_pattern_init prototype removed. (struct rasqal_query_s): Add graph_patterns_sequence for getting graph pattern by an index. 2006-07-01 Dave Beckett * src/rasqal_expr.c: (rasqal_expression_evaluate): For AND and OR ops, do not free a NULL literal when tidying up on error. Fixes Issue#0000095 http://bugs.librdf.org/mantis/view.php?id=95 2006-04-30 Dave Beckett * docs/librasqal.3: Updated for 0.9.12 (too late for release) * src/rasqal_engine.c: (rasqal_engine_run): Restore query when RASQAL_DEBUG is present * src/rasqal_expr.c: (rasqal_expression_evaluate): RASQAL_EXPR_AND and RASQAL_EXPR_OR - initialise b1 and b2 to prevent a gcc warning. They were never used unitialised by the logic but gcc couldn't tell. * src/rasqal_query_results.c: (rasqal_free_query_results): Initialise query; happily it wasn't used in 0.9.12 use case * src/rasqal_engine.c: Only define rasqal_engine_step_names for RASQAL_DEBUG * Snapshotted rasqal_0_9_12 for 0.9.12 release 2006-04-29 Dave Beckett * src/rasqal_query_results.c: (rasqal_free_query_results): Add triple field cleanup (rasqal_query_results_get_triple, rasqal_query_results_next_triple): Update field names; query->statement to query_results->result_triple and query->triple to query_results->triple * src/rasqal_query.c: (rasqal_free_query): Remove triple field cleanup * src/rasqal_internal.h: rasqal_query loses triple and statement fields rasqal_query_statement gains them as triple and result_triple field. * src/rasqal_query_results.c: (rasqal_query_results_get_bindings, rasqal_query_results_get_binding_value, rasqal_query_results_get_binding_name, rasqal_query_results_get_binding_value_by_name): Allow returning name/values even if an error occurred or this is the last result. * src/rasqal_engine.c: (rasqal_engine_assign_binding_values): Deleted, only ever used once inside rasqal_engine_query_result_row_update and 2 lines long. * src/rasqal_engine.c: Moved triples_source, new_bindings_count, current_triple_result and results_sequence fields from rasqal_query_s to rasqal_query_results_s (rasqal_new_triples_match, rasqal_engine_graph_pattern_get_next_match, rasqal_engine_execute_finish, rasqal_engine_do_step, rasqal_engine_do_optional_step, rasqal_engine_get_next_result, rasqal_engine_get_results_values, rasqal_engine_get_result_value, rasqal_engine_execute_order): Use query_results arg and update for changes above. * src/rasqal_query_results.c: (rasqal_query_results_init, rasqal_free_query_results): Init and free query_results->triples_source and query_results->results_sequence. (rasqal_query_results_get_triple, rasqal_query_results_next_triple): Use query_results->triples_source and query_results->current_triple_result * src/sparql_parser.y: Comments SPARQL 2006-04-06 * src/rasqal_query.c: (rasqal_new_query): Moved query->results_sequence to query_results. 9rasqal_query_write_sparql_20060406): Renamed from rasqal_query_write_sparql_20060125. (rasqal_query_write): Accept SPARQL 2006-04-06 and use as the default URI. * src/rasqal_internal.h: Moved triples_source, new_bindings_count, current_triple_result and results_sequence fields from rasqal_query_s to rasqal_query_results_s * src/sparql_parser.y: SPARQL grammar updates for SPARQL CR - mostly a rename and some re-ordering of rules since it was already based on an earlier pre-CR rq23 draft. (FilteredBasicGraphPattern): Renamed from BasicGraphPattern) IRIrefOrFunction remains unused/deleted since the lexer does the work for us. 2006-04-28 Dave Beckett * src/rasqal_engine.c, src/rasqal_query.c, src/rdql_parser.y, src/sparql_parser.y: rasqal_query_declare_prefix and rasqal_query_declare_prefixes in rasqal_query.c replace rasqal_engine_declare_prefix, rasqal_engine_undeclare_prefix and rasqal_engine_declare_prefixes in rasqal_engine.c since they operate before query execution * src/rasqal_internal.h: rasqal_query_declare_prefix and rasqal_query_declare_prefixes replace rasqal_engine_declare_prefix, rasqal_engine_undeclare_prefix and rasqal_engine_declare_prefixes * src/rasqal_engine.c: Many new functions moved from rasqal_query.c and rasqal_query_results.c: rasqal_engine_query_result_row_update rasqal_engine_new_query_result_row, rasqal_engine_new_query_result_row_from_query_result_row, rasqal_engine_free_query_result_row, rasqal_engine_get_results_values, rasqal_engine_get_result_value, rasqal_engine_query_result_row_print, rasqal_query_result_literal_sequence_compare, rasqal_engine_query_result_row_compare, rasqal_engine_query_results_update, rasqal_engine_map_free_query_result_row, rasqal_engine_map_print_query_result_row, rasqal_engine_map_add_to_sequence, rasqal_engine_execute_order, rasqal_engine_execute_next * src/rasqal_query_results.c: (rasqal_new_query_results, rasqal_query_results_init): Added from rasqal_query.c and now in public API. (rasqal_query_result_row_print, rasqal_query_result_literal_sequence_compare, rasqal_query_result_row_compare): Moved to rasqal_engine.c and renamed. (rasqal_free_query_results): Call renamed rasqal_engine_free_query_result_row (rasqal_query_results_next): Bulk of code moved to new rasqal_engine_execute_next() in rasqal_engine.c (rasqal_query_results_get_bindings): Results part moved to rasqal_engine_get_results_values() in rasqal_engine.c. 9rasqal_query_results_get_binding_value, rasqal_query_results_get_binding_value_by_name): Result part moved to rasqal_engine_get_result_value() in rasqal_engine.c * src/rasqal_query.c: (rasqal_new_query_result_row, rasqal_new_query_result_row_from_query_result_row, rasqal_query_result_row_update, rasqal_query_results_update, rasqal_map_free_query_result_row, rasqal_map_print_query_result_row, rasqal_map_add_to_sequence): Moved to rasqal_engine.c and renamed. (rasqal_new_query_results, rasqal_query_results_init): Moved to rasqal_query_results.c and now public. (rasqal_query_execute): Moved bulk of code to new rasqal_engine_execute_order(). * src/rasqal_internal.h: Added prototypes for: rasqal_engine_execute_order, rasqal_engine_free_query_result_row, rasqal_engine_get_results_values, rasqal_engine_get_result_value, rasqal_engine_execute_next, rasqal_new_query_results and and rasqal_query_results_init. Removed several prototypes now not shared between modules (and moved to rasqal_engine.c): rasqal_query_results_init, rasqal_query_result_row_update, rasqal_query_results_update, rasqal_free_query_result_row, rasqal_query_result_row_print and rasqal_query_result_row_compare 2006-04-27 Dave Beckett * utils/roqet.c: (roqet_graph_pattern_walk): Use rasqal_graph_pattern_get_index * src/rasqal_graph_pattern.c: (rasqal_graph_pattern_get_index): Added. * src/rasqal.h: Added rasqal_graph_pattern_get_index prototype * utils/roqet.c: (roqet_graph_pattern_walk): Display the graph_pattern index * src/rasqal_graph_pattern.c: (rasqal_graph_pattern_print): Display the graph_pattern index * src/rasqal_graph_pattern.c: (rasqal_new_graph_pattern): Set unused gp_index to -1. * src/rasqal_engine.c: (rasqal_new_triples_source, rasqal_new_engine_execution_data, rasqal_engine_execute_init, rasqal_engine_execute_finish, rasqal_engine_do_optional_step, rasqal_engine_get_next_result, rasqal_engine_run): Take rasqal_query_results arg and use finish/failed fields off query_results. * src/rasqal_query_results.c: (rasqal_free_query_results): Call rasqal_engine_execute_finish. (rasqal_query_results_next, rasqal_query_results_finished, rasqal_query_results_get_bindings, rasqal_query_results_get_binding_value, rasqal_query_results_get_binding_name, rasqal_query_results_get_binding_value_by_name, rasqal_query_results_get_bindings_count, rasqal_query_results_get_triple, rasqal_query_results_next_triple, rasqal_query_results_get_boolean, rasqal_query_results_write): Use query_results->finished and failed. Tidy formatting and error check arguments for NULLs. * src/rasqal_query.c: (rasqal_free_query): Moved rasqal_engine_execute_finish to rasqal_free_query_results. (rasqal_query_results_update): Use query_results->finished and query_results arg for rasqal_engine_get_next_result. (rasqal_query_results_init): Init executed, abort, finished, failed and ask_result fields. (rasqal_query_execute): Remove init of query deleted fields finished, executed, ask_result. Use query_results->failed. Call rasqal_engine_execute_init and rasqal_engine_get_next_result with query_results arg. * src/rasqal_internal.h: rasqal_query_results gains fields abort, finished, executed, ask_result moved from rasqal_query rasqal_query_results gains failed field rasqal_engine_execute_init, rasqal_engine_execute_finish and rasqal_engine_run, rasqal_new_triples_source, rasqal_engine_get_next_result now take rasqal_query_results* args. * src/rasqal_query.c: (rasqal_query_prepare_count_graph_patterns): Return 0 * src/rasqal_engine.c: (rasqal_new_gp_data, rasqal_free_gp_data): Added. (rasqal_new_engine_execution_data, rasqal_free_engine_execution_data): Added to build query-engine-specific data for this query engine. (rasqal_engine_execute_init): Construct execution_data and store in the results. Run rasqal_query_results_init. (rasqal_engine_check_limit_offset): Use query_results arg. * src/rasqal_query_results.c: Updates to rename query->result_count to query_results->result_count * src/rasqal_query.c: (rasqal_query_prepare_count_graph_patterns): Added to give each graph pattern a unique index. (rasqal_query_prepare): Call rasqal_query_prepare_count_graph_patterns after all other graph pattern munging is finished to prepare for storing execution data per-gp. (rasqal_query_results_updaet): Rename query->result_count to query_results->result_count and rasqal_engine_check_limit_offset now taking a query_results arg. (rasqal_new_query_results): Added, pulled out of rasqal_query_execute. (rasqal_query_results_init): Added, to re-initialise a results object in-situ. (rasqal_query_execute): Use rasqal_new_query_results and update for query->result_count to query_results->result_count and rasqal_engine_check_limit_offset with query_results arg. * src/rasqal_graph_pattern.c: (rasqal_new_graph_pattern, rasqal_new_graph_pattern_from_triples, rasqal_new_graph_pattern_from_sequence): Protect from NULL query arg. (rasqal_new_graph_pattern_from_triples): Protect from NULL triples arg. * src/rasqal_internal.h: rasqal_graph_pattern_s gains a gp_index field to give each rasqal_graph_pattern a unique index rasqal_query_s loses result_count field and gains graph_pattern_count rasqal_engine_execution_data added with skeleton content rasqal_query_results_s gains result_count, execution_data and free_execution_data handler fields rasqal_engine_check_limit_offset now takes a rasqal_query_results parameter added prototype for rasqal_query_results_init 2006-04-26 Dave Beckett * src/rasqal.h: Added prototype for rasqal_query_get_anonymous_variable_sequence 2006-04-23 Dave Beckett * src/rasqal_query.c: (rasqal_query_get_anonymous_variable_sequence): Added to return only anonymous variables. (rasqal_query_get_all_variable_sequence): Corrected to match the definition - return all variables, not just the bound (SELECTed) ones. Fixes Issue#00000079 http://bugs.librdf.org/mantis/view.php?id=79 * docs/rasqal-sections.txt: Added rasqal_query_iostream_write_escaped_counted_string and rasqal_query_escape_counted_string * src/sparql_parser.y: (rasqal_sparql_query_engine_iostream_write_escaped_counted_string): Added to implement factory method iostream_write_escaped_counted_string * src/rasqal.h: Added prototypes for rasqal_query_iostream_write_escaped_counted_string and rasqal_query_escape_counted_string * src/rasqal_query.c: (rasqal_query_iostream_write_escaped_counted_string, rasqal_query_escape_counted_string): Added. * src/rasqal_internal.h: rasqal_query_engine_factory_s gains factory method iostream_write_escaped_counted_string 2006-04-22 Dave Beckett * tests/rdql/Makefile.am, tests/rdql/example_at_8.rdql: Remove obsolete syntax example_at_8.rdql * src/Makefile.am: tweak sibling raptor dir 2006-04-05 Dave Beckett * src/rasqal_query_results.c: Updated sparql json url 2006-03-27 Dave Beckett * win32/rasqal.vcproj: rasqal win32 build files update from John Barstow * src/win32_rasqal_config.h: rasqal win32 build files update from John Barstow * src/rasqal_expr.c: (rasqal_expression_convert_to_literal): Use standard memset not older bzero 2006-03-18 Dave Beckett * src/rasqal_query.c: (rasqal_query_write_sparql_uri): const for raptor_qname_get_namespace 2006-03-05 Dave Beckett * tests/sparql/check-sparql: Use -d debug as check-sparql relies on that to get var names * tests/rdql/testsuite/check-rdql: Use -d debug as check-sparql relies on that to get var names * tests/sparql/check-sparql: Update for new roqet args * tests/rdql/testsuite/check-rdql: Update for new roqet args * src/rasqal_query.c: (rasqal_query_write_sparql_20060125): Handle order conditions. * utils/roqet.c: -d/--dump-query now takes an argument with values 'debug' (same as old -d), 'structure' (same as -w) and new 'sparql' using rasqal_query_write -w deprectated for '-w structure' * configure.ac: Require raptor 1.4.9 now * src/rasqal_query.c: Fix AND and OR SPARQL write tokens. (rasqal_query_write_sparql_graph_pattern): Always print outer ()s for FILTER. 2006-03-05 Dave Beckett * src/rasqal_query.c: (rasqal_query_write): Added to write a query structure into a syntax onto a raptor_iostream. Implements writing SPARQL format when format_uri is NULL, http://www.w3.org/TR/rdf-sparql-query/ or http://www.w3.org/TR/2006/WD-rdf-sparql-query-20060220/ * src/rasqal.h: (rasqal_query_write): Added to write a query structure into a syntax onto a raptor_iostream. 2006-03-04 Dave Beckett * src/rdql_lexer.l: (rdql_copy_regex_token): Handle empty regex // Fixes issue#0000071 http://bugs.librdf.org/mantis/view.php?id=71 2006-02-19 Dave Beckett * src/fix-flex, src/fix-bison: 2006 * AUTHORS: update me 2006-02-16 Dave Beckett * src/rasqal_query_results.c: (rasqal_query_results_write_json1): Don't write a null * src/rasqal.h: doc fix. RASQAL_EXPR_REGEX not RASQAL_EXPR_STR_REGEX * src/rasqal_query_results.c: (rasqal_query_results_write_json1): Use raptor_iostream_write_string_ntriples to do at least some core needed escapes for writing URIs and literals as strings. * utils/roqet.c: Added -r json with format_uri http://www.mindswap.org/%7Ekendall/sparql-results-json/ * src/rasqal_query_results.c: (rasqal_query_results_write): Add JSON results with URI identifier http://www.mindswap.org/%7Ekendall/sparql-results-json/ (raptor_iostream_write_json_boolean): Added to support: (rasqal_query_results_write_json1): Added for SPARQL Query Results in JSON (http://json.org/) draft Defined in http://www.mindswap.org/%7Ekendall/sparql-results-json/ Version: alt-ser-sparql.rst,v 1.3 2006/02/16 16:03:08 k Exp * src/rasqal_internal.h: Add internal rasqal_prefix_id prototype * src/rasqal_query.c: (rasqal_prefix_id): Internal but no longer inline static. * src/Makefile.am, src/rasqal_internal.h, src/rasqal_query.c, src/rasqal_query_results.c: split query into query+results files * src/rasqal_query_results.c (from /rasqal/trunk/src/rasqal_query.c:5450): copied rasqal_query.c rasqal_query_results.c to split query from results 2006-01-22 Dave Beckett * tests/sparql/Expr1/Makefile.am, tests/sparql/Expr2/Makefile.am, tests/sparql/ExprBuiltins/Makefile.am, tests/sparql/ExprEquals/Makefile.am, tests/sparql/SyntaxDev/Syntax-SPARQL2/Makefile.am, tests/sparql/SyntaxDev/Syntax-SPARQL3/Makefile.am, tests/sparql/part1/Makefile.am, tests/sparql/survey/Makefile.am, tests/sparql/syntax/Makefile.am: Edit failures reporting message for consistency * tests/sparql/SyntaxDev/Syntax-SPARQL3/Makefile.am: All tests pass * tests/sparql/SyntaxDev/Syntax-SPARQL2/Makefile.am: All tests pass * tests/sparql/part1/Makefile.am: dawg-opt-query-003 passes (again). All tests now pass. * tests/sparql/ValueTesting/Makefile.am: adjust failures order to match manifest * tests/sparql/regex/Makefile.am: regex-query-003 passes. All tests now pass. * src/sparql_parser.y: (RegexExpression): Build new RASQAL_EXPR_REGEX expressions. * src/rasqal_engine.c: (rasqal_engine_check_constraint): On an error return - type error - return false rather than failing query. * src/rasqal_literal.c: (rasqal_literal_as_string_flags) :Added, with flags and error to allow default failure for as_string on URI literals when flags is set to RASQAL_COMPARE_XQUERY. (rasqal_literal_as_string): Rewritten to wrap rasqal_literal_as_string_flags. * src/rasqal_expr.c: (rasqal_new_3op_expression): Added, for new 3-expression arg RASQAL_EXPR_REGEX (rasqal_expression_clear, rasqal_expression_visit, rasqal_expression_evaluate, rasqal_expression_print, rasqal_expression_is_constant): Added support for RASQAL_EXPR_REGEX. (rasqal_expression_evaluate): Use rasqal_literal_as_string_flags for conversions and return failure if error is set. For EXPR_STR ignore RASQAL_COMPARE_XQUERY flag to allow explicit stringify to work. Add EXPR_REGEX using same code as RASQAL_EXPR_STR_N?MATCH but with expression arguments for literal and flags. Modify EXPR_CAST to use rasqal_literal_as_string_flags. (array rasqal_op_labels): Add regex. * src/rasqal.h: rasqal_op gains RASQAL_EXPR_REGEX value rasqal_expression gains arg3 field. Added rasqal_new_3op_expression for new 3-expression arg RASQAL_EXPR_REGEX Added rasqal_literal_as_string_flags * tests/sparql/examples/Makefile.am: sparql-query-example-e broken again * src/sparql_parser.y, src/sparql_lexer.l: Delete ~ token - long gone from SPARQL. * src/sparql_parser.y: Define DEBUG_FH as where debug messages go, rather than burn in stdout. * src/sparql_parser.y: (BasicGraphPatternRestOpt): Deleted, merged into BasicGraphPattern (GraphPattern): Added more verbose debug messages. (BasicGraphPattern): Inlined BasicGraphPatternRestOpt. This is now always a group. Constraint are moved from the empty graph pattern they are created on, onto the group graph pattern. BlockOfTriplesOpt is pushed to the start of the group each time. For the BasicGraphPattern alone, the new group is initialised, possibly being empty. * src/rasqal_query.c: (rasqal_query_prepare): Use a loop with a modified flag to repeat modifying query until nothing more is done. Add super verbose debug messages. Make rasqal_engine_merge_graph_patterns visit the query graph pattern. * src/rasqal_engine.c: (rasqal_engine_move_constraints): Added, to move constraints about when merging graph patterns in rasqal_engine_join_graph_patterns (rasqal_engine_merge_graph_patterns): Set modified flag when changes happen. If result is basic but contains graph patterns, turn it back to a group type. (rasqal_engine_merge_triples): Set modified flag. (rasqal_engine_remove_empty_group_graph_patterns): Added to remove empty - zero length - sequences of graph patterns in groups. * src/rasqal_internal.h: Add prototypes for rasqal_engine_remove_empty_group_graph_patterns and rasqal_engine_move_constraints * src/sparql_parser.y: Update for rq23 changes. (TriplesDotListOpt): Added. (TriplesSameSubject, TriplesSameSubjectDotListOpt, BlockOfTriplesOpt): Added, rougly replacing Triples and TriplesOpt. (BasicGraphPattern, BasicGraphPatternRestOpt): Added, roughly replacing GraphPattern1Opt * tests/sparql/examples/Makefile.am: sparql-query-example-e works again * tests/sparql/SyntaxDev/Makefile.am: Added check-sparql-correct to recursive rules * tests/sparql/Makefile.am: Added check-sparql-correct to recursive rules * src/rasqal_engine.c: (rasqal_engine_join_graph_patterns): Protect from NULL args. * src/rasqal_engine.c: (rasqal_engine_group_2_graph_patterns): Added. * src/rasqal_internal.h: Added prototype for rasqal_engine_group_2_graph_patterns * src/rasqal_engine.c: (rasqal_engine_new_graph_pattern_from_formula): Added. * src/rasqal_internal.h: Added prototypes for rasqal_formula_join and rasqal_engine_new_graph_pattern_from_formula * src/rasqal_literal.c: (rasqal_formula_join): Added. 2006-01-21 Dave Beckett * src/sparql_parser.y: (OrderCondition): Removed deprecated ASC[] and DESC[] syntax. * src/sparql_parser.y: (TriplesSameSubject): Renamed from Triples1, after rq23. * tests/sparql/part1/Makefile.am: dawg-opt-query-003 now fails * tests/sparql/examples/Makefile.am: sparql-query-example-e now fails * tests/sparql/ValueTesting/extendedType-ne-pass.rq: removed unused test extendedType-ne-pass.rq * tests/sparql/ValueTesting/Makefile.am: Remove extendedType-ne-pass.rq from distribution, old syntax and not in the dawg test suite. * tests/sparql/SyntaxFull/Makefile.am: Now no expected failures * src/sparql_parser.y: Put tests in debug messages around additional optional values. (FunctionCall): For a function with no arguments, create an empty sequence here as it is not done in ArgsList. * src/rasqal_query.c: (rasqal_query_prepare): Call rasqal_engine_build_constraints_expression here. * src/rasqal_engine.c: (rasqal_engine_prepare, rasqal_engine_merge_triples): Remove rasqal_engine_build_constraints_expression, done by rasqal_query_prepare. 2006-01-20 Dave Beckett * tests/sparql/SyntaxDev/Makefile.am: Added check-sparql-lexer and check-sparql-parser recursive tasks * tests/sparql/Makefile.am: Added check-sparql-lexer and check-sparql-parser recursive tasks * src/rasqal_graph_pattern.c: (rasqal_free_graph_pattern): Let raptor_free_sequence tidy up constraints and rasqal_free_expression do the tree of expressions. (rasqal_graph_pattern_add_constraint): Init destructor when making a new sequence. * src/rasqal_expr.c: (rasqal_expression_convert_to_literal): Copy usage to new expression literal. * src/rasqal_engine.c: (rasqal_engine_build_constraints_expression): Copy expressions when building, easier to keep clear. (rasqal_engine_join_graph_patterns): Tidy long line. Do not delete parts of source gp expressions, the destructor will do that anyway. 2006-01-17 Dave Beckett * src/sparql_parser.y: Major update to align with SPARQL grammar terms. Not yet completed. Down to 1 shift/reduce conflict Renamed many terms to match SPARQL (rq23) tokens. Subject => VarOrTerm, Predicate => Verb, PropertyList => PropertyListOpt, PropertyListTail => PropertyListTailOpt (PatternElement, PatternsEelementList, UnionGraphPattern, UnionGraphPatternList): Deleted (TriplesDotListOpt, Triples1 TriplesOpt, PropertyListNotEmpty, GroupOrUnionGraphPattern, GroupOrUnionGraphPatternList, GraphPatternNotTriples GraphPattern1Opt): Added. * src/fix-bison: Remove malloc/free prototypes * tests/sparql/ValueTesting/Makefile.am: sort test and query files by name * tests/sparql/ValueTesting/Makefile.am, tests/sparql/ValueTesting/boolean-0.n3, tests/sparql/ValueTesting/boolean-EBV-canonical-result.n3, tests/sparql/ValueTesting/boolean-EBV-canonical.rq, tests/sparql/ValueTesting/boolean-equiv-FALSE.rq, tests/sparql/ValueTesting/boolean-equiv-TRUE.rq, tests/sparql/ValueTesting/boolean-equiv-xsdType.rq, tests/sparql/ValueTesting/boolean-false-canonical-result.n3, tests/sparql/ValueTesting/boolean-false-canonical.rq, tests/sparql/ValueTesting/boolean-logical-OR.rq, tests/sparql/ValueTesting/boolean-true-canonical-result.n3, tests/sparql/ValueTesting/boolean-true-canonical.rq, tests/sparql/ValueTesting/manifest.n3: Added boolean-true-canonical boolean-EBV-canonical from DAWG CVS 2006-01-16 Dave Beckett * rasqal.rdf.in: use download.librdf.org * utils/roqet.1: Document --exec and update synopsis for exec use. * src/win32_rasqal_config.h, configure.ac: Bumped version to 0.9.12 2006-01-15 Dave Beckett * tests/rdql/testsuite/README-RDQL-tests.txt, tests/rdql/testsuite/copyright.txt, tests/rdql/testsuite/model0.nt, tests/rdql/testsuite/model1.nt, tests/rdql/testsuite/model2.nt, tests/rdql/testsuite/model3.nt, tests/rdql/testsuite/model4.nt, tests/rdql/testsuite/model5.nt, tests/rdql/testsuite/model5.rdf, tests/rdql/testsuite/model6.nt, tests/rdql/testsuite/model7.nt, tests/rdql/testsuite/model8.n3, tests/rdql/testsuite/model9.n3, tests/rdql/testsuite/modelA.nt, tests/rdql/testsuite/query-dump, tests/rdql/testsuite/result-0-01.n3, tests/rdql/testsuite/result-0-02.n3, tests/rdql/testsuite/result-0-04.n3, tests/rdql/testsuite/result-1-01.n3, tests/rdql/testsuite/result-1-02.n3, tests/rdql/testsuite/result-1-03.n3, tests/rdql/testsuite/result-1-04.n3, tests/rdql/testsuite/result-1-08.n3, tests/rdql/testsuite/result-2-01.n3, tests/rdql/testsuite/result-2-02.n3, tests/rdql/testsuite/result-2-04.n3, tests/rdql/testsuite/result-2-05.n3, tests/rdql/testsuite/result-2-06.n3, tests/rdql/testsuite/result-2-07.n3, tests/rdql/testsuite/result-2-08.n3, tests/rdql/testsuite/result-2-09.n3, tests/rdql/testsuite/result-2-10.n3, tests/rdql/testsuite/result-3-01.n3, tests/rdql/testsuite/result-3-02.n3, tests/rdql/testsuite/result-3-03.n3, tests/rdql/testsuite/result-3-04.n3, tests/rdql/testsuite/result-3-05.n3, tests/rdql/testsuite/result-3-06.n3, tests/rdql/testsuite/result-3-07.n3, tests/rdql/testsuite/result-4-01.n3, tests/rdql/testsuite/result-4-02.n3, tests/rdql/testsuite/result-4-03.n3, tests/rdql/testsuite/result-4-04.n3, tests/rdql/testsuite/result-4-05.n3, tests/rdql/testsuite/result-4-06.n3, tests/rdql/testsuite/result-4-07.n3, tests/rdql/testsuite/result-5-01.n3, tests/rdql/testsuite/result-5-03.n3, tests/rdql/testsuite/result-5-04.n3, tests/rdql/testsuite/result-6-01.n3, tests/rdql/testsuite/result-6-03.n3, tests/rdql/testsuite/result-6-04.n3, tests/rdql/testsuite/result-7-01.n3, tests/rdql/testsuite/result-7-02.n3, tests/rdql/testsuite/result-7-03.n3, tests/rdql/testsuite/result-7-04.n3, tests/rdql/testsuite/result-8-01.n3, tests/rdql/testsuite/result-8-02.n3, tests/rdql/testsuite/result-8-03.n3, tests/rdql/testsuite/result-8-04.n3, tests/rdql/testsuite/result-8-05.n3, tests/rdql/testsuite/result-9-01.n3, tests/rdql/testsuite/result-9-02.n3, tests/rdql/testsuite/result-A-01.n3, tests/rdql/testsuite/result-A-02.n3, tests/rdql/testsuite/result-B-01.n3, tests/rdql/testsuite/result-B-02.n3, tests/rdql/testsuite/result-B-03.n3, tests/rdql/testsuite/result-B-04.n3, tests/rdql/testsuite/result-B-05.n3, tests/rdql/testsuite/result-B-06.n3, tests/rdql/testsuite/result-B-08.n3, tests/rdql/testsuite/result-B-09.n3, tests/rdql/testsuite/result-B-10.n3, tests/rdql/testsuite/result-B-11.n3, tests/rdql/testsuite/result-B-12.n3, tests/rdql/testsuite/result-B-13.n3, tests/rdql/testsuite/result-B-14.n3, tests/rdql/testsuite/result-B-15.n3, tests/rdql/testsuite/result-B-16.n3, tests/rdql/testsuite/result-B-17.n3, tests/rdql/testsuite/result-B-18.n3, tests/rdql/testsuite/result-B-19.n3, tests/rdql/testsuite/result-B-20.n3, tests/rdql/testsuite/result-S-02.n3, tests/rdql/testsuite/result-S-03.n3, tests/rdql/testsuite/result-S-04.n3, tests/rdql/testsuite/result-S-05.n3, tests/rdql/testsuite/result-T-02.n3, tests/rdql/testsuite/result-T-03.n3, tests/rdql/testsuite/result-T-04.n3, tests/rdql/testsuite/result-T-06.n3, tests/rdql/testsuite/result-T-09.n3, tests/rdql/testsuite/test-0-01, tests/rdql/testsuite/test-0-02, tests/rdql/testsuite/test-0-03, tests/rdql/testsuite/test-0-04, tests/rdql/testsuite/test-1-01, tests/rdql/testsuite/test-1-02, tests/rdql/testsuite/test-1-03, tests/rdql/testsuite/test-1-04, tests/rdql/testsuite/test-1-05, tests/rdql/testsuite/test-1-06, tests/rdql/testsuite/test-1-07, tests/rdql/testsuite/test-1-08, tests/rdql/testsuite/test-1-09, tests/rdql/testsuite/test-1-10, tests/rdql/testsuite/test-2-01, tests/rdql/testsuite/test-2-02, tests/rdql/testsuite/test-2-03, tests/rdql/testsuite/test-2-04, tests/rdql/testsuite/test-2-05, tests/rdql/testsuite/test-2-06, tests/rdql/testsuite/test-2-07, tests/rdql/testsuite/test-2-08, tests/rdql/testsuite/test-2-09, tests/rdql/testsuite/test-2-10, tests/rdql/testsuite/test-3-01, tests/rdql/testsuite/test-3-02, tests/rdql/testsuite/test-3-03, tests/rdql/testsuite/test-3-04, tests/rdql/testsuite/test-3-05, tests/rdql/testsuite/test-3-06, tests/rdql/testsuite/test-3-07, tests/rdql/testsuite/test-4-01, tests/rdql/testsuite/test-4-02, tests/rdql/testsuite/test-4-03, tests/rdql/testsuite/test-4-04, tests/rdql/testsuite/test-4-05, tests/rdql/testsuite/test-4-06, tests/rdql/testsuite/test-4-07, tests/rdql/testsuite/test-5-01, tests/rdql/testsuite/test-5-02, tests/rdql/testsuite/test-5-03, tests/rdql/testsuite/test-5-04, tests/rdql/testsuite/test-6-01, tests/rdql/testsuite/test-6-02, tests/rdql/testsuite/test-6-03, tests/rdql/testsuite/test-6-04, tests/rdql/testsuite/test-7-01, tests/rdql/testsuite/test-7-02, tests/rdql/testsuite/test-7-03, tests/rdql/testsuite/test-7-04, tests/rdql/testsuite/test-8-01, tests/rdql/testsuite/test-8-02, tests/rdql/testsuite/test-8-03, tests/rdql/testsuite/test-8-04, tests/rdql/testsuite/test-8-05, tests/rdql/testsuite/test-9-01, tests/rdql/testsuite/test-9-02, tests/rdql/testsuite/test-A-01, tests/rdql/testsuite/test-A-02, tests/rdql/testsuite/test-B-01, tests/rdql/testsuite/test-B-02, tests/rdql/testsuite/test-B-03, tests/rdql/testsuite/test-B-04, tests/rdql/testsuite/test-B-05, tests/rdql/testsuite/test-B-06, tests/rdql/testsuite/test-B-07, tests/rdql/testsuite/test-B-08, tests/rdql/testsuite/test-B-09, tests/rdql/testsuite/test-B-10, tests/rdql/testsuite/test-B-11, tests/rdql/testsuite/test-B-12, tests/rdql/testsuite/test-B-13, tests/rdql/testsuite/test-B-14, tests/rdql/testsuite/test-B-15, tests/rdql/testsuite/test-B-16, tests/rdql/testsuite/test-B-17, tests/rdql/testsuite/test-B-18, tests/rdql/testsuite/test-B-19, tests/rdql/testsuite/test-B-20, tests/rdql/testsuite/test-S-01, tests/rdql/testsuite/test-S-02, tests/rdql/testsuite/test-S-03, tests/rdql/testsuite/test-S-04, tests/rdql/testsuite/test-S-05, tests/rdql/testsuite/test-T-01, tests/rdql/testsuite/test-T-02, tests/rdql/testsuite/test-T-03, tests/rdql/testsuite/test-T-04, tests/rdql/testsuite/test-T-05, tests/rdql/testsuite/test-T-06, tests/rdql/testsuite/test-T-07, tests/rdql/testsuite/test-T-08, tests/rdql/testsuite/test-T-09, tests/rdql/testsuite/test-T-10, tests/rdql/testsuite/vc-db-1.rdf, tests/rdql/testsuite/vc-db-2.rdf, tests/rdql/testsuite/vc-db-3.rdf: Restore CRLF end of lines, set svn:eol-style CRLF * win32/rasqal.dsp, win32/rasqal.dsw, win32/rasqal.vcproj: Restore CRLF end of lines, set svn:eol-style CRLF * src/rdql_lexer.l: Fix C++ comment regex to work with multiple line endings. * .cvsignore, data/.cvsignore, docs/.cvsignore, src/.cvsignore, tests/.cvsignore, tests/rdql/.cvsignore, tests/rdql/testsuite/.cvsignore, tests/sparql/.cvsignore, tests/sparql/Expr1/.cvsignore, tests/sparql/Expr2/.cvsignore, tests/sparql/ExprBuiltins/.cvsignore, tests/sparql/ExprEquals/.cvsignore, tests/sparql/SyntaxDev/.cvsignore, tests/sparql/SyntaxDev/Syntax-SPARQL/.cvsignore, tests/sparql/SyntaxDev/Syntax-SPARQL2/.cvsignore, tests/sparql/SyntaxDev/Syntax-SPARQL3/.cvsignore, tests/sparql/SyntaxFull/.cvsignore, tests/sparql/ValueTesting/.cvsignore, tests/sparql/bound/.cvsignore, tests/sparql/examples/.cvsignore, tests/sparql/part1/.cvsignore, tests/sparql/regex/.cvsignore, tests/sparql/simple/.cvsignore, tests/sparql/sort/.cvsignore, tests/sparql/survey/.cvsignore, tests/sparql/syntax/.cvsignore, utils/.cvsignore, win32/.cvsignore: Delete .cvsignore * Switched to Subversion version control. CVS tag for rasqal 0.9.11: rasqal_0_9_11 Subversion revision ID for rasqal 0.9.11: r5375 * Snapshotted rasqal_0_9_11 for 0.9.11 release * docs/librasqal.3: Updates for 0.9.11 * fix-groff-xhtml: style edits * src/rasqal_query.c: Change results indexing when using ORDER; the query->results_count is now a count (again) so starts from 1 when there is at least 1 result, indexing into item 0 of the query->results_sequence sequence. (rasqal_query_results_update): If result_count goes beyond range, adjust it down and return. (rasqal_query_execute): If a results sequence is created, but it is empty, set result count to 0, otherwise immediately check if it is finished by the limit/offset rules. (rasqal_query_results_next): Check result_count is finished and adjust down if it was. (rasqal_query_results_get_bindings, rasqal_query_results_get_binding_value, rasqal_query_results_get_binding_value_by_name): Adjusted to use result_count offset -1. Fixes Issue#0000064 - http://bugs.librdf.org/mantis/view.php?id=64 * src/rasqal_engine.c (rasqal_engine_check_limit_offset): Do not muck about with result_count here. 2006-01-12 Dave Beckett * tests/sparql/ValueTesting/Makefile.am: Add boolean tests to dist. * src/rasqal_literal.c (rasqal_literal_string_to_native): Accept "1" as an xsd:boolean true. 2006-01-11 Dave Beckett * tests/sparql/ValueTesting/boolean-0.n3, tests/sparql/ValueTesting/boolean-equiv-FALSE-result.n3, tests/sparql/ValueTesting/boolean-equiv-FALSE.rq, tests/sparql/ValueTesting/boolean-equiv-TRUE-result.n3, tests/sparql/ValueTesting/boolean-equiv-TRUE.rq, tests/sparql/ValueTesting/boolean-equiv-xsdType-result.n3, tests/sparql/ValueTesting/boolean-equiv-xsdType.rq, tests/sparql/ValueTesting/boolean-logical-OR-result.n3, tests/sparql/ValueTesting/boolean-logical-OR.rq, tests/sparql/ValueTesting/manifest.n3: Added more boolean tests from DAWG (unapproved) 2006-01-10 Dave Beckett * src/rasqal_engine.c (rasqal_graph_pattern_get_next_match, rasqal_engine_get_next_result): Return errors when query fails due to unimplemented sequence/union of graph patterns. * src/rasqal_query.c (rasqal_query_results_get_triple, rasqal_query_results_next_triple): Do not crash with DESCRIBE, return an empty graph always. Fixes Issue#0000050 - http://bugs.librdf.org/mantis/view.php?id=50 2006-01-06 Dave Beckett * configure.ac: Add --disable-pcre and --disable-xml2 options to configure to prevent automatic use of libpcre or libxml2 when found. Patch from Mike Frysinger. Addresses Issue#0000052 - http://bugs.librdf.org/mantis/view.php?id=52 * src/rasqal.h: rasqal_op: RASQAL_EXPR_LANGMATCHES is last * src/rasqal_expr.c (rasqal_expression_evaluate): Make LANG() return "" for non-literals as tests depend on it. Return "" not "-". Update LANGMATCHES() to make the wildcard the second arg; still does not do proper subtag matches. * tests/sparql/ExprBuiltins/Makefile.am: q-langMatches-1 works 2006-01-05 Dave Beckett * src/rasqal_query.c: Do not emit XML header here as raptor 1.4.8 xml writer does that automatically now. 2006-01-03 Dave Beckett * tests/sparql/ValueTesting/Makefile.am: Added expected test failures: typePromotion-decimal-decimal-fail * tests/sparql/ExprBuiltins/Makefile.am: Added expected test failures: datatype-1 LangMatches-1 LangMatches-2 LangMatches-3 LangMatches-4 * tests/sparql/ExprBuiltins/data-builtin-1.ttl, tests/sparql/ExprBuiltins/data-langMatches.ttl, tests/sparql/ExprBuiltins/manifest.ttl, tests/sparql/ExprBuiltins/q-iri-1.rq, tests/sparql/ExprBuiltins/q-langMatches-1.rq, tests/sparql/ExprBuiltins/q-langMatches-2.rq, tests/sparql/ExprBuiltins/q-langMatches-3.rq, tests/sparql/ExprBuiltins/q-langMatches-4.rq, tests/sparql/ExprBuiltins/result-iri-1.ttl, tests/sparql/ExprBuiltins/result-langMatches-1.ttl, tests/sparql/ExprBuiltins/result-langMatches-2.ttl, tests/sparql/ExprBuiltins/result-langMatches-3.ttl, tests/sparql/ExprBuiltins/result-langMatches-4.ttl, tests/sparql/ExprBuiltins/result-str-4.ttl, tests/sparql/ExprEquals/result-eq2-1.ttl, tests/sparql/ExprEquals/result-eq2-graph-1.ttl, tests/sparql/ValueTesting/dateTime-tz0.rq, tests/sparql/ValueTesting/dateTime-tz1.rq, tests/sparql/ValueTesting/extendedType-ne-pass.rq, tests/sparql/ValueTesting/manifest.n3, tests/sparql/ValueTesting/roman-result.n3, tests/sparql/ValueTesting/typePromotion-0.n3, tests/sparql/ValueTesting/typePromotion-decimal-decimal-fail-result.n3, tests/sparql/ValueTesting/typePromotion-decimal-decimal-fail.rq, tests/sparql/ValueTesting/typePromotion-decimal-decimal-pass-result.n3, tests/sparql/ValueTesting/typePromotion-decimal-decimal-pass.rq: Updated DAWG test cases from CVS 2006-01-02 2006-01-02 Dave Beckett * tests/sparql/ExprEquals/result-eq2-graph-1.ttl: new result * docs/tmpl/section-literal.sgml: Added rasqal_new_decimal_literal * docs/tmpl/section-expression.sgml: Added @RASQAL_EXPR_LANGMATCHES: * src/rasqal_literal.c: autodocs * docs/rasqal-sections.txt: Added rasqal_new_decimal_literal * src/sparql_parser.y: Updates for SPARQL Query Language for RDF, 23 November 2005 http://www.w3.org/TR/2005/WD-rdf-sparql-query-20051123/ Including many renamings of tokens to match grammar. (DECIMAL_LITERAL): Added. (GraphNodeListNotEmpty): Renamed from ItemList (GraphNode): Renamed from Object (GraphTerm): Renamed from RDFTerm. Added DECIMAL_LITERAL option. (VarOrTerm): Added. (VarOrBnodeOrURI): Replaced by VarOrBlankNodeOrIRIref. (Select/Construct/Describe/AskQuery): Renamed from *Clause. (Prolog): Re-added. (BuiltInCall): Added LANGMATCHES option. * src/sparql_lexer.l (DECIMAl, DOUBLE, EXPONENT): Added. Support SPARQL decimal and double literal syntax and return new DECIMAL_LITERAL when there is a '.' else FLOATING_LITERAL with an EXPONENT * src/rasqal_literal.c (rasqal_new_decimal_literal): Added to make a decimal literal (xsd:decimal). * src/rasqal.h: Added prototype for rasqal_new_decimal_literal * tests/sparql/SyntaxDev/Syntax-SPARQL2/Makefile.am: syntax-general-03.rq and syntax-function-01.rq now work (7 failures remain) * tests/sparql/ExprEquals/result-eq2-1.ttl, tests/sparql/ExprEquals/query-eq-2.rq, tests/sparql/ExprEquals/query-eq-graph-2.rq, tests/sparql/ExprEquals/Makefile.am, tests/sparql/ExprEquals/data-eq.ttl, tests/sparql/ExprEquals/manifest.n3: Updates for decimal syntax changes and equality rules 2006-01-01 Dave Beckett * src/sparql_parser.y (PrefixDeclOpt): gcc const string warning fix. * src/sparql_parser.y (PrefixDeclOpt): Generate a warning if a PREFIX appears more than once. Check added after update in http://www.w3.org/TR/2005/WD-rdf-sparql-query-20051123/ * src/rasqal_expr.c (rasqal_expression_evaluate): Added SPARQL trinary logic evaluation of AND and OR expressions for T,F,E following the truth table in http://www.w3.org/TR/2005/WD-rdf-sparql-query-20051123/#truthTable * src/rasqal_expr.c (rasqal_expression_clear, rasqal_expression_visit, rasqal_expression_print, rasqal_expression_is_constant): Added SPARQL_EXPR_LANGMATCHEs to switch statements as a new 2-argument expression. (rasqal_expression_evaluate): Added a simple evaluation for SPARQL_EXPR_LANGMATCHES that handles '*' and otherwise does a case independent string compare. This is not a full implementation by any means. Support for the new SPARQL keyword langMatches added in http://www.w3.org/TR/2005/WD-rdf-sparql-query-20051123/ * src/sparql_parser.y (BuiltInCall): Added SPARQL langMatches 2-argument expresson after addition in http://www.w3.org/TR/2005/WD-rdf-sparql-query-20051123/ * src/rasqal.h: Added SPARQL_EXPR_LANGMATCHES for SPARQL langMatches expression * src/sparql_lexer.l: Allow _ at the start of sparql variable names, as changed in http://www.w3.org/TR/2005/WD-rdf-sparql-query-20051123/ (enum sparql_name_check_flags): Remove SPARQL_NAME_CHECK_NO_UL_FIRST for varname. (NCCHAR1p): Renamed from NCCHAR1 - no _. (NCCHAR1): Added to aloow _ (VARNAME, NCCHAR, NCNAME): No need to use _ here, NCCHAR1 has it. (NCNAME_PREFIX): Use NCCHAR1p at start, no _ still. * src/sparql_lexer.l, src/sparql_parser.y: Added LANGMATCHES token (case independent) new in http://www.w3.org/TR/2005/WD-rdf-sparql-query-20051123/ * src/sparql_lexer.l: Allow isiri (case independent) returning ISURI token