2007-11-17  Dave Beckett <dave@dajobe.org>

	* Snapshotted rasqal_0_9_15 for 0.9.15 release (SVN 13232)

	* tests/sparql/ExprBuiltins/Makefile.am,
	tests/sparql/ExprEquals/Makefile.am: Revert test results to match
	builing with raptor 1.4.16

	* src/rasqal_literal.c: (rasqal_new_decimal_literal): Fix after
	doc change

	* docs/rasqal-sections.txt, docs/tmpl/section-unused.sgml: docs

	* docs/tmpl/section-literal.sgml, docs/tmpl/section-unused.sgml,
	docs/tmpl/section-xsd.sgml: docs

	* src/rasqal_datetime.c: docs

	* src/rasqal_literal.c: docs

	* docs/rasqal-sections.txt: update new functions

2007-11-15  Dave Beckett <dave@dajobe.org>

	* src/rasqal.h, src/rasqal_literal.c, src/sparql_lexer.l: Restore
	rasqal_new_decimal_literal back to APi signature from 0.9.14.  Add
	rasqal_new_decimal_literal_from_decimal to build from a
	rasqal_xsd_decimal

2007-11-15  Lauri Aalto <laalto@iki.fi>

	* src/rasqal_expr.c: (rasqal_expression_as_boolean,
	rasqal_expression_as_integer, rasqal_expression_compare) Removed
	unused functions - eliminates compiler warnings.

2007-11-14  Dave Beckett <dave@dajobe.org>

	* src/rasqal_query.c, src/rasqal_result_formats.c: Revert r13173
	for compiling against raptor 1.4.16 (or earlier)
	raptor_uri_handler

2007-11-14  Lauri Aalto <laalto@iki.fi>

	* src/rasqal_datetime.c: Fix copyright notice - it's all this
	year. Add contributions notice.
	Move tests to main().

2007-11-13  Lauri Aalto <laalto@iki.fi>

	* src/rasqal_raptor.c: indent tabs -> spaces

2007-11-13  Dave Beckett <dave@dajobe.org>

	* configure.ac: Require raptor 1.4.16 for uri compare factory method

	* src/rasqal_literal.c: (rasqal_literal_ebv): Handle decimal zero

	* src/rasqal.h: Added rasqal_xsd_decimal_is_zero prototype

	* src/rasqal_decimal.c: (rasqal_xsd_decimal_is_zero): Added.
	(rasqal_xsd_decimal_divide): Use rasqal_xsd_decimal_is_zero.

	* src/Makefile.am, src/rasqal_datetime.c (from
	/rasqal/trunk/src/rasqal_xsd_datatypes.c:13190),
	src/rasqal_internal.h, src/rasqal_xsd_datatypes.c: Added
	rasqal_datetime.c for XSD dateTime code.  Added
	rasqal_xsd_datetime_check() internal function for checking

	* tests/laqrs/syntax/Makefile.am, tests/laqrs/syntax/insert.rq:
	Added insert.rq

	* docs/tmpl/section-expression.sgml,
	docs/tmpl/section-literal.sgml, docs/tmpl/section-unused.sgml:
	docs updates

	* tests/sparql/examples/Makefile.am:
	sparql-query-example-Testing-Values-0 now passes

	* src/rasqal_raptor.c: (rasqal_raptor_bind_match): Use
	rasqal_literal_equals_flags with RASQAL_COMPARE_RDF to compare for
	equality.  Also, this may be cheaper than using
	rsaqal_literal_compare.

	* src/rdql_parser.y: Set RDQL default compare_flags to
	RASQAL_COMPARE_URI

	* src/sparql_parser.y: add missing ;

2007-11-12  Dave Beckett <dave@dajobe.org>

	* src/rasqal_engine.c:
	(rasqal_query_result_literal_sequence_compare): Call
	rasqal_literal_compare with RASQAL_COMPARE_URI

	* src/rasqal_literal.c: (rasqal_literal_compare): Use
	RASQAL_COMPARE_URI to allow comparison of URIs.  It's not allowed
	via the < operator but is ok when using literal with SPARQL ORDER
	BY

	* src/rasqal.h: rasqal_compare_flags add RASQAL_COMPARE_URI

	* tests/sparql/check-sparql: Invoke roqet correctly with named graphs

	* Last known good revision 13179: 'make check' succeeds.

	* src/rasqal_literal.c: (rasqal_literal_equals_flags): For XQUERY
	style, try RDF term equality if numeric promotion fails.
	Add debug messages

2007-11-12  Lauri Aalto <laalto@iki.fi>

	* src/rasqal_internal.h, src/rasqal_xsd_datatypes.c: Pulled
	rasqal_xsd_datatype_info from rasqal_xsd_datatypes.c to
	rasqal_internal.h

	* src/rasqal_query.c, src/rasqal_result_formats.c: Make
	raptor_uri_handlers const.

2007-11-11  Dave Beckett <dave@dajobe.org>

	* src/rasqal_expr.c: (rasqal_expression_evaluate): Revert:
	RASQAL_EXPR_NEQ return type errors again.

	* src/rasqal_internal.h: Update rasqal_literal_string_to_native
	prototype

	* src/rasqal_literal.c: (rasqal_literal_string_to_native): Add
	flags arg to use to pass on to rasqal_xsd_datatype_check.
	(rasqal_new_string_literal): Call rasqal_literal_string_to_native
	with flags=1 so that a literal with a bad lexical form is kept but
	never converted to native type.
	(rasqal_literal_expand_qname): Call
	rasqal_literal_string_to_native with flags=0 for original check.

	* src/rasqal_expr.c: (rasqal_expression_evaluate): RASQAL_EXPR_NEQ
	type errors are not equal.

2007-11-07  Lauri Aalto <laalto@iki.fi>

	* src/rasqal_general.c: (rasqal_uri_init) Check for oom.
	(rasqal_uri_finish) Do not leave dangling pointers.

2007-11-06  Lauri Aalto <laalto@iki.fi>

	* src/rasqal_feature.c: fix eol style

	* src/rasqal.h: Allow RASQAL_API to be externally defined e.g. in
	a static config.h. Remove __SYMBIAN32__ case.

	* src/rasqal_internal.h: Allow flagging out writable static data
	in RASQAL_DEPRECATED macros with NO_STATIC_DATA.

	* src/rasqal_expr.c, src/rasqal_feature.c,
	src/rasqal_graph_pattern.c, src/rasqal_literal.c,
	src/rasqal_query.c, src/rasqal_xsd_datatypes.c: Remove writable
	static data. Make const arrays const.

2007-10-31  Lauri Aalto <laalto@iki.fi>

	* src/rasqal_expr.c: (rasqal_expression_evaluate) Avoid
	division-by-zero exceptions in RASQAL_EXPR_REM.

	* src/rasqal_expr.c: (rasqal_expression_evaluate) Ensure NULL
	result and no leaks on error.

	* src/rasqal_expr.c: (rasqal_expression_evaluate) Do not leak
	literal args in DATATYPE expressions.

2007-10-30  Lauri Aalto <laalto@iki.fi>

	* src/rasqal_graph_pattern.c, src/rasqal_query.c: Move
	rasqal_graph_pattern_* functions from rasqal_query.c to
	rasqal_graph_pattern.c

	* src/rdql_lexer.l: Lowmem leak fixes. Merged experimental lexer
	leak prevention code from sparql_lexer r12922.
	Flagged with LEXER_ALLOC_TRACKING, disabled by default.

2007-10-29  Dave Beckett <dave@dajobe.org>

	* tests/sparql/ExprEquals/Makefile.am: "Equality - 2 var - test
	equals" now passes

	* tests/sparql/ExprBuiltins/Makefile.am: str-2 now passes

	* src/rasqal_literal.c: (rasqal_literal_get_rdf_term_type): Not
	static and use parent type to handle XSD numeric sub-types.

	* src/rasqal_internal.h: Add rasqal_literal_get_rdf_term_type

	* src/rasqal_expr.c: (rasqal_expression_evaluate):
	RASQAL_EXPR_LANG and RASQAL_EXPR_DATATYPE: Handle only for RDF
	Term literals including INTEGER etc using
	rasqal_literal_get_rdf_term_type() RASQAL_EXPR_ISLITERAL: Use
	rasqal_literal_get_rdf_term_type() to check for
	literal type.

2007-10-29  Lauri Aalto <laalto@iki.fi>

	* src/rasqal_literal.c: (rasqal_literal_set_typed_value) Don't
	need to copy literal string if no new string passed in.

 	* src/rasqal_literal.c: (rasqal_new_typed_literal) Ensure type is
	set before calling rasqal_free_literal().
	(rasqal_literal_set_typed_value) Do not free strings that are not
	owned.

	* src/rasqal_literal.c: (rasqal_literal_set_typed_value) Do not
	leak string

	* src/rasqal_literal.c: (rasqal_new_decimal_literal) Return NULL
	if rasqal_xsd_datatype_type_to_uri() fails.

	* src/rasqal_literal.c: (rasqal_literal_set_typed_value) Fix
	leaking datatype uris

	* src/rasqal_literal.c: (rasqal_new_decimal_literal) Make a copy
	of datatype uri.

	* src/rasqal_literal.c: (rasqal_new_typed_literal) Do not return
	stale pointers.

2007-10-28  Dave Beckett <dave@dajobe.org>

	* tests/rdql/testsuite/check-rdql: Remove xsd:string mutation

	* src/rasqal_literal.c: (rasqal_literal_string_to_native): Remove
	removal of xsd:string datatype.
	(rasqal_literal_string_equals): Make "xx" and "xx"^^xsd:string
	compare equal here.

	* tests/sparql/ExprEquals/Makefile.am: "Equality 1-1 -- graph" and
	"Equality 1-2 -- graph" now fail

	* tests/sparql/ValueTesting/Makefile.am: extendedType-ne-fail
	extendedType-literal-ne now pass

	* src/rasqal_literal.c: (rasqal_literal_string_to_native): Turn
	"xx"^^xsd:string into "xx"
	(rasqal_literal_string_equals): Added, pulled out of
	rasqal_literal_equals_flags.
	(rasqal_literal_equals_flags): Update SPARQL checks - do
	promotions only for sparql.  Give type error if have incompatible
	types. Mov RASQAL_LITERAL_PATTERN and RASQAL_LITERAL_QNAME into
	error case; these should never be compared.

	* src/rasqal_expr.c: (rasqal_expression_evaluate): Use
	rasqal_literal_equals_flags for RASQAL_EXPR_EQ and
	RASQAL_EXPR_NEQ. Implement RASQAL_EXPR_SAMETERM with
	rasqal_literal_equals_flags too.

	* src/rdql_lexer.l: Double constant preserves the string using
	rasqal_new_typed_literal

	* tests/rdql/testsuite/check-rdql: (toDebug): Turn
	"xx"^^xsd:string into "xx" Unidiffs

	* tests/rdql/testsuite/Makefile.am: Failing tests now 1-09 B-17

	* src/rasqal_raptor.c: (rasqal_raptor_triple_match): Match RDF
	terms with rasqal_literal_equals_flags and RASQAL_COMPARE_RDF.

2007-10-28  Lauri Aalto <laalto@iki.fi>

	* src/rasqal_expr.c: (rasqal_expression_evaluate) double var no
	longer needed after unary minus changes in r13091

2007-10-28  Dave Beckett <dave@dajobe.org>

	* src/rasqal_engine.c: (rasqal_query_result_literal_sequence_compare):
	Revert: use query compare flags since that is based on the 'A < B'
	operator which is value comparison.

	* src/rasqal_engine.c: (rasqal_query_result_literal_sequence_compare):
	Compare as RDF Terms always.
	(rasqal_query_result_literal_sequence_equals): Equality as RDF
	Terms always.

	* src/rasqal_literal.c: (rasqal_literal_get_rdf_term_type): Added.
	(rasqal_literal_compare): Do not always promote - saves copying
	objects. Add RASQAL_COMPARE_RDF to compare as RDF terms.
	(rasqal_literal_equals_flags): Add RASQAL_COMPARE_RDF to check for
	equality as RDF terms.  Uses rasqal_literal_get_rdf_term_type()
	Add a quick check for string compares - not equal if lengths are
	different.

	* src/rasqal.h: Added rasqal_compare_flags enum RASQAL_COMPARE_RDF
	for comparing as RDF terms.

2007-10-28  Lauri Aalto <laalto@iki.fi>

	* tests/rdql/testsuite/Makefile.am,
	tests/sparql/ExprBuiltins/Makefile.am: RDQL B-07 B-20 tests now
	pass. SPARQL str-1 test now passes.

	* src/rasqal_decimal.c: (rasqal_xsd_decimal_negate) Fix
	RASQAL_DECIMAL_GMP negation.

2007-10-27  Dave Beckett <dave@dajobe.org>

	* src/rasqal_literal.c: (rasqal_literal_as_node): Copy NUL when
	stringifying.

	* src/rasqal_xsd_datatypes.c: (rasqal_xsd_format_double): Correct len

	* src/rasqal_literal.c: (rasqal_literal_set_typed_value): Do not
	try to canonicalize DOUBLE values.

	* src/rasqal_literal.c: (rasqal_literal_set_typed_value): Set
	string len for dateTime
	(rasqal_literal_as_node): strncpy

	* src/sparql_lexer.l: Use rasqal_xsd_datatype_check to check for
	decimal and double syntax rather than scanf.

	* src/rasqal_literal.c: (rasqal_new_literal_from_promotion): less
	debug output

	* Last known good revision 13092: 'make check' succeeds.

	* src/rasqal_literal.c: (rasqal_literal_negate): Init type

	* src/rasqal_expr.c: (rasqal_expression_evaluate): For
	RASQAL_EXPR_UMINUS use rasqal_literal_negate

	* src/rasqal_internal.h: Added rasqal_literal_negate prototype

	* src/rasqal_literal.c: (rasqal_literal_add,
	rasqal_literal_subtract, rasqal_literal_multiply,
	rasqal_literal_divide): Promote to get to decimals for evaluation.
	(rasqal_literal_negate): Added.

	* src/rasqal.h: Added rasqal_xsd_decimal_negate

	* src/rasqal_decimal.c: (rasqal_xsd_decimal_negate): Added

	* src/rasqal_literal.c: (rasqal_new_decimal_literal): Set literal type

	* src/rasqal_literal.c: (rasqal_literal_string_to_native): Do not
	call rasqal_free_literal here.

	* src/rasqal_literal.c: (rasqal_literal_add,
	rasqal_literal_subtract, rasqal_literal_multiply,
	rasqal_literal_divide): Do calculations as integer, double or
	decimal.

	* src/rasqal_literal.c: (rasqal_new_decimal_literal): Add decimal
	arg to construct a new decimal literal based on a string or XSD
	Decimal.

	* src/sparql_lexer.l: Update rasqal_new_decimal_literal call

	* src/rasqal.h: rasqal_new_decimal_literal takes string / decimal.

	* src/rasqal_literal.c: (rasqal_literal_set_typed_value): Allow
	string to be NULL to use existing literal string.
	(rasqal_literal_string_to_native): Use NULL above

	* src/rasqal_literal.c: Everwhere: only write to *error if error
	is not NULL.
	(rasqal_literal_set_typed_value): Free any existing string before
	overwriting.

	* src/rasqal_literal.c: (rasqal_literal_set_typed_value): Copy NULL

	* src/rasqal_literal.c: Fix casts

	* src/sparql_lexer.l: Use rasqal_new_typed_literal for integer.

	* src/rasqal_literal.c: (rasqal_literal_set_typed_value): Added,
	pulled out of rasqal_literal_string_to_native.
	(rasqal_new_typed_literal, rasqal_new_decimal_literal,
	rasqal_literal_string_to_native): Altered to use
	rasqal_literal_set_typed_value removing duplicate code for setting
	decimals.

	* src/rasqal.h: rasqal_new_typed_literal renamed from
	rasqal_new_integer_literal_from_string

	* src/rasqal_engine.c: (rasqal_query_result_literal_sequence_equals):
	Pass on any type errors as not equal.

	* src/rasqal_internal.h: rasqal_literal_equals_flags add error
	pointer arg.

	* src/rasqal_literal.c: (rasqal_literal_equals_flags): Add an
	error pointer arg.

	* docs/tmpl/section-xsd.sgml: XSD Decimals templaet

	* src/rasqal_decimal.c: Autodocs

	* docs/rasqal-sections.txt: Add new functions

	* docs/rasqal-docs.xml: Added section-xsd

2007-10-27  Lauri Aalto <laalto@iki.fi>

	* src/rasqal_literal.c: (rasqal_new_integer_literal_from_string)
	Need to have literal usage and type set before calling
	rasqal_free_literal() on failure.

2007-10-27  Dave Beckett <dave@dajobe.org>

	* src/sparql_lexer.l: Use rasqal_new_integer_literal_from_string
	for integer literal. Remove hex literals - they are not allowed in
	SPARQL.

	* src/rasqal.h,
	src/rasqal_literal.c: (rasqal_new_integer_literal_from_string):
	Added to preserve integer literal original lexical form.

	* src/rasqal_internal.h,
	src/rasqal_literal.c: (rasqal_literal_promote_numerics): Renamed
	from rasqal_literal_promote_calculate

2007-10-25  Lauri Aalto <laalto@iki.fi>

	* src/rasqal_query.c: (rasqal_query_prepare_count_graph_patterns)
	Prevent a later lowmem crash caused by graph pattern count and
	graph pattern sequence getting out of sync.

	* src/rasqal_decimal.c: (rasqal_xsd_decimal_as_string) Better
	formatting with RASQAL_DECIMAL_NONE
	(main) Ignore rasqal_decimal_test failures with
	RASQAL_DECIMAL_NONE - insufficient precision with doubles. Test
	for <0, ==0 or >0 when testing rasqal_xsd_decimal_compare(), not
	exact value like -1.

	* src/rasqal_map.c: (rasqal_map_node_add_kv) Return error if
	rasqal_new_map_node() failed

	* src/rasqal_map.c: (rasqal_map_add_kv) Return error if
	rasqal_new_map_node() failed

	* src/rasqal_expr.c: (rasqal_expression_evaluate) Remove memset()
	overhead - init vars when actually needed.

2007-10-24  Lauri Aalto <laalto@iki.fi>

	* src/rasqal_expr.c: (rasqal_expression_evalate) Fix bug in
	RASQAL_EXPR_OR and refactor RASQAL_EXPR_{AND,OR}.

	* src/rasqal_expr.c: (rasqal_expression_evaluate_strmatch,
	rasqal_expression_evaluate) Init error vars to zero

	* src/rasqal_expr.c: (rasqal_expression_evaluate_strmatch) Pulled
	function from rasqal_expression_evaluate().
	(rasqal_expression_evaluate) Reduce stack consumption of a
	recursive function by about 90% (depending on compiler and
	architecture) - do not allocate separate variables for each switch
	case and pack in unions variables that are not needed
	simultaneously.

	* src/rasqal_literal.c: (rasqal_literal_string_to_native) Lowmem
	leak fix: make sure decimal literal string is not leaked.

	* src/rasqal_literal.c: (rasqal_free_literal) Do not leak decimal
	literal datatype uris.

