2005-02-06  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* Snapshotted rasqal_0_9_6 for 0.9.6 release

2005-02-04  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* autogen.sh: Add autoheader and libtoolize to the path search.

	* configure.ac:
	AM_PROG_LIBTOOL to AC_PROG_LIBTOOL seems to make things happier

2005-02-03  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* sparql_lexer.l, rasqal_expr.c: casts for C++

	* configure.ac: In maintainer mode, stop if flex is too old, no
	flex or YACC is not GNU bison.

	* sparql_lexer.l (sparql_copy_string_token): Fix wrong length on
	checking qname.

	* sparql_lexer.l ({QNAME}): Now assigns a uri using sparql_copy_qname.
	(sparql_copy_qname): expands and returns a raptor_uri* here.
	When running standalone as rasqal_lexer_test, ignore unexpanded
	qnames.
	(sparql_copy_string_token): When running standalone as
	rasqal_lexer_test, ignore unexpanded qnames.

	* sparql_lexer.l (sparql_copy_string_token):
	Check and expand datatype qnames here,
	since prefixes are always defined before qname use..

	* rasqal_expr.c: Added support for expressions:
	STR, LANG, DATATYPE, ISURI, ISBLANK and ISLITERAL
	(rasqal_free_expression, rasqal_expression_foreach,
	rasqal_expression_print_op, rasqal_expression_print):  Updated to
	handle the expression types above.
	(rasqal_expression_evaluate): Print evaluation before and after debug
	messages.  Edit main body to not return in cases.
	Implement the expressions above.

	* sparql_parser.y:
	Added tokens STR, LANG, DATATYPE, ISURI, ISBLANK and ISLITERAL
	(BuiltinExpression): Use the tokens above to implement built in
	functions of the same names.

	* sparql_lexer.l: Added keywords STR, LANG, DATATYPE, ISURI,
	ISBLANK and ISLITERAL

	* rasqal.h: Added rasqal_op RASQAL_EXPR_STR, RASQAL_EXPR_LANG,
	RASQAL_EXPR_DATATYPE, RASQAL_EXPR_ISURI, RASQAL_EXPR_ISBLANK,
	RASQAL_EXPR_ISLITERAL,

	* librasqal.3, rasqal_literal.c: Updates for 0.9.6

2005-02-02  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal.rdf.in: Updates for schema

2005-02-01  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_engine.c (rasqal_engine_do_optional_step): When the
	constraint fails, zero the new_bindings_count since none matter
	now.

	* sparql_lexer.l: Added BNAME token
	({BNAME}): Added to just do a blank node.

	* configure.ac: Added dir tests/sparql/bound

	* tests/sparql/syntax/Makefile.am,
	tests/sparql/syntax/construct2.rq: Construct with bnodes in
	construct2.rq

	* tests/sparql/bound/.cvsignore, tests/sparql/bound/Makefile.am,
	tests/sparql/bound/bound1-result.n3, tests/sparql/bound/bound1.rq,
	tests/sparql/bound/data.n3, tests/sparql/bound/manifest.n3: DAWG
	BOUND tests

	* tests/sparql/Makefile.am: added bound

	* sparql_lexer.l ({QNAME}): If it starts _:, make a BLANK_LITERAL
	(sparql_token_print, sparql_token_free): Added BLANK_LITERAL support.

	* sparql_parser.y:
	Added tokens BLANK_LITERAL ConstructPattern (rq23) BNode (rq23),
	TripleTemplate (rq23) and VarOrLiteralOrBNode VarOrURIOrBNode
	(ConstructClause): Now using ConstructPattern
	(ConstructPattern): Added from rq23, using TripleTemplate
	(TripleTemplate): Added from rq23, using VarOrURIOrBNode for subject
	and VarOrLiteralOrBNode for object.
	(VarOrURIOrBNode): Added, using BNode
	(VarOrLiteralOrBNode): Added, using BNode
	(BNode): Added from rq23

	* rasqal_expr.c (rasqal_free_expression,
	rasqal_expression_evaluate, rasqal_expression_print_op): Added
	RASQAL_EXPR_BOUND support.

	* rasqal.h: Added RASQAL_EXPR_BOUND

	* sparql_parser.y:
	Updates from http://www.w3.org/2001/sw/DataAccess/rq23/
	$Revision: 1.187 $ of $Date: 2005/02/01 10:56:24 $
	Added tokens BASE LOAD BOUND
	Renumbered some of comments to rq23 above.
	(ReportFormat) Moved big () inside Query here
	(SelectClause, DescribeClause, ConstructClause): Note now in rq23
	(AskClause): Added from rq23.
	(LoadClauseOpt): Added from rq23.
	(LimitCaluseOpt): Added from rq23.
	(PatternElementForms OPTIONAL GraphPattern1): Mark the graph pattern
	as optional in the flags.
	(BaseDeclOpt): Added from rq23.
	(UnaryExpression): Call BuiltinExpression
	(BuiltinExpression): Added from rq23 just with BOUND

	* sparql_lexer.l:
	Added OPTIONAL, BASE, LOAD and BOUND tokens and keywords

2005-01-31  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_query.c (rasqal_query_execute): Init ask_result.
	(rasqal_free_query_results, rasqal_query_results_is_bindings,
	rasqal_query_results_is_boolean, rasqal_query_results_is_graph):
	Docs.
	(rasqal_query_results_next, rasqal_query_results_get_triple,
	rasqal_query_results_next_triple): C style.
	(rasqal_query_results_get_triple): FIXME about bnodeids is done.
	(rasqal_query_results_get_boolean): Docs and implement by getting
	first result and storing if it worked.

	* rasqal_internal.h: Added ask_result to rasqal_query.

	* tests/sparql/syntax/Makefile.am: Added ask0.rq

	* tests/sparql/syntax/ask0.rq: ASK test

2005-01-30  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_engine.c (rasqal_engine_assign_variables): C99

	* rasqal_xsd_datatypes.c: Casts for C++

	* rasqal_redland.c (rasqal_redland_bind_match): Updated untested
	redland origin code.

	* rasqal_query.c: Casts for C++

	* rasqal_engine.c (rasqal_graph_pattern_get_next_match): int parts

	* librasqal.3: Updates for API changes to 2005-01-30

2005-01-29  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* roqet.1: Document -f/--format.  Reference -o xml spec

	* roqet.c: Note that -o xml writes the SPARQL xml format.

	* rasqal_engine.c (rasqal_engine_assign_variables):
	variables_declared_in is now an array of integer (triple) column
	numbers not pointers to graph patterns.
	(rasqal_reset_triple_meta): Return number of variables that were
	set to NULL.
	(rasqal_graph_pattern_init): Update to compare triple column
	numbers, not graph patterns for defining vars.
	(rasqal_query_build_declared_in): Update for variables_declared_in
	changed.
	(rasqal_graph_pattern_get_next_match): Adjust new_bindings_count
	by number of variables reset by rasqal_reset_triple_meta.  Only
	run the bind_match factory method if there are triple parts to
	bind. If it is run, adjust the new_bindings_count when variables
	are set.
	(rasqal_engine_do_optional_step): If there were new bindings,
	return a result otherwise continue searching.
	(rasqal_engine_get_next_result): Reset new_bindings_count on
	entry.

	* rasqal_internal.h: rasqal_query: variables_declared_in is now an
	array of integer column numbers.  Added new_bindings_count

	* rasqal_query.c (rasqal_free_query): tidy free of
	variables_declared_in, now an intarray.

2005-01-28  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* roqet.c: Add -f / --format to set output syntax format for graph
	results.

	* roqet.c: Update for rasqal_query_results_get_triple returning a
	shared raptor_statement.  Use a raptor_serializer to format it.

	* rasqal_query.c (rasqal_free_query): Free rasqal_triple
	allocated.
	(rasqal_prefix_id): Prefix a blank node id with 'r'<query result
	number>'_'
	(rasqal_query_results_get_triple): Return a shared
	raptor_statement.
	(rasqal_query_results_next_triple): Free the internal
	rasqal_triple before moving on.

	* rasqal_internal.h: Added rasqal_triple internal to rasqal_query

	* rasqal.h: Changed rasqal_query_results_get_triple to return
	raptor_statement

	* rasqal_internal.h: Added raptor_statement to rasqal_query

2005-01-27  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* tests/rdql/testsuite/check-rdql, tests/sparql/check-sparql
	(run_test): don't delete test output files here, let main do it.

	* roqet.c: Free returned triple result

	* roqet.c: Tidy the query result messages

	* roqet.c (main): Format bindings, triples and boolean results.

	* rasqal_query.c (rasqal_query_execute): Init
	current_triple_result.
	(rasqal_query_results_is_bindings,
	rasqal_query_results_is_boolean, rasqal_query_results_is_graph):
	Added to test query result formats.
	(rasqal_query_results_get_count, rasqal_query_results_next,
	rasqal_query_results_finished, rasqal_query_results_get_bindings,
	rasqal_query_results_get_binding_value,
	rasqal_query_results_get_binding_name,
	rasqal_query_results_get_binding_value_by_name,
	rasqal_query_results_get_bindings_count): Fail if result type is
	not bindings.
	(rasqal_query_results_get_triple): Added, to get the current
	triple from a graph result.
	(rasqal_query_results_next_triple): Added, to move to the next
	triple in a graph result.
	(rasqal_query_results_get_boolean): Added, always false for now.

	* rasqal_literal.c (rasqal_literal_as_node): Handle variable
	values, convert the variable result.

	* rasqal_internal.h: Added current_triple_result to rasqal_query

	* rasqal.h: Added rasqal_query_results_is_bindings,
	rasqal_query_results_is_boolean, rasqal_query_results_get_boolean,
	rasqal_query_results_is_graph, rasqal_query_results_get_triple and
	rasqal_query_results_next_triple

	* rasqal_engine.c (rasqal_engine_assign_variables): Build
	construct triples when CONSTRUCT * is given

	* rasqal_expr.c (rasqal_new_triple_from_triple): Added copy
	constructor

	* rasqal.h: Added rasqal_new_triple_from_triple

	* tests/sparql/syntax/Makefile.am,
	tests/sparql/syntax/construct0.rq,
	tests/sparql/syntax/construct1.rq: CONSTRUCT syntax

2005-01-24  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_expr.c (rasqal_new_function_expression):
	Added to create a function call expression.
	(rasqal_free_expression, rasqal_expression_print): Handle
	RASQAL_EXPR_FUNCTION.

	* rasqal.h: Added name, args fields to rasqal_expression
	Added rasqal_new_function_expression

	* Makefile.am: Added rasqal_xsd_datatypes_test

	* rasqal_xsd_datatypes.c: Rasqal XSD datatypes

2005-01-21  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* tests/rdql/testsuite/Makefile.am: S-03, S-04, S-05 work

	* sparql_lexer.l (PREFIX): Allow \
	(NAME): Allow \
	(<ID>{NAME}, <PREF>{PREFIX}, {QNAME}) Terminate when a name is not
	created.
	(sparql_copy_name, sparql_copy_qname): Use
	rasqal_escaped_name_to_utf8_string to turn the escaped name into
	just UTF-8, then check it is a legal XML name.

	* rdql_lexer.l (PREFIX): Allow \
	(NAME): Allow \
	(<*>{NAME}, {QNAME}, <{QNAME}>) Terminate when a name is not
	created.
	(rdql_copy_name, rdql_copy_qname): Use
	rasqal_escaped_name_to_utf8_string to turn the escaped name into
	just UTF-8, then check it is a legal XML name.

	* rasqal_internal.h: Added prototype for
	rasqal_escaped_name_to_utf8_string

	* rasqal_general.c (rasqal_escaped_name_to_utf8_string): Added to
	turn a UTF-8 and/or \u-escaped name as a UTF-8 string.  Intended
	as a lexer helper function.  A combination of
	raptor_ntriples_string_as_utf8_string and raptor_ntriples_term
	with the parsing part stripped out, and just \u, \U allowed,
	always allowing UTF-8 and working just on full strings.

2005-01-18  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* tests/rdql/testsuite/Makefile.am: Remove S-02 from expected
	failures now that the formatting matches the expected N-Triples
	escaped output.

	* rasqal_literal.c (rasqal_literal_print): Print string as
	N-Triples-escaped using raptor_print_ntriples_string.

2005-01-16  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_query.c (rasqal_query_results_write): Copy original
	base_uri each time, don't lose the original reference.

	* rasqal_query.c (rasqal_query_results_write):
	Handle RASQAL_LITERAL_BLANK. Doh!

	* win32_rasqal_config.h, configure.ac, NEWS.html:
	Bumped version to 0.9.6

	* Snapshotted rasqal_0_9_5 for 0.9.5 release

	* Makefile.am: Add @RASQAL_EXTERNAL_LIBS@ $(MEM_LIBS) to all *_LDADD
	It seems to help mysterious shared library linking problems on Solaris.

	* Makefile.am: Remove AM_LDFLAGS, libtool works that out from the
	LIBADD for librasqal and adds it into the .la and uses it from
	there.

	* Makefile.am: Make the tests using automake rules rather than
	hand-crafted compile and link rules which were tricky to maintain.
	Added EXTRA_PROGRAMS for the tests.

	* rasqal_query_test.c: Handle rdql or sparql tests

	* rasqal_query_test.c:
	(main) Handle no rdql available with an warning and exit 0

2005-01-15  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_literal.c (rasqal_literal_compare): Move declarations to
	start of block.

	* librasqal.3: Updates for 0.9.5

	* configure.ac: Require raptor 1.4.4

	* sparql_parser.y (URIList): Copy the URI before freeing the
	rasqal_literal.

2005-01-14  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* tests/sparql/part1/dawg-result-004.n3,
	tests/sparql/part1/manifest.n3, tests/sparql/part1/dawg-query-004:
	Import dawg-query-004 dawg-result-004.n3

2005-01-13  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* win32_rasqal_config.h: RASQAL_INTERNAL should be defined in the
	build configuration

2005-01-12  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* sparql_lexer.l: Updated to use yyterminate() when an error is
	reported, either in the lexer or in a failing function called.
	Deleted use of ERROR_TOKEN.  Mention SPARQL in all the error and
	warning messages.

	* rdql_lexer.l: Updated to use yyterminate() when an error is
	reported, either in the lexer or in a failing function called.
	Deleted use of ERROR_TOKEN.  Mention RDQL in all the error and
	warning messages.

	* sparql_parser.y: Delete ERROR_TOKEN
	(PatternElementForms): Add SPARQL to warning message.
	(sparql_parse): Add SPARQL to error message.

	* rdql_parser.y: Delete ERROR_TOKEN

	* rasqal_expr.c (rasqal_expression_evaluate): For STR_MATCH,
	STR_NMATCH ensure the literal returned from the lhs expression
	evaluation is always freed.

2005-01-11  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdql_parser.y (rdql_parse): set parsing debug flag before
	starting parse when RASQAL_DEBUG > 2

	* rasqal_engine.c (rasqal_engine_do_optional_step): Handle an all
	optional query and finish all results when first optional
	finishes.

	* rasqal_query.c (rasqal_query_results_write): Handle NULL
	base_uri, pass it on the XML writer.

	* tests/sparql/examples/ex2-4a.rq: Kill the , between SELECT vars

	* rasqal_xml.c: Removed, not used

2005-01-10  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_raptor.c (rasqal_raptor_finish_triples_match): Free any
	literals copied into the triple used for comparing matches.

	* rasqal_raptor.c (rasqal_raptor_bind_match): Reformatting.
	(rasqal_raptor_new_triples_match): Set unbound triple matches
	literal values as shared pointers, not copies of literals.

	* rasqal_redland.c (rasqal_redland_bind_match): Update return
	value.

	* rasqal_engine.c (rasqal_free_graph_pattern): Zap triple_meta
	pointer when done.

	* sparql_lexer.l, rdql_lexer.l (<PATTERN>.): Recover state after
	an error in a regex.

	* rasqal_engine.c (rasqal_graph_pattern_order): Sort using
	pointers in data, not array pointers.

	* rasqal_query.c (rasqal_free_query): Delete ordered_triples tidy.
	(rasqal_query_print): Delete ordered_triples print.

	* rasqal_engine.c: (rasqal_query_order_triples_score,
	rasqal_query_order_triples): Deleted - no longer used.

	* rasqal_internal.h:
	Deleted unused ordered_triples field from rasqal_query.

2005-01-09  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* tests/sparql/part1/Makefile.am:
	All tests pass, empty EXPECTED_SPARQL_CORRECT_FAILURES

	* rasqal_internal.h: Added max_optional_graph_pattern to query.

	* rasqal_engine.c (rasqal_engine_do_step): Set gp->matched flag
	here
	(rasqal_engine_do_optional_step): Set gp->matched flag
	(rasqal_engine_get_next_result): Do not set gp->matched flag here.
	For an optional step, if no bound values were returned ensure
	search continues.

	* rasqal_engine.c: Add a few more debug messages.

	* rasqal_engine.c: delete a #if 1

	* rasqal_engine.c (rasqal_engine_move_to_graph_pattern): Use
	max_optional_graph_patterns to walk through combinations of
	optional graph patterns.
	(rasqal_engine_do_optional_step): Check against
	max_optional_graph_patterns limit and lower it when backtracking.
	(rasqal_engine_get_next_result): Count # returned values and
	continue searching when=0.  This is a fixup hack, not a final
	solution.

	* rasqal_engine.c (rasqal_engine_move_to_graph_pattern): Use
	max_optional_graph_patterns to walk through combinations of
	optional graph patterns.
	(rasqal_engine_do_optional_step): Check against
	max_optional_graph_patterns limit and lower it when backtracking.
	(rasqal_engine_get_next_result): Count # returned values and
	continue searching when=0.  This is a fixup hack, not a final
	solution.

	* rasqal_engine.c (rasqal_engine_move_to_graph_pattern):
	Take a delta since only ever moving by +1 or -1.
	When there are no optionals, just move.
	When backtracking optionals, re-init the finished graph pattern.
	(rasqal_engine_do_step, rasqal_engine_do_optional_step): Update
	calls to above.

