EVOLUTION-MANAGER
Edit File: ChangeLog
2013-01-22 Dave Beckett <dave@dajobe.org> * Snapshotted rasqal_0_9_30 for 0.9.30 release (GIT f5d0537a0ab15b70d24813b2d6d7ceb922a1356c) * configure.ac: Report UUID library version in status * configure.ac: Initialize have_uuid_ossp=no * configure.ac, src/rasqal_expr_numerics.c: Add support for OSSP libuuid Library is from http://www.ossp.org/pkg/lib/uuid/ Fixes Issue #0000511 http://bugs.librdf.org/mantis/view.php?id=511 * configure.ac: When cross compiling, assume ceil, floor and round are in default libs Fixes Issue #0000517 http://bugs.librdf.org/mantis/view.php?id=517 2012-12-16 Dave Beckett <dave@dajobe.org> * src/sparql_parser.y, tests/sparql/bugs/519-result.ttl, tests/sparql/bugs/519.rq, tests/sparql/bugs/519.ttl, tests/sparql/bugs/Makefile.am, tests/sparql/bugs/manifest.ttl: Support integer^^uri-ref Adds tests for this fix Fixes Issue #0000519 http://bugs.librdf.org/mantis/view.php?id=519 * src/sparql_parser.y: Label HATHAT * configure.ac: Test for mpfr_snprintf for MPFR 2.4.0 Fixes Issue #0000523 http://bugs.librdf.org/mantis/view.php?id=523 2012-09-30 Dave Beckett <dave@dajobe.org> * src/rasqal_literal.c: Return rdf term type string for integer subtypes (rasqal_literal_get_rdf_term_type): Return string for RASQAL_LITERAL_INTEGER_SUBTYPE. Intended to fix Issue #0000519 http://bugs.librdf.org/mantis/view.php?id=519 2012-08-31 Dave Beckett <dave@dajobe.org> * autogen.sh, configure.ac: Updated configure.ac via autoupdate * autogen.sh: autogen.sh: Added -Wall to aclocal and autoconf invocations 2012-07-29 Dave Beckett <dave@dajobe.org> * src/sparql_lexer.l: Restore bison 2.6 prototypes * configure.ac: BISON_MIN_VERSION 2.0 (2004-12-25) until we hear otherwise * src/sparql_lexer.l, src/sparql_parser.y: Restore BISON prototypes for BISON < 2.6 * configure.ac: Add version check for bison and define BISON_VERSION * src/sparql_lexer.l, src/sparql_parser.y: Fixes for Bison 2.6 Remove prototypes that are now generated/defined Declare YYPARSE_PARAM in lexer and header two more times so that #include <sparql_parser.h> gets the right thing. * configure.ac: Fix for flex version message from OSX The Apple /usr/bin/flex adds an extra field so $NF does not work 2012-07-15 Dave Beckett <dave@dajobe.org> * src/rasqal_internal.h, src/rasqal_xsd_datatypes.c: lose const const 2012-07-07 Dave Beckett <dave@dajobe.org> * src/rasqal_expr_evaluate.c: (rasqal_expression_evaluate): memset to char 0 not size 0 [gcc warnings] 2012-07-01 Dave Beckett <dave@dajobe.org> * src/rasqal_query_results.c: (rasqal_literal_to_result_term): Return NULL on alloc failure * docs/tmpl/section-literal.sgml: Update tmpls * src/rasqal_literal.c: (rasqal_new_floating_literal): autodocs * docs/rasqal-changes.tsv, docs/rasqal-sections.txt: Add rasqal_new_floating_literal to docs * docs/Makefile.am, src/rasqal_datetime.c, src/rasqal_expr_evaluate.c, src/rasqal_general.c, src/rasqal_literal.c, src/rasqal_query.c: Allow RASQAL_DISABLE_DEPRECATED to flag out deprecated implementations (docs/Makefile.am SCAN_OPTIONS):: invoke gtkdoc-scan with the deprecated guard. * configure.ac: Set automake -W and gcc -W to same as librdf * src/rasqal_algebra.c, src/rasqal_dataset.c, src/rasqal_format_rdf.c, src/rasqal_format_sparql_xml.c, src/rasqal_literal.c, src/rasqal_query_transform.c, src/rasqal_random.c, src/rasqal_raptor.c, src/rasqal_result_formats.c, src/rasqal_row_compatible.c, src/rasqal_rowsource_aggregation.c, src/sparql_lexer.l, src/sparql_parser.y: Condition all #if RASQAL_DEBUG with #if defined() [gcc warnings] 2012-06-26 Dave Beckett <dave@dajobe.org> * src/rasqal_rowsource_project.c: project rowsource array is int not int* [clang] (rasqal_project_rowsource_ensure_variables) (rasqal_project_rowsource_finish): alloc array of int not int* * Makefile.am: EXTRA_DIST: Remove ChangeLog NEWS since they are in dist by default * src/rasqal_decimal.c: Use rasqal_double_approximately_* utilities for RASQAL_DECIMAL_C99 (rasqal_xsd_decimal_is_zero): Use fabs and RASQAL_DOUBLE_EPSILON for RASQAL_DECIMAL_C99. Tidy code (rasqal_xsd_decimal_compare): raw not row RASQAL_DECIMAL_C99 Remove unused d. (rasqal_xsd_decimal_equals): Use rasqal_double_approximately_equal. * autogen.sh: autogen.sh updates - Abort run if a configuring program fails. - Generate NEWS with old timestamp if missing so automake can run - small doc and message updates 2012-06-25 Dave Beckett <dave@dajobe.org> * src/rasqal_double.c: docs * src/rasqal_decimal.c, src/rasqal_literal.c, src/rasqal_rowsource_aggregation.c: Update code to use double approximate compare, equality. (rasqal_xsd_decimal_compare): Call rasqal_double_approximately_compare. (rasqal_literal_equals_flags): Call rasqal_double_approximately_equal(). Update test code to use rasqal_double_approximately_equal for checking results. * src/Makefile.am, src/rasqal_double.c, src/rasqal_internal.h: Add double utilities (rasqal_double_approximately_compare) (rasqal_double_approximately_equal): Added based on Knuth's approximate comparison. * src/rasqal_decimal.c, src/rasqal_rowsource_aggregation.c: More float and epsilons * src/rasqal.h.in, src/rasqal_internal.h, src/rasqal_literal.c: Add rasqal_new_floating_literal and use only double arithmetic (rasqal_new_floating_literal): Added, deprecating rasqal_new_float_literal. (rasqal_new_double_literal, rasqal_new_float_literal): Now both wrappers for rasqal_new_floating_literal. (rasqal_new_numeric_literal): Use rasqal_new_floating_literal() for a float. (rasqal_literal_as_floating): Removed. (rasqal_new_literal_from_promotion): Always use rasqal_literal_as_double() for a double and then error out if it is outside of the float MIN...MAX range. (rasqal_literal_equals_flags): Set error if equality fails. * configure.ac, src/rasqal_decimal.c, src/rasqal_internal.h, src/rasqal_literal.c: Use careful double comparison Use fabs and RASQAL_DOUBLE_EPSILON which picks up epsilon value from float.h Add float.h check to configure (rasqal_format_integer, rasqal_literal_as_boolean, rasqal_literal_equals_flags): Update to use RASQAL_DOUBLE_EPSILON * src/rasqal_internal.h, src/rasqal_literal.c, src/rasqal_xsd_datatypes.c: Use RASQAL_FLOATING_AS_INT for casts that go double to int * configure.ac: Add -Wfloat-equal and -Wundef to gcc warnings Document -Wformat-nonliteral issue too * utils/roqet.c: Improve range truncation in function arguments (roqet_write_indent): Good cast sp since we know it will fit in int. (roqet_init_query): Cast static length. (print_help, main): Use unsigned int for indexes into descriptive info calls * src/rasqal.h.in, src/rasqal_data_graph.c: (rasqal_new_data_graph_from_iostream): Take unsigned int flags. 2012-06-22 Dave Beckett <dave@dajobe.org> * README.html: Add notes on implemented parts of SPARQL 1.1 2012-06-18 Dave Beckett <dave@dajobe.org> * configure.ac, src/rasqal_expr_numerics.c: Support UUID support inside libc for OSX 2012-06-17 Dave Beckett <dave@dajobe.org> * autogen.sh: Support NOCONFIGURE variable, like Lib{XML2,XSLT} 2012-05-20 Dave Beckett <dave@dajobe.org> * configure.ac: Fix non-POSIX bash syntax == to = 2012-05-14 Dave Beckett <dave@dajobe.org> * rasqal.rdf.in, rasqal.spec.in: Update package files to remove RDQL * src/rasqal.h.in, src/rasqal_expr.c, src/rasqal_literal.c, src/rasqal_query.c, src/rasqal_query_transform.c, src/rasqal_regex.c: Update autodocs to mark rdql support as legacy * src/rasqal_internal.h: Remove rasqal_init_query_language_rdql internal prototype * INSTALL.html, README.html, configure.ac, src/Makefile.am, src/rasqal_general.c, src/rasqal_query_test.c, src/rdql_common.h, src/rdql_lexer.l, src/rdql_parser.y, src/win32_rasqal_config.h.in, tests/Makefile.am, tests/rdql/Makefile.am, tests/rdql/dc.rdf, tests/rdql/example1.rdql, tests/rdql/example2.rdql, tests/rdql/example3.rdql, tests/rdql/example4.rdql, tests/rdql/example5.rdql, tests/rdql/example_at_1.rdql, tests/rdql/example_at_2.rdql, tests/rdql/example_at_3.rdql, tests/rdql/example_at_4.rdql, tests/rdql/example_at_5.rdql, tests/rdql/example_at_6.rdql, tests/rdql/example_at_7.rdql, tests/rdql/note-ex1.rdql, tests/rdql/note-ex2.rdql, tests/rdql/note-ex3.rdql, tests/rdql/note-ex4.rdql, tests/rdql/testsuite/Makefile.am, tests/rdql/testsuite/README, tests/rdql/testsuite/README-RDQL-tests.txt, tests/rdql/testsuite/check-rdql, 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/rdql-tests.n3, tests/rdql/testsuite/result-0-01.n3, tests/rdql/testsuite/result-0-02.n3, tests/rdql/testsuite/result-0-03.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-05.n3, tests/rdql/testsuite/result-1-06.n3, tests/rdql/testsuite/result-1-07.n3, tests/rdql/testsuite/result-1-08.n3, tests/rdql/testsuite/result-1-09.n3, tests/rdql/testsuite/result-1-10.n3, tests/rdql/testsuite/result-2-01.n3, tests/rdql/testsuite/result-2-02.n3, tests/rdql/testsuite/result-2-03.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-02.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-02.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-07.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-01.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-01.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-05.n3, tests/rdql/testsuite/result-T-06.n3, tests/rdql/testsuite/result-T-07.n3, tests/rdql/testsuite/result-T-08.n3, tests/rdql/testsuite/result-T-09.n3, tests/rdql/testsuite/result-T-10.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/tests2turtle.patch, tests/rdql/testsuite/vc-db-1.rdf, tests/rdql/testsuite/vc-db-2.rdf, tests/rdql/testsuite/vc-db-3.rdf, utils/roqet.1: Remove RDQL * ChangeLog, ChangeLog.9, Makefile.am: ChangeLog.9 for 2011 2012-05-13 Dave Beckett <dave@dajobe.org> * NEWS.html, RELEASE.html, configure.ac: Bumped version to 0.9.30 * Snapshotted rasqal_0_9_29 for 0.9.29 release (GIT b208e046859c86859449efe2985aca4a3c1bba91) * src/rasqal_query_transform.c: (rasqal_query_prepare_common): Ignore always 0 GP visit return [clang] * src/rasqal_expr_numerics.c: (rasqal_expression_evaluate_uuid): Free URI string when want_uri * src/rasqal_expr_strings.c: Free input literals to strbefore() and strafter() (rasqal_expression_evaluate_strbefore) (rasqal_expression_evaluate_strafter): Free the input literals on success before returning the result * src/rasqal_datetime.c: (rasqal_xsd_datetime_set_from_timeval): Initialise have_tz to Z * src/rasqal_expr_datetimes.c: Free input literals to timezone() and tz() evaluations (rasqal_expression_evaluate_datetime_timezone) (rasqal_expression_evaluate_datetime_tz): Free the input literals on success before returning the result * NEWS.html, RELEASE.html: 0.9.29 * src/rasqal_variable.c: Added variable usage debugging if define RASQAL_DEBUG_VARIABLE_USAGE set * src/rasqal_rowsource_assignment.c: (rasqal_new_assignment_rowsource): Take reference to input var * src/rasqal_projection.c: docs * src/rasqal_query.c: remove dup bound variables print * src/sparql_parser.y: Fix sparql_uri_applies destructor (GraphRefAll): Call it too. * src/sparql_parser.y: (ConstructQuery): !where_gp is a failure * src/sparql_parser.y: (ConstructQuery): Test where_gp not undefined var * src/rasqal_graph_pattern.c: (rasqal_free_graph_pattern): Free variable 2012-05-12 Dave Beckett <dave@dajobe.org> * src/rasqal_rowsource.c: Fix rowsequence reference loss (rasqal_rowsource_read_row): If calling rasqal_rowsource_read_all_rows internally, do not overwrite a rows_sequence pointer. (rasqal_rowsource_read_all_rows): Code tidy to aid debugging Report saving rows in debug message * src/rasqal_rowsource.c: Code indenting 2012-05-11 Dave Beckett <dave@dajobe.org> * src/rasqal_engine_sort.c: docs * src/sparql_parser.y: Fix literal reference count loss in BindingsRow (BindingsRow): Do not need to copy literal, rasqal_row_set_value_at does it. * src/rasqal_engine_sort.c, src/rasqal_literal.c, src/rasqal_map.c: Pass obj pointers into rasqal_map compare callback 2012-05-10 Dave Beckett <dave@dajobe.org> * src/rasqal_literal.c: (rasqal_literal_set_typed_value): free old strings on decimal promotion. * src/rasqal_literal.c: (rasqal_literal_set_typed_value): remove decimal string ownership * src/rasqal_general.c, src/rasqal_internal.h: Move git-version.h include to just one module to speed up recompiles. * src/rasqal_literal.c: (rasqal_literal_set_typed_value): remember string ownership for decimal * src/rasqal_literal.c: (rasqal_literal_set_typed_value): use string for decimal * src/rasqal_literal.c: != !! * src/rasqal_literal.c: (rasqal_literal_set_typed_value): handle reuse of old decimal string * src/rasqal_literal.c: (rasqal_literal_set_typed_value): clear shared decimal string on free 2012-05-09 Dave Beckett <dave@dajobe.org> * README.html: html * utils/roqet.1, utils/roqet.c: Add -d none option and make it default. * src/rasqal_expr_strings.c: (rasqal_expression_evaluate_concat): Do not copy NULL URI * src/rasqal_literal.c: Cast side-effected returns of size_t to unsigned int [clang] * src/sparql_lexer.l: (rasqal_sparql_name_check): Use & for bit check [clang] * src/rasqal_literal.c: (rasqal_literal_set_typed_value): Do not destroy object refs 2012-05-08 Dave Beckett <dave@dajobe.org> * src/rasqal_rowsource_aggregation.c: (rasqal_new_aggregation_rowsource): docs and seq usage in test * src/rasqal_rowsource_aggregation.c, src/rasqal_rowsource_empty.c, src/rasqal_rowsource_groupby.c, src/rasqal_rowsource_project.c: Correct variable reference usage in tests and test cleanup * src/rasqal_row.c: (rasqal_new_row_sequence): Do not double reference to var Internal function mostly for tests * NEWS.html, RELEASE.html: 0.9.29 not yet 2012-05-07 Dave Beckett <dave@dajobe.org> * src/rasqal_variable.c: (main): Fix vars reference count leak in test * ChangeLog, NEWS.html, README.html, RELEASE.html: 0.9.29 * INSTALL.html: Add --with-libgcrypt-config --with-digest-library and tidy 2012-05-05 Dave Beckett <dave@dajobe.org> * src/rasqal_query_transform.c: Replace out-of-scope FILTER vars with constant FALSE (rasqal_query_filter_variable_scope): Added to check scope of vars in filter using an upwards GP walk wih rasqal_graph_pattern_get_parent() and rasqal_graph_pattern_variable_bound_below(). (rasqal_query_prepare_common): Call rasqal_query_filter_variable_scope() after tree GPs have been enumerated. This has the consequence that constant join conditions may be not optimized out. Fixes last SPARQL 1.0 test suite failure: SPARQL 1.0 Summary: SPARQL 1.0 total passes: 441 SPARQL 1.0 total failures: 0 * src/rasqal_graph_pattern.c, src/rasqal_internal.h: (rasqal_graph_pattern_variable_bound_below): Added * src/rasqal_graph_pattern.c, src/rasqal_internal.h: (rasqal_graph_pattern_get_parent): Added * src/rasqal_rowsource_join.c: Handle a constant join expression correctly. This is not optimal at this point but it is correct. For a FALSE join condition for a LEFT JOIN it should never read anything from the right rowsource. Currently it reads every row and throws them all away 2012-05-03 Dave Beckett <dave@dajobe.org> * src/rasqal_rowsource_groupby.c: (rasqal_new_groupby_rowsource): Tidy con init [clang] * src/rasqal_rowsource_aggregation.c: (rasqal_new_aggregation_rowsource): Init con to NULL [clang] * src/rasqal_literal.c: (rasqal_new_literal_from_promotion): init len to prevent [clang] warning * libmtwist: Update libmtwist * src/rasqal_regex.c: (rasqal_regex_replace_posix): Free result on failure [clang] * src/rasqal_format_rdf.c: (rasqal_rowsource_rdf_process): Error path for malloc [clang] * src/rasqal_rowsource_aggregation.c: (rasqal_new_aggregation_rowsource): Free con on error [clang] * src/rasqal_rowsource_groupby.c: (rasqal_new_groupby_rowsource): Free con on error [clang] * src/rasqal_rowsource.c: (rasqal_rowsource_add_variable): Arg check [clang] * src/rasqal_literal.c: (rasqal_literal_as_counted_string): Check error_p [clang] * src/rasqal_algebra.c: (rasqal_algebra_basic_graph_pattern_to_algebra): return NULL [clang] 2012-05-02 Dave Beckett <dave@dajobe.org> * configure.ac, src/rasqal_digest.c, src/rasqal_internal.h: Make libgcrypt work as a digest backend Added configure arg --with-libgcrypt-config=PATH to libgcrypt-config Made --with-digest-library=gcrypt work (rasqal_digest_buffer): gcrypt version works and uses lower level functions. Removed const attribute on an output parameter. * docs/tmpl/section-expression.sgml: Update tmpls * configure.ac, src/rasqal_expr_numerics.c: Fix libuuid configure tests * configure.ac, src/rasqal_expr_numerics.c: Add internal uuid configure and macro * configure.ac, src/rasqal.h.in, src/rasqal_expr.c, src/rasqal_expr_evaluate.c, src/rasqal_expr_numerics.c, src/rasqal_internal.h, src/rasqal_query_write.c, src/sparql_lexer.l, src/sparql_parser.y: Add UUID and STRUUID rasqal_op gains RASQAL_EXPR_UUID and RASQAL_EXPR_STRUUID (rasqal_expression_evaluate_uuid): Added to evaluate both Implementation uses libuuid if it exists or uses rasqal random to generate a random UUID (v4). (rasqal_expression_evaluate_uriuuid) (rasqal_expression_evaluate_struuid): Added as wrappers to above 2012-04-30 Dave Beckett <dave@dajobe.org> * docs/tmpl/section-literal.sgml, docs/tmpl/section-query.sgml, docs/tmpl/section-utilities.sgml, src/rasqal_regex.c: rasqal_regex_replace arg docs and update tmpls * docs/rasqal-changes.tsv, docs/rasqal-docs.xml, docs/rasqal-sections.txt, docs/tmpl/section-utilities.sgml, src/rasqal.h.in, src/rasqal_internal.h, src/rasqal_regex.c: Move rasqal_regex_replace to the public API (rasqal_regex_replace): Made public Fixes Issue #0000504 http://bugs.librdf.org/mantis/view.php?id=504 * docs/rasqal-docs.xml: 2012 * src/rasqal_query_transform.c: Update query prepartion for rasqal_query_graph_pattern_visit2 (rasqal_query_prepare_count_graph_pattern): Renamed from rasqal_query_prepare_count_graph_patterns since it deals with 1. (rasqal_query_enumerate_graph_patterns): Added, calling rasqal_query_prepare_count_graph_pattern and using rasqal_query_graph_pattern_visit2() result. (rasqal_query_prepare_common): Check return code from rasqal_query_graph_pattern_visit2 calls. Use rasqal_query_enumerate_graph_patterns() to do enumeration. * docs/rasqal-changes.tsv, docs/rasqal-sections.txt, src/rasqal.h.in, src/rasqal_query.c: (rasqal_query_graph_pattern_visit2): Added deprecating rasqal_query_graph_pattern_visit * src/rasqal_algebra.c: Added rasqal_algebra_new_boolean_constant_expr (rasqal_algebra_new_boolean_constant_expr): Renamed from rasqal_algebra_new_true_expr() and added internal docs 2012-04-18 Dave Beckett <dave@dajobe.org> * src/rasqal_algebra.c: (rasqal_algebra_graph_pattern_to_algebra): More extra debug info * src/rasqal_algebra.c: (rasqal_algebra_new_true_expr): Added and use it 2012-04-11 Dave Beckett <dave@dajobe.org> * RELEASE.html: 0.9.29 - no rdql 2012-04-10 Dave Beckett <dave@dajobe.org> * docs/tmpl/section-xsd.sgml: Update tmpls * docs/rasqal-changes.tsv, docs/rasqal-sections.txt: Added rasqal_xsd_datetime_equals2 * src/rasqal_general.c: 2012 * utils/roqet.c: catch another malloc failure * utils/roqet.c: (print_help): added to make main shorter * utils/check_query.c: (check_query_read_file_string): Error handling for malloc * utils/check_query.c: allocate buffer from heap not stack to prevent >4K stack frame 2012-04-03 Dave Beckett <dave@dajobe.org> * src/rasqal_query_transform.c: (rasqal_query_merge_graph_patterns): Do not merge { FILTER } * tests/rdql/testsuite/Makefile.am: Mark RDQL test B-01 as failing - don't care * src/rasqal_literal.c: Enable DISTINCT to use RDF term comparison (rasqal_literal_string_equals_flags): Renamed from rasqal_literal_string_equals and adds flags arg to set the equality mode - value RASQAL_COMPARE_XQUERY, RDF term RASQAL_COMPARE_RDF or RDQL RASQAL_COMPARE_URI. Do not equate "" and ""^^xsd:string unless value or RDQL mode Update callers of rasqal_literal_string_equals to use rasqal_literal_string_equals_flags and pass in flags. (rasqal_literal_same_term): Use literal value comparison with rasqal_literal_string_equals_flags. * src/rasqal_engine_sort.c: rowsorting for distinct uses RDF term comparisons (rasqal_engine_new_rowsort_map): When distinct, set literal compare_flags to use RDF term comparison 2012-04-02 Dave Beckett <dave@dajobe.org> * src/rdql_lexer.l, src/sparql_lexer.l: (main): Throw away unused values instead of storing in buffer * src/rasqal_random.c: (main): Throw away unused random results in testing * src/rasqal_regex.c: (main): locator is only needed for RASQAL_REGEX_PCRE * src/rasqal_query_results.c: (rasqal_query_results_get_triple): Rewrite loop logic to set skip at end 2012-03-28 Dave Beckett <dave@dajobe.org> * src/rasqal_query.c, tests/sparql/check-sparql, utils/roqet.c: Update test runner (rasqal_query_print): Print projected variable names for test runner tests/sparql/check-sparql: merge from redland-testing and fixup always get variables from results header utils/roqet: print projected variable names * tests/sparql/check-sparql: preserve v=NULL for roqet output * tests/sparql/check-sparql: return v=NULL for variables unset in a result row * docs/tmpl/section-xsd.sgml: Update xsd tmpl 2012-03-27 Dave Beckett <dave@dajobe.org> * tests/sparql/check-sparql: (toDebug): quote result str * README.html, RELEASE.html, configure.ac, src/rasqal_expr_strings.c, src/rasqal_general.c: Require Raptor 2.0.7 or newer. 2012-03-26 Dave Beckett <dave@dajobe.org> * src/rasqal_literal.c: (rasqal_new_string_literal_common): Use bitwise & - thanks Lauri 2012-03-24 Dave Beckett <dave@dajobe.org> * src/sparql_parser.y: Empty ArgList returns empty seq not NULL * src/rasqal_xsd_datatypes.c: (rasqal_xsd_format_double): Move exponent and terminate properly. * src/rasqal_literal.c: (rasqal_new_string_literal_node) docs * src/rasqal_literal.c: (rasqal_literal_string_to_native): Only flag now is canonicalizing (rasqal_new_string_literal_common): Takes native type promotion and canonicalizing flag. * src/rasqal_literal.c: (rasqal_literal_set_typed_value): Add canonicalize parameter to set string * src/rasqal_literal.c, utils/check_query.c: Always rasqal_literal_string_to_native before rasqal_literal_equals_flags * src/rasqal_decimal.c: (rasqal_xsd_decimal_as_string): Canonical decimal ends in .0 Correct test results for canonical decimal format * src/rasqal_xsd_datatypes.c: (rasqal_xsd_format_double): Return 0.0E0 for zero * src/rasqal_literal.c: Fix numeric promotion with one decimal and one float/double. (rasqal_literal_promote_numerics): Promote decimal with float/double to float/decimal following XPath rules - B1 1.b http://www.w3.org/TR/xpath20/#dt-type-promotion 2012-03-23 Dave Beckett <dave@dajobe.org> * utils/check_query.c: Call rasqal_query_add_data_graph() after prepare * src/rasqal_expr_evaluate.c: Evaluate COALESCE following sparql 1.1 rules (rasqal_expression_evaluate_coalesce): Ignore evaluation errors in sequence of expressions until a good result is found. 2012-03-19 Dave Beckett <dave@dajobe.org> * ChangeLog, NEWS.html, RELEASE.html: 0.9.29 * src/rasqal_rowsource_aggregation.c: Fix AVG test to expect a decimal result 2012-03-18 Dave Beckett <dave@dajobe.org> * src/rasqal_rowsource_aggregation.c: Do not set aggregate expression value on error * src/rasqal_literal.c: (rasqal_literal_divide): Result is decimal if both args are integer * src/rasqal_literal.c: Promote date to datetime in comparisons and ensure Zulu TZ (rasqal_new_literal_from_promotion, rasqal_literal_equals_flags): Promote date to datetime. (rasqal_literal_equals_flags): Use rasqal_xsd_datetime_equals2 returning error for incomparible. * src/rasqal.h.in, src/rasqal_datetime.c: (rasqal_xsd_datetime_equals2): Added, deprecating rasqal_xsd_datetime_equals Return incomparible flag to caller. * docs/rasqal-changes.tsv, src/rasqal.h.in, src/rasqal_datetime.c, src/rasqal_literal.c: (rasqal_xsd_date_equals): Returns incomparible pointer This allows the test to fail when across timelines that are incomparible. (rasqal_literal_equals_flags): Update to take error return. * tests/sparql/check-sparql: $core_dumped earlier * src/rasqal_datetime.c: (rasqal_xsd_timezone_format): Generate sign from inverse of adjusted minutes 2012-02-20 Dave Beckett <dave@dajobe.org> * src/rasqal_datetime.c: (rasqal_xsd_datetime_equals): Work if dt1 or dt2 are NULL * tests/sparql/check-sparql: Update check-sparql from testing repo * src/rasqal_internal.h, src/rasqal_literal.c, src/rasqal_xsd_datatypes.c: Move xsd boolean string check to xsd code (rasqal_xsd_boolean_value_from_string): Renamed from rasqal_literal_string_interpreted_as_boolean * src/rasqal.h.in, src/rasqal_datetime.c: autodocs * docs/rasqal-changes.tsv, docs/rasqal-sections.txt, src/rasqal.h.in, src/rasqal_datetime.c, src/rasqal_literal.c: Replace rasqal_xsd_date_compare2 with rasqal_xsd_date_compare and rename * docs/rasqal-changes.tsv, docs/rasqal-sections.txt, src/rasqal.h.in, src/rasqal_datetime.c: autodocs * src/rasqal_datetime.c: (rasqal_xsd_timezone_format): How did this ever work? * src/rasqal_datetime.c, src/rasqal_internal.h: Never normalize date or dateTime fields on parsing (rasqal_xsd_date_parse): simplify without normalizing. (rasqal_xsd_date_normalize): Added but internal/standalone tests since it is not a public API or used outside the test code. (rasqal_new_xsd_datetime): make a datetime copy and normalize that to get the time_on_timeline. (rasqal_xsd_datetime_to_counted_string) (rasqal_xsd_date_to_counted_string) (rasqal_xsd_date_string_to_canonical): Updated docs. (rasqal_xsd_datetime_check, rasqal_xsd_date_check): Just parse, do not touch value with normalizing. (rasqal_new_xsd_date): Set hour to noon for normalizing internal datetime using rasqal_xsd_datetime_normalize. (test_datetime_parse_and_normalize) (test_date_parse_and_normalize): Moved to test code from static functions that were only used here. (main): Adjust test code expected results so that parsing and normalizing does not drop the TZ if it was there in the first place, even when normalizing. * src/rasqal_datetime.c: (rasqal_xsd_datetime_normalize): Clearly set have_tz to N or Z * src/rasqal.h.in, src/rasqal_datetime.c: Handle XSD timezone recording and generating properly rasqal_xsd_date and rasqal_xsd_datetime gain a have_tz flag field that indicates the state of the timezone_minutes. (rasqal_xsd_datetime_normalize): Use have_tz to choose when to normalize. (rasqal_xsd_datetime_parse): Record N, Z or Y for have_tz (rasqal_new_xsd_datetime_from_xsd_date): Copy have_tz field. (rasqal_xsd_timezone_format): Renamed from rasqal_xsd_datetime_timezone_format() and take the timezone fields as input. (rasqal_xsd_datetime_to_counted_string) (rasqal_xsd_datetime_get_tz_as_counted_string): Use rasqal_xsd_timezone_format with new args. (rasqal_xsd_datetime_equals): Use have_tz fields. (rasqal_xsd_date_to_counted_string): Use rasqal_xsd_timezone_format and generate timezone field if needed. (rasqal_new_xsd_date): Copy the have_tz field. * utils/roqet.c: Add data graphs after prepare * src/rasqal_internal.h, src/rasqal_query.c, src/sparql_parser.y: Try to not lose data when reparsing into same query (rasqal_query_reset_select_query): Added to delete existing data, used before a parse (rasqal_query_set_modifier): Added to update modifier but free any existing first. (rasqal_sparql_query_language_prepare): SPARQL parser now calls rasqal_query_reset_select_query to do the reset before a parse. * src/rasqal_rowsource_slice.c: Count input and output row offsets for slice rowsource Fixes Issue #0000493 http://bugs.librdf.org/mantis/view.php?id=493 * tests/engine/rasqal_limit_test.c: Test subselect limits * tests/engine/rasqal_limit_test.c: Add subquery limit offset check for Issue #0000493 http://bugs.librdf.org/mantis/view.php?id=493 * src/rasqal_datetime.c: (rasqal_xsd_datetime_get_seconds_as_decimal): Fix str buffer Fixes Issue#0000494 http://bugs.librdf.org/mantis/view.php?id=494 2012-02-18 Dave Beckett <dave@dajobe.org> * src/rasqal.h.in, src/rasqal_datetime.c: (rasqal_new_xsd_datetime_from_xsd_date): Added constructor from a date * src/rasqal_literal.c: (rasqal_literal_compare): Use non-deprecated date/datetime compare methods * src/rasqal.h.in, src/rasqal_datetime.c: XSD date and dateTime compares use timeontimeline and timezone info (rasqal_xsd_date_compare2): Added deprecating rasqal_xsd_date_compare and returning incomparible state. (rasqal_xsd_datetime_compare2): Added deprecating rasqal_xsd_datetime_compare and returning incomparible state. (rasqal_xsd_timeline_compare): Added internal routine comparing timelines with/without timezones using XSD dateTime order relation rules. (test_date_compare, test_datetime_compare): Added testing code. (main): Call above to test comparisons. * src/rasqal_datetime.c: Compare date equality checking timezones (rasqal_xsd_date_equals): Use timezone_minutes (test_date_equals): Added testing function (main): Added date equality tests using above. * src/rasqal_datetime.c: Compare datetime equality with timeline and timezones (rasqal_xsd_datetime_equals): Uses time_on_timeline. (test_datetime_equals): Tester code aded (main): Added tests * src/rasqal.h.in, src/rasqal_datetime.c: Add time_on_timeline and timezone_minutes fields to date and datetime classes 2012-02-15 Dave Beckett <dave@dajobe.org> * src/rasqal_algebra.c, src/rasqal_digest_sha1.c, src/rasqal_expr_datetimes.c, src/rasqal_expr_strings.c, src/rasqal_feature.c, src/rasqal_format_html.c, src/rasqal_format_json.c, src/rasqal_format_rdf.c, src/rasqal_format_sparql_xml.c, src/rasqal_format_sv.c, src/rasqal_general.c, src/rasqal_literal.c, src/rasqal_query_results.c, src/rasqal_query_write.c, src/rasqal_raptor.c, src/rasqal_row.c, src/rasqal_rowsource_aggregation.c, src/rasqal_rowsource_groupby.c, src/rasqal_rowsource_triples.c, src/rasqal_service.c, src/rasqal_xsd_datatypes.c, src/rdql_lexer.l, src/rdql_parser.y, src/sparql_lexer.l, src/sparql_parser.y: Record good and bad casts to const unsigned char* * src/rasqal_digest.c, src/rasqal_expr_datetimes.c, src/rasqal_literal.c, src/rasqal_query_results.c, src/rasqal_query_transform.c, src/rasqal_variable.c, src/rdql_lexer.l, src/sparql_lexer.l: Record good and bad casts to unsigned char* * src/rasqal_datetime.c, src/rasqal_expr.c, src/rasqal_expr_evaluate.c, src/rasqal_expr_strings.c, src/rasqal_feature.c, src/rasqal_format_rdf.c, src/rasqal_format_sparql_xml.c, src/rasqal_format_table.c, src/rasqal_general.c, src/rasqal_literal.c, src/rasqal_prefix.c, src/rasqal_query.c, src/rasqal_query_results.c, src/rasqal_query_test.c, src/rasqal_raptor.c, src/rasqal_regex.c, src/rasqal_result_formats.c, src/rasqal_row.c, src/rasqal_rowsource.c, src/rasqal_rowsource_aggregation.c, src/rasqal_rowsource_groupby.c, src/rasqal_rowsource_join.c, src/rasqal_rowsource_project.c, src/rasqal_rowsource_triples.c, src/rasqal_rowsource_union.c, src/rasqal_service.c, src/rasqal_variable.c, src/rasqal_xsd_datatypes.c, src/rdql_lexer.l, src/sparql_lexer.l, src/sparql_parser.y: Record good and bad casts to const char* * src/rasqal_datetime.c, src/rasqal_expr_evaluate.c, src/rasqal_expr_strings.c, src/rasqal_format_html.c, src/rasqal_format_sparql_xml.c, src/rasqal_format_table.c, src/rasqal_general.c, src/rasqal_iostream.c, src/rasqal_literal.c, src/rasqal_query.c, src/rasqal_query_results.c, src/rasqal_query_test.c, src/rasqal_random.c, src/rasqal_result_formats.c, src/rasqal_rowsource_triples.c, src/rasqal_xsd_datatypes.c, src/rdql_lexer.l, src/rdql_parser.y, src/sparql_lexer.l, src/sparql_parser.y: Record good and bad casts to char* * src/rasqal_algebra.c, src/rasqal_dataset.c, src/rasqal_datetime.c, src/rasqal_digest.c, src/rasqal_expr_numerics.c, src/rasqal_literal.c, src/rasqal_random.c, src/rasqal_rowsource.c, src/snprintf.c, src/strcasecmp.c, utils/roqet.c: Record good and bad casts to unsigned int * src/snprintf.c: (rasqal_format_integer): Fix off by 1 in length calculation for integers wider than width * src/rasqal_datetime.c, src/rasqal_internal.h, src/snprintf.c: (rasqal_format_integer): Change return type to size_t * src/rasqal_algebra.c, src/rasqal_datetime.c, src/rasqal_engine.c, src/rasqal_expr.c, src/rasqal_expr_strings.c, src/rasqal_format_sparql_xml.c, src/rasqal_format_table.c, src/rasqal_graph_pattern.c, src/rasqal_iostream.c, src/rasqal_literal.c, src/rasqal_query.c, src/rasqal_query_write.c, src/rasqal_random.c, src/rasqal_regex.c, src/rasqal_rowsource.c, src/rasqal_rowsource_join.c, src/rasqal_update.c, src/rasqal_xsd_datatypes.c, src/snprintf.c, src/sparql_lexer.l, src/sparql_parser.y, src/strcasecmp.c: Record good and bad casts to int Using RASQAL_GOOD_CAST and RASQAL_BAD_CAST macros. When bad there are some notes. * src/rasqal_xsd_datatypes.c: Fix int cast in rasqal_xsd_format_double (rasqal_xsd_format_double): Handle trailing_zero_start as a size_t so add a have_trailing_zero flag to mark when it is valid.