2007-10-23  Dave Beckett <dave@dajobe.org>

	* src/rasqal_literal.c: (rasqal_literal_print): Write URIs out
	properly escaped Unicode.

2007-10-23  Lauri Aalto <laalto@iki.fi>

	* src/rasqal_expr.c: (rasqal_expression_evaluate) Check for alloc
	failures

2007-10-22  Lauri Aalto <laalto@iki.fi>

	* src/rasqal_literal.c: (rasqal_new_literal_from_promotion) Fix
	rasqal_new_integer_literal() params.
	(rasqal_literal_rdql_promote_calculate) Fix lits array init.

2007-10-22  Dave Beckett <dave@dajobe.org>

	* tests/sparql/check-sparql: fix curdir

	* tests/sparql/check-sparql: Remove curdir from debug outputs

	* docs/tmpl/section-triple.sgml: Added RASQAL_TRIPLE_GRAPH,
	RASQAL_TRIPLE_SPO and RASQAL_TRIPLE_SPOG

	* docs/tmpl/section-expression.sgml: Added RASQAL_EXPR_SAMETERM

	* src/rasqal_literal.c: (rasqal_literal_compare): Restore d assignment

	* src/rasqal_literal.c: Remove unused double_to_int

	* src/rasqal_literal.c: (rasqal_literal_rdql_promote_calculate):
	Pull out of rasqal_literal_compare
	(rasqal_literal_compare): Use above.

	* Last known good revision 13011: 'make check' succeeds.

	* src/rasqal_literal.c: (rasqal_literal_compare): Fix xquery
	compare ordering when types are different and cannot promote.

	* src/rasqal_literal.c: (rasqal_literal_compare): Fix float/double
	compare.

	* src/rasqal_literal.c: (rasqal_literal_compare): Fix float/double
	compare with fabs

	* src/rasqal_literal.c: (rasqal_literal_compare): Return type
	error if rasqal_new_literal_from_promotion fails

	* src/rasqal_literal.c: (rasqal_new_literal_from_promotion):
	Handle rasqal_new_literal_from_promotion failing.

	* src/rasqal_literal.c: death in debug message

	* src/rasqal_literal.c: casts for warnings

	* src/rasqal_literal.c: (rasqal_new_literal_from_promotion): Do
	not assume l->string is set.

	* src/rasqal_literal.c: (rasqal_new_literal_from_promotion): Allow
	nop promotion

	* src/rasqal_literal.c: (rasqal_literal_compare): Fix error from
	string compare.

	* src/rasqal_literal.c: docs
	(rasqal_literal_compare): Fix uri compare.

	* src/rasqal_literal.c: (rasqal_literal_string_compare): Added,
	pulled out of rasqal_literal_compare.
	(rasqal_literal_compare): Call above.

	* src/rasqal_literal.c: (rasqal_new_literal_from_promotion): Call
	rasqal_new_string_literal with copy of string which is an input
	parameter.

	* src/rasqal_literal.c: (rasqal_new_literal_from_promotion):
	Added, pulled out of rasqal_literal_compare.
	(rasqal_literal_compare): Use above.

	* src/rasqal_literal.c: (rasqal_literal_equals_flags): Start to
	add XQuery/SPARQL promotions.

	* src/rasqal_literal.c: (rasqal_literal_equals_flags): Added

	* src/rasqal_engine.c:
	(rasqal_query_result_literal_sequence_equals): Added to compare
	two arrays of literal for equality
	(rasqal_engine_query_result_row_compare): Use
	rasqal_query_result_literal_sequence_equals when just doing
	distinct, no sorting.

	* src/rasqal_internal.h: Added rasqal_literal_equals_flags prototype

2007-10-21  Lauri Aalto <laalto@iki.fi>

	* src/rasqal_decimal.c: Make rasqal_decimal.c compile with
	RASQAL_DECIMAL_NONE

	* src/rasqal_decimal.c: (rasqal_xsd_decimal_equals) Catch flagging
	error and prevent warning about uninitialized rc variable.

2007-10-21  Dave Beckett <dave@dajobe.org>

	* src/rasqal_literal.c: Switch rasqal_literal with type
	RASQAL_LITERAL_DECIMAL from stored as a double stored as an
	rasqal_xsd_decimal.
	(rasqal_new_decimal_literal, rasqal_literal_string_to_native,
	rasqal_free_literal, rasqal_literal_as_integer,
	rasqal_literal_as_floating, rasqal_literal_equals): Use new fields
	for decimal.

	* src/rasqal_decimal.c: (rasqal_xsd_decimal_equals): Renamed from
	rasqal_xsd_decimal_equal

	* src/rasqal.h: rasqal_literal now stores decimals as
	rasqal_xsd_decimal. rasqal_xsd_decimal_equals renamed from
	rasqal_xsd_decimal_equal

	* Last known good revision 12976: 'make check' succeeds.

	* src/rasqal.h, src/rasqal_decimal.c, src/rasqal_internal.h: Move
	rasqal_xsd_decimal prototypes to rasqal.h and rename
	constructor/destructor to match convention

	* src/rasqal_decimal.c, src/rasqal_internal.h: Move
	rasqal_xsd_decimal prototypes to rasqal_internal.h

	* src/rasqal_decimal.c: (main): Tests are silent on success

	* src/rasqal_decimal.c: (rasqal_xsd_decimal_init): Set to 32
	digits precision

	* src/rasqal_decimal.c: (rasqal_xsd_decimal_as_string): less strlen

	* src/rasqal_decimal.c: ;

	* src/rasqal_decimal.c: (rasqal_xsd_decimal_clear_string): All
	strings are rasqal alloced.
	(rasqal_xsd_decimal_as_string): Handle zero better.

	* src/rasqal_decimal.c: (rasqal_xsd_decimal_as_string): No longer
	format as ints, always generate -?X.YeZ

	* src/rasqal_decimal.c: Prevent 0.0e-1, make it 0.0e0

	* src/rasqal_decimal.c: Ensure trailing zeroes are not all removed
	in MPFR cleanup. Clear result strings when computing.

	* src/rasqal_decimal.c: Catch malloc failures

	* src/rasqal_decimal.c: (rasqal_xsd_decimal_as_string): Adjust
	MPFR output to remove leading 0s and have 1 leading digit.  Adjust
	GMP output to have 1 leading digit.
	(rasqal_xsd_decimal_print): Use string from
	rasqal_xsd_decimal_as_string.

	* src/rasqal_decimal.c: Flags made explicit.
	Annotate free()

	* src/rasqal_decimal.c: (rasqal_xsd_decimal_as_counted_string): Added.

	* src/rasqal_decimal.c: Preserve original string as str. Fix
	output formatting better for GMP

	* src/rasqal_decimal.c: Added GMP

	* configure.ac: Added --with-decimal to choose mpfr, gmp, none
	Added --with-mpfr=DIR to set prefix for mpfr install.
	Added MPFR and GMP presence tests.
	Added decimal choice to summary

	* src/Makefile.am: Added rasqal_decimal.c to library

	* configure.ac: AC_MSG_RESULT

	* src/Makefile.am: Added rasqal_decimal_test

	* src/rasqal_decimal.c: Moved macros to ../configure.ac

	* configure.ac: Add checks and defines for MPFR and decimal

	* src/rasqal_decimal.c: XSD decimal via some external library

2007-10-18  Lauri Aalto <laalto@iki.fi>

	* src/rasqal_engine.c: (rasqal_engine_query_result_row_update) Fix
	SPARQL sort-3 segfault: Evaluating order condition expression may
	return NULL.

	* src/rasqal_engine.c: (rasqal_engine_query_result_row_to_nodes,
	rasqal_engine_execute_run) Allow empty result sets - not an error.

	* src/rasqal_literal.c: (rasqal_literal_cast) Check for new_string
	alloc failure

	* src/rasqal_result_formats.c: (rasqal_query_results_write_xml_result4)
	Fix segfault when binding value literal is not a node type.

	* src/rasqal_engine.c: (rasqal_engine_query_result_row_to_nodes)
	Return an error if cannot convert a literal to node. Do not just
	leave a non-node literal row values.

	(rasqal_engine_execute_run) Check
	rasqal_engine_query_result_row_to_nodes() return value.

	* src/rasqal_engine.c: (rasqal_engine_query_result_row_update)
	Free literal returned by evaluation of order condition
	expressions.

2007-10-17  Lauri Aalto <laalto@iki.fi>

	* src/rasqal_engine.c: (rasqal_free_gp_data) Remove unnecessary
	start_column check - the root cause for start_column<0 was fixed
	in r12884.

	* tests/sparql/ExprBuiltins/Makefile.am: Expect SPARQL
	ExprBuiltins str-1 to fail.

	* src/fix-flex: (fix-flex) Also remove generated yy_fatal_error()
	declaration to avoid warning about declared but non-defined static
	function. Fix line offset off-by-one by not including $ in printed
	match when patching lex_destroy(). Fix .h #line directives as
	well.

	* src/fix-flex: (fix-flex) Remove generated yy_fatal_error()
	definition to avoid warnings about unused function.

	* src/rdql_lexer.l, src/sparql_lexer.l: (sparql_lexer_fatal_error,
	rdql_lexer_fatal_error) Portability: avoid depending on varargs
	implementation internals.

	* src/sparql_lexer.l: (sparql_lexer) Replace out-of-memory
	yyterminate() calls with more informative SPARQL_LEXER_OOM macros.

	* src/rdql_lexer.l,
	src/sparql_lexer.l: (sparql_lexer_cleanup,rdql_lexer_cleanup) Does
	not have to be non-static.

	* src/fix-flex, src/rasqal_internal.h, src/rdql_lexer.l,
	src/sparql_lexer.l: (rasqal_query_s) Added lexer_user_data for
	storing re-entrant lexer internal data.

	(fix-flex) Replace calls to yy_fatal_error() with YY_FATAL_ERROR
	macro.  Add alloc failure checks to generated ensure_stack().
	Call custom cleanup() function in lex_destroy().  Removed
	prefixing free(ptr) with NULL guard - rasqal lexers now have
	yyfree replacements that check for NULL.  Fix .c #line numbers.

	(sparql_lexer) Specify noyyalloc, noyyrealloc, noyyfree options to
	prevent flex from generating alloc/realloc/free functions.  Define
	YY_FATAL_ERROR macro to sparql_lexer_fatal_error().

	Added experimental low-memory memory leak prevention code under
	LEXER_ALLOC_TRACKING flag (disabled by default) - easier and
	probably more failsafe than patching large amounts of generated C
	in fix-flex. The leak itself is YY_BUFFER_STATE struct that is not
	freed when ensure_stack() encounters an OOM fatal error -
	previously ensure_stack() segfaulted but now fix-flex patches it
	to just leak memory.

	(sparql_lexer_fatal_error) Added replacement for default error
	handler. Uses rasqal query fatal error reporting mechanisms if
	possible. abort()s and does not exit() like the generated error
	handler would do.
	(sparql_lexer_cleanup) Added function that gets called by
	sparql_lexer_lexer_destroy() patched by fix-flex. Cleans up memory
	leaks (if any) when LEXER_ALLOC_TRACKING flag is enabled,
	otherwise a no-op.
	(sparql_lexer_alloc) Added allocator function as needed after the
	noyyalloc option. If LEXER_ALLOC_TRACKING flag is disabled, it's
	just the plain malloc(). Otherwise stores allocated pointer to an
	alloc tracker stored in lexer_user_data in rasqal_query_s to allow
	cleanup by sparql_lexer_cleanup().
	(sparql_lexer_realloc) Added realloc function as needed after the
	noyyrealloc option. If LEXER_ALLOC_TRACKING flag is disabled, it's
	just the plain realloc(). Otherwise it uses the alloc tracker in
	lexer_user_data.
	(sparql_lexer_free) Added free function as needed after the
	noyyfree option. If LEXER_ALLOC_TRACKING flag is disabled, it's
	just the plain free() with NULL check. Otherwise it uses the alloc
	tracker in lexer_user_data.

	(rdql_lexer) Specify noyyalloc, noyyrealloc, noyyfree options to
	prevent flex from generating alloc/realloc/free functions.  Define
	YY_FATAL_ERROR macro to rdql_lexer_fatal_error().
	(rdql_lexer_fatal_error) Added replacement for default error
	handler. Uses rasqal query fatal error reporting mechanisms if
	possible. abort()s and does not exit() like the generated error
	handler would do.
	(rdql_lexer_cleanup) Added empty function that gets called by
	rdql_lexer_lex_destroy() patched by fix-flex.
	(rdql_lexer_alloc,rdql_lexer_realloc) Added functions as needed
	after noyyalloc and noyyrealloc options.
	(rdql_lexer_free) Added function as needed after noyyfree
	option. Checks for NULL ptr unlike the generated yyfree().

2007-10-16  Lauri Aalto <laalto@iki.fi>

	* src/fix-bison: (fix-bison) Fix .c #line references - was still
	off by one.

	* src/fix-bison: (fix-bison) Fix .c #line references. Fix script indent.

	* src/sparql_parser.y: (sparql_parse) Check lexer init return code.

2007-10-15  Dave Beckett <dave@dajobe.org>

	* tests/rdql/testsuite/Makefile.am: Document B-07 B-20 as failing
	since core changes to normalize xsd:double format for SPARQL cause
	these to fail now

2007-10-15  Lauri Aalto <laalto@iki.fi>

	* src/rasqal_literal.c: (rasqal_new_string_literal) Free datatype
	as uri and not as cstring on error.

	* src/rasqal_xsd_datatypes.c: (rasqal_xsd_datatype_uri_parent_type)
	fix comments

	* src/sparql_parser.y: Memory leak fix: add %destructor for Object

	* src/rasqal_engine.c: (rasqal_engine_convert_blank_node_to_anonymous_variable)
	Fix low memory crashes due to variable literals with NULL
	value. Changed function to return an int error code.
	(rasqal_engine_build_anonymous_variables) Bubble up errors from
	rasqal_engine_convert_blank_node_to_anonymous_variable().
	(rasqal_engine_prepare) Bubble up errors from
	rasqal_engine_build_anonymous_variables().

	* src/rasqal_xsd_datatypes.c: (rasqal_xsd_datetime_normalize) Fix
	bugs in day normalization: uninitialized var t in y2 expression;
	add the correct number of days when going down a month
	boundary (and not the number of days next month).
	(test_datetimes) Add tests to catch the bug. Was not caught before
	because January and December both have 31 days.
	(test_datetime_parser_tostring) Print relevant information to
	stderr on test failure.

	* src/rasqal_literal.c: (rasqal_literal_string_to_native) Remove
	unnecessary if

2007-10-15  Dave Beckett <dave@dajobe.org>

	* src/rasqal_literal.c: docs

2007-10-14  Dave Beckett <dave@dajobe.org>

	* src/rasqal_literal.c: (rasqal_new_double_literal): Use
	rasqal_xsd_format_double to format a double.
	(rasqal_literal_string_to_native): Use rasqal_xsd_format_double to
	format a new double.

	* src/rasqal_internal.h: Added rasqal_xsd_format_double prototype

	* src/rasqal_xsd_datatypes.c: (rasqal_xsd_format_double): Added to
	properly format an xsd:double

	* src/sparql_lexer.l: Added SPARQL_NAME_CHECK_ALLOW_09_FIRST
	NCNAME2: Added allowing 0-9
	(QNAME,BNAME,BNAME2): Use NCNAME2 instead of NCNAME to allow 0-9
	first.
	(rasqal_sparql_name_check): Use SPARQL_NAME_CHECK_ALLOW_09_FIRST
	to allow 0-9 as the first character.

	* tests/sparql/ValueTesting/Makefile.am:
	typePromotion-decimal-decimal-fail passes again

	* src/rasqal_literal.c: (rasqal_literal_cast): Use
	rasqal_xsd_datatype_check() to check if a cast from string is
	allowed.

	* src/rasqal_xsd_datatypes.c: (rasqal_xsd_init,
	rasqal_xsd_finish): Do not try to init, free NULL names.

	* src/rasqal_expr.c: (rasqal_expression_evaluate): Moved
	RASQAL_EXPR_PLUS, RASQAL_EXPR_MINUS, RASQAL_EXPR_STAR and
	RASQAL_EXPR_SLASH evaluation to rasqal_literal_add,
	rasqal_literal_subtract, rasqal_literal_multiply,
	rasqal_literal_divide respectively.

	* src/rasqal_xsd_datatypes.c: table sparql_xsd_names now includes
	the types that promote to xsd:integer
	(rasqal_xsd_init): Init the URIs of the types above.
	(rasqal_xsd_datatype_uri_parent_type): Added to get the parent
	type of a datatype URI.
	(rasqal_xsd_datatype_is_numeric): Added to check if an XSD type is
	numeric.

	* src/rasqal_literal.c: (rasqal_new_integer_literal): Initialise
	parent_type to decimal.
	(rasqal_literal_string_to_native): Native integers have a decimal
	parent.
	(rasqal_new_string_literal): Initialise parent type.
	(rasqal_literal_promote_calculate): Added to calculate XSD type
	promotions.
	(rasqal_literal_is_numeric): Added to determine a numeric literal.
	(rasqal_literal_add, rasqal_literal_subtract,
	rasqal_literal_multiply, rasqal_literal_divide): Added based on
	the expression code for literals.

	* src/rasqal_internal.h: Added prototypes for rasqal_literal_is_numeric,
	rasqal_literal_promote_calculate, rasqal_literal_add,
	rasqal_literal_subtract, rasqal_literal_multiply,
	rasqal_literal_divide, rasqal_xsd_datatype_uri_parent_type and
	rasqal_xsd_datatype_is_numeric

	* src/rasqal.h: rasqal_literal_s gains field parent_type for XSD
	type hierarchy.

	* Last known good revision 12894: 'make check' succeeds.

	* tests/sparql/SyntaxDev/Syntax-SPARQL2/Makefile.am,
	tests/sparql/SyntaxDev/Syntax-SPARQL2/manifest.ttl,
	tests/sparql/SyntaxDev/Syntax-SPARQL2/syntax-graph-02.rq,
	tests/sparql/SyntaxDev/Syntax-SPARQL2/syntax-graph-06.rq: Removed
	tests syntax-graph-02.rq syntax-graph-06.rq with GRAPH blank nodes
	which are no longer legal SPARQL

	* tests/sparql/SyntaxDev/Syntax-SPARQL/Makefile.am,
	tests/sparql/SyntaxDev/Syntax-SPARQL/manifest.ttl,
	tests/sparql/SyntaxDev/Syntax-SPARQL/syntax-bnodes-03.rq,
	tests/sparql/SyntaxDev/Syntax-SPARQL/syntax-bnodes-04.rq: Removed
	tests syntax-bnodes-03.rq syntax-bnodes-04.rq with blank nodes in
	predicate which are no longer legal SPARQL

	* tests/sparql/ValueTesting/Makefile.am: Add
	typePromotion-decimal-decimal-fail to failures until type
	promotions are fixed.

	* tests/sparql/syntax/Makefile.am,
	tests/sparql/syntax/construct0.rq: Removed construct0.rq test
	since CONSTRUCT * is no longer legal sparql

	* src/rasqal_literal.c: (rasqal_literal_compare): Use
	raptor_uri_compare from raptor 1.4.16 instead of strcmp.  Protect
	checking rdf literal language and datatypes in a comparison to
	only happen when both literals were originally strings.

	* src/rasqal_raptor.c: (rasqal_raptor_triple_match): Debug
	messages
	(rasqal_raptor_triple_present): Set the match parts dependent of
	whether the triple has an origin.

	* src/rasqal_xsd_datatypes.c: (rasqal_xsd_datetime_to_string):
	Does not return a string that is required to be const.