2005-01-08  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_engine.c (rasqal_reset_triple_meta): Added.
	(rasqal_free_graph_pattern, rasqal_graph_pattern_get_next_match):
	Call new rasqal_reset_triple_meta
	(rasqal_engine_do_optional_step): Comment out duff test

	* rasqal_engine.c: messages

	* rasqal_engine.c (rasqal_engine_do_optional_step): Copy tidying

	* rasqal_engine.c (rasqal_engine_get_next_result): Debug messages.

	* rasqal_engine.c (rasqal_engine_check_constraint): Added, from
	body of rasqal_engine_get_next_result.
	(rasqal_engine_do_step): Now just for mandatory graph patterns
	rasqal_engine_do_optional_step): Added, just for optional graph
	patterns.
	(rasqal_engine_get_next_result): Call rasqal_engine_do_step or
	rasqal_engine_do_optional_step depending on graph pattern optional
	flag.

	* rasqal_engine.c (rasqal_engine_do_step): Added, from body of
	rasqal_engine_get_next_result
	(rasqal_engine_get_next_result): Smaller, see above.

	* rasqal_engine.c: Added rasqal_engine_step and use in
	(rasqal_engine_get_next_result): Replace step=X; break with
	step=X; continue to let the loop do the work

	* rasqal_engine.c: Added rasqal_engine_step and use in
	rasqal_engine_get_next_result

	* rasqal_engine.c (rasqal_engine_move_to_graph_pattern): No need
	for return

	* rasqal_engine.c (rasqal_engine_get_next_result): Init all
	matched flags to 0 at start.

	* rasqal_engine.c: Comment out not-used triple ordering code.
	(rasqal_triples_match_bind_match): Add parts arg and pass on to
	factory bind_match method.
	(rasqal_new_graph_pattern_from_triples): Add query arg at start.
	Init query, finished, matches_returned.
	(rasqal_new_graph_pattern_from_sequence): Add query arg at start.
	Init query, finished, matches_returned.
	(rasqal_free_graph_pattern): Free variables matching the parts.
	(rasqal_graph_pattern_init): Initialise the triple meta parts
	depending on the variables_declared_in information.
	(rasqal_query_build_declared_in): Added to mark which in graph
	pattern variables are first declared in the query so that they
	are never bound multiple times.  Also warns of selected but never
	used variables.
	(rasqal_graph_pattern_get_next_match): After a triple match ends,
	free variables matching the parts only.
	(rasqal_engine_prepare): Disable ordering triples.
	Call rasqal_query_build_declared_in.
	(rasqal_engine_move_to_graph_pattern): Helper added for:
	(rasqal_engine_get_next_result): Many changes trying to get
	optionals working.

	* rasqal_internal.h: Add query, finished, matches fields to
	graph_pattern.  Add query arg to start of
	rasqal_new_graph_pattern_from_triples and
	rasqal_new_graph_pattern_from_sequence Add variables_declared_in
	array field, optional_graph_pattern_matches_count field to query.

	* rasqal_redland.c (rasqal_redland_bind_match): Take parts
	argument and use to just bind those parts of the triple.

	* rasqal_raptor.c (rasqal_raptor_bind_match): Take parts argument
	and use to just bind those parts of the triple.

	* rdql_parser.y, sparql_parser.y: Add query arg at start of
	rasqal_new_graph_pattern_from_triples and
	rasqal_new_graph_pattern_from_sequence calls.

	* rasqal.h: Added triple parts to rasqal_triple_meta.

	* rasqal_query.c (rasqal_free_query):
	Tidy query->variables_declared_in.

2005-01-06  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal.h: Added rasqal_triple_parts rasqal_triples_match factory
	method bind_match now takes and returns rasqal_triple_parts,
	returns 0 on failure

	* rasqal_redland.c, rasqal_raptor.c, rasqal_engine.c, rasqal.h:
	Invert return value of rasqal_triples_match factory method
	bind_match.  Now returns 0 on failure.

	* rasqal_engine.c (rasqal_engine_get_next_result): Handle failed
	constraint by moving to next match.

	* tests/sparql/part1/dawg-data-01.n3,
	tests/sparql/part1/dawg-result-003.n3: <fred@edu> to <mailto:fred@edu>

	* tests/sparql/check-sparql: Remove =NULL from roqet output to
	handle optionals

	* rasqal_query.c (rasqal_new_query): Init gp->optional_graph_pattern.

	* rasqal_internal.h: Add finished, matches, optional_graph_pattern
	to rasqal_graph_pattern Add optional_graph_pattern to
	rasqal_query.

	* rasqal_engine.c (rasqal_new_graph_pattern_from_triples): Init
	gp->optional_graph_pattern.
	(rasqal_graph_pattern_init): Init optional_graph_pattern, finished
	and matches.
	(rasqal_graph_pattern_order): Added, to sort graph_patterns in a
	query into mandatory first, optional last.
	(rasqal_engine_execute_init): Sort graph_patterns using
	raptor_sequence_sort and above helper
	Initialise query->optional_graph_pattern to the index of the first
	optional graph_pattern.
	(rasqal_engine_get_next_result): Many changes on the way to getting
	optionals working.  Track what patterns have ended with the finished
	flag, and count matches to determine when nothing matched.

2005-01-04  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_query.c (rasqal_new_query): Init sources sequence always.
	(rasqal_query_add_source): No need to init sources sequence here.

	* sparql_parser.y (WhereClauseOpt): Don't overwrite
	query->graph_patterns sequence, append if necessary.

	* sparql_parser.y (FromClauseOpt): Don't overwrite query->sources
	sequence, append if necessary.

	* rdql_parser.y (Query): Don't overwrite query->sources sequence,
	append if necessary.
	(TriplePattern): Append to query->triples sequence, don't
	overwrite it.

2005-01-03  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* roqet.c (main): Declare query_string as void* to prevent type
	punning warning.

	* sparql_lexer.l, roqet.c, rdql_lexer.l, rasqal_query.c: casts
	for C++

2005-01-01  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* roqet.c (roqet_xml_print_xml_attribute): Deleted
	(roqet_query_results_print_as_xml): Replaced with call to
	rasqal_query_results_write.
	(main): Set error and fatal_error handlers for query.
	Remove xml format warning.

	* rasqal_query.c (rasqal_query_results_write): Added docs. Declare
	own namespace stack and free up elements.

	* rasqal.h: Added rasqal_query_results_write

2004-12-31  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_query.c (rasqal_query_results_write):
	Added, writing query results in form of
	http://www.w3.org/TR/2004/WD-rdf-sparql-XMLres-20041221/

	* sparql_parser.y: Undef RASQAL_DEBUG 2 always

2004-12-23  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_query.c (rasqal_free_query): Free variables last.

	* sparql_lexer.l:
	LANGUAGETOKEN, PREFIX QNAME use explicit ranges and expand
	to allow UTF8 \x80-\xff.
	<ID>{NAME}: Use sparql_copy_name
	<ID>.: Add \r\n to silence -s warning.
	<PREF>{PREFIX}".": Use sparql_copy_name
	<PREF>.: Add \r\n to silence -s warning.
	{QNAME}: Use sparql_copy_qname
	(sparql_copy_name): Added and checks XML name is OK.
	(sparql_copy_qname): Renamed from rdql_copy_token, and checks XML
	names are OK, before and after :
	(sparql_token_free): Free qname strings before they are made into
	URIs.
	(main): Free query_string.

	* rdql_lexer.l:
	LANGUAGETOKEN, PREFIX QNAME use explicit ranges and expand
	to allow UTF8 \x80-\xff.
	<*>{NAME}: Use rdql_copy_name
	<ID>.: Add \r\n to silence -s warning.
	{QNAME}: Use rdql_copy_qname
	\<{QNAME}\>: Use rdql_copy_qname
	(rdql_copy_name): Added and checks XML name is OK.
	(rdql_copy_qname): Renamed from rdql_copy_token, and checks XML names
	are OK, before and after :
	(rdql_token_free): Free qname strings before they are made into URIs.
	(main): Free query_string.

2004-12-08  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* tests/rdql/testsuite/Makefile.am (check-rdql-correct): Set PATH
	then use -s $(srcdir) rather than lots of envariable passing.

	* tests/rdql/testsuite/check-rdql: Merged in changes from
	check-sparql - use -s . argument now.

	* rasqal_engine.c (rasqal_engine_execute_init):
	Init current_graph_pattern only if there are graph patterns.
	(rasqal_engine_get_next_result): Handle 0 graph patterns.

	* tests/sparql/syntax/Makefile.am: Added manifest.n3
	Invoke check-sparql-correct test

	* tests/sparql/syntax/manifest.n3: Test manifest

	* tests/sparql/syntax/result-0triples.n3: select with 0 triples
	result

	* tests/sparql/syntax/Makefile.am: Added 0triples.rq

	* tests/sparql/syntax/0triples.rq: Zero graph pattern triples

	* tests/sparql/syntax/data.n3: typos

2004-12-07  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* sparql_parser.y (PatternElementForms):
	Handle empty GraphPattern1 (NULL sequences)

	* tests/sparql/part1/dawg-data-01.n3,
	tests/sparql/part1/dawg-query-002,
	tests/sparql/simple/dawg-tp-04.rq,
	tests/sparql/simple/dawg-data-01.n3: foaf:knowns to foaf:knows

2004-11-30  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* tests/sparql/examples/ex2-1a-result.n3,
	tests/sparql/examples/ex2-2a-result.n3,
	tests/sparql/examples/ex2-3a-result.n3,
	tests/sparql/examples/ex2-4a-result.n3,
	tests/sparql/examples/ex3-result.n3: .

2004-11-29  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_expr.c (rasqal_expression_evaluate): UMINUS, PLUS, MINUS,
	STAR, SLASH are now done with floating literals.

	* rasqal_internal.h: Export rasqal_literal_as_floating

	* rasqal_literal.c (rasqal_new_floating_literal): Changed to take
	a double arg
	(rasqal_literal_as_floating): Export.
	(rasqal_literal_compare): Improve promotion. Promote to float
	where needed, especially assuming strings could be a float.

	* sparql_lexer.l, rdql_lexer.l: Do sscanf here and call
	rasqal_new_floating_literal with the double.

	* rasqal.h: rasqal_new_floating_literal takes a double arg

	* tests/sparql/check-sparql, tests/rdql/testsuite/check-rdql: Do
	the diff backwards - from expected to actual

	* tests/sparql/part1/dawg-result-002.n3,
	tests/sparql/part1/dawg-result-003.n3,
	tests/sparql/simple/result-tp-01.n3,
	tests/sparql/simple/result-tp-02.n3,
	tests/sparql/simple/result-tp-03.n3,
	tests/sparql/simple/result-tp-04.n3,
	tests/sparql/part1/dawg-result-001.n3: Update to DAWG latest
	results removing rs:size triples.

	* rasqal_literal.c (rasqal_literal_as_integer): For
	RASQAL_LITERAL_STRING, also try to evaluate it as a double with
	strtod, then return that cast to int if it worked.

	* sparql_parser.y, rdql_parser.y (UnaryExpression):
	Make unary plus and minus work; removes 2
	shift/reduce conflicts.

	* rasqal_expr.c: (rasqal_free_expression, rasqal_expression_foreach,
	rasqal_expression_evaluate, rasqal_expression_print):
	Added RASQAL_EXPR_UMINUS support.
	rasqal_op_labels: added uminus

	* rasqal.h: Added RASQAL_EXPR_UMINUS

2004-11-26  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* configure.ac: --with-dmalloc default is now no

2004-11-21  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_engine.c (rasqal_new_graph_pattern_from_triples): Init
	current column to -1 so no execution or tidy happens.
	(rasqal_free_graph_pattern): Clean up until reach start_column,
	not 0.
	(rasqal_graph_pattern_init): Do triple init work only if there are
	triples.

	* sparql_parser.y: s/puts/fputs(..., stdout)/

	* rasqal_engine.c (rasqal_new_graph_pattern_from_sequence):
	Fold sequence of 1 graph pattern into the return value, tidying up.
	(rasqal_graph_pattern_print): Print just the triple columns that are
	used.  Print flags using words.
	(rasqal_graph_pattern_get_next_match): Note failing not-implemented
	sequence of graph_patterns.
	(rasqal_engine_prepare): Do not invoke rasqal_query_order_triples -
	does not make sense to do with the graph_pattern code.
	(rasqal_engine_get_next_result): Note failing not-implemented
	sequence of graph_patterns.
	Debug message when an optional graph pattern failed to patch.

	* rasqal_expr.c (rasqal_variable_set_value): Debug fatal error
	when there is no name.

2004-11-20  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_engine.c (rasqal_new_graph_pattern_from_sequence):
	lose triples argument
	(rasqal_graph_pattern_get_next_match, rasqal_engine_get_next_result):
	Check and fail for sequence of graph_patterns.

	* rasqal_internal.h: Update rasqal_new_graph_pattern_from_sequence
	to lose triples argument

	* rdql_parser.y (rasqal_rdql_query_engine_prepare):
	Use rasqal_new_graph_pattern_from_triples

	* rasqal_query.c (rasqal_new_query): Init triples here.
	(rasqal_query_print): Print graph_patterns

	* rasqal_internal.h:
	Add graph_patterns sequence to rasqal_graph_pattern.
	Added prototypes for rasqal_new_graph_pattern_from_triples and
	rasqal_new_graph_pattern_from_sequence

	* rasqal_engine.c (rasqal_new_graph_pattern_from_triples):
	Renamed from rasqal_new_graph_pattern
	(rasqal_new_graph_pattern_from_sequence): Added to handle a graph
	pattern as a sequence of graph patterns.
	(rasqal_free_graph_pattern): Handle cleanup for sequence.
	(rasqal_graph_pattern_print): Handle sequence and simplify.
	(rasqal_engine_execute_init): Abort with messsage if sequence has a
	NULL graph pattern in it.

2004-11-19  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_engine.c (rasqal_engine_execute_init): Init
	current_graph_pattern.
	(rasqal_engine_get_next_result): Attempt to walk through
	graph_patterns without failing on optional ones.

	* rasqal_internal.h: Added current_graph_pattern to rasqal_query.

	* sparql_lexer.l (sparql_token_print): Added UNION token

	* sparql_parser.y: Added UNION token

	* sparql_lexer.l: Added UNION|union keyword

	* sparql_parser.y (rasqal_sparql_query_engine_prepare):
	Add graph pqttern of all triples found.

	* rdql_parser.y (rasqal_rdql_query_engine_prepare): Add graph
	pattern of all triples found.

	* rasqal_engine.c (rasqal_new_graph_pattern): No triples_size.
	Don't init triple_meta here but on each execution.
	(rasqal_free_graph_pattern, rasqal_graph_pattern_get_next_match):
	update triple_meta offset
	(rasqal_graph_pattern_init): Added, to init for execution.
	(rasqal_graph_pattern_print): Added for debug printing.
	(rasqal_engine_execute_init): Use query->graph_patterns - init
	them with rasqal_graph_pattern_init
	(rasqal_engine_execute_finish): Do not delete
	query->graph_pattern.
	(rasqal_engine_get_next_result): Pick 0th item from
	query->graph_patterns to execute.

	* rasqal_query.c (rasqal_new_query, rasqal_free_query): Init/free
	query->graph_patterns sequence

	* rasqal_internal.h: Delete triples_count from rasqal_graph_pattern.
	Only use exactly what's needed: end-start+1 columns 
	Added rasqal_graph_pattern_init and rasqal_graph_pattern_print
	prototypes
	Added raptor_sequence of rasqal_graph_pattern* to rasqal_query

	* sparql_parser.y (PatternElementForms):
	'SOURCE * ...' Warn this is ignored.
	'Source VarOrURI ...' Set triple origin from the literal
	(UnaryExpressionNotPlusMinus): Delete ignored ArgList for now.

	* rasqal_internal.h: Added rasqal_graph_pattern_adjust prototype

	* rasqal_engine.c (rasqal_new_graph_pattern,
	rasqal_free_graph_pattern): Docs, code tidy.
	(rasqal_graph_pattern_adjust): Added, to shift graph pattern
	columns.
	(rasqal_graph_pattern_get_next_match): Code tidy.

2004-11-17  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_engine.c (rasqal_engine_get_next_result): More code tweaks

	* rasqal_engine.c (rasqal_engine_get_next_result):
	Evaluate constraint_expression

2004-11-16  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_internal.h, rasqal_engine.c: pattern_graph to graph_pattern

	* rasqal_engine.c (rasqal_engine_get_next_result):
	Inner loop logic tidying.

	* rasqal_engine.c (rasqal_engine_get_next_result):
	triples_size deleted, never used.

	* rasqal_engine.c: source re-ordering

	* rasqal_engine.c (rasqal_engine_prepare): set flags here.
	(rasqal_engine_execute_init): Always init a new graph_pattern.

	* rasqal_engine.c (rasqal_engine_execute_init, rasqal_engine_run):
	Remove remaining use of query->column field.

	* rasqal_internal.h: rasqal_query remove column field

	* rasqal_engine.c:
	(rasqal_engine_execute_init); Added graph_pattern field, using
	rasqal_new_graph_pattern
	(rasqal_engine_execute_finish): Tidy up, deleting graph_pattern.
	(rasqal_graph_pattern_get_next_triple): Renamed from
	rasqal_engine_get_next_triple_pattern_result and using
	rasqal_graph_pattern argument.
	(rasqal_new_graph_pattern): tidy.
	(rasqal_free_graph_pattern): Delete the triple_meta array.
	(rasqal_engine_get_next_result): Use
	rasqal_graph_pattern_get_next_triple and evaluate the constraints
	here.

	* rasqal_internal.h: rasqal_query rename to graph_pattern field

	* rasqal_internal.h: rasqal_graph_pattern add column Remove
	rasqal_triple_meta field from rasqal_query and add graph_pattern
	field

	* rasqal_internal.h: Update rasqal_new_graph_pattern prototype.

	* rasqal_expr.c: Replace calloc() with RASQAL_CALLOC(type,...)

	* rasqal_internal.h: Added rasqal_pattern_flags enum.
	Added rasqal_graph_pattern
	Added rasqal_new_graph_pattern, rasqal_free_graph_pattern prototypes.

	* rasqal_engine.c (rasqal_new_graph_pattern,
	rasqal_free_graph_pattern): Added.

	* rasqal_engine.c (rasqal_engine_get_next_triple_pattern_result):
	Added, split off from rasqal_engine_get_next_result.

	* sparql_parser.y (rasqal_sparql_query_engine_prepare):
	Call rasqal_engine_prepare.

	* rdql_parser.y (rasqal_rdql_query_engine_prepare):
	Call rasqal_engine_prepare.

	* rasqal_engine.c (rasqal_engine_prepare): Added, split some bits
	from rasqal_engine_execute_init that were just query preparation,
	rather than execution.

	* rasqal_internal.h: Added rasqal_engine_prepare prototype

2004-11-12  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* sparql_parser.y (PatternElementForms): Set triple optional flags.

	* rasqal_expr.c: Added rasqal_triple_flag_strings consts
	(rasqal_triple_print): Use rasqal_triple_flag_strings to print
	flags out.

	* roqet.c: Cast for c++

	* rasqal_engine.c (rasqal_engine_execute_init): Set triple flags
	RASQAL_TRIPLE_FLAGS_EXACT rather than triple meta is_exact.
	(rasqal_engine_get_next_result): Use triple flags
	RASQAL_TRIPLE_FLAGS_EXACT rather than using triple meta is_exact.

	* rasqal_expr.c (rasqal_triple_set_flags, rasqal_triple_get_flags):
	Added

	* rasqal.h: Added enum rasqal_triple_flags
	Added flags field to rasqal_triple.
	Added prototypes for rasqal_triple_set_flags and
	rasqal_triple_get_flags

2004-11-11  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* sparql_parser.y (GraphPattern): Only join non-empty PatternElement
	(PatternElement.1): Return something.
	(PatternElementForms): Return NULL for AND Expression part.

2004-11-10  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* sparql_parser.y (rasqal_init_query_engine_sparql):
	URL now http://www.w3.org/TR/rdf-sparql-query/

	* sparql_parser.y (rasqal_init_query_engine_sparql): No alias.

	* sparql_parser.y: typo

	* rdql_lexer.l, rdql_parser.y, sparql_lexer.l, sparql_parser.y:
	Rename terminals: PLUS MINUS STAR SLASH REM TILDE BANG to be the
	single symbol they are.

	* rdql_parser.y, rdql_lexer.l: Rename terminals: COMMA LPAREN
	RPAREN VARPREFIX to be the single symbol they are.

	* sparql_lexer.l: Rename terminals: COMMA LPAREN RPAREN LSQUARE
	RSQUARE LCURLY RCURLY VARPREFIX AMP to be the single symbol they
	are.  Added $ terminal.

	* sparql_parser.y: Enable YYERROR_VERBOSE for now
	Rename terminals: COMMA LPAREN RPAREN LSQUARE RSQUARE LCURLY RCURLY
	VARPREFIX AMP to be the single symbol they are.
	(Var): Allow ? and $ prefix.

	* sparql_parser.y: Removed ()s for groups.

	* sparql_parser.y: Added {}s for groups

	* tests/sparql/syntax/Makefile.am, tests/sparql/syntax/groups.rq:
	Added groups.rq

	* rdql_parser.y (ConstraintClause): Don't add constraint sequence
	here.
	(CommaAndConstraintClause): Instead, add constraints here.

	* sparql_parser.y (GraphPattern): Use raptor_sequence_join

	* rdql_parser.y (Query): Don't set contraints here.
	(ConstraintClause): Use rasqal_query_add_constraint.

	* configure.ac: require raptor 1.4.3

	* rasqal.h:
	Applied patch from Ren Puls to allow for Redland public headers to
	be in a different directory structure. If LIBRDF_OBJC_FRAMEWORK
	is defined, the headers are in a Redland subdirectory.
	Only applies to public Redland header files that #include other
	public header files.  rasqal.h includes raptor.h so needs modifying
	also.

2004-11-02  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_raptor.c (ordinal_as_uri): Utterly broken

	* tests/sparql/check-sparql (run_test):
	Take array of data files and use them to invoke roqet
	Tidy some rapper invoking.
	Add more debug messages.

	* sparql_parser.y (GraphPattern): Merge the two sequences to make
	one sequence of triples.
	(PatternElement): Pass on PatternElementForms sequence
	(GraphPattern1:) Make a new triple sequence and pass on
	PatternElementForms.

	* roqet.c (main): Add sources before prepare.

	* roqet.c (main): Form a list of files/source URIs to add using a
	raptor_sequence and add them once the query is created.

	* configure.ac, win32_rasqal_config.h: Bumped version to 0.9.5

2004-11-01  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* configure.ac: Need raptor 1.4.2

2004-10-29  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* Snapshotted rasqal_0_9_4 for 0.9.4 release

	* configure.ac: Minimum raptor 1.4.1

	* rasqal_raptor.c (ordinal_as_uri):
	Helper, added to Properly calculate uri_string from
	rdf:_n ordinals
	(raptor_statement_as_rasqal_triple): Use above for subject,
	predicate, object

	* rasqal_expr.c (rasqal_free_triple):
	Handle a partially constructed triple.

2004-10-28  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* sparql_parser.y, rdql_parser.y, rasqal_query_test.c: Casts for C++

	* tests/sparql/check-sparql: Use PATH to find programs.
	(run-test): More debug messages Add -s $srcdir arg to find
	manifest

	* tests/sparql/syntax/Makefile.am,
	tests/sparql/simple/Makefile.am, tests/sparql/part1/Makefile.am,
	tests/sparql/examples/Makefile.am: Invoke check-sparql with PATH
	set and -s $(srcdir) arg

	* tests/sparql/simple/manifest.n3, tests/sparql/part1/manifest.n3:
	Update to latest DAWG tests, no file:

	* sparql_lexer.l, rdql_lexer.l: Remove YY_INPUT since it never worked.
	(main): Read query string into a buffer and use *_lexer__scan_buffer

	* sparql_parser.y (main): Use full rasqal_init/finish sequence
	since setup and cleanup is rather complex now.

2004-10-27  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* sparql_parser.y (sparql_parse): Added workaround to crash when
	regex is at very end of input, by appending a space to the parsed
	query string.

	* rdql_parser.y (rdql_parse): Added workaround to crash when regex
	is at very end of input, by appending a space to the parsed query
	string.

	* tests/sparql/check-sparql, tests/rdql/testsuite/check-rdql: OK
	to assume raptor 1.4.0

	* roqet.1: updated RDQL URL

	* tests/sparql/syntax/data.n3: skeleton data file

	* tests/sparql/syntax/Makefile.am: Added check-bad-sparql rule
	Added nojam.rq bad test

	* tests/sparql/syntax/nojam.rq: failure with ? and non var

	* rdql_lexer.l:
	Restore ID state which is used to allow things like ?select.
	However, make sure ID state is left on errors.

	* sparql_lexer.l: In <ID> state with unknown token, return to
	INITIAL and report the error.

	* rdql_lexer.l: Remove ID state - not used and jams parser with
	non-matched chars in <ID> state.

	* tests/sparql/Makefile.am: Added syntax dir

	* sparql_parser.y (VarOrURIList):
	Fix calls to rasqal_new_variable_literal.

	* configure.ac: Added dir tests/sparql/syntax

	* tests/sparql/syntax/Makefile.am,
	tests/sparql/syntax/describe1.rq: syntax tests for SPARQL

	* tests/sparql/examples/Makefile.am: Remove check-sparql-works

	* tests/rdql/testsuite/Makefile.am: Remove check-rdql-works

	* rasqal_internal.h: Note that describe is a sequence of
	rasqal_literal*

	* sparql_parser.y (VarOrURIList): Build a list of rasqal_literal*

2004-10-26  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* roqet.c: fix file reading

	* roqet.c: Tidy up after failure to get query document

	* rasqal_raptor.c (rasqal_raptor_error_handler):
	Added to pass on raptor parser errors to rasqal, and onwards.
	(rasqal_raptor_new_triples_source): On failure to parser, abort
	and tidy up.

	* rasqal_query.c (rasqal_free_query):
	Tidy up any half-constructed rasqal_expression
	sequence when query parsing/execution fails.

	* sparql_lexer.l (sparql_token_free):
	Free raptor_uri objects in URI_LITERAL.  Debug function.

	* rdql_lexer.l (rdql_token_free):
	Free raptor_uri objects in URI_LITERAL.  Debug function.

	* rdql_parser.y (main):
	Use full rasqal_init/finish sequence since setup and cleanup
	is rather complex now.

	* rasqal_engine.c (rasqal_new_triples_source):
	Do not abort when no explict list of sources are given.

	* sparql_lexer.l: More renames

	* rdql_lexer.l: Rename static functions to have rdql_ prefix to
	aid setting breakpoints in debugging.
	(<PATTERN>.): Only return PATTERN_LITERAL if rdql_copy_regex_token
	worked.
	(rdql_copy_regex_token): Report EOF in regex rather than continue.
	(rdql_copy_string_token): Fix debug message parameters.

	* sparql_lexer.l: Rename static functions to have sparql_ prefix
	to aid setting breakpoints in debugging.
	(<PATTERN>.): Only return PATTERN_LITERAL if sparql_copy_regex_token
	worked.
	(sparql_copy_regex_token): Report EOF in regex rather than continue.

	* rasqal-config.1: zap ASCII 160

	* rasqal-config.1: Fix --libtool-libs desc

2004-10-26  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdql_lexer.l:
	Rename static functions to have rdql_ prefix to aid setting
	breakpoints in debugging.
	(<PATTERN>.): Only return PATTERN_LITERAL if rdql_copy_regex_token
	worked.
	(rdql_copy_regex_token): Report EOF in regex rather than continue.
	(rdql_copy_string_token): Fix debug message parameters.

	* sparql_lexer.l:
	Rename static functions to have sparql_ prefix to aid setting
	breakpoints in debugging.
	(<PATTERN>.): Only return PATTERN_LITERAL if sparql_copy_regex_token
	worked.
	(sparql_copy_regex_token): Report EOF in regex rather than continue.

	* rasqal-config.1: zap ASCII 160

	* rasqal-config.1: Fix --libtool-libs desc

2004-10-25  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* win32_rasqal_config.h, configure.ac, NEWS.html:
	Bumped version to 0.9.4

	* Snapshotted rasqal_0_9_3 for 0.9.3 release

	* configure.ac: Use AC_TRY_LINK for regcomp test; no need to run it.

	* roqet.c: Many casts for c++
	(roqet_xml_print_xml_attribute, roqet_query_results_print_as_xml):
	Use type raptor_simple_message_handler for error callbacks.

	* rasqal_expr.c: Casts for C++

	* rasqal_expr.c (rasqal_prefix_print): Handle NULL prefix

	* configure.ac:
	Do a 'return 0' after regcomp check to ensure the program exits ok

	* tests/rdql/testsuite/check-rdql: Handle empty list of vars

	* Makefile.am:
	Execute rasqal_query_test specially, passing in full path to
	$(srcdir)/data/dc.rdf

	* rasqal_query_test.c:
	Pass in data file as an argument and allocate the query string with
	path to the file burnt in.

	* roqet.c:
	(roqet_xml_print_xml_attribute, roqet_query_results_print_as_xml):
	Move experimental XML output code here.

	* Makefile.am: Remove rasqal_xml.c from library for now.

	* rasqal.h: Remove rasqal_query_results_print_as_xml from
	pre-release public API

	* sparql_parser.y (FromClauseOpt):
	Store the list of sources got from URIList
	(URIList): Use rasqal_literal_as_uri to make a list of raptor_uri*
	from individual rasqal_literal* made by term URI.

	* rasqal_literal.c (rasqal_literal_as_uri):
	Added for getting a URI out of a literal.

	* rasqal_internal.h: Added rasqal_literal_as_uri

	* sparql_parser.y (sparql_query_error_full): Added, allowing varags.
	(Literal, URI): Use above to report failure to expand qnames
	immediately.

	* sparql_parser.y (Literal, URI):
	Invoke rasqal_literal_expand_qname when handling a
	QNAME_LITERAL, RASQAL_LITERAL_QNAME.
	(sparql_parse): Check for unexpanded QNames.  SPARQL does the
	expansion in order, so do not invoke expansions here.

	* rasqal_literal.c (rasqal_literal_has_qname):
	Added, for checking when a QName is
	leftover.

	* rasqal_internal.h: Added rasqal_engine_sequence_has_qname,
	rasqal_engine_constraints_has_qname, rasqal_literal_has_qname,
	rasqal_expression_has_qname

	* rasqal_expr.c (rasqal_expression_has_qname): Added for use with
	rasqal_expression_foreach to check for a leftover QName.

	* rasqal_engine.c (rasqal_engine_sequence_has_qname,
	rasqal_engine_constraints_has_qname): Added, for checking when a
	QName is leftover.

	* roqet.c: Set the raptor_www error_handler

	* rasqal.h: Added rasqal_prefix depth field.

	* rasqal_engine.c (rasqal_engine_declare_prefix):
	Use query->prefix_depth and increment

	* rasqal_query.c (rasqal_query_add_prefix):
	Undeclare older prefixes with the same prefix.

	* rasqal_internal.h: Added prefix_depth to rasqal_query_s
	Added rasqal_engine_undeclare_prefix prototype

2004-10-24  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* tests/sparql/examples/Makefile.am: Added missing ex-24a files

	* roqet.c (main): C99 fix - Move FILE*fh declaration to start of block.

	* librasqal.3: Updates for 0.9.3

	* roqet.c (main): Use raptor_www_fetch_to_string from raptor 1.4.0

	* roqet.c:
	(roqet_get_www_content); Use raptor_stringbuffer_copy_to_string.

	* configure.ac: enable sparql for regular users

2004-10-23  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* configure.ac, Makefile.am: Added rasqal.rdf.in

	* rasqal.rdf.in: Rasqal DOAP description

2004-10-21  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal.spec.in, Makefile.am, MPL.html, LICENSE-2.0.txt, NOTICE:
	Removed MPL.html. Added LICENSE-2.0.txt and NOTICE

	* Switched to LGPL / Apache 2.0 license in the sources
	  CVS tags before: rasqal_license_lgpl_mpl,
	  and after: rasqal_license_lgpl_apache2

	* win32/rasqal.dsp, win32/rasqal.dsw:
	win32 updates including sparql (not tested)

2004-10-20  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_redland.c (rasqal_redland_bind_match):
	Take array of 4 bindings.

	* rasqal_redland.c:
	Update redland support to changes after addition of origin.

	* rasqal_general.c:
	Added rasqal_initialising and rasqal_finishing statics
	(rasqal_init, rasqal_finish): Use the above to prevent
	recursion in these methods when rasqal uses redland using rasqal.

	* configure.ac:
	use $srcdir not .. when looking for raptor sources nearby

	* configure.ac: raptor minimum version 1.4.0

	* roqet.c: cast for fprintf

	* configure.ac: autoconf mode

2004-10-18  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdql_lexer.l, rdql_parser.y, sparql_lexer.l, sparql_parser.y:
	Rename rather generic define ERROR to ERROR_TOKEN to help win32.

	* rdql_lexer.l, sparql_lexer.l: words

	* rasqal_engine.c (rasqal_set_triples_source_factory):
	Export this, to match rasqal.h and add docs.

2004-10-17  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* roqet.c: Tidy some #defines
	(main): Don't print all of huge query_string on errors.

	* roqet.1: formatting

2004-10-16  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* tests/sparql/check-sparql: Destroy duff relative file: URIs only

	* tests/sparql/check-sparql: validate $roqet path
	No Data::Dumper

	* roqet.c: Remove extra print of query URI

	* roqet.c (roqet_get_www_content): Remove goto.  Fix words.

	* roqet.1: Update for options changes.  Note SPARQL support.

	* roqet.c (roqet_error_handler): Added, used by www fetching.
	(roqet_get_www_write_bytes): Added, used by roqet_get_www_content
	(roqet_get_www_content): Added, creates a big string of a URI
	content using the raptor_www class routines to retrieve it
	and raptor_stringbuffer to assemble it.
	(main): Use roqet_get_www_content to retrieve queries from URIs.

	* sparql_parser.y, sparql_lexer.l: Deleted FOR and USING tokens

	* sparql_parser.y: Remove PatternLiteral

	* tests/sparql/examples/Makefile.am,
	tests/sparql/examples/ex2-1a-result.n3,
	tests/sparql/examples/ex2-1a.n3, tests/sparql/examples/ex2-1a.rq,
	tests/sparql/examples/ex2-1b.rq, tests/sparql/examples/ex2-1c.rq,
	tests/sparql/examples/ex2-1d.n3, tests/sparql/examples/ex2-1e.rq,
	tests/sparql/examples/ex2-1f.n3,
	tests/sparql/examples/ex2-2a-result.n3,
	tests/sparql/examples/ex2-2a.n3, tests/sparql/examples/ex2-2a.rq,
	tests/sparql/examples/ex2-3a-result.n3,
	tests/sparql/examples/ex2-3a.n3, tests/sparql/examples/ex2-3a.rq,
	tests/sparql/examples/ex2-4a-result.n3,
	tests/sparql/examples/ex2-4a.n3, tests/sparql/examples/ex2-4a.rq,
	tests/sparql/examples/ex3-result.n3, tests/sparql/examples/ex3.n3,
	tests/sparql/examples/ex3.rq, tests/sparql/examples/manifest.n3:
	SPARQL examples from query WD

	* tests/sparql/simple/Makefile.am, tests/sparql/part1/Makefile.am,
	tests/sparql/Makefile.am, tests/rdql/testsuite/Makefile.am,
	tests/rdql/Makefile.am: Use indirect rules for the lexer, parser
	tests for rdql, sparql and roqet

	* configure.ac: Added tests/sparql/examples/Makefile

	* sparql_parser.y: Added SPARQL URI token replacing URI_LITERAL |
	QNAME_LITERAL for clarity.  Makes several List tokens shorter

	* sparql_parser.y (VarOrURIList, VarList): Made left recursive.
	(VarOrURI): Don't allow a QName.

	* rdql_parser.y (TriplePatternList): rewrite as left recursive

	* rdql_parser.y (VarList): rewrite as left recursive

	* roqet.c (main): When adding source_uri as a triple source, URI
	is now managed by the query, so drop the source_uri pointer.