2007-10-13  Dave Beckett <dave@dajobe.org>

	* src/rasqal_xsd_datatypes.c: Code style - comments, whitespace,
	indenting.
	(rasqal_xsd_datetime_normalize): Added, pulled out of
	rasqal_xsd_datetime_parse_and_normalize

2007-10-12  Lauri Aalto <laalto@iki.fi>

	* src/sparql_parser.y: (OrderConditionList) Fix memory leak when
	sequence creation fails.

	* src/rasqal_engine.c, src/rasqal_internal.h, src/rasqal_query.c:
	Fix error where a sequence alloc error in
	rasqal_engine_join_graph_patterns() leaves gp in stale state.
	(rasqal_engine_move_constraints,
	rasqal_engine_join_graph_patterns) Changed to return an int error
	code.
	(rasqal_engine_merge_graph_patterns, rasqal_engine_merge_triples,
	rasqal_engine_remove_empty_group_graph_patterns) Set modified flag
	to negative to signal error codes.
	(rasqal_query_prepare) Do gp merge only if factory->prepare()
	succeeded. Use negative values of the modified flag to signal
	errors from gp visitors.

	* src/rasqal_engine.c: (rasqal_engine_graph_pattern_init) Bubble
	up errors from subgp init.

	* src/sparql_parser.y: Memory leak fixes:
	Add Filter %destructor.
	(AdditiveExpression) Free MultiplicativeExpression when
	rasqal_new_literal_expression() for a numeric literal fails.

	* src/rasqal_literal.c: (rasqal_new_integer_literal,
	rasqal_new_double_literal, rasqal_new_float_literal,
	rasqal_new_decimal_literal, rasqal_new_boolean_literal,
	rasqal_literal_as_node) Check rasqal_xsd_datatype_type_to_uri()
	return value.

	* src/rasqal_xsd_datatypes.c: (sparql_xsd_datatypes_table) Init
	static variable to NULL.
	(rasqal_xsd_init) Check for rasqal_xsd_namespace_uri alloc
	failure.
	(rasqal_xsd_finish) Set static pointers to NULL to prevent
	dangling pointers.
	(rasqal_xsd_datatype_uri_to_type, rasqal_xsd_datatype_type_to_uri,
	rasqal_xsd_datatype_check, rasqal_xsd_datatype_label) Check that
	sparql_xsd_datatypes_table is allocated.

	* src/rasqal_engine.c: (rasqal_new_engine_execution_data) Check
	raptor_sequence_set_at() return value. Fixes memory leak when
	setting (n+1)th item and setting nth item had failed.

2007-10-11  Lauri Aalto <laalto@iki.fi>

	* src/rasqal_xsd_datatypes.c: Fix compiler warning

	* tests/sparql/examples/Makefile.am:
	sparql-query-example-Testing-Values-0 (ex11_0) was broken by
	recent changes in literal handling.

	* tests/sparql/examples/Makefile.am: makefile comments

	* tests/sparql/examples/Makefile.am:
	sparql-query-example-Testing-Values-RDFterm-equal-2 (ex11.2.3.1_1)
	now passes

	* src/rasqal_literal.c: (rasqal_literal_string_to_native) Promote
	xsd:dateTime literals to canonical literal form - strcmp() now
	works better when comparing datetime literals.

	* src/Makefile.am, src/rasqal_internal.h,
	src/rasqal_xsd_datatypes.c: (rasqal_xsd_datetime_string_to_canonical)
	Added library internal function for upgrading xsd:dateTime strings
	to canonical form.
	(rasqal_xsd_datetime_parse_and_normalize,
	rasqal_xsd_datetime_to_string) Added module internal functions for
	dealing with xsd:dateTime strings.
	(rasqal_xsd_check_dateTime_format) Use
	rasqal_xsd_datetime_parse_and_normalize() for format checking.
	(days_per_month) Added helper function for
	rasqal_xsd_datetime_parse_and_normalize().
	(rasqal_xsd_datetime) Replaced struct with a version that can be
	used for normalization and does not use bitfields. Second
	fractions stored as string, not as double.
	(test_datetime_parser_tostring, test_datetimes, main) Added test
	code for xsd:dateTime handling.
	(Makefile.am): Moved rasqal_xsd_datatypes_test from local_tests to
	TESTS.

2007-10-10  Lauri Aalto <laalto@iki.fi>

	* src/rasqal_raptor.c: (rasqal_raptor_triple_present,
	rasqal_raptor_triples_match_context) Fix compiler warnings about
	enum-int mismatches.

2007-10-09  Dave Beckett <dave@dajobe.org>

	* tests/sparql/check-sparql: Invoke roqet with -D for data
	graphs (not named)

	* utils/roqet.c: Added -D/--data for data graphs and -G/--named
	for named graphs (-s is a synonym for this)

	* src/rasqal_raptor.c: (rasqal_raptor_new_triples_source): Use the
	named graph URI for the source literal to distinguish default and
	named graphs.
	(rasqal_raptor_triple_match): Add a parts field for the fields of
	the triple to match to distinguish a graph query with no binding
	from a non-graph query.  Add checks for graph/non-graph query when
	finding an origin in a triple so that they match.
	(rasqal_raptor_init_triples_match): Init the parts being looked
	for depending on whether t->origin is present.

	* src/rasqal_engine.c: (rasqal_engine_execute_run): Allow
	rasqal_engine_excute_next_lazy to return finished on first
	execution, for an empty result set.

	* src/rasqal_query.c: (rasqal_query_execute): It is not a failure
	for rasqal_engine_execute_run to be immediately finished, it is
	just an empty results set.

	* src/rasqal.h: (enum rasqal_triple_parts): Added
	RASQAL_TRIPLE_GRAPH as alias for RASQAL_TRIPLE_ORIGIN,
	RASQAL_TRIPLE_SPO for triple parts and RASQAL_TRIPLE_SPOG for all
	parts including graph.

	* src/sparql_parser.y: (DefaultGraphClause): Set graph name to
	NULL for default graph.

	* src/rasqal_raptor.c: (rasqal_raptor_triple_match): If a named
	graph triple is present, do not match a triple pattern with
	nothing in the 'origin'.

	* tests/sparql/check-sparql: handle dt:graphData

	* tests/sparql/dawg/graph/data-g3-dup.ttl,
	tests/sparql/dawg/graph/manifest.ttl: Update to DAWG test suite
	graph dir 2007-10-09

	* tests/sparql/dawg/dataset/data-g1-dup.ttl,
	tests/sparql/dawg/dataset/data-g2-dup.ttl,
	tests/sparql/dawg/dataset/data-g3-dup.ttl,
	tests/sparql/dawg/dataset/data-g4-dup.ttl,
	tests/sparql/dawg/dataset/dataset-09b.rq,
	tests/sparql/dawg/dataset/dataset-10b.rq,
	tests/sparql/dawg/dataset/dataset-12b.rq,
	tests/sparql/dawg/dataset/manifest.ttl: Update to DAWG test suite
	dataset dir 2007-10-09

	* tests/sparql/check-sparql: Handle DAWG dawgt:approval
	dawgt:Withdrawn tests

	* src/rasqal_expr.c: (rasqal_expression_evaluate): Make
	RASQAL_EXPR_BOUND work again.

2007-10-08  Dave Beckett <dave@dajobe.org>

	* src/sparql_parser.y: Added SAMETERM token for SPARQL keyword
	sameTerm() Added lexer tokens DOUBLE_POSITIVE_LITERAL,
	DOUBLE_NEGATIVE_LITERAL, INTEGER_POSITIVE_LITERAL,
	INTEGER_NEGATIVE_LITERAL, DECIMAL_POSITIVE_LITERAL,
	DECIMAL_NEGATIVE_LITERAL.  Some token re-orderings and
	renumberings.
	(Query): Move dataset, wher, group, order and limit to elsewhere
	like sparql grammar.
	(Prolog, PRefixDeclOpt): Rename to PrefixDeclListOpt
	(SelectQuery, DescribeQuery, ConstructQuery, AskQuery): Add
	appropriate datasets, where, and solution modifier if allowed.
	(ConstructQuery): Remove CONSTRUCT * - no longer in the grammar.
	(DefaultGraphClause, NamedGraphClause): Use SourceSelector
	(SourceSelector, SolutionModifier): Added like SPARQL grammar.
	(LimitOffsetClausesOpt): Renamed from LimitOffsetOpt, like SPARQL
	grammar.
	(Filter): Added, like SPARQL grammar.
	(ObjectList): Uses a list of Object like SPARQL grammar
	(Object): Added, like SPARQL grammar.
	(Verb): Changed to be VarOrIRIref not VarOrBlankNodeOrIRIref like
	SPARQL grammar
	(VarOrBlankNodeOrIRIref): Removed, no longer used.
	(GraphTerm): Use NumericLiteral like SPARQL grammar.
	(AdditiveExpression): Use NumericLiteralPositive and
	NumericLiteralNegative to allow unary minus/plus to work.  like
	SPARQL grammar.
	(BuiltInCall): Add SAMETERM.
	(NumericLiteral, NumericLiteralUnsigned, NumericLiteralPositive,
	NumericLiteralNegative): Added like SPARQL grammar

	* src/sparql_lexer.l: Added INTEGER macro
	Added SAMETERM SPARQL keyword
	Made INTEGER, DECIMAL and DOUBLE return either UNSIGNED_, POSITIVE_ or
	NEGATIVE_ tokens to help out the parser.

	* src/rasqal_query.c: (rasqal_query_write_sparql_expression_op):
	Added new RASQAL_EXPR_SAMETERM for SPARQL keyword sameTerm.

	* src/rasqal_expr.c: (rasqal_expression_clear,
	rasqal_expression_visit, rasqal_expression_evaluate,
	rasqal_expression_print, rasqal_expression_is_constant): Added new
	RASQAL_EXPR_SAMETERM for SPARQL keyword sameTerm().  Evaluation
	not implemented yet.

	* src/rasqal.h: Added new rasqal_op expression
	RASQAL_EXPR_SAMETERM for SPARQL keyword sameTerm()

2007-10-07  Dave Beckett <dave@dajobe.org>

	* src/rasqal_xsd_datatypes.c: (main) Comment out all of old test
	code that's not used or usable.

	* configure.ac: Remove --enable-datatypes

	* src/rasqal_expr.c: (main): Needs more init for xsd module.

	* src/rasqal_internal.h, src/rasqal_xsd_datatypes.c: Remove last
	uses of static rasqal_xsd_TYPE_uri uris

	* src/sparql_lexer.l: altered cast for change to
	rasqal_new_decimal_literal.

	* tests/sparql/check-sparql: Use config->{execute} and set to
	false for syntax test types

	* tests/sparql/check-sparql: revert: Debugging run_test for $debug>0

	* tests/sparql/check-sparql: Debugging run_test for $debug>1

	* tests/sparql/check-sparql: Debugging manifest for $debug>1

	* src/rasqal.h: typedef rasqal_literal: note decimal inits
	value.floating

	* src/rasqal_literal.c: (rasqal_new_decimal_literal): Initialise
	the floating field.

	* src/rasqal.h: Move the FIRST XSD to include
	RASQAL_LITERAL_STRING aka xsd:string

	* src/rasqal_query.c: (rasqal_query_write_sparql_literal): Use
	rasqal_xsd_datatype_type_to_uri to get xsd:dateTime URI.

	* src/rasqal_expr.c: (rasqal_expression_evaluate):
	RASQAL_EXPR_DATATYPE - ensure a plain literal with no datatype
	returns datatype xsd:string.

	* src/sparql_parser.y: (sparql_is_builtin_xsd_datatype): Removed.
	Use rasqal_xsd_is_datatype_uri instead

	* src/rasqal_literal.c, src/rasqal_xsd_datatypes.c: Move XSD
	functions to rasqal_xsd_datatypes.c

	* src/rasqal_internal.h: Added prototypes for
	rasqal_xsd_datatype_uri_to_type, rasqal_xsd_datatype_type_to_uri,
	rasqal_xsd_datatype_check, rasqal_xsd_datatype_label and
	rasqal_xsd_is_datatype_uri

	* src/rasqal_general.c: Move XSD uris init/free to
	rasqal_xsd_datatypes.c

	* src/Makefile.am: Add rasqal_xsd_datatypes.c to compilation

	* src/rasqal_internal.h: Added rasqal_new_numeric_literal

	* src/rasqal_expr.c: (rasqal_expression_evaluate):
	RASQAL_EXPR_UMINUS, RASQAL_EXPR_PLUS, RASQAL_EXPR_MINUS,
	RASQAL_EXPR_STAR and RASQAL_EXPR_SLASH now use
	rasqal_new_numeric_literal.  RASQAL_EXPR_LITERAL: Turn a literal
	into a literal value here, removing mention of variables.

	* src/rasqal_literal.c: (rasqal_new_float_literal): Added.
	(rasqal_new_decimal_literal) Now takes a const char* arg.
	(rasqal_new_numeric_literal): Added

	* src/rasqal.h: Added rasqal_new_float_literal
	rasqal_new_decimal_literal now takes a const char*

	* tests/sparql/check-sparql: debug query type

	* src/rasqal_expr.c: (rasqal_expression_evaluate): Print
	expression again when printing result.

	* src/rasqal_literal.c: (rasqal_literal_as_integer,
	rasqal_literal_as_floating): Convert decimal to integer, floating
	too.
	(rasqal_literal_compare): Decimal can be used as a double.
	(rasqal_literal_as_integer): Decimal can be turned into an an
	integer.
	(rasqal_literal_equals): Compare decimal as doubles.

	* src/rasqal_literal.c: (rasqal_literal_print): Debug message tweak

	* src/rasqal_engine.c: docs

	* src/rasqal_engine.c: (rasqal_engine_query_result_row_to_nodes):
	Added to turn internal literal types into just URI/blank/string
	literal RDF nodes.
	(rasqal_engine_execute_run): Call
	rasqal_engine_query_result_row_to_nodes for first result row.
	(rasqal_engine_execute_next): Call
	rasqal_engine_query_result_row_to_nodes for all new rows.

	* src/rasqal_engine.c: prototype

	* src/rasqal_engine.c: Moved rasqal_engine_excute_next_lazy

	* src/rasqal_engine.c: (rasqal_engine_get_result_row): Added
	(rasqal_engine_get_result_values): Uses
	rasqal_engine_get_result_row.
	(rasqal_engine_execute_next_from_saved): Added
	(rasqal_engine_execute_next): Use
	rasqal_engine_execute_next_from_saved.

2007-10-06  Dave Beckett <dave@dajobe.org>

	* src/rasqal_engine.c: Code style

	* src/rasqal_engine.c, src/rasqal_internal.h, src/rasqal_query.c:
	Remove rasqal_query field binding_values as it is not needed

	* src/rasqal_engine.c: Docs
	(rasqal_engine_get_result_values): Renamed from
	rasqal_engine_get_results_values

	* src/rasqal_query_results.c: Renamed
	rasqal_engine_get_results_values to
	rasqal_engine_get_result_values

	* src/rasqal_internal.h: Renamed rasqal_engine_get_results_values
	to rasqal_engine_get_result_values

	* src/rasqal_engine.c: docs

	* src/rasqal_engine.c: Add a bunch of internal docs.
	(rasqal_engine_query_result_row_update): Do not throw away
	datatype information early.  Do not throw it away for ordering.
	(rasqal_engine_excute_next_lazy): Renamed from
	rasqal_engine_query_results_update since it is only used in lazy
	evaluation.
	(rasqal_engine_execute_and_save): Added to pull out the code from
	rasqal_engine_execute_run that is run when results are wanted to
	be saved.
	(rasqal_engine_execute_run): Documentation of execution operation
	and change to use rasqal_engine_execute_and_save
	(rasqal_engine_execute_next): Docs and change to use
	rasqal_engine_excute_next_lazy.

	* src/rasqal.h: Added rasqal_literal_value.

	* src/rasqal_literal.c: (rasqal_new_literal_from_literal): Return
	NULL if NULL was given.
	(rasqal_literal_value): Added, to return a value and looking up
	variable literals.

	* tests/sparql/check-sparql: Order expected results using rs:index
	predicate if it's present.

2007-10-05  Lauri Aalto <laalto@iki.fi>

	* src/sparql_parser.y: (PropertyListNotEmpty) Refactored to not
	use raptor_sequence_disown_at()

	* src/rasqal_literal.c: (sparql_xsd_datatypes_table) Fix compiler
	warning: cast int to enum.
	(rasqal_literal_cast) Return a copy of the literal when casting to
	same type.