2004-10-15  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* sparql_parser.y (PrefixDeclOpt): Actually use query->prefixes list.

	* sparql_parser.y (PrefixDeclOpt):
	Add new prefix to existing prefixes list.
	(main): Update test code to initialise/free static query.prefixes.

	* rdql_parser.y (Query): Do not initialise query->prefixes.
	(PrefixDeclList): Shift new prefixes to existing prefixes list.
	(main): Update test code to initialise/free static query.prefixes.

	* rasqal_query.c (rasqal_new_query): Init query->prefixes here
	rather than in each QL implementation.

	* sparql_parser.y: Remove prefix from %union - not needed

	* sparql_parser.y, sparql_lexer.l, rasqal_internal.h:
	Updated SPARQL parser to approximately
	http://www.w3.org/TR/2004/WD-rdf-sparql-query-20041012/#grammar

2004-10-12  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* tests/sparql/part1/Makefile.am:
	Use EXPECTED_SPARQL_CORRECT_FAILURES and count the list at run time

2004-10-10  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* sparql_lexer.l, sparql_parser.y, rasqal_expr.c,
	rasqal_query_test.c, rdql_lexer.l, rdql_parser.y: Use
	rasqal_basename to make 'program' in test code messages.

	* rasqal_engine.c (rasqal_engine_execute_finish): Do a terminating
	loop through columns.

	* rasqal_internal.h: Added rasqal_basename prototype

	* rasqal_general.c (rasqal_basename): Added utility function

	* rasqal_query_test.c (main):
	Check prepares and multiple executes work.

	* win32/rasqal.dsp: Rename parser, lexer files.  Add sparql

	* win32_rasqal_config.h: Add RDQL and SPARQL defines

	* rasqal_expr.c: Make all RASQAL_INLINE functions static.

	* rasqal_expr.c: RASQAL_INLINE at start of line

2004-10-08  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* sparql_parser.y, sparql_lexer.l, sparql_common.h,
	rasqal_internal.h, rasqal_general.c, Makefile.am: brql to sparql

2004-09-30  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* tests/sparql/check-sparql: -warnings, new perl only

	* roqet.c: On query failure (prepare or execute) tidy and exit

	* tests/rdql/testsuite/Makefile.am: count expected failures the old way

	* tests/rdql/testsuite/check-rdql, tests/sparql/check-sparql:
	Handle query parsing, execution errors

	* tests/rdql/testsuite/Makefile.am:
	Handle test failures with/without a regex library

	* tests/sparql/simple/Makefile.am, tests/sparql/part1/Makefile.am:
	echo messages for correct, works targets

	* tests/sparql/check-sparql:
	A few more fixes predicting optional results working.
	Unique test works

	* tests/rdql/testsuite/check-rdql, tests/sparql/check-sparql:
	Handle missing vars or with undef value

	* tests/sparql/part1/Makefile.am, tests/sparql/simple/Makefile.am:
	Use check-sparql to run queries driven by manifests and check results
	are correct.  Enable this in check-local

	* tests/sparql/check-sparql: Read manifest

	* tests/sparql/simple/Makefile.am: Remove expected test failures code.

	* tests/sparql/Makefile.am: Added check-sparql

	* tests/sparql/check-sparql: run sparql tests

	* tests/rdql/testsuite/check-rdql: Relative to root is ../../..
	use -d on roqet to dump query
	Added -d flag here to run in debug mode

	* roqet.c: Added -d/--dump-query to print query to stdout

	* tests/sparql/Makefile.am: sparql tests

	* Makefile.am: sparql parser/lexer tests

	* brql_parser.y: sparql label

	* Makefile.am: BRQL to SPARQL

	* rasqal_general.c: brql to sparql

	* tests/sparql/part1/Makefile.am, tests/sparql/simple/Makefile.am:
	list files

	* configure.ac: Added sparql subdirs

	* tests/sparql/part1/Makefile.am,
	tests/sparql/part1/dawg-data-01.n3,
	tests/sparql/part1/dawg-query-001,
	tests/sparql/part1/dawg-query-002,
	tests/sparql/part1/dawg-query-003,
	tests/sparql/part1/dawg-result-001.n3,
	tests/sparql/part1/dawg-result-002.n3,
	tests/sparql/part1/dawg-result-003.n3,
	tests/sparql/part1/manifest.n3: sparql part1 tests

	* tests/sparql/simple/Makefile.am,
	tests/sparql/simple/data-01.n3, tests/sparql/simple/data-02.n3,
	tests/sparql/simple/dawg-data-01.n3,
	tests/sparql/simple/dawg-tp-01.rq,
	tests/sparql/simple/dawg-tp-02.rq,
	tests/sparql/simple/dawg-tp-03.rq,
	tests/sparql/simple/dawg-tp-04.rq,
	tests/sparql/simple/manifest.n3,
	tests/sparql/simple/result-tp-01.n3,
	tests/sparql/simple/result-tp-02.n3,
	tests/sparql/simple/result-tp-03.n3,
	tests/sparql/simple/result-tp-04.n3: sparql simple tests

	* configure.ac, tests/Makefile.am: brql to sparql

	* Makefile.am: Add rasqal_xml.c

	* roqet.c: Use rasqal_query_results_print_as_xml

	* rasqal.h: Added rasqal_query_results_print_as_xml

	* rasqal_xml.c: Rasqal XML

	* roqet.c (roqet_print_results_as_xml):
	If xml, don't print datatype attribute.

	* roqet.c (roqet_print_results_as_xml): no need to malloc/free
	when escaped string is same len as original.

	* roqet.c (roqet_print_results_as_xml): Print XML Literals raw.

	* roqet.c: Added OUTPUT_FORMAT_XML experiment
	(roqet_print_xml_attribute): Added, based on
	librdf_serialize_rdfxml code.
	(roqet_print_results_as_xml): Added, printing an entire result stream
	to the given handle in XML.
	(main): Added the xml output format.

	* rasqal_literal.c, rasqal.h: Export rasqal_literal_print_type

	* roqet.c: source_uri check

	* brql_parser.y: brql to sparql (keeping alias)

	* roqet.c: terminology s/data/source/ -d/-s --data/--source

	* rasqal_query.c (rasqal_query_add_source, rasqal_query_get_source):
	 Handle NULL
	query->sources and initialise it first time when adding.
	(rasqal_query_add_variable, rasqal_query_get_variable,
	rasqal_query_has_variable, rasqal_query_set_variable): Handle NULL
	query->selects and initialise it first time when adding.
	(rasqal_query_add_triple, rasqal_query_get_triple):Handle NULL
	query->triples and initialise it first time when adding.
	(rasqal_query_add_constraint, rasqal_query_get_constraint): Handle NULL
	query->constraints and initialise it first time when adding.
	(rasqal_query_add_prefix, rasqal_query_get_prefix): Handle NULL
	query->prefixes and initialise it first time when adding.

	* roqet.c:
	Added -d URI to specify a data URI to load before running the query.

2004-09-26  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* sparql_parser.y:
	(TriplePatternList) Append constraint to right sequence.

	* sparql_parser.y: Merged CommaAndConstraintClause into TriplePatternList
	to remove another shift/reduce conflict with AND.

	* sparql_parser.y: CommaAndConstraintClause tidy

	* sparql_parser.y:
	Removed SOURCE alias for FROM, reducing a shift/reduce cnflict

	* sparql_parser.y: URIList tidy

	* fix-bison: Delete yyerrlab1 label only if used in a goto

	* tests/brql/Q-F2F3-1, tests/brql/Q-F2F3-2: F2F3 bits

	* rasqal_general.c: debug messages

	* tests/brql/Q-SOURCE-2, tests/brql/Q-SOURCE-1: PREFIX syntax

	* rasqal.h: rasqal_triples_source_s: remove source_index.
	rasqal_triples_source_factory: remove UI from new_triples_source
	method.

	* rasqal_redland.c: rasqal_redland_triples_source_user_data: Add
	source_uris array of size source_uris_count and source_index to
	use it when loading data.
	(rasqal_redland_new_triples_source): Walk through
	each source URI in turn and load data.
	(rasqal_redland_free_triples_source): Tidy up new array of uris.

	* rasqal_raptor.c (rasqal_raptor_new_triples_source,
	rasqal_raptor_free_triples_source): Allocate and free source_uris
	and source_literals array.

	* rasqal_redland.c (rasqal_redland_new_triples_source):
	Handle 0 sources

	* rasqal_raptor.c:
	rasqal_raptor_triples_source_user_data: Add source_uris and
	source_literals array of size source_uris_count and source_index to
	use it when loading data.
	(rasqal_raptor_statement_handler): set origin URI as pointer into
	URI literals array.
	(rasqal_raptor_new_triples_source): Remove URI arg.  Walk through
	each source URI in turn and load data.
	(rasqal_raptor_triple_match): Remove URi arg, use origin_uri from
	triple.
	(rasqal_raptor_free_triples_source): Tidy up new arrays of data.
	(rasqal_raptor_bind_match): Update call to triple_match with no URI
	argument.

	* rasqal_engine.c (rasqal_new_triples_source):
	Do not assume there is just one URI source.
	(rasqal_triples_source_next_source): Deleted.
	(rasqal_engine_get_next_result): Remove call to
	rasqal_triples_source_next_source - sources are not applied in order.

	* sparql_parser.y: expect 4
	(TriplePatternList): Rewrite and add SOURCE, OPTIONAL
	(ConstraintClause): Removed, now in TriplePatternList
	(URIList): No commas

	* Makefile.am: Added fix-bison.  Use it for rdql and brql parsers.

	* fix-bison: fix-bison

2004-09-19  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_internal.h: Added prototype for rasqal_engine_declare_prefix

	* rasqal_engine.c (rasqal_engine_declare_prefix):
	Added to declare a namespace prefix/uri once only in a query.
	(rasqal_engine_declare_prefixes): Use above.

	* rasqal.h: Added declared field to rasqal_prefix

	* sparql_parser.y: Initial BRQL updates post DAWG F2F3
	Deleted OPTIONAL, replaced with []s around set of triples
	using new terms LSQUARE and RSQUARE
	Removed USING work and replaced with PREFIX earlier.  Declare
	prefixes as soon as they appear.

	* sparql_lexer.l: Added PREF state for post-PREFIX word handling
	Define PREFIX, NAME, QNAME more precisely (not checked vs spec)
	Deleted OPTIONAL
	Made "PREFIX"/"prefix" set state PREF
	Added [/LSQUARE and ]/RSQUARE
	Made <PREF> state handle foo: and : names for namespace prefixes

2004-09-16  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_internal.h:
	Added prototype for rasqal_triples_source_next_source

	* rasqal.h: Added origin field to rasqal_triple
	Added rasqal_triple_set_origin and rasqal_triple_get_origin
	Made bindings be [4]array
	Added raptor_uri param to rasqal_triples_soruce_factory method
	new_triples_source

	* rasqal_redland.c (rasqal_redland_new_triples_match):
	Added origin, not checked

	* rasqal_raptor.c (rasqal_new_triples_source):
	Set uri from first in list, call
	updated factory with that uri.
	(rasqal_free_triples_source): Tidy triples source and user data
	only if not alreayd done.
	(rasqal_triples_source_next_source): Added for switching to next
	data source.
	(rasqal_triples_match_bind_match): Handle 4 bindings
	(rasqal_engine_get_next_result): Handle origin queries and switching
	to next data source when current one exhausted (goto restart)

	* rasqal_expr.c (rasqal_triple_print): Handle origin.
	(rasqal_triple_set_origin, rasqal_triple_get_origin): Added

	* rasqal_engine.c (rasqal_new_triples_source):
	Set uri from first in list, call
	updated factory with that uri.
	(rasqal_free_triples_source): Tidy triples source and user data
	only if not alreayd done.
	(rasqal_triples_source_next_source): Added for switching to next
	data source.
	(rasqal_triples_match_bind_match): Handle 4 bindings
	(rasqal_engine_get_next_result): Handle origin queries and switching
	to next data source when current one exhausted (goto restart)

	* sparql_parser.y: Added SOURCE ?foo before triple

	* tests/brql/Makefile.am, tests/brql/E.n3, tests/brql/Q-SOURCE-1,
	tests/brql/Q-SOURCE-2: tests

2004-09-12  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_literal.c (rasqal_literal_as_string): Handle BLANK

2004-09-11  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal.h: docs

	* sparql_parser.y (OptionalClause): Make print handler for seq of seq.

	* rasqal_engine.c (rasqal_engine_assign_variables): Handle no selects

	* rasqal_raptor.c (rasqal_raptor_new_triples_source): Handle no sources

	* roqet.c: Use raptor_free_memory on uri_string

	* Makefile.am: clean up local_tests

	* tests/brql/Makefile.am: fix tool building paths

	* rasqal_query_test.c: Use data/dc.rdf

	* Makefile.am, configure.ac: Added data

	* data/Makefile.am, data/dc.rdf: data

2004-09-10  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* sparql_lexer.l, rdql_lexer.l (main): Use raptor_free_memory

	* tests/brql/Makefile.am: BRQL Makefile

	* tests/rdql/Makefile.am: RDQL Makefile

	* rasqal_query.c (rasqal_free_query):
	Added describes, optional_triples and constructs.
	(rasqal_query_print): Print describes, optional_triples and
	constructs when present.  Make most things printing only if present.

	* Makefile.am: fix line directives in bison generated files

	* tests/rdql/testsuite/tests2turtle.patch,
	tests/rdql/testsuite/check-rdql: Adjustments for dir renaming

	* rasqal_internal.h:
	Added constructs, optional_triples, describes sequences
	Added select_is_describe, construct_all flags.
	Declare rasqal_init_query_engine_brql prototype

	* rasqal_general.c (rasqal_init):
	Use conditionals for query language inits.

	* rasqal_engine.c (rasqal_engine_expand_triple_qnames): Don't fail
	if there are no triples.  BRQL doesn't need them.

	* tests/brql/Q-D-1, tests/brql/Q-D-2, tests/brql/Q-D-3,
	tests/brql/Q-OPT-1, tests/brql/Q-OPT-2, tests/brql/Q-S-1,
	tests/brql/Q-S-2, tests/brql/D.n3, tests/brql/Q-C-1,
	tests/brql/Q-C-2: BRQL tests

	* tests/Makefile.am: Switch to just subdirs here

	* Makefile.am: Split tests into BRQL and RDQL ones enabled separately.
	Use makefile conditionals for sources

	* configure.ac:
	Added --enable-query-languages and automake conditionals
	to avoid building them.

	* Makefile.am: Remove rdql-testsuite dir.
	Add BRQL sources and tests

	* sparql_common.h, sparql_lexer.l, sparql_parser.y: BRQL

	* tests/rdql/dc.rdf, tests/rdql/example1.rdql,
	tests/rdql/example2.rdql, tests/rdql/example3.rdql,
	tests/rdql/example4.rdql, tests/rdql/example5.rdql,
	tests/rdql/example_at_1.rdql, tests/rdql/example_at_2.rdql,
	tests/rdql/example_at_3.rdql, tests/rdql/example_at_4.rdql,
	tests/rdql/example_at_5.rdql, tests/rdql/example_at_6.rdql,
	tests/rdql/example_at_7.rdql, tests/rdql/example_at_8.rdql,
	tests/rdql/note-ex1.rdql, tests/rdql/note-ex2.rdql,
	tests/rdql/note-ex3.rdql, tests/rdql/note-ex4.rdql,
	tests/example_at_2.rdql, tests/example_at_3.rdql,
	tests/example_at_4.rdql, tests/example_at_5.rdql,
	tests/example_at_6.rdql, tests/example_at_7.rdql,
	tests/example_at_8.rdql, tests/note-ex1.rdql, tests/note-ex2.rdql,
	tests/note-ex3.rdql, tests/note-ex4.rdql, tests/dc.rdf,
	tests/example1.rdql, tests/example2.rdql, tests/example3.rdql,
	tests/example4.rdql, tests/example5.rdql, tests/example_at_1.rdql:
	Moved to rdql subdir

2004-09-07  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdql_parser.y (rasqal_rdql_query_engine_terminate):
	Call rdql_lexer_lex_destroy properly.

2004-09-06  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_engine.c (rasqal_engine_execute_finish):
	Don't free triple_meta before checking the columns

	* Makefile.am: Added rasqal_query_test to TESTS

	* rasqal_engine.c (rasqal_engine_execute_init):
	Init triples_source, triple_meta only if not already done.
	(rasqal_engine_execute_finish): Free triple_meta and any variables
	still set if not cleared.

	* rasqal_raptor.c (rasqal_raptor_free_triples_source):
	Free the rasqal_triple in the loop.

	* rasqal_query.c (rasqal_query_execute): Re-execute if wanted.

	* tests/Makefile.am, tests/dc.rdf: Added dc.rdf

	* Makefile.am, rasqal_query_test.c: Added rasqal_query_test.c

	* rasqal_literal.c (rasqal_literal_expand_qname):
	Zap old string pointer.

	* rasqal_query.c (rasqal_query_prepare):
	Allow re-prepare when finished or executed.

	* rasqal_engine.c (rasqal_engine_execute_init):
	Do not overwrite query->variables on
	a re-execute init.

2004-08-29  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdql_lexer.l: Fix copy_regex_token prototype - delim is not const.

2004-08-22  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* tests/example_at_8.rdql: RDQL @semantics example 8

	* tests/Makefile.am: Added example_at_8.rdql

	* Makefile.am: Re-fix generation of rdql_parser.c

	* rdql_parser.y: Allow optional comma in prefix declaration lists.

	* Makefile.am: Update rdql_parser bison output fix for no .tab.c

2004-08-17  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_literal.c (rasqal_literal_as_integer,
	rasqal_literal_as_floating): Edit casts near strtol, strtod to
	cause less moaning and still work with C++.

	* LICENSE.html: More LGPL v2.1 fixes

	* win32_rasqal_config.h: 0.9.3

	* configure.ac: Remove link with expat (!) in posix regex check

2004-08-13  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* Several fixes for building on win32 from Chris Pointon

	* win32/Makefile.am, win32/rasqal.dsp, win32/rasqal.dsw:
	win32 build configuration

	* configure.ac, Makefile.am: Add win32 dir

	* roqet.c:
	Use #ifdef HAVE_UNISTD_H ... #endif around include of <unistd.h>

	* rasqal_literal.c, rasqal_expr.c: Use RASQAL_INLINE instead of inline.

	* win32_rasqal_config.h: win32 updates from Chris Pointon

	* rasqal_internal.h: Define RASQAL_INLINE here but don't condition it.

	* rasqal_internal.h: Add RASQAL_INLINE, empty on WIN32

	* rasqal.h: Export rasqal_set_triples_source_factory

	* rdql_parser.y: Use win32_rasqal_config.h

	* rdql_lexer.l, fix-flex:
	fix-flex now inserts the raptor and win32 config includes block
	at the top of the lexer C.

	* rdql_parser.y, rdql_lexer.l, Makefile.am:
	Do not generate *.tab.[ch] for rdql parser but process and rename
	to make .c, .h.

2004-08-03  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* configure.ac: Bumped version to 0.9.3

	* Snapshotted rasqal_0_9_2 for 0.9.2 release

	* roqet.c, rdql_parser.y, rdql_lexer.l, rasqal_raptor.c,
	rasqal_query.c, rasqal_literal.c, rasqal_internal.h,
	rasqal_general.c, rasqal_expr.c, rasqal_engine.c: Update for
	functions using (const|) unsigned char* Casts for C++ to fix many
	char*/unsigned char* clashes.

	* rasqal.h:
	Make many functions use (const|) unsigned char* and return them:
	rasqal_query_has_variable, rasqal_query_set_variable,
	rasqal_query_results_get_bindings,
	rasqal_query_results_get_binding_name,
	rasqal_query_results_get_binding_value_by_name,
	rasqal_new_floating_literal, rasqal_new_pattern_literal,
	rasqal_new_string_literal, rasqal_new_simple_literal,
	rasqal_literal_as_string, rasqal_new_prefix,
	rasqal_new_variable

2004-08-02  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* LICENSE.html: Correct the pointer to LGPL v2.1 (not 2)

2004-07-28  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* autogen.sh: move 'rm's inside configure.ac loop

	* autogen.sh: Ensure subdirs get config.guess, config.sub

2004-07-27  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_expr.c: Add #ifndef STANDALONE ... #endif around test
	functions, linked via library.

	* configure.ac: Remove -DLIBRDF_DEBUG

	* configure.ac: Use raptor-config and redland-config with
	--version-decimal

	* configure.ac: Remove duplicate redland-config test

2004-07-21  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* strcasecmp.c, roqet.c, rasqal_redland.c, rasqal_raptor.c,
	rasqal_query.c, rasqal_literal.c, rasqal_general.c, rasqal_expr.c,
	rasqal_engine.c, Makefile.am, win32_config.h,
	win32_rasqal_config.h: rename win32_config.h to
	win32_rasqal_config.h

2004-07-09  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* ChangeLog: ChangeLog in CVS now

2004-06-23  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* Makefile.am: Add rule to make libraptor.la

2004-06-21  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* configure.ac: Added --with-dmalloc

	* rasqal_redland.c (rasqal_redland_bind_match):
	free the literal returned by
	redland_node_to_rasqal_literal since a new one is made by
	rasqal_literal_as_node.

2004-06-17  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* Makefile.am: Zap extra $@ on rule line

2004-06-14  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* NEWS.html: 0.9.2 skeleton

2004-06-13  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* configure.ac: Bumped version to 0.9.2

	* Snapshotted rasqal_0_9_1 for 0.9.1 release

	* configure.ac: Require raptor 1.3.1

	* docs/Makefile.am: README should be maintainer-clean

	* configure.ac: removed dup enable-release

	* configure.ac:
	Only muck about with removing -O2 from flags in maintainer mode.

	* librasqal.3:
	Added query results class, moved methods over and renamed.

	* librasqal.3: example updated

2004-06-12  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* Makefile.am: Added local distclean-compile rule to override the
	insane one automake uses by default: rm -f *.tab.c

	* librasqal.3: Add 0.9.1 changelog

2004-06-01  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_query.c (rasqal_free_query_results,
	rasqal_query_results_get_count, rasqal_query_results_next,
	rasqal_query_results_finished, rasqal_query_results_get_bindings,
	rasqal_query_results_get_binding_value,
	rasqal_query_results_get_binding_name,
	rasqal_query_results_get_binding_value_by_name,
	rasqal_query_results_get_bindings_count): Defensive checking for
	non-NULL query_results.

	* docs/kernel-doc:
	ensure id in the SGML is always same size with md5sum

	* rasqal_query.c (rasqal_query_remove_query_result): Init prev.

	* rasqal_query.c: (rasqal_query_results_get_binding_value_by_name)
	Renamed from rasqal_query_results_get_binding_by_name.

	* rasqal.h: rasqal_query_results_get_binding_by_name to
	rasqal_query_results_get_binding_value_by_name

	* roqet.c: Use rasqal_query_results apis

	* rasqal_query.c (rasqal_new_query, rasqal_free_query): Use usage.
	(rasqal_query_execute): Return a new rasqal_query_results* object
	and add it to the query object with rasqal_query_add_query_result.
	(rasqal_query_add_query_result, rasqal_query_remove_query_result): Added
	(rasqal_free_query_results): Added to destroy rasqal_query_results* object
	Renamings:
	rasqal_query_get_result_count => rasqal_query_results_get_count
	rasqal_query_next_result => rasqal_query_results_next
	rasqal_query_results_finished => rasqal_query_results_finished
	rasqal_query_get_result_bindings => rasqal_query_results_get_bindings
	rasqal_query_get_result_binding_value => rasqal_query_results_get_binding_value
	rasqal_query_get_result_binding_name => rasqal_query_results_get_binding_name
	rasqal_query_get_result_binding_by_name => +rasqal_query_results_get_binding_by_name
	rasqal_query_get_bindings_count => rasqal_query_results_get_bindings_count

	* rasqal_internal.h:
	rasqal_query_s: Added usage counts, results pointing to active
	rasqal_query_results* for this query.
	Added rasqal_query_results_s structure.

	* rasqal.h: Added rasqal_query_results class.
	Made rasqal_query_execute return a rasqal_query_result*
	Renamed all rasqal_query*result* methods to be rasqal_query_result_*
	Added rasqal_free_query_results to tidy up.

	* rasqal_engine.c (rasqal_engine_build_constraints_expression):
	Use AND between	constraints.

2004-05-30  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* Makefile.am:
	Don't use RASQAL_INTERNAL_LIBS except in dependencies of librasqal.la

	* rasqal_internal.h: remove duplicate and broken YYDEBUG lines

2004-05-29  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* autogen.sh: Add --enable-maintainer-mode

2004-05-28  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* tests/Makefile.am, rdql-testsuite/Makefile.am:
	Add set +e, set -e around multiple tests so they only fail at the end.

	* configure.ac: Add flex version check, only in maintainer mode

	* Makefile.am: Make lex and yacc rules be maintainer only.

	* configure.ac: Use automakefile conditionals STRCASECMP and GETOPT

	* Makefile.am: Use automakefile conditionals STRCASECMP and GETOPT
	for conditional sources.  Re-order the directives slightly.

2004-05-27  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* configure.ac: check for perl

	* Makefile.am: Add fix-flex and use it

	* fix-flex: Fix flex output

2004-05-15  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* configure.ac: Bumped version to 0.9.1

	* Snapshotted rasqal_0_9_0 for 0.9.0 release

	* rdql-testsuite/Makefile.am:
	Improve checking works/correct against expected failures.

	* rdql-testsuite/Makefile.am:
	Check works/correct RDQL tests against expected failures.

	* rdql-testsuite/check-rdql: Use portable diff -u in errors

2004-05-14  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* configure.ac: 0.9.0

2004-05-13  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* fix-groff-xhtml: update for rasqal

	* librasqal.3: updated for release

	* rasqal.h: dead prototype

	* rasqal_internal.h, rasqal.h: Export rasqal_literal_as_node.

	* rasqal_redland.c (rasqal_redland_bind_match):
	use redland_node_to_rasqal_literal

	* rasqal_literal.c (rasqal_literal_equals):
	Boolean literals compare equal to string
	literals "true" or "false".

	* rasqal_literal.c: Throughout - use RASQAL_CALLOC
	(rasqal_literal_as_floating): Added
	(rasqal_literal_compare): Add more debug messages.
	Promote to floating right.
	(rasqal_literal_as_node): Make a new string literal for integer,
	floating here.

	* rdql-testsuite/check-rdql:
	Do not hack around roqet emitng integer, floating,
	Do hack around rapper/raptor 1.3.0 bug

	* rasqal_literal.c (rasqal_literal_compare):
	In promoting comparisons, check both ways
	round before turning to next type.

	* rasqal_raptor.c (rasqal_raptor_bind_match):
	Use rasqal_literal_as_node in setting
	bindings.

	* rasqal_internal.h: Add rasqal_literal_as_node

	* rasqal_literal.c (rasqal_new_string_literal,
	rasqal_literal_expand_qname): Discard language if datatype is
	given.

	* rdql-testsuite/check-rdql:
	Turn internal integer, floating into typed literals.

2004-05-12  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdql-testsuite/check-rdql: report failures

2004-05-11  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* TODO.html: words

2004-05-07  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_query.c (rasqal_query_print):
	Don't try to print NULL sequences.

	* docs/Makefile.am, docs/api.sgml.in, docs/build-docs,
	docs/kernel-doc: Rasqal docs and API manual

	* configure.ac, Makefile.am: Added docs

	* rasqal_general.c:
	Rename various functions, moved from here to rasqal_query.c:
	rasqal_query_get_name, rasqal_query_get_label,
	rasqal_query_set_fatal_error_handler, rasqal_query_set_error_handler,
	rasqal_query_set_warning_handler, rasqal_query_set_feature

	* rasqal_query.c:
	Rename various functions, moved to this rasqal_query.c:
	rasqal_query_get_name, rasqal_query_get_label,
	rasqal_query_set_fatal_error_handler, rasqal_query_set_error_handler,
	rasqal_query_set_warning_handler, rasqal_query_set_feature

	* rasqal.h: Renames: Now rasqal_query* for the following name:
	rasqal_get_name, rasqal_get_label,
	rasqal_set_fatal_error_handler, rasqal_set_error_handler,
	rasqal_set_warning_handler, rasqal_set_feature

	* rdql_parser.y (rasqal_rdql_query_engine_prepare):
	Handle NULL query_string.

	* rasqal_internal.h: Internal: rasqal_literal_as_boolean,
	rasqal_literal_as_integer

	* rasqal.h: Do not export rasqal_literal_as_boolean

	* Makefile.am: Add rasqal_literal.c

	* rasqal_expr.c, rasqal_literal.c:
	Rasqal literal moved from rasqal_expr.c

	* rasqal_query.c (rasqal_query_prepare): Note query_string can be NULL.

	* roqet.c: Use names/values methods for results, no need for a
	static array.

	* rasqal_query.c: (rasqal_query_get_bindings_count): Added

	* roqet.c: Don't use uninitialised values, values.

	* rasqal.h: Added rasqal_query_get_bindings_count

	* rasqal_query.c (rasqal_query_prepare):
	Free raptor-alloced memory with raptor_free_memory.
	(rasqal_query_get_bindings_count): Added.

	* roqet.c: Add list of valid inputs for -i/--input errors.

	* rasqal_query.c: parameter naming consistency (no code changes)
	docucomments

2004-05-06  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal.h: Renamed rasqal_query_get_result_binding to
	rasqal_query_get_result_binding_value.  Added
	rasqal_query_get_result_binding_name

	* rasqal_query.c (rasqal_query_get_result_binding_value): Renamed from
	rasqal_query_get_result_binding. Fix dubious offset checking.
	(rasqal_query_get_result_binding_name): Added.

2004-05-05  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal.h:
	Added rasqal_query_get_user_data and rasqal_query_set_user_data

	* rasqal_query.c
	(rasqal_query_get_user_data,rasqal_query_set_user_data): Added

	* rasqal_query.c: docucumments

	* rasqal.spec.in: date

	* rasqal.spec.in, rasqal.pc.in, configure.ac:
	Use new @RAPTOR_MIN_VERSION@ subst.

	* Makefile.am: Install roqet

	* Makefile.am: Added roqet.1 and roqet.html, add fix-groff-xhtml

	* roqet.1: roqet man page

	* configure.ac: SUBST with_raptor

	* rasqal-src-config.in: sigh, rasqal uses raptor

	* rasqal-src-config.in: One more remaining bad raptor cut'n' paste

	* rdql-testsuite/Makefile.am: Add check-rdql to dist

	* configure.ac: Added build summary.

	* rasqal_raptor.c: (raptor_statement_as_rasqal_triple) C99.

	* configure.ac: Try to find raptor sources better.

	* rdql-testsuite/Makefile.am:
	Do not die on test failures for known rasqal bugs.

	* rasqal_redland.c (rasqal_redland_new_triples_source):
	Use rasqal_query_get_source.
	(rasqal_redland_init, rasqal_redland_finish): Make a new librdf_world
	here and use it in this module only.

	* rasqal_internal.h:
	Add prototypes for rasqal_redland_init and rasqal_redland_finish

	* rasqal_general.c (rasqal_finish): Add redland stop code.

	* rasqal_general.c (rasqal_finish): No redland stop code now.

	* rasqal_general.c (rasqal_init, rasqal_finish):
	Select raptor or redland start/stop
	code.

	* rasqal_redland.c (rasqal_redland_new_triples_source):
	Deal with sources here, moved
	from rasqal_engine_execute_init.

	* rasqal_raptor.c (rasqal_raptor_new_triples_source):
	Deal with sources here, moved
	from rasqal_engine_execute_init.

	* rasqal_engine.c (rasqal_new_triples_source): Lose uri argument.
	(rasqal_engine_execute_init): Do not deal with sources here; push to
	triples source factories.

	* rasqal_internal.h: rasqal_new_triples_source loses uri argument.

	* rasqal.h: Lose uri field from rasqal_triples_source.

	* Makefile.am: Moved LTLIBOBJS around to allow strcasecmp,
	rasqal_redland to work right.

	* configure.ac: Added --redland-config
	Added --with-triples-source=(raptor|redland)

2004-05-04  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_raptor.c, rasqal_expr.c:
	raptor now exports raptor_xml_literal_datatype_uri_string

	* rasqal_raptor.c (raptor_statement_as_rasqal_triple):
	Allocate space for \0 in blank,
	strings.

	* rasqal_raptor.c (rasqal_raptor_new_triples_source):
	fail if there is no uri

	* rasqal.h:
	Added rasqal_query_add_prefix, rasqal_query_get_prefix_sequence
	and rasqal_query_get_prefix

	* rasqal_query.c (rasqal_query_add_prefix,
	rasqal_query_get_prefix_sequence, rasqal_query_get_prefix): added,
	for access to namespace prefixes

	* rasqal.h:
	Added rasqal_query_add_constraint, rasqal_query_get_constraint_sequence
	and rasqal_query_get_constraint

	* rasqal_query.c (rasqal_query_add_constraint,
	rasqal_query_get_constraint_sequence,
	rasqal_query_get_constraint): added, for access to constraint
	expressions

	* rasqal.h:
	Added rasqal_query_add_triple, rasqal_query_get_triple_sequence
	and rasqal_query_get_triple

	* rasqal_query.c (rasqal_query_add_triple,
	rasqal_query_get_triple_sequence, rasqal_query_get_triple): added,
	for access to triples

	* rasqal.h:
	Updated rasqal_query_add_source, rasqal_query_get_source_sequence,
	rasqal_query_get_source to use raptor_uri types.
	Added rasqal_query_add_variable, rasqal_query_get_variable_sequence
	and rasqal_query_get_variable

	* rasqal_query.c: Docucomments.
	(rasqal_query_add_source, rasqal_query_get_source_sequence,
	rasqal_query_get_source): use raptor_uri types.
	(rasqal_query_add_variable, rasqal_query_get_variable_sequence,
	rasqal_query_get_variable): added, analagous to above.