2007-10-05  Dave Beckett <dave@dajobe.org>

	* src/rasqal_literal.c: (rasqal_literal_check_boolean_format):
	Note not strictly conforming.
	(rasqal_literal_check_dateTime_format): Add even more caveats.
	(rasqal_literal_check_decimal_format): Update to be conformant.
	(rasqal_literal_check_double_format): Note not strictly
	confirming.
	(rasqal_literal_check_float_format): Note not strictly confirming.
	(rasqal_literal_check_integer_format): Note is conformant.

	* src/rasqal_literal.c: Added start of format checking for XSD
	literal strings.  This code should probably be moved into a
	separate module and connected to the other skeletal datatype code.
	(rasqal_literal_check_boolean_format,
	rasqal_literal_check_dateTime_format,
	rasqal_literal_check_decimal_format,
	rasqal_literal_check_double_format,
	rasqal_literal_check_float_format,
	rasqal_literal_check_integer_format): Added of which only boolean
	and integer are fully correct.
	(struct sparql_xsd_datatypes_table): Table added.
	(rasqal_xsd_init, rasqal_xsd_finish): Added to initialise table.
	(rasqal_literal_string_to_native): Use sparql_xsd_datatypes_table
	table to drive validation and to avoid URI comparisons.
	(rasqal_literal_cast): Do allowed type conversion checks and then
	pass on to rasqal_new_string_literal to test the allowed syntax.

	* src/rasqal_internal.h: Added rasqal_xsd_init and rasqal_xsd_finish.

	* src/rasqal_general.c: (rasqal_init, rasqal_finish): Init/free
	the XSD code with rasqal_xsd_init() and rasqal_xsd_finish().

2007-10-04  Dave Beckett <dave@dajobe.org>

	* src/rasqal_expr.c: unused var

	* src/rasqal_expr.c: (rasqal_expression_evaluate): Use
	rasqal_literal_cast for RASQAL_EXPR_CAST evaluation.

	* src/rasqal_internal.h: Added rasqal_literal_cast

	* src/rasqal_literal.c: (rasqal_literal_cast): Added for casting
	between literal types

	* src/rasqal.h: Added rasqal_literal_datatype

	* src/rasqal_literal.c: (rasqal_new_boolean_literal): Set boolean
	datatype.
	(rasqal_literal_datatype): Added to get a literal datatype URI if
	it has one.

	* tests/sparql/check-sparql: Allow choosing unique test by regex
	on the test URI since sometimes the name is not unique.

	* tests/sparql/check-sparql: Replace so-called XML::Simple with
	XML::DOM which is actually simpler, and even as a bonus, works.

2007-10-04  Lauri Aalto <laalto@iki.fi>

	* src/sparql_parser.y: Check for alloc failures. Free allocated
	resources and YYERROR on failure. Added YYERROR_MSG macro to help
	with debugging.

	* src/sparql_lexer.l: lexer: yyterminate() on alloc failures.
	(sparql_copy_string_token) Check for alloc failures.

	* src/rasqal_expr.c: (rasqal_new_3op_expression) Do not free null
	arg3 on alloc error.

2007-10-03  Dave Beckett <dave@dajobe.org>

	* tests/sparql/check-sparql: tweak output

	* tests/sparql/dawg/optional-filter/expr-4-result.ttl,
	tests/sparql/dawg/optional-filter/expr-4.rq,
	tests/sparql/dawg/optional-filter/expr-5-result-not-simplified.ttl,
	tests/sparql/dawg/optional-filter/expr-5-result-simplified.ttl,
	tests/sparql/dawg/optional-filter/expr-5.rq: new DAWG tests

	* tests/sparql/dawg/optional-filter/data-1.ttl,
	tests/sparql/dawg/optional-filter/expr-1-result.ttl,
	tests/sparql/dawg/optional-filter/expr-2-result.ttl,
	tests/sparql/dawg/optional-filter/expr-3-result.ttl,
	tests/sparql/dawg/optional-filter/manifest.ttl: updated DAWG tests

	* src/rasqal_raptor.c: (rasqal_raptor_triple_match): debug printf

	* src/rasqal_literal.c: (rasqal_literal_string_to_native): Promote
	xsd:decimal to RASQAL_LITERAL_DECIMAL

	* src/sparql_lexer.l: Add support for @lang and ^^datatype after
	triple quoted literals.
	(sparql_copy_string_token): Skip repeated terminating delimiters.

2007-10-03  Lauri Aalto <laalto@iki.fi>

	* src/rasqal_literal.c: (rasqal_literal_as_node) Return NULL if
	new literal string allocation fails. No need to handle boolean
	datatypes as a special case.

	* src/rasqal_literal.c: indent, style

	* src/rasqal_literal.c: (rasqal_new_integer_literal,
	rasqal_new_double_literal, rasqal_new_decimal_literal,
	rasqal_new_string_literal) Set usage flag early to enable cleanup
	with rasqal_free_literal().

	* src/rasqal_literal.c: (rasqal_formula_join) Free second formula
	even if neither formula has triples.

2007-10-02  Dave Beckett <dave@dajobe.org>

	* tests/sparql/check-sparql: try to fix the pain of using XML::Simple

	* tests/sparql/check-sparql: Save rasqal_date in output EARL

2007-10-02  Lauri Aalto <laalto@iki.fi>

	* src/rasqal_literal.c,
	tests/sparql/examples/Makefile.am: (rasqal_literal_compare) Return
	type error when comparing plain and typed literals.  Fixes
	tests/sparql/examples/ex11_0
	(sparql-query-example-Testing-Values-0).

	* src/sparql_parser.y, tests/sparql/examples/Makefile.am:
	(FilteredBasicGraphPattern) Push BlockOfTriplesOpt instead of
	shifting.
	Fixes Issue#000200 http://bugs.librdf.org/mantis/view.php?id=200
	Fixes tests/sparql/examples/ex3 (sparql-query-example-e).