2004-05-03  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_expr.c (rasqal_literal_compare):
	break after case for floating.

	* rdql-testsuite/check-rdql:
	check-rdql - Run Rasqal against RDQL testsuite

	* rdql-testsuite/Makefile.am:
	Add check with roqet and then check it is correct with check-rdql

	* rdql-testsuite/README: RDQL testsuite notes

	* rdql-testsuite/Makefile.am: Updated to RDQL testsuite 2.1a
	Added maintainer rules to aid importing, updating and patching.
	Added README

	* rdql-testsuite/tests2turtle.patch: Patch file for RDQL testsuite

	* rdql-testsuite/README-RDQL-tests.txt,
	rdql-testsuite/copyright.txt, rdql-testsuite/query-dump,
	rdql-testsuite/rdql-tests.n3, rdql-testsuite/result-T-07.n3,
	rdql-testsuite/result-T-08.n3, rdql-testsuite/result-T-09.n3,
	rdql-testsuite/result-T-10.n3, rdql-testsuite/result-B-19.n3,
	rdql-testsuite/result-B-20.n3, rdql-testsuite/result-S-01.n3,
	rdql-testsuite/result-S-02.n3, rdql-testsuite/result-S-03.n3,
	rdql-testsuite/result-S-04.n3, rdql-testsuite/result-S-05.n3,
	rdql-testsuite/result-T-01.n3, rdql-testsuite/result-T-02.n3,
	rdql-testsuite/result-T-03.n3, rdql-testsuite/result-T-04.n3,
	rdql-testsuite/result-T-05.n3, rdql-testsuite/result-T-06.n3,
	rdql-testsuite/result-B-06.n3, rdql-testsuite/result-B-07.n3,
	rdql-testsuite/result-B-08.n3, rdql-testsuite/result-B-09.n3,
	rdql-testsuite/result-B-10.n3, rdql-testsuite/result-B-11.n3,
	rdql-testsuite/result-B-12.n3, rdql-testsuite/result-B-13.n3,
	rdql-testsuite/result-B-14.n3, rdql-testsuite/result-B-15.n3,
	rdql-testsuite/result-B-16.n3, rdql-testsuite/result-B-17.n3,
	rdql-testsuite/result-B-18.n3, rdql-testsuite/result-9-02.n3,
	rdql-testsuite/result-A-01.n3, rdql-testsuite/result-A-02.n3,
	rdql-testsuite/result-B-01.n3, rdql-testsuite/result-B-02.n3,
	rdql-testsuite/result-B-03.n3, rdql-testsuite/result-B-04.n3,
	rdql-testsuite/result-B-05.n3, rdql-testsuite/result-8-01.n3,
	rdql-testsuite/result-8-02.n3, rdql-testsuite/result-8-03.n3,
	rdql-testsuite/result-8-04.n3, rdql-testsuite/result-8-05.n3,
	rdql-testsuite/result-9-01.n3, rdql-testsuite/result-6-01.n3,
	rdql-testsuite/result-6-02.n3, rdql-testsuite/result-6-03.n3,
	rdql-testsuite/result-6-04.n3, rdql-testsuite/result-7-01.n3,
	rdql-testsuite/result-7-02.n3, rdql-testsuite/result-7-03.n3,
	rdql-testsuite/result-7-04.n3, rdql-testsuite/result-4-06.n3,
	rdql-testsuite/result-4-07.n3, rdql-testsuite/result-5-01.n3,
	rdql-testsuite/result-5-02.n3, rdql-testsuite/result-5-03.n3,
	rdql-testsuite/result-5-04.n3, rdql-testsuite/result-3-06.n3,
	rdql-testsuite/result-3-07.n3, rdql-testsuite/result-4-01.n3,
	rdql-testsuite/result-4-02.n3, rdql-testsuite/result-4-03.n3,
	rdql-testsuite/result-4-04.n3, rdql-testsuite/result-4-05.n3,
	rdql-testsuite/result-2-07.n3, rdql-testsuite/result-2-08.n3,
	rdql-testsuite/result-2-09.n3, rdql-testsuite/result-2-10.n3,
	rdql-testsuite/result-3-01.n3, rdql-testsuite/result-3-02.n3,
	rdql-testsuite/result-3-03.n3, rdql-testsuite/result-3-04.n3,
	rdql-testsuite/result-3-05.n3, rdql-testsuite/result-1-04.n3,
	rdql-testsuite/result-1-05.n3, rdql-testsuite/result-1-06.n3,
	rdql-testsuite/result-1-07.n3, rdql-testsuite/result-1-08.n3,
	rdql-testsuite/result-1-09.n3, rdql-testsuite/result-1-10.n3,
	rdql-testsuite/result-2-01.n3, rdql-testsuite/result-2-02.n3,
	rdql-testsuite/result-2-03.n3, rdql-testsuite/result-2-04.n3,
	rdql-testsuite/result-2-05.n3, rdql-testsuite/result-2-06.n3,
	rdql-testsuite/result-0-01.n3, rdql-testsuite/result-0-02.n3,
	rdql-testsuite/result-0-03.n3, rdql-testsuite/result-0-04.n3,
	rdql-testsuite/result-1-01.n3, rdql-testsuite/result-1-02.n3,
	rdql-testsuite/result-1-03.n3, rdql-testsuite/test-T-05,
	rdql-testsuite/test-T-06, rdql-testsuite/test-T-07,
	rdql-testsuite/test-T-08, rdql-testsuite/test-T-09,
	rdql-testsuite/test-T-10, rdql-testsuite/test-B-18,
	rdql-testsuite/test-B-19, rdql-testsuite/test-B-20,
	rdql-testsuite/test-S-01, rdql-testsuite/test-S-02,
	rdql-testsuite/test-S-03, rdql-testsuite/test-S-04,
	rdql-testsuite/test-S-05, rdql-testsuite/test-T-01,
	rdql-testsuite/test-T-02, rdql-testsuite/test-T-03,
	rdql-testsuite/test-T-04, rdql-testsuite/test-B-05,
	rdql-testsuite/test-B-06, rdql-testsuite/test-B-07,
	rdql-testsuite/test-B-08, rdql-testsuite/test-B-09,
	rdql-testsuite/test-B-10, rdql-testsuite/test-B-11,
	rdql-testsuite/test-B-12, rdql-testsuite/test-B-13,
	rdql-testsuite/test-B-14, rdql-testsuite/test-B-15,
	rdql-testsuite/test-B-16, rdql-testsuite/test-B-17,
	rdql-testsuite/test-8-01, rdql-testsuite/test-8-02,
	rdql-testsuite/test-8-03, rdql-testsuite/test-8-04,
	rdql-testsuite/test-8-05, rdql-testsuite/test-9-01,
	rdql-testsuite/test-9-02, rdql-testsuite/test-A-01,
	rdql-testsuite/test-A-02, rdql-testsuite/test-B-01,
	rdql-testsuite/test-B-02, rdql-testsuite/test-B-03,
	rdql-testsuite/test-B-04, rdql-testsuite/test-5-01,
	rdql-testsuite/test-5-02, rdql-testsuite/test-5-03,
	rdql-testsuite/test-5-04, rdql-testsuite/test-6-01,
	rdql-testsuite/test-6-02, rdql-testsuite/test-6-03,
	rdql-testsuite/test-6-04, rdql-testsuite/test-7-01,
	rdql-testsuite/test-7-02, rdql-testsuite/test-7-03,
	rdql-testsuite/test-7-04, rdql-testsuite/test-3-02,
	rdql-testsuite/test-3-03, rdql-testsuite/test-3-04,
	rdql-testsuite/test-3-05, rdql-testsuite/test-3-06,
	rdql-testsuite/test-3-07, rdql-testsuite/test-4-01,
	rdql-testsuite/test-4-02, rdql-testsuite/test-4-03,
	rdql-testsuite/test-4-04, rdql-testsuite/test-4-05,
	rdql-testsuite/test-4-06, rdql-testsuite/test-4-07,
	rdql-testsuite/test-1-10, rdql-testsuite/test-2-01,
	rdql-testsuite/test-2-02, rdql-testsuite/test-2-03,
	rdql-testsuite/test-2-04, rdql-testsuite/test-2-05,
	rdql-testsuite/test-2-06, rdql-testsuite/test-2-07,
	rdql-testsuite/test-2-08, rdql-testsuite/test-2-09,
	rdql-testsuite/test-2-10, rdql-testsuite/test-3-01,
	rdql-testsuite/test-0-03, rdql-testsuite/test-0-04,
	rdql-testsuite/test-1-01, rdql-testsuite/test-1-02,
	rdql-testsuite/test-1-03, rdql-testsuite/test-1-04,
	rdql-testsuite/test-1-05, rdql-testsuite/test-1-06,
	rdql-testsuite/test-1-07, rdql-testsuite/test-1-08,
	rdql-testsuite/test-1-09, rdql-testsuite/model4.nt,
	rdql-testsuite/model5.nt, rdql-testsuite/model5.rdf,
	rdql-testsuite/model6.nt, rdql-testsuite/model7.nt,
	rdql-testsuite/model8.n3, rdql-testsuite/model9.n3,
	rdql-testsuite/modelA.nt, rdql-testsuite/test-0-01,
	rdql-testsuite/test-0-02, rdql-testsuite/vc-db-1.rdf,
	rdql-testsuite/vc-db-2.rdf, rdql-testsuite/vc-db-3.rdf,
	rdql-testsuite/model0.nt, rdql-testsuite/model1.nt,
	rdql-testsuite/model2.nt, rdql-testsuite/model3.nt: Imported RDQL
	testsuite 2.1a

	* rdql_lexer.l (copy_string_token):
	Copy language and datatype strings always.

	* rasqal_raptor.c (raptor_statement_as_rasqal_triple):
	Copy language always.

	* rasqal_expr.c (rasqal_new_string_literal): Delete language for
	datatyped literals that are not rdf:XMLLiteral.
	(rasqal_free_literal): Free flags args for string, pattern.
	(rasqal_literal_expand_qname): Delete language for convereted
	datatyped literals that are not rdf:XMLLiteral.

2004-05-02  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_expr.c (rasqal_literal_compare):
	Fix int promotion - store in ints[].

	* rasqal_raptor.c (rasqal_raptor_triple_match):
	Use rasqal_literal_equals to compare
	for matches; do not want type promotion.

	* rasqal.h: Added rasqal_literal_equals

	* rasqal_expr.c (rasqal_literal_compare): Fix ints, doubles setup.
	(rasqal_literal_equals): Check for equal without promotion.

	* rasqal_expr.c (rasqal_literal_compare):
	More regular approach to type promotion.
	Add promotion to strings, typically used for URIs.

	* rasqal_raptor.c (raptor_statement_as_rasqal_triple):
	Copy literal language, when there is no datatype URI.

2004-05-01  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_raptor.c (rasqal_raptor_bind_match):
	Handle intra-triple constraints.

	* rasqal_engine.c (rasqal_engine_get_next_result):
	Stop checking constraints if there
	is an error or one returns false.

	* rasqal_expr.c (rasqal_literal_as_integer):
	Try to turn a string to an int using strtol and checking for failure
	(rasqal_expression_evaluate): Invert all lt/gt/le/ge check cases,
	was backwards.

	* rasqal_expr.c (rasqal_expression_evaluate):
	Fix failing to match regex checks for
	RASQAL_EXPR_STR_NMATCH

2004-04-30  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal.spec.in: require raptor 1.3.0

2004-04-28  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* librasqal.3: early man page experiment

2004-04-27  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* Makefile.am:
	Added EXTRA_librasqal_la_SOURCES with strcasecmp.c rasqal_redland.c

	* roqet.c (main): open files mode 'r', not append.

	* roqet.c (main): Report failure of fopen

2004-04-26  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_raptor.c (rasqal_raptor_bind_match): Copy bound literals

	* rasqal_raptor.c:
	Switch code to make rasqal_triple objects immediately during
	parsing, much code reduction.

2004-04-25  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_raptor.c (raptor_statement_compare): Remove lots of debugging.

	* rasqal_raptor.c (raptor_node_equals):
	Reverse uri compare check again.
	(raptor_statement_compare): Lots of debugging.

	* rasqal_raptor.c (rasqal_raptor_statement_handler): Append correctly

	* rasqal_raptor.c (raptor_node_equals):
	Handle RAPTOR_IDENTIFIER_TYPE_PREDICATE
	Fix uri check
	(rasqal_raptor_next_match): Fix compare check.
	(rasqal_raptor_new_triples_match): get first match here.

	* rasqal_raptor.c (rasqal_raptor_triple_match): Note FIXMEs

	* roqet.c: Don't use redland

	* rasqal_raptor.c: Returns at least 1 result and doesn't crash.

	* rasqal_internal.h: Add rasqal_raptor_init

	* rasqal_general.c (rasqal_init): Call rasqal_raptor_init

	* configure.ac: Remove linking with redland

	* Makefile.am: Remove rasqal_redland.c

	* rasqal_raptor.c: Rasqal triple store implementation with raptor

	* Makefile.am: Added rasqal_raptor.c

2004-04-20  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* Makefile.am: Added strcasecmp.c

	* configure.ac: Added strcasecmp macros, checks

	* rasqal_expr.c (rasqal_expression_compare,rasqal_literal_compare):
	Added flags arg
	(rasqal_literal_compare): Use RASQAL_COMPARE_NOCASE for string
	comparisons to select case independent one.
	Use case independent compare for languages.
	(rasqal_expression_evaluate): Pass on error return from regexes as a
	NULL result.

	* rasqal.h: Added flags arg to rasqal_literal_compare

	* rasqal_internal.h: Added strcasecmp, stricmp macros

	* strcasecmp.c: portable strcasecmp

2004-04-16  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_expr.c: replace a few wayward free() calls with RASQAL_FREE()
	(rasqal_expression_foreach): Do not free passed in expression.

	* rasqal.h: rasqal_expression_is_variable deleted

	* rasqal_expr.c (rasqal_expression_is_variable): Deleted, not used.

	* rasqal_expr.c (rasqal_variable_compare): Deleted, not used.

	* rasqal_expr.c (rasqal_expression_as_boolean,
	rasqal_expression_as_integer): 1-entry switch zapped.
	(rasqal_expression_compare): 1-entry switches zapped.

	* rasqal_expr.c, rasqal.h: Removed RASQAL_EXPR_EXPR - never used

	* roqet.c: Added -c/--count option.
	Made quiet flag a local.
	Tidied help messages to match raptor macros.

	* rdql_parser.y (rdql_parse): Pass on parsing failure earlier.

	* rdql_parser.y (rdql_parse): Pass on parsing failure in return.

	* rasqal_redland.c (rasqal_redland_new_triples_source): Fail (for
	now) if there is no source URI.

	* rasqal_query.c (rasqal_query_prepare):
	Fail if already failed or finished.
	Fail if factory prepare failed.
	(rasqal_query_execute): Fail if already failed or finished.
	Fail if engine execution init or factory execution fails.
	(rasqal_query_results_finished): Also finished if failed.

	* rasqal_general.c (rasqal_query_error_varargs): An error is a failure.

	* rasqal_engine.c: Turn some failures into rasqal_query_error calls.
	(rasqal_new_triples_source): Handle NULL uri.
	(rasqal_new_triples_match): Fail if there is no triples_source.
	(rasqal_engine_execute_init): Fail if no triples_source could be
	made.
	(rasqal_engine_get_next_result): Fail if already failed.
	Fail if one column has no triples_meta.

	* rasqal_engine.c (rasqal_new_triples_source):
	Handle a source with no URI - i.e. default.

	* rasqal_engine.c (rasqal_engine_execute_init): Handle no sources.

2004-04-15  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_expr.c, rasqal.h: Export rasqal_literal_compare

	* rasqal_engine.c (rasqal_engine_get_next_result): Handle
	rasqal_triples_match_bind_match failing, then move on to the next
	triple.

	* rasqal_redland.c (rasqal_redland_bind_match):
	Check for repeated bindings and that the
	triple parts match.

	* rasqal_expr.c (rasqal_variable_get_value): Deleted, not used.

	* rasqal_expr.c (rasqal_literal_string_to_native):
	Don't free the string or datatype
	URI when promoting.

	* rdql_lexer.l: Use rasqal_new_boolean_literal for true/false.

	* rasqal_redland.c (rasqal_literal_to_redland_node):
	Use boolean string also.

	* rasqal_expr.c (rasqal_new_boolean_literal): Store boolean string.
	(rasqal_literal_as_string): No need for buffer.

	* rasqal_redland.c (rasqal_literal_to_redland_node):
	Use integer string, uris fields
	for RASQAL_LITERAL_FLOATING.  Merge that with string, floating.

	* rasqal_expr.c (rasqal_new_floating_literal):
	Store integer string, datatype uri.
	(rasqal_free_literal): Tidy that up.

	* rasqal_redland.c (rasqal_literal_to_redland_node):
	Use floating string, uris fields
	for RASQAL_LITERAL_FLOATING.

	* rasqal_expr.c (rasqal_new_floating_literal):
	Store floating string, datatype uri.
	(rasqal_free_literal): Tidy that up.

	* rdql_parser.y, rdql_lexer.l, rasqal_redland.c, rasqal_expr.c,
	rasqal.h: rasqal_literal struct changed - moved literal string
	value out of union and into common part

	* rasqal_engine.c:
	Use #ifdef RASQAL_DEBUG to wrap various old debugging prints.

	* rdql_lexer.l: (rdql_token_print) Use RASQAL_DEBUG2

	* rasqal_redland.c (rasqal_redland_triple_present):
	declare variable at start of a block.

	* rasqal_expr.c (rasqal_expression_evaluate):
	declare regex variables at start of a block.

	* rasqal_internal.h, rasqal_expr.c, rasqal_engine.c:
	Renamed and moved qname expanding functions from engine to expr
	source file.
	Now called rasqal_literal_expand_qname and
	rasqal_expression_expand_qname

	* rasqal_internal.h, rasqal_expr.c, rasqal_engine.c: Rename
	rasqal_promote_string_literal_to_native to
	rasqal_literal_string_to_native

	* rasqal_expr.c (rasqal_promote_string_literal_to_native):
	scanf takes %lf for double.

	* rdql_lexer.l, rasqal_redland.c, rasqal_expr.c:
	Switch to %g for printing, formatting C double / xsd:double.

	* rasqal.h, rdql_parser.y, rdql_lexer.l: floating is now a C double

	* rasqal_internal.h: Added rasqal_promote_string_literal_to_native

	* rasqal_engine.c:
	Make all *as_integer, *as_boolean methods return errors.
	Change all methods and uses throughout.
	(rasqal_engine_expand_literal_qname): Use
	rasqal_promote_string_literal_to_native

	* rasqal_expr.c:
	Make all *as_integer, *as_boolean methods return errors.
	Change all methods and uses throughout.
	(rasqal_promote_string_literal_to_native): Added, to turn RDF datatyped
	literals into rasqal integer/floating literals.
	(rasqal_new_string_literal): Use rasqal_promote_string_literal_to_native.
	(rasqal_literal_compare): An error in converting (rasqal_literal_as_*
	methods) always makes the comparison return non-0, no error.
	Make comparisons with one floating number be done as floats.

2004-04-14  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdql_lexer.l: comment out debug prints

	* rasqal_redland.c (rasqal_literal_to_redland_node):
	Handle integer and floating
	rasqal_literal types.

	* rdql_lexer.l (copy_string_token):
	Make various datatyped literal forms work.

	* rasqal_expr.c (rasqal_new_string_literal): Store language.

	* rasqal_redland.c (rasqal_literal_to_redland_node):
	use datatype when making librdf nodes.
	Turn literals into xsd:integer.

	* rasqal_expr.c (rasqal_literal_print): Tidy printing booleans.
	(rasqal_literal_compare): Check language and datatypes match if
	present.  If only some present, fail to match.

	* rdql_parser.y (rdql_query_error):
	Old bug, use %s to format an error string.

	* rdql_parser.y: Remove ArgList and functioncall from pre-note grammar.

	* rasqal_engine.c (rasqal_engine_execute_finish):
	free triples source only when
	initialised.

	* rdql_lexer.l:
	floating point didn't recognise [0-9]+"."[0-9] - without an 'e' or 'E'.

	* rasqal_engine.c (rasqal_engine_get_next_result): Handle no triples.

	* rasqal_expr.c (rasqal_literal_as_string): public.

	* rasqal.h: Export rasqal_literal_as_string

	* rasqal_redland.c (rasqal_literal_to_redland_node):
	Use rasqal_literal_as_string to
	turn other types to strings - should be datatypes.

	* rdql_lexer.l (copy_regex_token):
	calloc buffer so when it is copied, we copy used memory.

	* rdql_lexer.l (copy_token):
	calloc buffer so when it is copied, we copy used memory.

	* rdql_parser.y, rasqal_redland.c, rasqal_query.c, rasqal_expr.c,
	rasqal_engine.c, rasqal.h: Change variable from a part of
	rasqal_expression to part of rasqal_literal with many changes
	throughout.

	* rdql_lexer.l, rasqal_expr.c, rasqal.h:
	Kill RASQAL_LITERAL_NULL.  Use NULL pointer instead.

	* rasqal_expr.c (rasqal_expression_evaluate):
	Make POSIX regex debug message use macro.

	* configure.ac:
	Default regex-library to posix, no need to require another library.

	* rasqal_expr.c: Fix regex include to use RASQAL_REGEX_* not HAVE...
	(rasqal_expression_evaluate): Make POSIX regex code work.

	* rasqal_expr.c: Declare prototype for rasqal_literal_as_string.
	(main): Update use of rasqal_expression_evaluate

	* rasqal_expr.c: Added regex matching using pcre or POSIIX regex.
	(rasqal_literal_as_string): Added.
	(rasqal_expression_evaluate): Added query arg, for calling errors.
	Added regex code for RASQAL_EXPR_STR_MATCH, RASQAL_EXPR_STR_NMATCH

	* rasqal_redland.c:
	(rasqal_redland_free_triples_source) Do not delete rts user_data here

	* rasqal_general.c (rasqal_vsnprintf): Removed, use raptor_vsnprintf.

	* rasqal_engine.c (rasqal_free_triples_source):
	Delete rts user_data here, was
	allocated in this module.

	* rasqal.h: Add query arg to rasqal_expression_evaluate

	* configure.ac: Check for regex libraries - pcre or posix (in libc)

2004-04-13  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdql_lexer.l (copy_string_token):
	Copy final char in datatype uri/qname

	* rasqal_query.c (rasqal_new_query):
	Don't init rdf, rdfs namespaces here.

	* rdql_parser.y (rasqal_rdql_query_engine_init):
	Initialise rdf, rdfs, owl and xsd prefixes and namespaces here.

	* rdql-testsuite/Makefile.am: Emit roqet output for now.

	* rdql_parser.y, rasqal_redland.c:
	Update rasqal_new_string_literal call.

	* rasqal_expr.c (rasqal_new_string_literal):
	Store datatype uri or qnames.

	* rasqal_engine.c (rasqal_engine_expand_qname):
	Expand literal datatype qnames in literals.

	* rasqal.h:
	In rasqal_literal overload use of flags field to store datatype qnames.
	Update rasqal_new_string_literal prototype.

	* rdql_lexer.l (copy_string_token): Handle datatype uris and qnames.
	(rdql_token_print): Handle printing datatypes uris only.

	* Makefile.am: Compile rasqal_redland against roqet only.

	* rasqal_redland.c: Separate from working as a rasqal internal module.
	Add fake librdf debug macros while this remains outside librdf.
	Use world as the triples source factory user data.
	(rasqal_redland_new_triples_source): Add factory_user_data argument.
	(rasqal_redland_init): Add world argument, use as factory user_data
	argument.

	* rasqal_engine.c (rasqal_set_triples_source_factory):
	Add factory user_data argument.
	(rasqal_new_triples_source): Pass on factory user_data when creating
	a new triples source from a triples source factory.

	* rasqal_general.c (rasqal_init): Remove rasqal_redland_init.

	* roqet.c:
	No more external redland World; use rasqal_redland_init to init
	redland triple source support.

	* rasqal_expr.c (rasqal_free_literal): Free datatype field.
	(rasqal_literal_print): Print string literal datatype when present.

	* rasqal_internal.h:
	Remove rasqal_set_triples_source_factory to public.
	Remove rasqal_redland_init.

	* rasqal.h: Add datatype URI to rasqal_literal.
	Added factory user data to rasqal_triples_source_factory.
	Added prototype for rasqal_set_triples_source_factory.

	* roqet.c (main): Print query result count unless quiet

	* roqet.c (main): Get results using new result api calls.

	* rasqal_redland.c (rasqal_redland_new_triples_source):
	const parser_name

	* rasqal_query.c (rasqal_free_query):
	Call rasqal_engine_execute_finish.
	Tidy variable_names and binding_values.
	(rasqal_query_prepare): Assign and use prepared.
	(rasqal_query_execute): Assign and use executed.
	Do not run rasqal_engine_run here, just pull first result.
	(rasqal_query_get_result_count): Added
	(rasqal_query_results_finished): Added
	(rasqal_query_get_result_bindings): Added
	(rasqal_query_get_result_binding): Added
	(rasqal_query_get_result_binding_by_name): Added
	(rasqal_query_next_result): Added

	* rasqal_engine.c (rasqal_engine_assign_variables):
	Create rasqal_query fields
	variable_names and binding_values.
	(rasqal_engine_execute_init): Initialse new execution rasqal_query
	fields.
	(rasqal_engine_get_next_result): Export and handle finished.
	Added result counting.
	(rasqal_engine_assign_binding_values): Added, to assign literal
	binding values to the array.

	* rasqal_internal.h:
	Added more fields to rasqal_query for query execution: prepared,
	executed, variable_names, binding_values, result_count, finished.
	Added prototypes for rasqal_engine_get_next_result,
	rasqal_engine_assign_binding_values

	* rasqal.h:
	Added  rasqal_query_get_result_count, rasqal_query_results_finished,
	rasqal_query_get_result_bindings, rasqal_query_get_result_binding,
	rasqal_query_get_result_binding_by_name and rasqal_query_next_result

2004-04-12  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* Makefile.am:
	Add cppflags to AM_CFLAGS to compile tests against external headers

2004-04-10  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdql_lexer.l (copy_string_token):
	Use raptor_unicode_char_to_utf8 for correct unicode.

	* rasqal_redland.c (rasqal_redland_uri_heuristic_parser_name): Deleted.
	(rasqal_redland_new_triples_source): Use raptor_guess_parser_name

	* rasqal_redland.c (redland_node_to_rasqal_expression):
	Pass on language, datatype.

	* rdql_parser.y:
	Change token types for integer, boolean, string literal to
	return literal parts of union.
	Update to use new rasqal_literal constructor forms.

	* rdql_lexer.l:
	Use new rasqal_literal constructor forms to return rasqal_literal*
	here for integer, boolean, string literal tokens.
	(copy_regex_token): Make a rasqal_literal pattern literal.
	(rdql_token_print): Fix debug print to match changes.

	* rasqal_redland.c: Use new rasqal_literal constructor forms.

	* rasqal_expr.c:
	Expand one rasqal_literal constructor to many, per type.

	* rasqal.h: Explain rasqal_literal fields more.
	Add literal language, pattern flags.
	Expand one rasqal_literal constructor to many, per type.

	* rasqal_engine.c (rasqal_engine_run): don't print out triples yet.

	* rasqal_expr.c (rasqal_literal_as_integer): Turn string to integer.
	(rasqal_literal_compare): Promote strings to integers if one if them
	is an integer.  Wrong way round?

	* rasqal_engine.c (rasqal_engine_expand_triple_qnames): Fix return.

	* rasqal_engine.c (rasqal_engine_execute_init):
	Do nothing if there are no triples.

	* rasqal_engine.c (rasqal_engine_expand_triple_qnames):
	Do nothing if there are no
	triples.

	* rdql_parser.y, rdql_common.h: year

2004-04-09  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_internal.h, rasqal_expr.c:
	Replace rasqal_sequence with raptor_sequence.

2004-04-08  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* configure.ac, Makefile.am:
	More autofoo moving redland-config hack into configure.ac

	* rasqal_query.c, rasqal_engine.c:
	more replacing rasqal_sequence with raptor_sequence.

	* rasqal.h, rdql_parser.y, rasqal_query.c, rasqal_engine.c:
	Replace rasqal_sequence with raptor_sequence.

	* Makefile.am: Removed rasqal_sequence

	* rasqal_sequence.c: deleted rasqal_sequence

	* rasqal-src-config.in:
	Remove --static-libs, substitute with_raptor to get libs and cflags
	for raptor

	* configure.ac: substitute with_raptor

	* configure.ac, Makefile.am:
	autofoo fixes to enable compiling against raptor in nearby source
	tree ../raptor as well as a system copy

2004-04-06  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* configure.ac: Fix check for internal raptor

2004-04-06  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_redland.c (redland_node_to_rasqal_expression): Remove strdup

	* rasqal_redland.c (rasqal_redland_finish_triples_match): Free context

	* rasqal_sequence.c (rasqal_new_sequence): calloc structure

	* rasqal_redland.c (rasqal_redland_triple_present): logic was inverted.

	* rasqal_engine.c (rasqal_engine_get_next_result):
	Don't inc column if it's already negative.

	* rdql_lexer.l (copy_regex_token, copy_string_token):
	Pass in lval; only portable way.

	* rdql_common.h: Remove lval from common struct - not portable.

	* rdql_lexer.l:
	Use ' as delim for '-quoted strings with copy_string_token.

	* rasqal_engine.c (rasqal_engine_get_next_result,rasqal_engine_run):
	Document, use return values right.

2004-04-04  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_query.c (rasqal_query_execute):
	Call rasqal_engine_execute_init,
	rasqal_engine_run and rasqal_engine_execute_finish.

	* rasqal_engine.c: Refactoring returning of results.
	(rasqal_engine_execute_init): Added, setting up execution state.
	(rasqal_engine_execute_finish): Added, tidying up execution state.
	(rasqal_engine_get_next_result): Added, with core of
	rasqal_engine_run code but returning the next result only.
	(rasqal_engine_run): Uses above function to print results, part of
	refactoring.

	* rasqal_internal.h: Added column to rasqal_query for executing.
	Added rasqal_engine_execute_init, rasqal_engine_execute_finish.

2004-03-27  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* configure.ac, autogen.sh: Use some AM_INIT_AUTOMAKE options.
	Require automake1.7, which requires autoconf 2.54

	* rasqal-src-config.in, rasqal-config.in:
	Support --help, emit to stdout and exit 0.

2004-03-11  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* configure.ac: Handle old raptor-config, check for raptor sources

2004-02-28  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_redland.c (rasqal_redland_triple_present):
	Inline single use of rasqal_triple_to_redland_statement

	* roqet.c: Use World redland global temporarily

	* rasqal_query.c: Moved all redland-specific code to rasqal_redland.c
	(rasqal_query_execute): Use rasqal_new_triples_source,
	rasqal_free_triples_source.

	* rasqal_general.c (rasqal_init): Call rasqal_redland_init temporarily.

	* rasqal_engine.c: Moved all redland-specific code to rasqal_redland.c
	Added Triples_Source_Factory single static.
	(rasqal_new_triples_source,rasqal_free_triples_source,
	rasqal_triples_source_triple_present): Added.

	* rasqal_internal.h:
	Removed redland.h call and moved librdf_* structs to rasqal_redland.c
	Moved rasqal_triples_match, rasqal_triple_meta,
	rasqal_triples_source, rasqal_triples_source_factory to public
	rasqal.h
	Added rasqal_new_triples_source, rasqal_free_triples_source,
	rasqal_set_triples_source_factory.
	Added rasqal_redland_init temporarily.

	* rasqal.h: Added rasqal_triples_match, rasqal_triple_meta,
	rasqal_triples_source, rasqal_triples_source_factory as public.

	* Makefile.am: Added rasqal-redland.c

	* rasqal_redland.c: Rasqal redland code

	* rasqal_internal.h: dates
	Update bind_match method

	* rasqal_engine.c (rasqal_engine_expand_constraints_qnames): fix return
	Moved all redland bits into separate callbacks.
	(rasqal_redland_bind_match): Renamed from rasqal_redland_get_match.
	(rasqal_engine_run): Moved remaining use of redland statement
	into rasqal_redland_bind_match.

	* rasqal.h: dates

	* tests/example_at_7.rdql, tests/example_at_6.rdql, tests/example_at_5.rdql, tests/example_at_4.rdql, tests/example_at_3.rdql, tests/example_at_2.rdql, tests/example_at_1.rdql, tests/example4.rdql:
	Update to remove <qname> form

	* rdql_lexer.l (WNAME): Allow - after first char of qname

	* rdql_parser.y (CommaAndConstraintClause):
	Do not free constraints in sequence.
	(rdql_parse): Call rasqal_engine_expand_constraints_qnames

	* rasqal_query.c (rasqal_free_query): Free new constraints_expression.
	Added freeing of constraints sequence.
	(rasqal_query_execute): Call
	rasqal_engine_build_constraints_expression.

	* rasqal_internal.h: Added constraints_expression to rasqal_query

	* rasqal_expr.c (rasqal_new_literal): Use usage counts
	(rasqal_new_literal_from_literal): Added, inc usage and return.
	(rasqal_free_literal): Dec usage count, free on 0.
	(rasqal_expression_foreach): Added.
	(rasqal_expression_evaluate): Big update to use evaluate on
	all expression args and turn into boolean afterwards.

	* rasqal_engine.c (rasqal_engine_expand_qname):
	Added, helper for use with
	rasqal_expression_foreach, also used by
	rasqal_engine_expand_triple_qnames.
	(rasqal_engine_expand_triple_qnames): Updated to use
	rasqal_engine_expand_qname.
	(rasqal_engine_expand_constraints_qnames): Added, to expand
	any qnames in constraints using rasqal_expression_foreach and
	rasqal_engine_expand_qname
	(rasqal_engine_build_constraints_expression): Turn a sequence of
	constraints into one rasqal_expression ANDed

	* rasqal.h: Add usage to rasqal_literal.
	Add rasqal_expression_foreach
	Add rasqal_new_literal_from_literal

	* rasqal_expr.c (rasqal_literal_compare):
	Fix uri compare (equal/not only)
	(rasqal_variable_get_value): Added.
	(rasqal_expression_compare): Match when variables are present,
	repeat until all are literals.

	* rasqal.h: Export some more functions

	* rasqal_engine.c (rasqal_engine_run):
	Check constraints and don't match if fails

2004-02-27  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_expr.c: Added TILDE, BANG

	* rasqal_expr.c (main): Fail if result was NULL

	* rdql_parser.y, rasqal_query.c, rasqal_engine.c:
	Renamed all expression print methods to follow method naming.

	* rasqal.h: Removed all BIT and SHIFT ops
	Renamed all expression print methods to follow method naming.

	* Makefile.am: Added rasqal_expr_test

	* rasqal_expr.c: Lots of changes to get expression evaluation working.
	Renamed all print methods to follow method naming.
	Made several more utility methods inline.
	Removed all BIT and SHIFT ops
	(rasqal_expression_compare): Renamed from rasqal_expression_equals,
	returning the difference <0, =0, >0
	(rasqal_expression_evaluate): Renamed from rasqal_evaluate_expression
	and complete the other ops.
	(main): Added, evaluating integer1+integer1

	* rasqal-config.in, configure.ac:
	Added --version-decimal to rasqal-config

	* rasqal-config.1: Added --versiond-decimal

2004-02-25  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal.pc.in, rasqal.spec.in: require raptor 1.2.0+

2004-02-24  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal.spec.in: Require raptor 1.3.0
	Update the build lines
	Export library la files

	* rasqal.pc.in: Require raptor 1.3.0 min

	* roqet.c (main): filename now a variable.
	Don't print query after execution.

	* rasqal_query.c, Makefile.am:
	Remove rasqal_query_test code, roqet is a replacement

	* rasqal_query.c (rasqal_new_query):
	Declare rdf and rdfs namespaces by default.  Not
	sure if this is still needed.
	(rasqal_query_execute): Expand qnames before ordering, which has
	problems since it uses functions that don't understand them.
	(main): Debug messages to stderr, delete some.

	* rasqal_expr.c (rasqal_print_literal): Tweak printing blank nodes.

	* rasqal_engine.c: Make debug statements go to stderr.
	(rasqal_engine_run): After destroying a triples_match, null the
	pointer so a new one is made next time for this column.

	* Makefile.am: Add redland-config --cflags to MEM temp

	* rasqal_engine.c: fixme--

	* rasqal_expr.c (rasqal_new_variable): Free duplicate names.

	* rasqal_sequence.c (rasqal_free_sequence): Free the sequence object.

	* rasqal_expr.c (rasqal_free_variable): Free name, value.

	* rdql_common.h: Added scanner_set field.

	* rdql_parser.y (rasqal_rdql_query_engine_terminate):
	Add scanner_set to free rdql
	scanner if needed.
	(rdql_parse): Call rdql_lexer_lex_destroy.

2004-02-23  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_expr.c (rasqal_free_prefix): RASQAL_FREE

	* rasqal_expr.c (rasqal_free_prefix): Free prefix and uri

	* rasqal_engine.c:
	rasqal_triples_match methods take struct rasqal_triples_match_s arg.
	(rasqal_free_triples_match): Added (destructor).
	(rasqal_triples_match_get_match, rasqal_triples_match_next_match,
	rasqal_triples_match_is_end): Added, methods rather than direct
	calls.

	* rasqal_internal.h:
	rasqal_triples_match methods take struct rasqal_triples_match_s arg.

	* rasqal_expr.c (rasqal_free_expression):
	Do not call rasqal_free_variable -
	variables are shared and freed once by the variables_sequence
	field of rasqal_query.

	* tests/Makefile.am: Remove check-rdql-queries with rasqal_query-test

	* configure.ac, Makefile.am: Added rdql-testsuite

	* rdql-testsuite/Makefile.am: rdql testsuite

	* rasqal_engine.c:
	Big rewrite of rasqal_select_next to remove the recursion.
	Added a triplesmatching API skeleton.
	(rasqal_triple_present): Added.
	(rasqal_redland_get_match, rasqal_redland_next_match,
	rasqal_redland_is_end, rasqal_redland_finish_triples_match,
	rasqal_new_triples_match): Added with rasqal_new_triples_match
	creating a new rasqal_triples_match structure.
	(rasqal_engine_run): The non-recursive version of the
	rasqal_select_next.

	* rasqal_query.c (rasqal_query_execute): Call rasqal_engine_run.

	* rasqal_internal.h:
	Added struct rasqal_triples_match for wrapping triplesMatch
	Added is_exact, triples_match, user_data fields to rasqal_triple_meta.

	* rasqal_engine.c (rasqal_select_next):
	Now internal and uses rasqal_triple_meta
	for per-triple info.
	(rasqal_query_run): Added.  Allocates and frees rasqal_triple_meta
	for each triple in the conjunction.

	* rasqal_internal.h: Added rasqal_triple_meta typedef

	* roqet.c: forbid reading queries except from files

	* rasqal_internal.h: Add SYSTEM_MALLOC/FREE when not debugging.

	* rasqal_query.c (rasqal_uri_heuristic_parser_name): Fix tests.

	* Makefile.am: MEM_LIBS includes redland for testing

	* Makefile.am: fix roqet LDADD

	* rasqal_query.c (rasqal_uri_heuristic_parser_name): Added.  Ewww!
	(main): Use rasqal_uri_heuristic_parser_name.

	* rasqal.h: Export version and copyright statics

	* Makefile.am: remove roqet extra link

	* Makefile.am: Added no-install roqet utility

	* roqet.c: Rasqal RDF query utility

	* configure.ac: Add getopt_long check

	* getopt.c, rasqal_getopt.h: Public domain getopt

	* configure.ac: Add getopt and checks.

	* rdql_parser.y (SELECT *): Set select_all query field.

	* rasqal_query.c (rasqal_query_execute):
	Call rasqal_engine_assign_variables.

	* rasqal_internal.h: Added select_all field to rasqal_query.

	* rasqal_engine.c (rasqal_engine_assign_variables):
	Expand SELECT * to list of variables seen.

	* rasqal.h: Added rasqal_sequence_print_uri

	* rdql_parser.y (URIList):
	A list of raptor_uri, so use raptor_free_uri to free,
	and rasqal_sequence_print_uri to print them.

	* rasqal_sequence.c (rasqal_sequence_print_uri): Added.

	* rasqal_engine.c (rasqal_select_next): More debug messages.
	Move the stream on to return all results.

	* rasqal_query.c (rasqal_query_execute): Use librdf_uri* only.

	* rasqal_expr.c (rasqal_variable_set_value): Debug messages.

	* rasqal_expr.c (rasqal_variable_set_value):
	Don't return after freeing old value.