2007-10-01  Lauri Aalto <laalto@iki.fi>

	* src/rasqal_engine.c: (rasqal_free_gp_data) Free triple_meta even
	if gp is NULL.
	(rasqal_engine_graph_pattern_init(rasqal_query_results) Check for
	triple_meta alloc failure.

2007-09-30  Dave Beckett <dave@dajobe.org>

	* tests/sparql/check-sparql: Add SVN info to version for EARL output

	* tests/sparql/dawg, tests/sparql/dawg/LICENSE,
	tests/sparql/dawg/README, tests/sparql/dawg/algebra,
	tests/sparql/dawg/algebra/data-1.ttl,
	tests/sparql/dawg/algebra/data-2.ttl,
	tests/sparql/dawg/algebra/filter-nested-1.rq,
	tests/sparql/dawg/algebra/filter-nested-1.srx,
	tests/sparql/dawg/algebra/filter-nested-2.rq,
	tests/sparql/dawg/algebra/filter-nested-2.srx,
	tests/sparql/dawg/algebra/filter-placement-1.rq,
	tests/sparql/dawg/algebra/filter-placement-1.srx,
	tests/sparql/dawg/algebra/filter-placement-2.rq,
	tests/sparql/dawg/algebra/filter-placement-2.srx,
	tests/sparql/dawg/algebra/filter-placement-3.rq,
	tests/sparql/dawg/algebra/filter-placement-3.srx,
	tests/sparql/dawg/algebra/filter-scope-1.rq,
	tests/sparql/dawg/algebra/filter-scope-1.srx,
	tests/sparql/dawg/algebra/join-combo-1.rq,
	tests/sparql/dawg/algebra/join-combo-1.srx,
	tests/sparql/dawg/algebra/join-combo-2.rq,
	tests/sparql/dawg/algebra/join-combo-2.srx,
	tests/sparql/dawg/algebra/join-combo-graph-1.ttl,
	tests/sparql/dawg/algebra/join-combo-graph-2.ttl,
	tests/sparql/dawg/algebra/manifest.ttl,
	tests/sparql/dawg/algebra/opt-filter-1.rq,
	tests/sparql/dawg/algebra/opt-filter-1.srx,
	tests/sparql/dawg/algebra/opt-filter-1.ttl,
	tests/sparql/dawg/algebra/opt-filter-2.rq,
	tests/sparql/dawg/algebra/opt-filter-2.srx,
	tests/sparql/dawg/algebra/opt-filter-2.ttl,
	tests/sparql/dawg/algebra/opt-filter-3.rq,
	tests/sparql/dawg/algebra/opt-filter-3.srx,
	tests/sparql/dawg/algebra/opt-filter-3.ttl,
	tests/sparql/dawg/algebra/two-nested-opt-alt.rq,
	tests/sparql/dawg/algebra/two-nested-opt-alt.srx,
	tests/sparql/dawg/algebra/two-nested-opt.rq,
	tests/sparql/dawg/algebra/two-nested-opt.srx,
	tests/sparql/dawg/algebra/two-nested-opt.ttl,
	tests/sparql/dawg/algebra/var-scope-join-1.rq,
	tests/sparql/dawg/algebra/var-scope-join-1.srx,
	tests/sparql/dawg/algebra/var-scope-join-1.ttl,
	tests/sparql/dawg/algebra-expressions.txt, tests/sparql/dawg/ask,
	tests/sparql/dawg/ask/ask-1.rq, tests/sparql/dawg/ask/ask-1.srx,
	tests/sparql/dawg/ask/ask-4.rq, tests/sparql/dawg/ask/ask-4.srx,
	tests/sparql/dawg/ask/ask-7.rq, tests/sparql/dawg/ask/ask-7.srx,
	tests/sparql/dawg/ask/ask-8.rq, tests/sparql/dawg/ask/ask-8.srx,
	tests/sparql/dawg/ask/data.ttl,
	tests/sparql/dawg/ask/manifest.ttl, tests/sparql/dawg/basic,
	tests/sparql/dawg/basic/base-prefix-1.rq,
	tests/sparql/dawg/basic/base-prefix-1.srx,
	tests/sparql/dawg/basic/base-prefix-2.rq,
	tests/sparql/dawg/basic/base-prefix-2.srx,
	tests/sparql/dawg/basic/base-prefix-3.rq,
	tests/sparql/dawg/basic/base-prefix-3.srx,
	tests/sparql/dawg/basic/base-prefix-4.rq,
	tests/sparql/dawg/basic/base-prefix-4.srx,
	tests/sparql/dawg/basic/base-prefix-5.rq,
	tests/sparql/dawg/basic/base-prefix-5.srx,
	tests/sparql/dawg/basic/bgp-no-match.rq,
	tests/sparql/dawg/basic/bgp-no-match.srx,
	tests/sparql/dawg/basic/data-1.ttl,
	tests/sparql/dawg/basic/data-2.ttl,
	tests/sparql/dawg/basic/data-3.ttl,
	tests/sparql/dawg/basic/data-4.ttl,
	tests/sparql/dawg/basic/data-5.ttl,
	tests/sparql/dawg/basic/data-6.ttl,
	tests/sparql/dawg/basic/data-7.ttl,
	tests/sparql/dawg/basic/list-1.rq,
	tests/sparql/dawg/basic/list-1.srx,
	tests/sparql/dawg/basic/list-2.rq,
	tests/sparql/dawg/basic/list-2.srx,
	tests/sparql/dawg/basic/list-3.rq,
	tests/sparql/dawg/basic/list-3.srx,
	tests/sparql/dawg/basic/list-4.rq,
	tests/sparql/dawg/basic/list-4.srx,
	tests/sparql/dawg/basic/manifest.ttl,
	tests/sparql/dawg/basic/prefix-name-1.rq,
	tests/sparql/dawg/basic/prefix-name-1.srx,
	tests/sparql/dawg/basic/quotes-1.rq,
	tests/sparql/dawg/basic/quotes-1.srx,
	tests/sparql/dawg/basic/quotes-2.rq,
	tests/sparql/dawg/basic/quotes-2.srx,
	tests/sparql/dawg/basic/quotes-3.rq,
	tests/sparql/dawg/basic/quotes-3.srx,
	tests/sparql/dawg/basic/quotes-4.rq,
	tests/sparql/dawg/basic/quotes-4.srx,
	tests/sparql/dawg/basic/spoo-1.rq,
	tests/sparql/dawg/basic/spoo-1.srx,
	tests/sparql/dawg/basic/term-1.rq,
	tests/sparql/dawg/basic/term-1.srx,
	tests/sparql/dawg/basic/term-2.rq,
	tests/sparql/dawg/basic/term-2.srx,
	tests/sparql/dawg/basic/term-3.rq,
	tests/sparql/dawg/basic/term-3.srx,
	tests/sparql/dawg/basic/term-4.rq,
	tests/sparql/dawg/basic/term-4.srx,
	tests/sparql/dawg/basic/term-5.rq,
	tests/sparql/dawg/basic/term-5.srx,
	tests/sparql/dawg/basic/term-6.rq,
	tests/sparql/dawg/basic/term-6.srx,
	tests/sparql/dawg/basic/term-7.rq,
	tests/sparql/dawg/basic/term-7.srx,
	tests/sparql/dawg/basic/term-8.rq,
	tests/sparql/dawg/basic/term-8.srx,
	tests/sparql/dawg/basic/term-9.rq,
	tests/sparql/dawg/basic/term-9.srx,
	tests/sparql/dawg/basic/var-1.rq,
	tests/sparql/dawg/basic/var-1.srx,
	tests/sparql/dawg/basic/var-2.rq,
	tests/sparql/dawg/basic/var-2.srx,
	tests/sparql/dawg/bnode-coreference,
	tests/sparql/dawg/bnode-coreference/data.ttl,
	tests/sparql/dawg/bnode-coreference/manifest.ttl,
	tests/sparql/dawg/bnode-coreference/query.rq,
	tests/sparql/dawg/bnode-coreference/result.ttl,
	tests/sparql/dawg/boolean-effective-value,
	tests/sparql/dawg/boolean-effective-value/data-1.ttl,
	tests/sparql/dawg/boolean-effective-value/data-2.ttl,
	tests/sparql/dawg/boolean-effective-value/manifest.ttl,
	tests/sparql/dawg/boolean-effective-value/query-bev-1.rq,
	tests/sparql/dawg/boolean-effective-value/query-bev-2.rq,
	tests/sparql/dawg/boolean-effective-value/query-bev-3.rq,
	tests/sparql/dawg/boolean-effective-value/query-bev-4.rq,
	tests/sparql/dawg/boolean-effective-value/query-bev-5.rq,
	tests/sparql/dawg/boolean-effective-value/query-bev-6.rq,
	tests/sparql/dawg/boolean-effective-value/query-boolean-literal.rq,
	tests/sparql/dawg/boolean-effective-value/result-bev-1.ttl,
	tests/sparql/dawg/boolean-effective-value/result-bev-2.ttl,
	tests/sparql/dawg/boolean-effective-value/result-bev-3.ttl,
	tests/sparql/dawg/boolean-effective-value/result-bev-4.ttl,
	tests/sparql/dawg/boolean-effective-value/result-bev-5.ttl,
	tests/sparql/dawg/boolean-effective-value/result-bev-6.ttl,
	tests/sparql/dawg/boolean-effective-value/result-boolean-literal.ttl,
	tests/sparql/dawg/bound,
	tests/sparql/dawg/bound/bound1-result.ttl,
	tests/sparql/dawg/bound/bound1.rq,
	tests/sparql/dawg/bound/data.ttl,
	tests/sparql/dawg/bound/manifest.ttl, tests/sparql/dawg/cast,
	tests/sparql/dawg/cast/cast-bool.rq,
	tests/sparql/dawg/cast/cast-bool.srx,
	tests/sparql/dawg/cast/cast-dT.rq,
	tests/sparql/dawg/cast/cast-dT.srx,
	tests/sparql/dawg/cast/cast-dbl.rq,
	tests/sparql/dawg/cast/cast-dbl.srx,
	tests/sparql/dawg/cast/cast-dec.rq,
	tests/sparql/dawg/cast/cast-dec.srx,
	tests/sparql/dawg/cast/cast-flt.rq,
	tests/sparql/dawg/cast/cast-flt.srx,
	tests/sparql/dawg/cast/cast-int.rq,
	tests/sparql/dawg/cast/cast-int.srx,
	tests/sparql/dawg/cast/cast-str.rq,
	tests/sparql/dawg/cast/cast-str.srx,
	tests/sparql/dawg/cast/data.ttl,
	tests/sparql/dawg/cast/manifest.ttl, tests/sparql/dawg/construct,
	tests/sparql/dawg/construct/data-ident.ttl,
	tests/sparql/dawg/construct/data-opt.ttl,
	tests/sparql/dawg/construct/data-reif.ttl,
	tests/sparql/dawg/construct/manifest.ttl,
	tests/sparql/dawg/construct/query-construct-optional.rq,
	tests/sparql/dawg/construct/query-ident.rq,
	tests/sparql/dawg/construct/query-reif-1.rq,
	tests/sparql/dawg/construct/query-reif-2.rq,
	tests/sparql/dawg/construct/query-subgraph.rq,
	tests/sparql/dawg/construct/result-construct-optional.ttl,
	tests/sparql/dawg/construct/result-ident.ttl,
	tests/sparql/dawg/construct/result-reif.ttl,
	tests/sparql/dawg/construct/result-subgraph.ttl,
	tests/sparql/dawg/dataset, tests/sparql/dawg/dataset/data-g1.ttl,
	tests/sparql/dawg/dataset/data-g2.ttl,
	tests/sparql/dawg/dataset/data-g3.ttl,
	tests/sparql/dawg/dataset/data-g4.ttl,
	tests/sparql/dawg/dataset/dataset-01.rq,
	tests/sparql/dawg/dataset/dataset-01.ttl,
	tests/sparql/dawg/dataset/dataset-02.rq,
	tests/sparql/dawg/dataset/dataset-02.ttl,
	tests/sparql/dawg/dataset/dataset-03.rq,
	tests/sparql/dawg/dataset/dataset-03.ttl,
	tests/sparql/dawg/dataset/dataset-04.rq,
	tests/sparql/dawg/dataset/dataset-04.ttl,
	tests/sparql/dawg/dataset/dataset-05.rq,
	tests/sparql/dawg/dataset/dataset-05.ttl,
	tests/sparql/dawg/dataset/dataset-06.rq,
	tests/sparql/dawg/dataset/dataset-06.ttl,
	tests/sparql/dawg/dataset/dataset-07.rq,
	tests/sparql/dawg/dataset/dataset-07.ttl,
	tests/sparql/dawg/dataset/dataset-08.rq,
	tests/sparql/dawg/dataset/dataset-08.ttl,
	tests/sparql/dawg/dataset/dataset-09.rq,
	tests/sparql/dawg/dataset/dataset-09.ttl,
	tests/sparql/dawg/dataset/dataset-10.rq,
	tests/sparql/dawg/dataset/dataset-10.ttl,
	tests/sparql/dawg/dataset/dataset-11.rq,
	tests/sparql/dawg/dataset/dataset-11.ttl,
	tests/sparql/dawg/dataset/dataset-12.rq,
	tests/sparql/dawg/dataset/dataset-12.ttl,
	tests/sparql/dawg/dataset/manifest.ttl,
	tests/sparql/dawg/distinct,
	tests/sparql/dawg/distinct/data-all.ttl,
	tests/sparql/dawg/distinct/data-node.ttl,
	tests/sparql/dawg/distinct/data-num.ttl,
	tests/sparql/dawg/distinct/data-opt.ttl,
	tests/sparql/dawg/distinct/data-star.ttl,
	tests/sparql/dawg/distinct/data-str.ttl,
	tests/sparql/dawg/distinct/distinct-1-results.srx,
	tests/sparql/dawg/distinct/distinct-1.rq,
	tests/sparql/dawg/distinct/distinct-2.rq,
	tests/sparql/dawg/distinct/distinct-all.srx,
	tests/sparql/dawg/distinct/distinct-node.srx,
	tests/sparql/dawg/distinct/distinct-num.srx,
	tests/sparql/dawg/distinct/distinct-opt.srx,
	tests/sparql/dawg/distinct/distinct-star-1.rq,
	tests/sparql/dawg/distinct/distinct-star-1.srx,
	tests/sparql/dawg/distinct/distinct-str.srx,
	tests/sparql/dawg/distinct/manifest.ttl,
	tests/sparql/dawg/distinct/no-distinct-1.rq,
	tests/sparql/dawg/distinct/no-distinct-2.rq,
	tests/sparql/dawg/distinct/no-distinct-all.srx,
	tests/sparql/dawg/distinct/no-distinct-node.srx,
	tests/sparql/dawg/distinct/no-distinct-num.srx,
	tests/sparql/dawg/distinct/no-distinct-opt.srx,
	tests/sparql/dawg/distinct/no-distinct-str.srx,
	tests/sparql/dawg/expr-builtin,
	tests/sparql/dawg/expr-builtin/data-builtin-1.ttl,
	tests/sparql/dawg/expr-builtin/data-builtin-2.ttl,
	tests/sparql/dawg/expr-builtin/data-langMatches-de.ttl,
	tests/sparql/dawg/expr-builtin/data-langMatches.ttl,
	tests/sparql/dawg/expr-builtin/lang-case-insensitive-eq.srx,
	tests/sparql/dawg/expr-builtin/lang-case-insensitive-ne.srx,
	tests/sparql/dawg/expr-builtin/lang-case-sensitivity-eq.rq,
	tests/sparql/dawg/expr-builtin/lang-case-sensitivity-ne.rq,
	tests/sparql/dawg/expr-builtin/lang-case-sensitivity.ttl,
	tests/sparql/dawg/expr-builtin/manifest.ttl,
	tests/sparql/dawg/expr-builtin/q-blank-1.rq,
	tests/sparql/dawg/expr-builtin/q-datatype-1.rq,
	tests/sparql/dawg/expr-builtin/q-datatype-2.rq,
	tests/sparql/dawg/expr-builtin/q-datatype-3.rq,
	tests/sparql/dawg/expr-builtin/q-iri-1.rq,
	tests/sparql/dawg/expr-builtin/q-isliteral-1.rq,
	tests/sparql/dawg/expr-builtin/q-lang-1.rq,
	tests/sparql/dawg/expr-builtin/q-lang-2.rq,
	tests/sparql/dawg/expr-builtin/q-lang-3.rq,
	tests/sparql/dawg/expr-builtin/q-langMatches-1.rq,
	tests/sparql/dawg/expr-builtin/q-langMatches-2.rq,
	tests/sparql/dawg/expr-builtin/q-langMatches-3.rq,
	tests/sparql/dawg/expr-builtin/q-langMatches-4.rq,
	tests/sparql/dawg/expr-builtin/q-langMatches-de-de.rq,
	tests/sparql/dawg/expr-builtin/q-str-1.rq,
	tests/sparql/dawg/expr-builtin/q-str-2.rq,
	tests/sparql/dawg/expr-builtin/q-str-3.rq,
	tests/sparql/dawg/expr-builtin/q-str-4.rq,
	tests/sparql/dawg/expr-builtin/q-uri-1.rq,
	tests/sparql/dawg/expr-builtin/result-blank-1.ttl,
	tests/sparql/dawg/expr-builtin/result-datatype-1.ttl,
	tests/sparql/dawg/expr-builtin/result-datatype-2.srx,
	tests/sparql/dawg/expr-builtin/result-datatype-3.srx,
	tests/sparql/dawg/expr-builtin/result-iri-1.ttl,
	tests/sparql/dawg/expr-builtin/result-isliteral-1.ttl,
	tests/sparql/dawg/expr-builtin/result-lang-1.srx,
	tests/sparql/dawg/expr-builtin/result-lang-2.srx,
	tests/sparql/dawg/expr-builtin/result-lang-3.srx,
	tests/sparql/dawg/expr-builtin/result-langMatches-1.ttl,
	tests/sparql/dawg/expr-builtin/result-langMatches-2.ttl,
	tests/sparql/dawg/expr-builtin/result-langMatches-3.ttl,
	tests/sparql/dawg/expr-builtin/result-langMatches-4.ttl,
	tests/sparql/dawg/expr-builtin/result-langMatches-de.ttl,
	tests/sparql/dawg/expr-builtin/result-str-1.ttl,
	tests/sparql/dawg/expr-builtin/result-str-2.ttl,
	tests/sparql/dawg/expr-builtin/result-str-3.ttl,
	tests/sparql/dawg/expr-builtin/result-str-4.ttl,
	tests/sparql/dawg/expr-builtin/result-uri-1.ttl,
	tests/sparql/dawg/expr-equals,
	tests/sparql/dawg/expr-equals/data-eq.ttl,
	tests/sparql/dawg/expr-equals/manifest.ttl,
	tests/sparql/dawg/expr-equals/query-eq-1.rq,
	tests/sparql/dawg/expr-equals/query-eq-2.rq,
	tests/sparql/dawg/expr-equals/query-eq-3.rq,
	tests/sparql/dawg/expr-equals/query-eq-4.rq,
	tests/sparql/dawg/expr-equals/query-eq-5.rq,
	tests/sparql/dawg/expr-equals/query-eq-graph-1.rq,
	tests/sparql/dawg/expr-equals/query-eq-graph-2.rq,
	tests/sparql/dawg/expr-equals/query-eq-graph-3.rq,
	tests/sparql/dawg/expr-equals/query-eq-graph-4.rq,
	tests/sparql/dawg/expr-equals/query-eq-graph-5.rq,
	tests/sparql/dawg/expr-equals/query-eq2-1.rq,
	tests/sparql/dawg/expr-equals/query-eq2-2.rq,
	tests/sparql/dawg/expr-equals/query-eq2-graph-1.rq,
	tests/sparql/dawg/expr-equals/result-eq-1.ttl,
	tests/sparql/dawg/expr-equals/result-eq-2.ttl,
	tests/sparql/dawg/expr-equals/result-eq-3.ttl,
	tests/sparql/dawg/expr-equals/result-eq-4.ttl,
	tests/sparql/dawg/expr-equals/result-eq-5.ttl,
	tests/sparql/dawg/expr-equals/result-eq-graph-1.ttl,
	tests/sparql/dawg/expr-equals/result-eq-graph-2.ttl,
	tests/sparql/dawg/expr-equals/result-eq-graph-3.ttl,
	tests/sparql/dawg/expr-equals/result-eq-graph-4.ttl,
	tests/sparql/dawg/expr-equals/result-eq-graph-5.ttl,
	tests/sparql/dawg/expr-equals/result-eq2-1.ttl,
	tests/sparql/dawg/expr-equals/result-eq2-2.ttl,
	tests/sparql/dawg/expr-equals/result-eq2-graph-1.ttl,
	tests/sparql/dawg/expr-ops, tests/sparql/dawg/expr-ops/data.ttl,
	tests/sparql/dawg/expr-ops/manifest.ttl,
	tests/sparql/dawg/expr-ops/query-ge-1.rq,
	tests/sparql/dawg/expr-ops/query-le-1.rq,
	tests/sparql/dawg/expr-ops/query-minus-1.rq,
	tests/sparql/dawg/expr-ops/query-mul-1.rq,
	tests/sparql/dawg/expr-ops/query-plus-1.rq,
	tests/sparql/dawg/expr-ops/query-unminus-1.rq,
	tests/sparql/dawg/expr-ops/query-unplus-1.rq,
	tests/sparql/dawg/expr-ops/result-ge-1.srx,
	tests/sparql/dawg/expr-ops/result-le-1.srx,
	tests/sparql/dawg/expr-ops/result-minus-1.srx,
	tests/sparql/dawg/expr-ops/result-mul-1.srx,
	tests/sparql/dawg/expr-ops/result-plus-1.srx,
	tests/sparql/dawg/expr-ops/result-unminus-1.srx,
	tests/sparql/dawg/expr-ops/result-unplus-1.srx,
	tests/sparql/dawg/extended-manifest-evaluation.ttl,
	tests/sparql/dawg/graph, tests/sparql/dawg/graph/data-g1.ttl,
	tests/sparql/dawg/graph/data-g2.ttl,
	tests/sparql/dawg/graph/data-g3.ttl,
	tests/sparql/dawg/graph/data-g4.ttl,
	tests/sparql/dawg/graph/graph-01.rq,
	tests/sparql/dawg/graph/graph-01.ttl,
	tests/sparql/dawg/graph/graph-02.rq,
	tests/sparql/dawg/graph/graph-02.ttl,
	tests/sparql/dawg/graph/graph-03.rq,
	tests/sparql/dawg/graph/graph-03.ttl,
	tests/sparql/dawg/graph/graph-04.rq,
	tests/sparql/dawg/graph/graph-04.ttl,
	tests/sparql/dawg/graph/graph-05.rq,
	tests/sparql/dawg/graph/graph-05.ttl,
	tests/sparql/dawg/graph/graph-06.rq,
	tests/sparql/dawg/graph/graph-06.ttl,
	tests/sparql/dawg/graph/graph-07.rq,
	tests/sparql/dawg/graph/graph-07.ttl,
	tests/sparql/dawg/graph/graph-08.rq,
	tests/sparql/dawg/graph/graph-08.ttl,
	tests/sparql/dawg/graph/graph-09.rq,
	tests/sparql/dawg/graph/graph-09.ttl,
	tests/sparql/dawg/graph/graph-10.rq,
	tests/sparql/dawg/graph/graph-10.ttl,
	tests/sparql/dawg/graph/graph-11.rq,
	tests/sparql/dawg/graph/graph-11.ttl,
	tests/sparql/dawg/graph/manifest.ttl, tests/sparql/dawg/i18n,
	tests/sparql/dawg/i18n/.htaccess,
	tests/sparql/dawg/i18n/kanji-01-results.ttl,
	tests/sparql/dawg/i18n/kanji-01.rq,
	tests/sparql/dawg/i18n/kanji-02-results.ttl,
	tests/sparql/dawg/i18n/kanji-02.rq,
	tests/sparql/dawg/i18n/kanji.ttl,
	tests/sparql/dawg/i18n/manifest.ttl,
	tests/sparql/dawg/i18n/normalization-01-results.ttl,
	tests/sparql/dawg/i18n/normalization-01.rq,
	tests/sparql/dawg/i18n/normalization-01.ttl,
	tests/sparql/dawg/i18n/normalization-02-results.ttl,
	tests/sparql/dawg/i18n/normalization-02.rq,
	tests/sparql/dawg/i18n/normalization-02.ttl,
	tests/sparql/dawg/i18n/normalization-03-results.ttl,
	tests/sparql/dawg/i18n/normalization-03.rq,
	tests/sparql/dawg/i18n/normalization-03.ttl,
	tests/sparql/dawg/manifest-evaluation.ttl,
	tests/sparql/dawg/manifest-syntax.ttl,
	tests/sparql/dawg/open-world,
	tests/sparql/dawg/open-world/data-1.ttl,
	tests/sparql/dawg/open-world/data-2.ttl,
	tests/sparql/dawg/open-world/data-3.ttl,
	tests/sparql/dawg/open-world/data-4.ttl,
	tests/sparql/dawg/open-world/date-1-result.srx,
	tests/sparql/dawg/open-world/date-1.rq,
	tests/sparql/dawg/open-world/date-2-result.srx,
	tests/sparql/dawg/open-world/date-2.rq,
	tests/sparql/dawg/open-world/date-3-result.srx,
	tests/sparql/dawg/open-world/date-3.rq,
	tests/sparql/dawg/open-world/date-4-result.srx,
	tests/sparql/dawg/open-world/date-4.rq,
	tests/sparql/dawg/open-world/manifest.ttl,
	tests/sparql/dawg/open-world/open-cmp-01-result.srx,
	tests/sparql/dawg/open-world/open-cmp-01.rq,
	tests/sparql/dawg/open-world/open-cmp-02-result.srx,
	tests/sparql/dawg/open-world/open-cmp-02.rq,
	tests/sparql/dawg/open-world/open-eq-01-result.srx,
	tests/sparql/dawg/open-world/open-eq-01.rq,
	tests/sparql/dawg/open-world/open-eq-02-result.srx,
	tests/sparql/dawg/open-world/open-eq-02.rq,
	tests/sparql/dawg/open-world/open-eq-03-result.srx,
	tests/sparql/dawg/open-world/open-eq-03.rq,
	tests/sparql/dawg/open-world/open-eq-04-result.srx,
	tests/sparql/dawg/open-world/open-eq-04.rq,
	tests/sparql/dawg/open-world/open-eq-05-result.srx,
	tests/sparql/dawg/open-world/open-eq-05.rq,
	tests/sparql/dawg/open-world/open-eq-06-result.srx,
	tests/sparql/dawg/open-world/open-eq-06.rq,
	tests/sparql/dawg/open-world/open-eq-07-result.srx,
	tests/sparql/dawg/open-world/open-eq-07.rq,
	tests/sparql/dawg/open-world/open-eq-08-result.srx,
	tests/sparql/dawg/open-world/open-eq-08.rq,
	tests/sparql/dawg/open-world/open-eq-09-result.srx,
	tests/sparql/dawg/open-world/open-eq-09.rq,
	tests/sparql/dawg/open-world/open-eq-10-result.srx,
	tests/sparql/dawg/open-world/open-eq-10.rq,
	tests/sparql/dawg/open-world/open-eq-11-result.srx,
	tests/sparql/dawg/open-world/open-eq-11.rq,
	tests/sparql/dawg/open-world/open-eq-12-result.srx,
	tests/sparql/dawg/open-world/open-eq-12.rq,
	tests/sparql/dawg/open-world/sameTerm-StringSimpleLiteralCmp.srx,
	tests/sparql/dawg/open-world/sameTerm-eq-StringSimpleLiteralCmp.srx,
	tests/sparql/dawg/open-world/sameTerm-eq.rq,
	tests/sparql/dawg/open-world/sameTerm-eq.srx,
	tests/sparql/dawg/open-world/sameTerm-manifest.ttl,
	tests/sparql/dawg/open-world/sameTerm-not-eq-StringSimpleLiteralCmp.srx,
	tests/sparql/dawg/open-world/sameTerm-not-eq.rq,
	tests/sparql/dawg/open-world/sameTerm-not-eq.srx,
	tests/sparql/dawg/open-world/sameTerm.rq,
	tests/sparql/dawg/open-world/sameTerm.srx,
	tests/sparql/dawg/open-world/sameTerm.ttl,
	tests/sparql/dawg/optional,
	tests/sparql/dawg/optional/complex-data-1.ttl,
	tests/sparql/dawg/optional/complex-data-2.ttl,
	tests/sparql/dawg/optional/data.ttl,
	tests/sparql/dawg/optional/manifest.ttl,
	tests/sparql/dawg/optional/q-opt-1.rq,
	tests/sparql/dawg/optional/q-opt-2.rq,
	tests/sparql/dawg/optional/q-opt-3.rq,
	tests/sparql/dawg/optional/q-opt-complex-1.rq,
	tests/sparql/dawg/optional/q-opt-complex-2.rq,
	tests/sparql/dawg/optional/q-opt-complex-3.rq,
	tests/sparql/dawg/optional/q-opt-complex-4.rq,
	tests/sparql/dawg/optional/result-opt-1.ttl,
	tests/sparql/dawg/optional/result-opt-2.ttl,
	tests/sparql/dawg/optional/result-opt-3.ttl,
	tests/sparql/dawg/optional/result-opt-complex-1.ttl,
	tests/sparql/dawg/optional/result-opt-complex-2.ttl,
	tests/sparql/dawg/optional/result-opt-complex-3.ttl,
	tests/sparql/dawg/optional/result-opt-complex-4.ttl,
	tests/sparql/dawg/optional-filter,
	tests/sparql/dawg/optional-filter/data-1.ttl,
	tests/sparql/dawg/optional-filter/expr-1-result.ttl,
	tests/sparql/dawg/optional-filter/expr-1.rq,
	tests/sparql/dawg/optional-filter/expr-2-result.ttl,
	tests/sparql/dawg/optional-filter/expr-2.rq,
	tests/sparql/dawg/optional-filter/expr-3-result.ttl,
	tests/sparql/dawg/optional-filter/expr-3.rq,
	tests/sparql/dawg/optional-filter/manifest.ttl,
	tests/sparql/dawg/regex, tests/sparql/dawg/regex/manifest.ttl,
	tests/sparql/dawg/regex/regex-data-01.ttl,
	tests/sparql/dawg/regex/regex-query-001.rq,
	tests/sparql/dawg/regex/regex-query-002.rq,
	tests/sparql/dawg/regex/regex-query-003.rq,
	tests/sparql/dawg/regex/regex-query-004.rq,
	tests/sparql/dawg/regex/regex-result-001.ttl,
	tests/sparql/dawg/regex/regex-result-002.ttl,
	tests/sparql/dawg/regex/regex-result-003.ttl,
	tests/sparql/dawg/regex/regex-result-004.ttl,
	tests/sparql/dawg/slice, tests/sparql/dawg/solution-seq,
	tests/sparql/dawg/solution-seq/data.ttl,
	tests/sparql/dawg/solution-seq/manifest.ttl,
	tests/sparql/dawg/solution-seq/slice-01.rq,
	tests/sparql/dawg/solution-seq/slice-02.rq,
	tests/sparql/dawg/solution-seq/slice-03.rq,
	tests/sparql/dawg/solution-seq/slice-04.rq,
	tests/sparql/dawg/solution-seq/slice-10.rq,
	tests/sparql/dawg/solution-seq/slice-11.rq,
	tests/sparql/dawg/solution-seq/slice-12.rq,
	tests/sparql/dawg/solution-seq/slice-13.rq,
	tests/sparql/dawg/solution-seq/slice-20.rq,
	tests/sparql/dawg/solution-seq/slice-21.rq,
	tests/sparql/dawg/solution-seq/slice-22.rq,
	tests/sparql/dawg/solution-seq/slice-23.rq,
	tests/sparql/dawg/solution-seq/slice-24.rq,
	tests/sparql/dawg/solution-seq/slice-results-01.ttl,
	tests/sparql/dawg/solution-seq/slice-results-02.ttl,
	tests/sparql/dawg/solution-seq/slice-results-03.ttl,
	tests/sparql/dawg/solution-seq/slice-results-04.ttl,
	tests/sparql/dawg/solution-seq/slice-results-10.ttl,
	tests/sparql/dawg/solution-seq/slice-results-11.ttl,
	tests/sparql/dawg/solution-seq/slice-results-12.ttl,
	tests/sparql/dawg/solution-seq/slice-results-13.ttl,
	tests/sparql/dawg/solution-seq/slice-results-20.ttl,
	tests/sparql/dawg/solution-seq/slice-results-21.ttl,
	tests/sparql/dawg/solution-seq/slice-results-22.ttl,
	tests/sparql/dawg/solution-seq/slice-results-23.ttl,
	tests/sparql/dawg/solution-seq/slice-results-24.ttl,
	tests/sparql/dawg/sort, tests/sparql/dawg/sort/.manifest.ttl.swp,
	tests/sparql/dawg/sort/data-sort-1.ttl,
	tests/sparql/dawg/sort/data-sort-11.ttl,
	tests/sparql/dawg/sort/data-sort-3.ttl,
	tests/sparql/dawg/sort/data-sort-4.ttl,
	tests/sparql/dawg/sort/data-sort-6.ttl,
	tests/sparql/dawg/sort/data-sort-7.ttl,
	tests/sparql/dawg/sort/data-sort-8.ttl,
	tests/sparql/dawg/sort/data-sort-9.ttl,
	tests/sparql/dawg/sort/data-sort-builtin.ttl,
	tests/sparql/dawg/sort/data-sort-function.ttl,
	tests/sparql/dawg/sort/data-sort-numbers.ttl,
	tests/sparql/dawg/sort/extended-manifest.ttl,
	tests/sparql/dawg/sort/manifest.ttl,
	tests/sparql/dawg/sort/query-sort-1.rq,
	tests/sparql/dawg/sort/query-sort-10.rq,
	tests/sparql/dawg/sort/query-sort-2.rq,
	tests/sparql/dawg/sort/query-sort-3.rq,
	tests/sparql/dawg/sort/query-sort-4.rq,
	tests/sparql/dawg/sort/query-sort-5.rq,
	tests/sparql/dawg/sort/query-sort-6.rq,
	tests/sparql/dawg/sort/query-sort-9.rq,
	tests/sparql/dawg/sort/query-sort-builtin.rq,
	tests/sparql/dawg/sort/query-sort-function.rq,
	tests/sparql/dawg/sort/query-sort-numbers.rq,
	tests/sparql/dawg/sort/result-sort-1.rdf,
	tests/sparql/dawg/sort/result-sort-10.rdf,
	tests/sparql/dawg/sort/result-sort-11.ttl,
	tests/sparql/dawg/sort/result-sort-2.rdf,
	tests/sparql/dawg/sort/result-sort-3.rdf,
	tests/sparql/dawg/sort/result-sort-4.rdf,
	tests/sparql/dawg/sort/result-sort-5.rdf,
	tests/sparql/dawg/sort/result-sort-6.rdf,
	tests/sparql/dawg/sort/result-sort-7.rdf,
	tests/sparql/dawg/sort/result-sort-8.rdf,
	tests/sparql/dawg/sort/result-sort-9.rdf,
	tests/sparql/dawg/sort/result-sort-builtin.ttl,
	tests/sparql/dawg/sort/result-sort-function.ttl,
	tests/sparql/dawg/sort/result-sort-numbers.ttl,
	tests/sparql/dawg/syntax, tests/sparql/dawg/syntax-sparql1,
	tests/sparql/dawg/syntax-sparql1/manifest.ttl,
	tests/sparql/dawg/syntax-sparql1/syntax-basic-01.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-basic-02.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-basic-03.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-basic-04.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-basic-05.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-basic-06.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-bnodes-01.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-bnodes-02.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-bnodes-03.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-bnodes-04.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-bnodes-05.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-expr-01.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-expr-02.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-expr-03.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-expr-04.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-expr-05.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-forms-01.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-forms-02.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-limit-offset-01.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-limit-offset-02.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-limit-offset-03.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-limit-offset-04.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-lists-01.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-lists-02.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-lists-03.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-lists-04.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-lists-05.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-lit-01.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-lit-02.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-lit-03.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-lit-04.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-lit-05.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-lit-06.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-lit-07.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-lit-08.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-lit-09.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-lit-10.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-lit-11.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-lit-12.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-lit-13.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-lit-14.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-lit-15.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-lit-16.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-lit-17.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-lit-18.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-lit-19.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-lit-20.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-order-01.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-order-02.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-order-03.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-order-04.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-order-05.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-order-06.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-order-07.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-pat-01.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-pat-02.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-pat-03.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-pat-04.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-qname-01.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-qname-02.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-qname-03.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-qname-04.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-qname-05.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-qname-06.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-qname-07.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-qname-08.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-struct-01.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-struct-02.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-struct-03.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-struct-05.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-struct-06.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-struct-07.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-struct-08.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-struct-09.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-struct-10.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-struct-11.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-struct-12.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-struct-13.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-struct-14.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-union-01.rq,
	tests/sparql/dawg/syntax-sparql1/syntax-union-02.rq,
	tests/sparql/dawg/syntax-sparql2,
	tests/sparql/dawg/syntax-sparql2/manifest.ttl,
	tests/sparql/dawg/syntax-sparql2/syntax-bnode-01.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-bnode-02.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-bnode-03.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-dataset-01.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-dataset-02.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-dataset-03.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-dataset-04.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-esc-01.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-esc-02.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-esc-03.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-esc-04.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-esc-05.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-form-ask-02.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-form-construct01.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-form-construct02.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-form-construct03.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-form-construct04.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-form-construct06.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-form-describe01.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-form-describe02.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-form-select-01.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-form-select-02.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-function-01.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-function-02.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-function-03.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-function-04.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-general-01.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-general-02.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-general-03.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-general-04.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-general-05.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-general-06.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-general-07.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-general-08.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-general-09.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-general-10.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-general-11.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-general-12.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-general-13.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-general-14.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-graph-01.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-graph-02.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-graph-03.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-graph-04.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-graph-05.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-keywords-01.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-keywords-02.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-keywords-03.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-lists-01.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-lists-02.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-lists-03.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-lists-04.rq,
	tests/sparql/dawg/syntax-sparql2/syntax-lists-05.rq,
	tests/sparql/dawg/syntax-sparql3,
	tests/sparql/dawg/syntax-sparql3/manifest.ttl,
	tests/sparql/dawg/syntax-sparql3/syn-01.rq,
	tests/sparql/dawg/syntax-sparql3/syn-02.rq,
	tests/sparql/dawg/syntax-sparql3/syn-03.rq,
	tests/sparql/dawg/syntax-sparql3/syn-04.rq,
	tests/sparql/dawg/syntax-sparql3/syn-05.rq,
	tests/sparql/dawg/syntax-sparql3/syn-06.rq,
	tests/sparql/dawg/syntax-sparql3/syn-07.rq,
	tests/sparql/dawg/syntax-sparql3/syn-08.rq,
	tests/sparql/dawg/syntax-sparql3/syn-bad-01.rq,
	tests/sparql/dawg/syntax-sparql3/syn-bad-02.rq,
	tests/sparql/dawg/syntax-sparql3/syn-bad-03.rq,
	tests/sparql/dawg/syntax-sparql3/syn-bad-04.rq,
	tests/sparql/dawg/syntax-sparql3/syn-bad-05.rq,
	tests/sparql/dawg/syntax-sparql3/syn-bad-06.rq,
	tests/sparql/dawg/syntax-sparql3/syn-bad-07.rq,
	tests/sparql/dawg/syntax-sparql3/syn-bad-08.rq,
	tests/sparql/dawg/syntax-sparql3/syn-bad-09.rq,
	tests/sparql/dawg/syntax-sparql3/syn-bad-10.rq,
	tests/sparql/dawg/syntax-sparql3/syn-bad-11.rq,
	tests/sparql/dawg/syntax-sparql3/syn-bad-12.rq,
	tests/sparql/dawg/syntax-sparql3/syn-bad-13.rq,
	tests/sparql/dawg/syntax-sparql3/syn-bad-14.rq,
	tests/sparql/dawg/syntax-sparql3/syn-bad-15.rq,
	tests/sparql/dawg/syntax-sparql3/syn-bad-16.rq,
	tests/sparql/dawg/syntax-sparql3/syn-bad-17.rq,
	tests/sparql/dawg/syntax-sparql3/syn-bad-18.rq,
	tests/sparql/dawg/syntax-sparql3/syn-bad-19.rq,
	tests/sparql/dawg/syntax-sparql3/syn-bad-20.rq,
	tests/sparql/dawg/syntax-sparql3/syn-bad-21.rq,
	tests/sparql/dawg/syntax-sparql3/syn-bad-22.rq,
	tests/sparql/dawg/syntax-sparql3/syn-bad-23.rq,
	tests/sparql/dawg/syntax-sparql3/syn-bad-24.rq,
	tests/sparql/dawg/syntax-sparql3/syn-bad-25.rq,
	tests/sparql/dawg/syntax-sparql3/syn-bad-26.rq,
	tests/sparql/dawg/syntax-sparql3/syn-bad-27.rq,
	tests/sparql/dawg/syntax-sparql3/syn-bad-28.rq,
	tests/sparql/dawg/syntax-sparql3/syn-bad-29.rq,
	tests/sparql/dawg/syntax-sparql3/syn-bad-30.rq,
	tests/sparql/dawg/syntax-sparql3/syn-bad-31.rq,
	tests/sparql/dawg/syntax-sparql3/syn-bad-bnode-dot.rq,
	tests/sparql/dawg/syntax-sparql3/syn-bad-bnodes-missing-pvalues-01.rq,
	tests/sparql/dawg/syntax-sparql3/syn-bad-bnodes-missing-pvalues-02.rq,
	tests/sparql/dawg/syntax-sparql3/syn-bad-empty-optional-01.rq,
	tests/sparql/dawg/syntax-sparql3/syn-bad-empty-optional-02.rq,
	tests/sparql/dawg/syntax-sparql3/syn-bad-filter-missing-parens.rq,
	tests/sparql/dawg/syntax-sparql3/syn-bad-lone-list.rq,
	tests/sparql/dawg/syntax-sparql3/syn-bad-lone-node.rq,
	tests/sparql/dawg/syntax-sparql3/syn-blabel-cross-filter.rq,
	tests/sparql/dawg/syntax-sparql3/syn-blabel-cross-graph-bad.rq,
	tests/sparql/dawg/syntax-sparql3/syn-blabel-cross-optional-bad.rq,
	tests/sparql/dawg/syntax-sparql3/syn-blabel-cross-union-bad.rq,
	tests/sparql/dawg/syntax-sparql4,
	tests/sparql/dawg/syntax-sparql4/manifest.ttl,
	tests/sparql/dawg/syntax-sparql4/syn-09.rq,
	tests/sparql/dawg/syntax-sparql4/syn-10.rq,
	tests/sparql/dawg/syntax-sparql4/syn-11.rq,
	tests/sparql/dawg/syntax-sparql4/syn-bad-34.rq,
	tests/sparql/dawg/syntax-sparql4/syn-bad-35.rq,
	tests/sparql/dawg/syntax-sparql4/syn-bad-36.rq,
	tests/sparql/dawg/syntax-sparql4/syn-bad-37.rq,
	tests/sparql/dawg/syntax-sparql4/syn-bad-38.rq,
	tests/sparql/dawg/syntax-sparql4/syn-bad-GRAPH-breaks-BGP.rq,
	tests/sparql/dawg/syntax-sparql4/syn-bad-OPT-breaks-BGP.rq,
	tests/sparql/dawg/syntax-sparql4/syn-bad-UNION-breaks-BGP.rq,
	tests/sparql/dawg/syntax-sparql4/syn-leading-digits-in-prefixed-names.rq,
	tests/sparql/dawg/triple-match,
	tests/sparql/dawg/triple-match/data-01.ttl,
	tests/sparql/dawg/triple-match/data-02.ttl,
	tests/sparql/dawg/triple-match/data-03.ttl,
	tests/sparql/dawg/triple-match/dawg-data-01.ttl,
	tests/sparql/dawg/triple-match/dawg-tp-01.rq,
	tests/sparql/dawg/triple-match/dawg-tp-02.rq,
	tests/sparql/dawg/triple-match/dawg-tp-03.rq,
	tests/sparql/dawg/triple-match/dawg-tp-04.rq,
	tests/sparql/dawg/triple-match/dawg-tp-05.rq,
	tests/sparql/dawg/triple-match/manifest.ttl,
	tests/sparql/dawg/triple-match/result-tp-01.ttl,
	tests/sparql/dawg/triple-match/result-tp-02.ttl,
	tests/sparql/dawg/triple-match/result-tp-03.ttl,
	tests/sparql/dawg/triple-match/result-tp-04.ttl,
	tests/sparql/dawg/type-promotion,
	tests/sparql/dawg/type-promotion/false.ttl,
	tests/sparql/dawg/type-promotion/manifest.ttl,
	tests/sparql/dawg/type-promotion/tP-byte-short-fail.rq,
	tests/sparql/dawg/type-promotion/tP-byte-short.rq,
	tests/sparql/dawg/type-promotion/tP-decimal-decimal.rq,
	tests/sparql/dawg/type-promotion/tP-double-decimal-fail.rq,
	tests/sparql/dawg/type-promotion/tP-double-decimal.rq,
	tests/sparql/dawg/type-promotion/tP-double-double.rq,
	tests/sparql/dawg/type-promotion/tP-double-float-fail.rq,
	tests/sparql/dawg/type-promotion/tP-double-float.rq,
	tests/sparql/dawg/type-promotion/tP-float-decimal-fail.rq,
	tests/sparql/dawg/type-promotion/tP-float-decimal.rq,
	tests/sparql/dawg/type-promotion/tP-float-float.rq,
	tests/sparql/dawg/type-promotion/tP-int-short.rq,
	tests/sparql/dawg/type-promotion/tP-integer-short.rq,
	tests/sparql/dawg/type-promotion/tP-long-short.rq,
	tests/sparql/dawg/type-promotion/tP-negativeInteger-short.rq,
	tests/sparql/dawg/type-promotion/tP-nonNegativeInteger-short.rq,
	tests/sparql/dawg/type-promotion/tP-nonPositiveInteger-short.rq,
	tests/sparql/dawg/type-promotion/tP-positiveInteger-short.rq,
	tests/sparql/dawg/type-promotion/tP-short-byte-fail.rq,
	tests/sparql/dawg/type-promotion/tP-short-decimal.rq,
	tests/sparql/dawg/type-promotion/tP-short-double.rq,
	tests/sparql/dawg/type-promotion/tP-short-float.rq,
	tests/sparql/dawg/type-promotion/tP-short-int-fail.rq,
	tests/sparql/dawg/type-promotion/tP-short-long-fail.rq,
	tests/sparql/dawg/type-promotion/tP-short-short-fail.rq,
	tests/sparql/dawg/type-promotion/tP-short-short.rq,
	tests/sparql/dawg/type-promotion/tP-unsignedByte-short.rq,
	tests/sparql/dawg/type-promotion/tP-unsignedInt-short.rq,
	tests/sparql/dawg/type-promotion/tP-unsignedLong-short.rq,
	tests/sparql/dawg/type-promotion/tP-unsignedShort-short.rq,
	tests/sparql/dawg/type-promotion/tP.ttl,
	tests/sparql/dawg/type-promotion/true.ttl: Import DAWG latest
	SPARQL tests

2007-09-30  Lauri Aalto <laalto@iki.fi>

	* tests/sparql/check-sparql: Recognize
	http://jena.hpl.hp.com/2005/05/test-manifest-extra#TestSyntax and
	#TestBadSyntax as syntax tests.

	* tests/sparql/check-sparql: Use stderr consistently for debug messages.

2007-09-29  Dave Beckett <dave@dajobe.org>

	* src/rasqal_result_formats.c: Adjust for
	raptor_new_xml_element_from_namespace_local_name signature change

2007-09-28  Lauri Aalto <laalto@iki.fi>

	* src/rasqal_expr.c: (rasqal_new_data_graph) Does not take
	ownership or uri & name_uri but copies them.

2007-09-27  Lauri Aalto <laalto@iki.fi>

	* src/rasqal_engine.c: (rasqal_free_gp_data) Do not assume graph
	pattern is non-NULL.

2007-09-26  Dave Beckett <dave@dajobe.org>

	* autogen.sh: autogen.sh with perl version grep script

2007-09-26  Lauri Aalto <laalto@iki.fi>

	* src, tests/engine, tests/laqrs, tests/laqrs/syntax, utils:
	Props: ignore .exes, Makefile, Makefile.in

2007-09-25  Lauri Aalto <laalto@iki.fi>

	* src/rasqal_result_formats.c: (rasqal_query_results_write_xml_result4)
	Refactoring: Replaced rasqal_query_results_new_xml_element() with
	raptor_new_xml_element_from_namespace_local_name().

2007-09-24  Lauri Aalto <laalto@iki.fi>

	* autogen.sh: Do not compare versions as decimal, e.g. automake
	1.10 should be treated newer than 1.7.
	(update_prog_version) Convert [z.]x.y version strings to 100x+y.

2007-09-21  Lauri Aalto <laalto@iki.fi>

	* src/sparql_parser.y: (rasqal_sparql_query_engine_terminate)
	Clean up nicely even if could not init query engine.

	* src/rasqal_internal.h, src/rasqal_query.c, src/rdql_parser.y,
	src/sparql_parser.y: (rasqal queries) Added query string length
	field to rasqal_query_s. Moved padding query strings with two
	YY_END_OF_BUFFER_CHARs (NULs) from bison parsers to
	rasqal_query_prepare() - prevents a memory leak if there's an
	error parsing the string. Removed query_string from *_parse()
	prototypes as the query string is already available in the query
	structure passed in.

	* src/rasqal_result_formats.c: (rasqal_query_results_write_xml_result4)
	Check for alloc failures and clean up on error.

	* src/rasqal_query_results.c: (rasqal_query_results_reset) Do not
	clear executed flag to allow cleanup on partially initialized
	results.

	* src/rasqal_general.c: rasqal_general: Check for alloc failures
	and clean up on error.

	* src/rasqal_general.c: (rasqal_finish) Allow cleanup even if init
	was incomplete

	* src/rasqal_engine.c: (rasqal_engine_merge_graph_patterns) Fix
	constant 1 > 1 check for the number of triples.

	* src/rasqal_engine.c: (rasqal_engine_graph_pattern_init)
	Robustness fixes

	* src/rasqal_engine.c: (rasqal_free_gp_data) Check against
	negative start_column

	* src/rasqal_engine.c: (rasqal_engine_graph_pattern_init) Check
	for alloc failure

	* src/rasqal_engine.c: (rasqal_engine_merge_triples) Fix compiler
	warning about uninitialized variables.

	* src/rasqal_engine.c: (rasqal_engine_prepare) Check
	rasqal_engine_assign_variables() return value.

	* src/rasqal_engine.c: rasqal_engine: Check for alloc failures and
	clean up on errors.

	* src/rasqal_expr.c: rasqal_expr: Fix compiler warnings about not
	returning a value from a non-void function (for compilers that do
	not recognize abort() as non-returning function).

	* src/rasqal_expr.c: rasqal_expr: Check for alloc failures and
	clean up on errors.

	* src/rasqal_graph_pattern.c: rasqal_graph_pattern: Check for
	alloc failures and clean up on errors.

	* src/rasqal_literal.c: (rasqal_formula_join) Free formulas and
	return NULL on error.

	* src/rasqal_literal.c: rasqal_literal: Fix compiler warnings
	about uninitialized variables. Fix compiler warnings about not
	returning a value from a non-void function (for compilers that do
	not recognize abort() as non-returning function).

	* src/rasqal_literal.c: rasqal_literal: Check for alloc
	failures. Clean up on failure.

	* src/rasqal_query.c: rasqal_query: Check for alloc
	failures. Clean up on failure.

	* src/rasqal_query.c: (rasqal_new_query) Check for alloc
	failures. Clean up on failure.

	* src/rasqal_query.c: (rasqal_query_escape_counted_string) Fix
	compiler warning about type punning.

	* src/rasqal_query_results.c: (rasqal_free_query_results) Do not
	indirect query_results before making sure it is not NULL.

	* src/rasqal_query_results.c: (rasqal_new_query_results) Check for
	alloc failure

	* src/rasqal_result_formats.c: rasqal_result_formats: Check for
	alloc failures. Clean up on failure.

	* src/fix-bison: bison parsers / fix-bison: Fix compiler warning
	about empty declarations (remove semicolon).

	* src/rasqal_feature.c: Fix typos in comments

	* Makefile.am, autogen.sh, configure.ac, data/Makefile.am,
	docs/Makefile.am, src/Makefile.am, tests/Makefile.am,
	tests/engine/Makefile.am, tests/laqrs/Makefile.am,
	tests/laqrs/syntax/Makefile.am, tests/rdql/Makefile.am,
	tests/rdql/testsuite/Makefile.am, tests/sparql/Expr1/Makefile.am,
	tests/sparql/Expr2/Makefile.am,
	tests/sparql/ExprBuiltins/Makefile.am,
	tests/sparql/ExprEquals/Makefile.am, tests/sparql/Makefile.am,
	tests/sparql/SyntaxDev/Makefile.am,
	tests/sparql/SyntaxDev/Syntax-SPARQL/Makefile.am,
	tests/sparql/SyntaxDev/Syntax-SPARQL2/Makefile.am,
	tests/sparql/SyntaxDev/Syntax-SPARQL3/Makefile.am,
	tests/sparql/SyntaxFull/Makefile.am,
	tests/sparql/ValueTesting/Makefile.am,
	tests/sparql/bound/Makefile.am, tests/sparql/examples/Makefile.am,
	tests/sparql/part1/Makefile.am, tests/sparql/regex/Makefile.am,
	tests/sparql/simple/Makefile.am, tests/sparql/sort/Makefile.am,
	tests/sparql/survey/Makefile.am, tests/sparql/syntax/Makefile.am,
	utils/Makefile.am, win32/Makefile.am: Fix EOL issues when building
	svn version on cygwin.
	Partial fix to http://bugs.librdf.org/mantis/view.php?id=236

	* src/Makefile.am, tests/engine/Makefile.am: Added $(EXEEXT)s to
	Makefiles to fix "make clean" on cygwin. Partial fix to
	http://bugs.librdf.org/mantis/view.php?id=235

	* autogen.sh: rasqal autogen.sh $dir quoting. Partial fix to
	http://bugs.librdf.org/mantis/view.php?id=234

2007-09-20  Dave Beckett <dave@dajobe.org>

	* tests/sparql/SyntaxFull/Makefile.am: Expect 2 more failures :(

	* tests/engine/rasqal_order_test.c: Formatting

2007-09-19  Dave Beckett <dave@dajobe.org>

	* tests/sparql/check-sparql: Fix exit

	* src/sparql_parser.y: Protect destructors from calling on NULL
	object - such as in an error case.

	* src/sparql_lexer.l: Move bare +, - alone to after recognising
	all other numerics.

	* src/sparql_lexer.l: Allow unary +/- before an integer.

	* src/sparql_parser.y: (OrderCondition): Allow a built-in call at
	the top level

	* src/sparql_parser.y: (LimitOffsetOpt): Added to allow LIMIT and
	OFFSET in any order or absent.
	(LimitClause): Renamed from LimitClauseOpt
	(OffsetClause): Renamed from OffsetClauseOpt

	* tests/sparql/check-sparql: Output EARL.  Handle syntax only tests

2007-09-18  Dave Beckett <dave@dajobe.org>

	* tests/sparql/check-sparql: help

	* tests/sparql/check-sparql: use perl Getopt::Long and Pod::Usage

2007-08-25  Dave Beckett <dave@dajobe.org>

	* src/rasqal_limit_test.c: Tidy messages

	* src/Makefile.am, src/rasqal_engine.c, src/rasqal_limit_test.c:
	Added rasqal_iimit_test.c

2007-08-24  Dave Beckett <dave@dajobe.org>

	* data/Makefile.am, data/letters.nt: Added letters.nt

	* src/rasqal_literal.c: (rasqal_literal_as_integer): Return
	integer values correctly.  How did this ever work?
	Fixes Issue#0000221 http://bugs.librdf.org/mantis/view.php?id=221

	* src/sparql_parser.y: Destruct all tokens so memory does not leak
	on error.
	Fixes Issue#0000225 http://bugs.librdf.org/mantis/view.php?id=225

	* tests/sparql/check-sparql: guess for xml:lang

	* tests/sparql/check-sparql: tidy

	* tests/sparql/check-sparql: Crude srx reading

	* tests/sparql/Makefile.am: Removed BNodes dir

	* tests/sparql/Makefile.am: Added BNodes

	* tests/sparql/check-sparql: Add error messages when rapper fails
	- and abort test. Fix more assumptions when no result is expected.

2007-08-23  Dave Beckett <dave@dajobe.org>

	* tests/sparql/check-sparql: (read_rdf_results_file): Renamed from
	read_turtle_results_file and guesses result rdf format - turtle/n3
	or rdf seem to be the choiecs.

	* tests/sparql/check-sparql: Refactored to pull out
	read_turtle_results_file

	* tests/sparql/check-sparql: pull apart results creation from
	writing result.out

	* src/rasqal_result_formats.c: Delete old SPARQL XML Result
	formats to leave just the latest draft and JSON.

	* src/Makefile.am, src/rasqal_general.c, src/rasqal_internal.h,
	src/rasqal_query_results.c, src/rasqal_result_formats.c (from
	/rasqal/trunk/src/rasqal_query_results.c:12462): Moved query
	result formatter code into new rasqal_result_formats.c from
	rasqal_query_results.c

2007-08-22  Dave Beckett <dave@dajobe.org>

	* src/rasqal_query_results.c: (rasqal_query_results_get_boolean):
	Do not return error on finished. Finished has no meaning for
	boolean result.

	* src/rasqal_query_results.c: (rasqal_query_results_get_boolean):
	Simplify since now rasqal_engine_query_results_update does all the
	work.  Just count the results returned so far which will be at
	least 1 if there are any results.

	* src/rasqal_engine.c: (rasqal_engine_query_results_update): Let
	this be called for a boolean result, to get the first one.

2007-08-19  Dave Beckett <dave@dajobe.org>

	* src/sparql_parser.y: (BasedeclOpt): Use
	rasqal_query_set_base_uri to ensure the URI fields are updated
	correctly.
	Fixes Issue#0000219 http://bugs.librdf.org/mantis/view.php?id=219

	* src/rasqal_internal.h: Added rasqal_query_set_base_uri prototype

	* src/rasqal_query.c: (rasqal_query_prepare): Use
	rasqal_query_set_base_uri.
	(rasqal_query_set_base_uri): Added

	* src/rasqal_query_results.c: (rasqal_query_results_get_boolean):
	Get the first result row from a query in order to answer ASK.
	Fixes Issue#0000193 http://bugs.librdf.org/mantis/view.php?id=193

	* src/sparql_lexer.l: (rasqal_sparql_name_check): debug cast

	* src/sparql_parser.y: (WhereClauseOpt): Remove warning about
	optional SPARQL WHERE although it is still a dumb idea to have
	useless keywords.
	Fixes Issue#0000204 http://bugs.librdf.org/mantis/view.php?id=204

	* src/rasqal_expr.c: (rasqal_language_matches): * does not match a
	langString with no language.
	Fixes Issue#0000201 http://bugs.librdf.org/mantis/view.php?id=201

	* tests/sparql/ExprBuiltins/result-langMatches-3.ttl,
	tests/sparql/ExprBuiltins/result-langMatches-4.ttl: Fix expected
	result fixes for langMatches-[34]
	http://lists.w3.org/Archives/Public/public-rdf-dawg-comments/2006Jun/0050.html

2007-08-17  Dave Beckett <dave@dajobe.org>

	* src/rasqal.h: Applied rasqal part of symbian portability fix for
	Issue#0000203 http://bugs.librdf.org/mantis/view.php?id=203

2007-07-06  Dave Beckett <dave@dajobe.org>

	* src/rasqal_query_results.c: Add 4th version of SPARQL XML
	Results format.
	(rasqal_init_query_results): Use
	rasqal_query_results_write_xml_result4 for latest version
	2007-06-14 named "xml" and demote previous one 2006-01-25 to name
	"xml-v3"
	(rasqal_query_results_write_xml_result4): Added to implement
	version 2007-06-14 with removal of attributes 'ordered' and
	'distinct'.

2007-06-13  Dave Beckett <dave@dajobe.org>

	* tests/sparql/ExprBuiltins/Makefile.am: LangMatches-2
	LangMatches-3 LangMatches-4 all pass leaving 2 failures

	* src/rasqal_expr.c: (rasqal_language_matches): Added to do proper
	language tag/range matching.
	(rasqal_expression_evaluate): RASQAL_EXPR_LANG:  Return an empty
	string for no language and NULL (error) for not a literal.
	RASQAL_EXPR_LANGMATCHES: Use rasqal_language_matches() above.
	Fixes Issue#0000201 http://bugs.librdf.org/mantis/view.php?id=201
	and makes tests sparql/ExprBuiltins/LangMatches-[234] pass.

2007-06-12  Dave Beckett <dave@dajobe.org>

	* tests/sparql/Expr2/Makefile.am: Fix for issue #0000199 makes
	query-bev-[1-4].rq pass

	* src/rasqal_literal.c: (rasqal_literal_as_boolean): Implement
	SPARQL EBV rules here.
	Fixes Issue#0000199 http://bugs.librdf.org/mantis/view.php?id=199
	and makes tests sparql/Expr2/query-bev-[1-4].rq pass

	* src/rasqal_redland.c: (redland_node_to_rasqal_literal): Casts
	for picky compiler.
	Fixes Issue#0000198 http://bugs.librdf.org/mantis/view.php?id=198

	* src/rasqal_expr.c: (rasqal_expression_evaluate): case
	RASQAL_EXPR_STR_MATCH, RASQAL_EXPR_STR_NMATCH and  RASQAL_EXPR_REGEX.
	Use pcre_free(re) to free PCRE object
	Fixes Issue#0000196 http://bugs.librdf.org/mantis/view.php?id=196

2007-06-02  Dave Beckett <dave@dajobe.org>

	* src/rasqal_literal.c: (rasqal_literal_as_floating): It is
	possible to promote a decimal to a float.
	Fixes Issue#0000197 http://bugs.librdf.org/mantis/view.php?id=197

2007-05-26  Dave Beckett <dave@dajobe.org>

	* src/rasqal.h: Use RASQAL_API not RAPTOR_API here
	Fixes Issue#0000191 http://bugs.librdf.org/mantis/view.php?id=191

	* src/rasqal_literal.c: (rasqal_literal_string_to_native): Free
	original string for boolean, replacing with static.
	(rasqal_free_literal): Free boolean literal's datatype URI.  Fixes
	Issue#0000190 http://bugs.librdf.org/mantis/view.php?id=190

	* src/rasqal.h: Allow _declspec and __declspec
	Fixes Issue#0000188 http://bugs.librdf.org/mantis/view.php?id=188

2007-05-21  Dave Beckett <dave@dajobe.org>

	* configure.ac: Add -Wformat-security

2007-04-23  Dave Beckett <dave@dajobe.org>

	* src/rasqal_literal.c: (rasqal_literal_compare): Declare
	rasqal_literal_type type and add rest of cases to switches.

	* NEWS.html, configure.ac, src/win32_rasqal_config.h: Bump version
	to 0.9.15

2007-04-22  Dave Beckett  <dave@dajobe.org>

	* Snapshotted rasqal_0_9_14 for 0.9.14 release (SVN 12127)

	* docs/librasqal.3: rasqal_query_get_explain

	* docs/librasqal.3: 0.9.14 from 6 months ago

	* autogen.sh: Update autogen.sh

	* rasqal.pc.in: Add Libs.private

	* src/rasqal-config.in, src/rasqal_engine.c, src/rasqal_literal.c,
	src/rasqal_query.c, src/rasqal_query_results.c,
	src/rasqal_raptor.c, utils/roqet.c: casts for C++

	* docs/tmpl/section-expression.sgml, docs/tmpl/section-query.sgml,
	docs/tmpl/section-query_results.sgml,
	docs/tmpl/section-query_results_formatter.sgml: docs

2007-04-21  Dave Beckett  <dave@dajobe.org>


	* src/rasqal.h: variable has @expression field.

	* src/rasqal_engine.c, src/rasqal_internal.h: Revert query engine
	back to 'working' optionals.  At least working as well as they did
	in the last release

	* src/rasqal.h: rasqal_expression has no variable

	* docs/tmpl/section-unused.sgml: expression no variable

	* docs/tmpl/section-query.sgml: rasqal_query_set_distinct

	* src/rasqal_graph_pattern.c: (rasqal_new_graph_pattern): Make
	static, only used here.

	* src/sparql_parser.y: (SelectTerm): Renamed from
	SelectExpressionTerm
	(SelectExpression): Uses AggregateExpression or Expression.
	(AggregateExpression): Added, just using CountAggregateExpression.
	(CountAggregateExpression): Added for COUNT(expr) and COUNT(*)

	* tests/laqrs/syntax/Makefile.am, tests/laqrs/syntax/count1.rq,
	tests/laqrs/syntax/count2.rq, tests/laqrs/syntax/count3.rq,
	tests/laqrs/syntax/count4.rq: more COUNT tests

	* utils/roqet.c: Declare any query namespaces in the output
	serializer

	* utils/roqet.c: Allow -r to take a serializer argument.  Check it
	with raptor_serializer_syntax_name_check

	* tests/Makefile.am: No local_tests here for 6 months

	* tests/laqrs/Makefile.am, tests/laqrs/check-laqrs: remove
	check-laqrs

	* tests/laqrs/syntax/Makefile.am: renames

	* tests/laqrs/syntax/bad-select-expr.rq: comment

	* src/sparql_parser.y: (SelectExpressionTerm): Do not allow a
	select expression to contain the variable name it is named for.
	(SelectExpression): Tidy error returns.

	* src/rasqal_internal.h: Added rasqal_expression_mentions_variable
	prototype

	* src/rasqal_expr.c: (rasqal_expression_has_variable): Added.
	(rasqal_expression_mentions_variable): Added to check if an
	expression mentions a rasqal_variable.

	* src/rasqal.h: rasqal_expression does not need a rasqal_variable
	field.

	* tests/laqrs, tests/laqrs/Makefile.am, tests/laqrs/check-laqrs,
	tests/laqrs/syntax, tests/laqrs/syntax/Makefile.am,
	tests/laqrs/syntax/bad-select-expr.rq,
	tests/laqrs/syntax/bug156.rq, tests/laqrs/syntax/coverage.rq,
	tests/laqrs/syntax/data.n3, tests/laqrs/syntax/delete.rq,
	tests/laqrs/syntax/explain.rq: laqrs

	* src/sparql_parser.y: (SelectExpressionListTail): A list or a
	wildcard.
	(SelectExpressionListTail): Added to ensure select expression list
	is always 1 or more item.
	(SelectExpressionTerm): A variable ?var or a select expression
	assigned to a name
	(SelectExpression): Docs and forbid COUNT in sparql.

	* src/sparql_parser.y: Move '*' to SelectExpressionList from
	SelectQuery

	* src/sparql_parser.y: Add getopt() simple handling for -d and -i
	LANGUAGE for sparql and laqrs.

	* configure.ac: Added tests/laqrs/syntax/Makefile

	* configure.ac: add tests/laqrs/Makefile

	* tests/Makefile.am: Add laqrs sub dir

	* src/rdql_lexer.l: Allow '-' in language tags

	* src/sparql_lexer.l: Allow '-' in language tags
	Fixes Issue#0000182 http://bugs.librdf.org/mantis/view.php?id=182

	* src/sparql_lexer.l: Make <_:NAME> (an illegal URI) act like _:NAME.
	Fixes Issue#0000152 http://bugs.librdf.org/mantis/view.php?id=152

	* tests/sparql/syntax/Makefile.am,
	tests/sparql/syntax/blankuri.rq: added blankuri.rq

2007-04-15  Dave Beckett  <dave@dajobe.org>

	* src/rasqal_engine.c: (rasqal_engine_query_result_row_compare):
	Only do distinct=1 DISTINCT, no code for REDUCE yet.

	* src/rasqal_query_results.c:
	(rasqal_query_results_write_xml_result3): Allow for a potential
	new output argument reduced=true/false.  Not yet enabled.

	* src/rasqal_query.c: (rasqal_query_get_distinct): Rename arg to
	distinct_mode.
	(rasqal_query_set_distinct): Rename arg to distinct_mode and
	accept values 0, 1 and 2.
	(rasqal_query_print, rasqal_query_write_sparql_20060406): Print
	distinct or reduced.

2007-04-14  Dave Beckett  <dave@dajobe.org>

	* src/rasqal.h: Alter rasqal_query_set_distinct arg to be named
	distinct_mode (no API change)

	* src/rasqal_internal.h: (struct rasqal_query_s): distinct now
	takes 0, 1 or 2 to allow for REDUCED.

	* src/sparql_parser.y: Add REDUCED token
	(SelectQuery): Add REDUCED wherever DISTINCT can go

	* src/sparql_lexer.l: Add REDUCED keyword

	* tests/rdql/testsuite/check-rdql: add debug if RASQAL_DEBUG set

	* tests/sparql/check-sparql: hardcode turtle as input type add
	debug if RASQAL_DEBUG set

	* tests/rdql/testsuite/check-rdql: hardcode turtle as input type

2007-04-08  Dave Beckett  <dave@dajobe.org>

	* src/rasqal_engine.c:
	(rasqal_engine_triple_graph_pattern_get_next_match): Fix revision
	with an exact match in a 1 TP query.

2007-03-25  Dave Beckett  <dave@dajobe.org>

	* utils/roqet.c: Print all informational and help messages to
	stderr.  Only results of querying and the help (-h/--help) message
	goes to stdout now.

2007-03-07  Dave Beckett  <dave@dajobe.org>

	* src/rasqal_engine.c: (rasqal_optional_graph_pattern_execute_init,
	rasqal_optional_graph_pattern_execute_bind): Restored.

2007-03-06  Dave Beckett  <dave@dajobe.org>

	* src/rasqal_engine.c: Removed rasqal_engine_gp_data unused fields
	optional_graph_pattern, optional_graph_pattern_matches_count,
	matches_returned Added rasqal_engine_gp_data field matches
	(rasqal_engine_triple_graph_pattern_get_next_match): Side effect
	return matches count.
	(rasqal_basic_graph_pattern_execute_bind): Count matches.
	(rasqal_group_graph_pattern_execute_init): Init start and current
	graph patterns.
	(rasqal_group_graph_pattern_execute_bind): Count matches, use
	start_graph_pattern for backtracing.
	(asqal_engine_graph_pattern_init): Merged
	rasqal_engine_graph_pattern_reset and
	rasqal_engine_graph_pattern_init
	(rasqal_engine_move_to_graph_pattern): Deleted.
	(rasqal_engine_execute_run_graph_pattern): Return step
	(rasqal_engine_execute_run): Use step and pass on counts.

	* src/rasqal_internal.h: removed new_bindings_count

2007-03-04  Dave Beckett  <dave@dajobe.org>

	* src/rasqal_engine.c: Add STEP_IGNORE to handle things such as
	empty group graph patterns that neither bind nor otherwise affect
	the results.  Restore rasqal_engine_step_names table.
	rasqal_engine_execute_gp_handler method execute_bind returns a
	rasqal_engine_step
	(rasqal_basic_graph_pattern_execute_bind): Return step. Still
	works.
	(rasqal_optional_graph_pattern_execute_bind): Return steps. Still
	untested.
	(rasqal_group_graph_pattern_execute_init): Added. Works.
	(rasqal_group_graph_pattern_execute_bind): Added. Works.
	(rasqal_engine_execute_run_graph_pattern): Convert from step to
	rc.  Testing state: src/ tests/rdql tests all work.

	* src/rasqal_query.c: Define RASQAL_NO_GP_MERGE to enable/disable
	empty graph merging

	* src/rasqal_engine.c: Remove
	rasqal_engine_group_graph_pattern_get_next_match

	* src/rasqal_engine.c: docs

	* src/rasqal_engine.c: Here we go.  Throughout replace "graph
	pattern POINTER" with "graph pattern INDEX"
	(rasqal_basic_graph_pattern_execute_init): Added, with code from
	rasqal_engine_graph_pattern_reset for triples.
	(rasqal_basic_graph_pattern_execute_bind): Added, with code from
	rasqal_engine_do_step for triples and calling
	rasqal_engine_triple_graph_pattern_get_next_match to do the triple
	pattern matching.  WORKS on a trivial example.
	(rasqal_optional_graph_pattern_execute_bind): Added, with code
	from rasqal_engine_do_optional_step. UNTESTED.
	rasqal_engine_execute_gp_handlers table does basic init/bind,
	optional bind.
	(rasqal_engine_graph_pattern_order): Removed.
	(rasqal_engine_graph_pattern_reset): Do less, moved into
	gp-specific init.
	(rasqal_engine_graph_pattern_init): Can return failure.
	(rasqal_engine_do_step, rasqal_engine_do_optional_step): Merged
	above.
	(rasqal_engine_store_query_results): Debug messages here.
	(rasqal_engine_execute_run_graph_pattern): Added to call the
	execute_bind handler method.
	(rasqal_engine_execute_run): Remove outer_gp and old code, use
	rasqal_engine_execute_run_graph_pattern to do the work.

	* src/rasqal_engine.c: struct rasqal_engine_gp_data gains matched,
	finished fields
	(rasqal_engine_graph_pattern_reset): Init matched, finished fields
	(rasqal_engine_graph_pattern_init): Remove sort.
	(rasqal_engine_do_step, rasqal_engine_do_optional_step,
	rasqal_engine_execute_run): use gp_data->matched, finished

	* src/rasqal_internal.h: struct rasqal_graph_pattern loses
	matched, finished fields

	* src/rasqal_graph_pattern.c: (rasqal_new_graph_pattern): Lose
	finished field.

	* src/rasqal_engine.c: (rasqal_engine_execute_init): Remove hack
	to restructure top-level GP

	* src/rasqal_engine.c: typedef rasqal_engine_execute_gp_handler
	Added handler field to rasqal_engine_gp_data
	(rasqal_new_engine_gp_data): Error checking Added NULL
	rasqal_engine_execute_gp_handlers array.
	(rasqal_new_engine_execution_data): Init handler field.

	* src/rasqal_engine.c: Rename rasqal_new_engine_gp_data from
	rasqal_new_gp_data

	* src/rasqal_engine.c, src/rasqal_graph_pattern.c,
	src/rasqal_internal.h, src/rasqal_query.c: Docucomments.
	(rasqal_new_graph_pattern): Add op arg and use it.

	* src/rasqal_engine.c: Docs.  Use rasqal_query_results_reset call
	replacing rasqal_query_results_init

	* src/rasqal_query_results.c: (rasqal_query_results_reset) Renamed
	from rasqal_query_results_init

	* src/rasqal_internal.h: rasqal_query_results_reset renamed from
	rasqal_query_results_init

	* src/rasqal_query.c: (rasqal_query_execute): Handle failing to
	make query results object.

	* src/sparql_parser.y: Use
	rasqal_engine_new_basic_graph_pattern_from_formula.

	* src/rdql_parser.y: Use rasqal_new_basic_graph_pattern.

	* src/rasqal_engine.c:
	(rasqal_engine_new_basic_graph_pattern_from_formula): renamed from
	rasqal_engine_new_graph_pattern_from_formula
	Use rasqal_new_basic_graph_pattern.

	* src/rasqal_internal.h: Added rasqal_new_basic_graph_pattern
	renamed from rasqal_new_graph_pattern_from_triples.  Removed
	rasqal_graph_pattern_add_triples Added
	rasqal_engine_new_basic_graph_pattern_from_formula renamed from
	rasqal_engine_new_graph_pattern_from_formula

	* src/rasqal_graph_pattern.c: (rasqal_new_graph_pattern): Warning
	this is mostly internal and does not init all fields.
	(rasqal_new_basic_graph_pattern): Renamed from
	rasqal_new_graph_pattern_from_triples - API change.
	(rasqal_new_graph_pattern_from_sequence): Tidied.
	(rasqal_graph_pattern_add_triples): Removed - API change.

2007-02-27  Dave Beckett  <dave@dajobe.org>

	* src/rasqal_engine.c: (rasqal_engine_execute_run): Pull out
	invariants to top.

	* src/rasqal_engine.c: (rasqal_engine_execute_run): Tidy inlining more

	* src/rasqal_engine.c: (rasqal_engine_execute_run): Tidy inlining

2007-02-26  Dave Beckett  <dave@dajobe.org>

	* src/rasqal_engine.c: (rasqal_engine_execute_run): Inline
	rasqal_engine_get_next_result into here.

	* src/rasqal_query_results.c: (rasqal_query_results_get_boolean):
	Remove rasqal_engine_get_next_result and use
	rasqal_engine_execute_run then look for sequence size.

	* src/rasqal_query.c: (rasqal_query_get_genid): one more byte

	* src/rasqal_engine.c, src/rasqal_internal.h: (rasqal_engine_run):
	Removed, never called

	* src/rasqal_engine.c: removed rasqal_engine_query_results_update

	* src/rasqal_engine.c: tidy

	* src/rasqal_engine.c,
	src/rasqal_internal.h: (rasqal_engine_store_query_results): Added.
	Store offset in rasqal_engine_execution_data

	* src/rasqal_engine.c, src/rasqal_internal.h, src/rasqal_query.c:
	Move rasqal_map inside rasqal_engine_execute_data

	* src/rasqal_engine.c: (rasqal_engine_execute_order): Do less work
	when not ordering or distinct, just store results in seq.

	* src/rasqal_engine.c: (rasqal_engine_execute_next): LAZY removal:
	Always use results in order_conditions_sequence.

	* src/rasqal_engine.c: (order_conditions_sequence): LAZY removal:
	Always store results in order_conditions_sequence.

	* docs/tmpl/section-query.sgml: new docs

2007-02-21  Dave Beckett  <dave@dajobe.org>

	* src/sparql_lexer.l: Added LAQRS DELETE and INSERT

	* src/sparql_parser.y: (DeleteQuery, InsertQuery): Added.

	* src/rasqal_query.c: Add rasqal_query_verb_labels labels for
	DELETE and INSERT.

	* src/rasqal_engine.c: (rasqal_engine_expand_wildcards):
	Handle switch RASQAL_QUERY_VERB_DELETE and RASQAL_QUERY_VERB_INSERT
	(rasqal_engine_assign_variables): Init size to 0

	* src/rasqal.h: Added LAQRS RASQAL_QUERY_VERB_DELETE and
	RASQAL_QUERY_VERB_INSERT

2007-02-17  Dave Beckett  <dave@dajobe.org>

	* utils/roqet.1: -r words

2007-02-09  Dave Beckett  <dave@dajobe.org>

	* src/rasqal_raptor.c: rasqal_raptor_triples_source_user_data
	gains query field, source_uri field replacing list of URIs and
	mapped_id_base, mapped_id_base_len.
	(rasqal_raptor_generate_id_handler): Added, to either add the
	user_bnodeid to a graph-specific base, or to generate an ID
	otherwise.
	(rasqal_raptor_new_triples_source): Init uris each time, keep
	literals around till destruction.  Set the generated ID handler
	for raptor to rasqal_raptor_generate_id_handler.
	(rasqal_raptor_free_triples_source): Do not free URIs in list, or
	uris array.

	* src/rasqal_query.c: (rasqal_query_get_genid): Added simple genid
	generation from a single counter held in the query plus a given
	base.

	* src/rasqal_internal.h: Remove genid_bsae again

	* src/rasqal_internal.h: Added rasqal_query_get_genid

2007-02-08  Dave Beckett  <dave@dajobe.org>

	* src/rasqal_query.c: (rasqal_query_write_sparql_graph_pattern):
	Write GRAPH parameter correctly in output.

2007-02-07  Dave Beckett  <dave@dajobe.org>

	* src/rasqal_query_results.c: (rasqal_query_results_get_triple,
	rasqal_query_results_next_triple): Simplify and use
	rasqal_engine_execute_next to handle limit and offset.  This patch
	with the previous commits
	Fixes Issue#0000167 http://bugs.librdf.org/mantis/view.php?id=167

	* src/rasqal_engine.c: (rasqal_engine_assign_variables): Abstract
	from assigning variables just for a select, also assign them for a
	construct but put them in the variables_sequence.
	(rasqal_engine_get_next_result,
	rasqal_engine_query_result_row_update,
	rasqal_engine_new_query_result_row): Use size of variables from
	either variables_sequence for construct, otherwise
	select_variables_count.
	(rasqal_engine_query_result_row_update,
	rasqal_engine_new_query_result_row,
	rasqal_engine_query_results_update): Allow graph results to call
	this.
	(rasqal_engine_query_result_row_print): Work for construct too.
	(rasqal_engine_bind_construct_variables): Added, to substitute in
	variable bindings from a ordered query result row.
	(rasqal_engine_execute_order): Run
	rasqal_engine_bind_construct_variables after ordering.
	(rasqal_engine_execute_next): Run
	rasqal_engine_bind_construct_variables after getting next result.

	* src/rasqal_internal.h: docs - variables may be bound when
	constructs triples are present as well as when selects variables
	are around

	* src/rasqal_query_results.c: (rasqal_query_results_get_triple,
	rasqal_query_results_next_triple): Check limit when getting
	results for triples, such as SPARQL CONSTRUCT.  offset may work
	but not tested much.  Addresses issue
	http://bugs.librdf.org/mantis/view.php?id=167

2007-01-24  Dave Beckett  <dave@dajobe.org>

	* utils/roqet.c: (roqet_query_write_variable): Added.
	(roqet_query_walk): Use above to print out a variable with
	possible expression value.

	* configure.ac: Added LAQRS query language - maintainer only.

2007-01-23  Dave Beckett  <dave@dajobe.org>

	* src/sparql_parser.y: Added LAQRS tokens EXPLAIN GROUP COUNT AS
	protected by sparql->extended flag.
	(ExplainOpt): Added for optional EXPLAIN
	(SelectQuery): VarList is now a SelectExpressionList
	(SelectExpressionList): Can take SelectExpression AS VarName when
	extended.
	(SelectExpression): Added, to handle variables as well as
	COUNT(expr), COUNT(*) generating a VARSTAR expression.
	(GroupClauseOpt): Add GROUP BY to sorting.
	(Var): Takes a VarName.
	(rasqal_sparql_query_engine_init): Init extended flag based on
	language name.
	(rasqal_init_query_engine_laqrs): Added.

	* src/sparql_lexer.l: Added LAQRS keywords - EXPLAIN, GROUP,
	COUNT, AS New state SPID for variable names after AS

	* src/sparql_common.h: rasqal_sparql_query_engine_s gains SPARQL
	extended flag

	* src/rasqal_engine.c: (rasqal_query_build_declared_in): Do not
	warn if a variable expression is given.

	* src/rasqal_general.c: (rasqal_init): Init LAQRS if enabled.

	* src/rasqal_query.c: (rasqal_new_query, rasqal_free_query):
	Free/init new group_conditions_sequence sequence.
	(rasqal_query_get_explain, rasqal_query_set_explain): Added to
	get/set explain flag.
	(rasqal_query_print): Print explain flag, group conditions
	sequence.
	(rasqal_query_get_group_conditions_sequence,
	rasqal_query_get_group_condition): Added to get all or one group
	condition.
	(rasqal_query_write_sparql_variable): Modified to display variable
	expressions when present.
	(rasqal_sparql_op_labels): Add LAQRS labels.
	(rasqal_query_write_sparql_expression,
	rasqal_query_write_sparql_graph_pattern, ): Handle new LAQRS
	expressions, group condition sequences and query flags.

	* src/rasqal_expr.c: (rasqal_free_variable): Free new optional
	expression field.
	(rasqal_variable_print): Print new optional expression field.
	(rasqal_new_0op_expression): Added no-arg (constant) expression
	constructor.  Initially for RASQAL_EXPR_VARSTAR.
	(rasqal_new_1op_expression): Handle docs mentioning new 1-op
	expressions RASQAL_EXPR_GROUP_COND_ASC,
	RASQAL_EXPR_GROUP_COND_DESC, RASQAL_EXPR_COUNT.
	(rasqal_expression_clear, rasqal_expression_visit,
	rasqal_expression_evaluate, rasqal_expression_print,
	rasqal_expression_is_constant): Handle new expressions above

	* src/rasqal.h: rasqal_variable gains expression field.  Added
	expression types RASQAL_EXPR_GROUP_COND_ASC,
	RASQAL_EXPR_GROUP_COND_DESC, RASQAL_EXPR_COUNT and
	RASQAL_EXPR_VARSTAR Added prototypes for query methods
	rasqal_query_get_explain, rasqal_query_set_explain,
	rasqal_query_get_group_conditions_sequence,
	rasqal_query_get_group_condition.  Added rasqal_new_0op_expression
	expression constructor with no arguments, a constant.

	* NEWS.html, configure.ac, src/win32_rasqal_config.h: Bumped
	version to 0.9.14

	* src/rasqal_query_results.c: (rasqal_query_results_write): Allow
	serializing of finished/empty results.

	* configure.ac: Fix GNU bison check again, using raptor style.

2007-01-22  Dave Beckett  <dave@dajobe.org>

	* configure.ac: make bison version check work on V1 version
	message format

2007-01-20  Dave Beckett  <dave@dajobe.org>

	* src/rasqal_internal.h: Ensure  rasqal_strcasecmp and
	rasqal_strncasecmp get prototypes.
	Fixes Issue#0000160 http://bugs.librdf.org/mantis/view.php?id=160

2007-01-16  Dave Beckett  <dave@dajobe.org>

	* utils/roqet.c: 2007
	Use rasqal_license_string and rasqal_home_url_string
	Add some more rasqal_finish() before exit

	* src/rasqal.h: Added prototypes for rasqal_license_string and
	rasqal_home_url_string

	* src/rasqal_general.c: 2007
	Added rasqal_license_string and rasqal_home_url_string

2007-01-07  Dave Beckett  <dave@dajobe.org>

	* src/rasqal_query_results.c:
	(rasqal_query_results_format_register_factory):
	Gains mime_type arg.
	(rasqal_init_query_results): Add mime type to query result format
	registrations.
	(rasqal_query_results_is_bindings,
	rasqal_query_results_is_boolean, rasqal_query_results_is_graph):
	True only if no results formatter is specified.
	(rasqal_query_results_is_syntax): Added to check if a query result
	is a syntax.
	(rasqal_query_results_formats_enumerate_full): Added to return
	mime type also.
	(rasqal_get_query_results_formatter_factory): Add mime type arg.
	(rasqal_query_results_formats_check): Added to check if a
	formatter exists for the given name, uri and/or mime type.
	(rasqal_new_query_results_formatter_by_mime_type): Added to
	construct a formatter by mime type alone.
	(rasqal_query_results_formatter_get_mime_type): Added to get the
	mime type of a built formatter.

	* src/rasqal.h: Added prototypes for
	rasqal_query_results_is_syntax,
	rasqal_query_results_formats_enumerate_full,
	rasqal_query_results_formats_check,
	rasqal_new_query_results_formatter_by_mime_type and
	rasqal_query_results_formatter_get_mime_type.

	* src/rasqal_query.c: (rasqal_free_query): Free
	query_results_formatter_name if set.

	* src/rasqal_internal.h: struct rasqal_query_s gains
	query_results_formatter_name field