2004-02-21  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdql_parser.y: Update rasqal_new_variable call with rasqal_query arg.
	(main): Init variables_sequence.

	* rasqal_query.c (rasqal_new_query): Init the variables_sequence.
	(rasqal_free_query): Delete the variables_sequence.

	* rasqal_internal.h:
	Added variables_sequence, the primary storage for variable data.
	Added prototype for rasqal_engine_assign_variables

	* rasqal_expr.c: Added RASQAL_LITERAL_BLANK support.
	(rasqal_new_variable): Added an rdf_query arg.  Now makes
	variables unique pointers per query, assigns offsets.

	* rasqal_engine.c (rasqal_engine_assign_variables):
	Create the static variables array
	inside the rasqal_query.
	(rasqal_expression_to_redland_node,redland_node_to_rasqal_expression):
	Handle blank nodes.
	(rasqal_select_next): Use previously bound variable values.

	* rasqal.h: variable gets an offset
	Added RASQAL_LITERAL_BLANK.
	rasqal_new_variable taks a rdf_query arg.

2004-02-20  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_internal.h: docs.
	Added variables, variables_count, select_variables_count.

	* rasqal.h: rasqal_variable now takes a rasqal_expression value.
	Added prototypes for rasqal_query_set_variable,
	rasqal_variable_set_value.

	* rasqal_engine.c:
	(rasqal_expression_to_redland_node,
	redland_node_to_rasqal_expression,
	rasqal_triple_to_redland_statement, rasqal_select_next): Added -
	for testing with redland directly.

	* rasqal_query.c (rasqal_query_set_variable):
	Added to set variable value.
	(rasqal_query_execute): Testing configuration using redland directly.
	(main) global world object initialised here to prevent uri
	implementation being changed behind the scenes.

	* rasqal_internal.h: Use redland for testing.

	* rasqal_expr.c: rasqal_variable now takes a rasqal_expression value.

	* rdql_parser.y:
	Handle QNAME_LITERAL in expressions, to allow old <qname> form.

	* rdql_lexer.l: Support <qname> syntax with a warning.

	* Makefile.am: make check-local build the secondary test programs

	* rasqal_query.c (rasqal_query_prepare):
	Free the uri_string from raptor.

	* rasqal_general.c (rasqal_system_malloc, rasqal_system_free):
	Added for raptor malloced stuff.

	* rasqal_internal.h: Added rasqal_system_malloc,
	rasqal_system_free for raptor malloced stuff.

	* rdql_parser.y: not used var

	* rdql_parser.y (rasqal_rdql_query_engine_execute):
	return 0, note FIXME

	* rasqal_query.c (rasqal_query_execute):
	Don't call factory execute twice.
	(main): progname

	* rasqal_engine.c (rasqal_query_order_triples): calloc memory.

	* rasqal_engine.c (rasqal_engine_declare_prefixes):
	Do no work if there are no
	prefixes.

	* rdql_parser.y (main): Init/free namespaces

	* rasqal.h: Added prototypes for rasqal_query_has_variable,
	rasqal_expression_is_variable, rasqal_expression_as_variable.

	* rasqal_query.c (rasqal_new_query): Init namespaces.
	(raqal_free_query): Free namespaces, ordered_triples.
	(rasqal_query_has_variable): Added.
	(rasqal_query_execute): Call rasqal_query_order_triples then
	factory execute method.
	(rasqal_query_print): Print ordered_triples if present.
	(main): Call execute, print query afterwards.

	* rasqal_expr.c (rasqal_expression_as_variable): Added.
	(rasqal_expression_is_variable): Added.

	* rasqal_engine.c: Rasqal query engine

	* rasqal_internal.h:
	Added namespaces, ordered_triples fields to rasqal_query.
	Added prototypes for rasqal_query_order_triples,
	rasqal_engine_declare_prefixes, rasqal_engine_expand_triple_qnames.

	* rdql_parser.y:
	(rasqal_rdql_query_engine_init,rasqal_rdql_query_engine_terminate):
	Removed namespaces code, never called here and should be more
	general.
	(rdql_parse): Call new rasqal_engine_declare_prefixes and
	rasqal_engine_expand_triple_qnames.

	* rdql_common.h:
	Moved namespaces field from rdql struct to rasqal_query

	* Makefile.am: Added rasqal_engine.c
	Make all test programs use $(DEFS), $(LIBS)

2004-02-19  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* Makefile.am: rasqal_sequence_test needs librasqal.la

	* Makefile.am:
	All code needs raptor even if no URIs are being used, at least for
	the header.

	* rasqal_general.c, rasqal_sequence.c, rasqal_expr.c: Headers

	* rasqal_query.c: Headers.
	(rasqal_query_prepare): Make a base URI if not given.
	(main): Tidying.

	* rdql_common.h: ordering struct, lineno.

	* rasqal_general.c (rasqal_get_query_engine_factory): Warning tweak.

	* rdql_parser.y (rdql_parse): Init lines and columns from our lineno.
	(main): Changes to match.  Use rdql_parse with new form.

	* rdql_lexer.l: More updates to match raptor.
	Add C++ input defines.
	Count newlines, also in pattren regex.
	(main): Don't re-reset the scanner to it's address.

	* rdql_lexer.l, rasqal_general.c, Makefile.am:
	rdql_lexer_test works again

	* rdql_parser.y, rdql_lexer.l, rdql_common.h, rasqal_query.c,
	rasqal_internal.h, rasqal_general.c, rasqal.h, configure.ac,
	Makefile.am: Added a rasqal_query factory, registration,
	separation of query from implementation.  Imported a lot of raptor
	code.  It now compiles, doesn't work.

2004-02-15  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_internal.h: Add locator and base_uri to rasqal_query

	* rasqal_general.c: Big import of code from raptor, not complete.
	Adding factory code, registration, error handling, enumeration.

	* tests/note-ex3.rdql, tests/note-ex4.rdql, tests/note-ex1.rdql,
	tests/note-ex2.rdql: Examples from W3C RDQL note

	* tests/Makefile.am: Add examples from RDQL W3C note

	* rdql_lexer.l: Pass QNAME to grammar as string
	Pass a URI as a raptor_uri
	(rdql_lexer_simple_error): Added

	* rdql_parser.y: Add raptor_uri to grammar/lexer struct
	Declare QNAME_LITERAL as string (char*)
	URI_LITERAL is now a uri (raptor_uri)
	Update rasqal_new_literal calls.
	Throughout: rename structs (not complete)
	(rasqal_rdql_qengine_init): Added
	(main): Update.

	* rdql_common.h: Rename structure to rasqal_rdql_engine_s
	Add namespaces

	* rasqal.h: Include raptor.h
	Use raptor_uri in rasqal_prefix.
	Added RASQAL_LITERAL_QNAME
	Use raptor_uri in rasqal_literal.
	Change rasqal_new_literal, rasqal_new_prefix to use raptor_uri

	* configure.ac: Check for vsnprintf, return values

	* Makefile.am: Added rasqal_expr.c
	Compile tests with internal cppflags

	* rasqal_expr.c: Rasqal expression classes

2004-02-05  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* configure.ac: Make tests/Makefile

	* tests/Makefile.am: build rasqal_query_test

	* Makefile.am: Moved RDQL tests to tests dir

	* tests/Makefile.am: Added tests dir

	* example1.rdql, example2.rdql, example3.rdql, example4.rdql,
	example5.rdql, example_at_1.rdql, example_at_2.rdql,
	example_at_3.rdql, example_at_4.rdql, example_at_5.rdql,
	example_at_6.rdql, example_at_7.rdql: Moved rdql tests to tests/

	* rasqal-src-config.in: -lrasql

2004-01-12  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* Makefile.am: Add @RASQAL_INTERNAL_CPPFLAGS@ for some tests that
	use it to get raptor.

	* configure.ac, Makefile.am: Remove REDLAND_* macros, in-redland checks

2003-10-14  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdql_parser.y:
	Add free handlers to all the rasqal_new_sequence calls.
	(main): use dynamic request/free for rasqal_query so the sequences
	get freed.

	* rasqal.h: rasqal_parse_query, rdql_parse gain length argument

	* rdql_parser.y (rdql_parse):
	Updated with length argument.  Use the *scan_bytes method.
	(main): Update test code for rdql_parse taking query length

	* rasqal_query.c: Updates for rdql_parse taking query length

	* rdql_lexer.l (rdql_token_free):
	Free string (part of union) only when the token
	type indicates a string is present.
	(main): close fh, save memory.
	Use raw free for raptor-returned memory when debugging.

	* Makefile.am:
	Gave up and machine-edit rdql_lexer.c output to put an if() around
	a free with a NULL arg.

	* rdql_parser.y, rdql_lexer.l:
	(main) Use raptor to turn filename into a URI string

	* Makefile.am: Make librasqal depend on RASQAL_INTERNAL_LIBS
	Prune MEM lines
	Make tests use librasqal.la not LIBS

	* configure.ac: Split internal use of libraptor.la and external use of
	the output of raptor-config --libs
	Added RASQAL_EXTERNAL_LIBS, RASQAL_LIBTOOLLIBS

	* rasqal-config.in: Tidy exec_prefix.
	Make libs work right

	* rasqal-config.in: added --libtool-libs

	* configure.ac: Add --with-raptor=internal/system using raptor-config.
	Handle working inside redland source tree; not tested.

	* rdql_parser.y (rdql_parse): Add uri_string arg.
	Added fake yy_init_globals to stop compiler warning; rdql_lexer.h
	wrongly declares a prototype to a static function.
	(rdql_query_error, rdql_syntax_error, rdql_syntax_warning): Use
	uri_string, line fields from rdql_parser.
	(main): Update test code to match changes.

	* rdql_lexer.l:
	Remove global filename; use uri_string field of rdql_parser
	(main) Update test code to match.

	* rdql_common.h: rdql_parser_s gains uri_string, line, column.

	* rasqal_query.c:
	(rasqal_parse_query) Add uri_string arg for base URI and/or error
	reporting.

	* rasqal.h:
	rasqal_aprse_query and rdql_parse now take a uri_string for base URI
	and/or error reporting.

	* rdql_lexer.l: fix standalone error/warning reporting

2003-10-13  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdql_lexer.l, rdql_parser.y: Add stdarg.h

	* example_at_7.rdql: fix old rdql syntax

	* rdql_lexer.l: Add debugging rdql_syntax_warning

	* configure.ac: back to automake 1.6

	* Makefile.am: Add rdql_common.h

	* configure.ac: Automake 1.7

	* rasqal_internal.h: Add more rdql internal prototypes

	* rdql_parser.y, rdql_lexer.l:
	Now re-entrant / shared lexer and parsers

	* rdql_common.h: RDQL lexer/parser shared internals

	* rdql_parser.y: Added (regex) flags to lval.
	Removed bit operators.
	Removed gramamr rules for bit operators: InclusiveOrExpression,
	ExclusiveOrExpression, AndExpression no longer used.

	* rdql_lexer.l:
	Updates for pattern literal and identifier recognition from context.
	Kill all bit operators.
	Added regex abbreviations LANGUAGETOKEN, PREFIX, QNAME, QUOTEDURI
	(copy_regex_token): Added for handling regexes and flags. Not quite
	working yet.
	Removed like token.

2003-09-21  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdql_parser.y: Tidy up after lexing, delete buffers

	* rdql_parser.y: Add PATTERN_LITERAL
	Kill END (use EOF)

	* rdql_lexer.l:
	PATTERN_LITERAL now returned using lexer state <PATTERN>
	Handle some \-escapes in the patterns - guessing

	* rdql_parser.y: Removed term, merged into expression - added pattern.
	Removed URI from expression, only use as literal uri.
	Use specific rasql_new_expression* functions.

	* rasqal_general.c:
	Removed term, merged into expression - added pattern.
	Remove the 1 use of URI from expression, only use as literal uri.
	(rasqal_new_1op_expression, rasqal_new_2op_expression,
	rasqal_new_string_op_expression, rasqal_new_literal_expression,
	rasqal_new_variable_expression): Added.

	* rasqal.h: Removed term, merged into expression

	* rasqal_general.c:
	Added start of expression evaluation; committing in order to redo it.

	* rdql_lexer.l: Update notes after those for n3_lexer.l in raptor

2003-08-22  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdql_lexer.l (skip_cpp_comment): Added

	* rdql_parser.y:
	Add optional COMMA in lists of vars, triples, inside triples.

	* Makefile.am: Tidy link flags

	* rasqal.h: Added rasqal_compare_strings and rasqal_sequence_sort
	More RASQAL_API

	* rasqal_sequence.c (rasqal_sequence_ensure): Set min size to 8.
	(rasqal_sequence_grow): Just double, ensure will make sure
	it's minimum size is sensible.
	(rasqal_sequence_set_at): idx+1 is new size.
	(rasqal_compare_strings): Helper for:
	(rasqal_sequence_sort): Sort sequences.
	(main): Add sorting to tests.

	* rasqal_query.c (rasqal_query_print):
	Update for rasqal_sequence_print calls without
	print_handler arg.

	* rasqal.h, rdql_parser.y:
	Update for rasqal_new_sequence calls with print_handler arg.

	* rasqal_sequence.c (rasqal_new_sequence):
	Lose capacity.  Call now takes free and print
	handlers.
	(rasqal_sequence_print_string): Helper, added.
	(rasqal_sequence_print): Lose print_handler.

	* Makefile.am: Remove -o from $(LINK) lines

	* Makefile.am: Added memory debugging flags
	flex/yacc output now compile without warnings.

	* rdql_lexer.l: Added missing prototypes not generated by flex.

	* rdql_lexer.l: Tidy and document options.  No more interactive.
	Fix boolean, null return values.

	* rdql_parser.y: Move C code to section at end of file

	* rdql_parser.y: Prototypes.

	* rasqal_internal.h: Add dmalloc

	* rasqal_query.c: Prototypes.
	If optional last arg is missing or '-', read from stdin

	* rasqal_query.c: note rdql uri

	* Makefile.am: clean stuff
	lex -oout

	* rdql_parser.y, rasqal_query.c, rasqal_internal.h,
	rasqal_general.c, rasqal.h, Makefile.am: Parse tree is now built
	for RDQL in terms of rasqal sequences, terms, expressions,
	variables and literals.

	* rasqal_sequence.c:
	Added rasqal_sequence_print taking a callback method to print the
	items.

2003-08-21  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rasqal_sequence.c: Added test suite and corrected.
	Constructor gains a free_handler.

2003-08-14  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* rdql_parser.y, rdql_lexer.l, rasqal_internal.h, Makefile.am:
	Change to rely on flex features - AT&T lex is just too feature light,
	and the distribution will ship with the generated files anyway.  Flex
	is pretty widespread.
	Change to use prefix setting for names inside the lexer
	and the generated filenames.  Update the calling code to match.

	* rdql_parser.y: Note where shift/reduce conflicts are

2003-08-13  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* Makefile.am: Added example5.rdql

	* example5.rdql: Initial import

	* rdql_parser.y: +stdio

	* rasqal.h: Added outline rasqal query and sequence API prototypes.

	* Makefile.am: Added rasqal_query.c rasqal_sequence.

	* rasqal_query.c, rasqal_sequence.c: Initial import

2003-08-12  Dave Beckett  <Dave.Beckett@bristol.ac.uk>

	* configure.ac: Bump version to 1.1

	* Snapshotted rasqal_1_0 for 1.0 release

	* rdql_lexer.l: Add <string.h>

	* rasqal.spec.in, Makefile.am: fixes for RPMs

	* rasqal_config.h.in: Not meant to be in CVS

	* fix-groff-xhtml: Import from raptor CVS

	* MPL.html, AUTHORS, INSTALL.html, LICENSE.html: Initial import

	* Makefile.am:
	Added README.html,  NEWS.html, LICENSE.html, INSTALL.html and
	librasqal.html

	* NEWS.html, README.html, autogen.sh: Initial import

	* configure.ac: words

	* Makefile.am, configure.ac, example1.rdql, example2.rdql,
	example3.rdql, example4.rdql, example_at_1.rdql,
	example_at_2.rdql, example_at_3.rdql, example_at_4.rdql,
	example_at_5.rdql, example_at_6.rdql, example_at_7.rdql,
	librasqal.3, rasqal-config.1, rasqal-config.in,
	rasqal-src-config.in, rasqal.h, rasqal.pc.in, rasqal.spec.in,
	rasqal_config.h.in, rasqal_general.c, rasqal_internal.h,
	rdql_lexer.l, rdql_parser.y, win32_config.h: Initial import
