Fetching contributors…
Cannot retrieve contributors at this time
2987 lines (2068 sloc) 99.5 KB
2004-12-31 Dave Beckett <>
* rasqal_query.c (rasqal_query_results_write):
Added, writing query results in form of
* sparql_parser.y: Undef RASQAL_DEBUG 2 always
2004-12-23 Dave Beckett <>
* 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
(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 <>
* tests/rdql/testsuite/ (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/ 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
* tests/sparql/syntax/ Added 0triples.rq
* tests/sparql/syntax/0triples.rq: Zero graph pattern triples
* tests/sparql/syntax/data.n3: typos
2004-12-07 Dave Beckett <>
* sparql_parser.y (PatternElementForms):
Handle empty GraphPattern1 (NULL sequences)
* tests/sparql/part1/dawg-data-01.n3,
tests/sparql/simple/dawg-data-01.n3: foaf:knowns to foaf:knows
2004-11-30 Dave Beckett <>
* tests/sparql/examples/ex2-1a-result.n3,
tests/sparql/examples/ex3-result.n3: .
2004-11-29 Dave Beckett <>
* 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-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):
rasqal_op_labels: added uminus
* rasqal.h: Added RASQAL_EXPR_UMINUS
2004-11-26 Dave Beckett <>
* --with-dmalloc default is now no
2004-11-21 Dave Beckett <>
* 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
* 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 <>
* 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_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 <>
* rasqal_engine.c (rasqal_engine_execute_init): Init
(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
(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
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
(rasqal_graph_pattern_get_next_match): Code tidy.
2004-11-17 Dave Beckett <>
* 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 <>
* 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_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
* 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
* 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 <>
* 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):
* rasqal.h: Added enum rasqal_triple_flags
Added flags field to rasqal_triple.
Added prototypes for rasqal_triple_set_flags and
2004-11-11 Dave Beckett <>
* 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 <>
* sparql_parser.y (rasqal_init_query_engine_sparql):
URL now
* 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
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/, tests/sparql/syntax/groups.rq:
Added groups.rq
* rdql_parser.y (ConstraintClause): Don't add constraint sequence
(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.
* 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
2004-11-02 Dave Beckett <>
* 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
* 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.
*, win32_rasqal_config.h: Bumped version to 0.9.5
2004-11-01 Dave Beckett <>
* Need raptor 1.4.2
2004-10-29 Dave Beckett <>
* Snapshotted rasqal_0_9_4 for 0.9.4 release
* 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 <>
* 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
* tests/sparql/syntax/,
tests/sparql/simple/, tests/sparql/part1/,
tests/sparql/examples/ 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 <>
* 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
* 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/ 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/ Added syntax dir
* sparql_parser.y (VarOrURIList):
Fix calls to rasqal_new_variable_literal.
* Added dir tests/sparql/syntax
* tests/sparql/syntax/,
tests/sparql/syntax/describe1.rq: syntax tests for SPARQL
* tests/sparql/examples/ Remove check-sparql-works
* tests/rdql/testsuite/ Remove check-rdql-works
* rasqal_internal.h: Note that describe is a sequence of
* sparql_parser.y (VarOrURIList): Build a list of rasqal_literal*
2004-10-26 Dave Beckett <>
* 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
(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
(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 <>
* 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
(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
(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 <>
* win32_rasqal_config.h,, NEWS.html:
Bumped version to 0.9.4
* Snapshotted rasqal_0_9_3 for 0.9.3 release
* 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
Do a 'return 0' after regcomp check to ensure the program exits ok
* tests/rdql/testsuite/check-rdql: Handle empty list of vars
Execute rasqal_query_test specially, passing in full path to
* 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.
* 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
* sparql_parser.y (Literal, URI):
Invoke rasqal_literal_expand_qname when handling a
(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
* rasqal_internal.h: Added rasqal_engine_sequence_has_qname,
rasqal_engine_constraints_has_qname, rasqal_literal_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 <>
* tests/sparql/examples/ 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.
* enable sparql for regular users
2004-10-23 Dave Beckett <>
*, Added
* Rasqal DOAP description
2004-10-21 Dave Beckett <>
*,, 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 <>
* 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.
use $srcdir not .. when looking for raptor sources nearby
* raptor minimum version 1.4.0
* roqet.c: cast for fprintf
* autoconf mode
2004-10-18 Dave Beckett <>
* 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 <>
* roqet.c: Tidy some #defines
(main): Don't print all of huge query_string on errors.
* roqet.1: formatting
2004-10-16 Dave Beckett <>
* 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/,
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-2a.n3, tests/sparql/examples/ex2-2a.rq,
tests/sparql/examples/ex2-3a.n3, tests/sparql/examples/ex2-3a.rq,
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/, tests/sparql/part1/,
tests/sparql/, tests/rdql/testsuite/,
tests/rdql/ Use indirect rules for the lexer, parser
tests for rdql, sparql and roqet
* 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 <>
* 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
2004-10-12 Dave Beckett <>
* tests/sparql/part1/
Use EXPECTED_SPARQL_CORRECT_FAILURES and count the list at run time
2004-10-10 Dave Beckett <>
* 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 <>
* sparql_parser.y, sparql_lexer.l, sparql_common.h,
rasqal_internal.h, rasqal_general.c, brql to sparql
2004-09-30 Dave Beckett <>
* tests/sparql/check-sparql: -warnings, new perl only
* roqet.c: On query failure (prepare or execute) tidy and exit
* tests/rdql/testsuite/ count expected failures the old way
* tests/rdql/testsuite/check-rdql, tests/sparql/check-sparql:
Handle query parsing, execution errors
* tests/rdql/testsuite/
Handle test failures with/without a regex library
* tests/sparql/simple/, tests/sparql/part1/
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/, tests/sparql/simple/
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/ Remove expected test failures code.
* tests/sparql/ 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/ sparql tests
* sparql parser/lexer tests
* brql_parser.y: sparql label
* rasqal_general.c: brql to sparql
* tests/sparql/part1/, tests/sparql/simple/
list files
* Added sparql subdirs
* tests/sparql/part1/,
tests/sparql/part1/manifest.n3: sparql part1 tests
* tests/sparql/simple/,
tests/sparql/simple/data-01.n3, tests/sparql/simple/data-02.n3,
tests/sparql/simple/result-tp-04.n3: sparql simple tests
*, tests/ brql to sparql
* 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 <>
* 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
* 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
(rasqal_raptor_free_triples_source): Tidy up new arrays of data.
(rasqal_raptor_bind_match): Update call to triple_match with no URI
* 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
* Added fix-bison. Use it for rdql and brql parsers.
* fix-bison: fix-bison
2004-09-19 Dave Beckett <>
* 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)
Made "PREFIX"/"prefix" set state PREF
Made <PREF> state handle foo: and : names for namespace prefixes
2004-09-16 Dave Beckett <>
* 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
* 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/, tests/brql/E.n3, tests/brql/Q-SOURCE-1,
tests/brql/Q-SOURCE-2: tests
2004-09-12 Dave Beckett <>
* rasqal_literal.c (rasqal_literal_as_string): Handle BLANK
2004-09-11 Dave Beckett <>
* 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
* clean up local_tests
* tests/brql/ fix tool building paths
* rasqal_query_test.c: Use data/dc.rdf
*, Added data
* data/, data/dc.rdf: data
2004-09-10 Dave Beckett <>
* sparql_lexer.l, rdql_lexer.l (main): Use raptor_free_memory
* tests/brql/ BRQL Makefile
* tests/rdql/ 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.
* 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/ Switch to just subdirs here
* Split tests into BRQL and RDQL ones enabled separately.
Use makefile conditionals for sources
Added --enable-query-languages and automake conditionals
to avoid building them.
* 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 <>
* rdql_parser.y (rasqal_rdql_query_engine_terminate):
Call rdql_lexer_lex_destroy properly.
2004-09-06 Dave Beckett <>
* rasqal_engine.c (rasqal_engine_execute_finish):
Don't free triple_meta before checking the columns
* 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/, tests/dc.rdf: Added dc.rdf
*, 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 <>
* rdql_lexer.l: Fix copy_regex_token prototype - delim is not const.
2004-08-22 Dave Beckett <>
* tests/example_at_8.rdql: RDQL @semantics example 8
* tests/ Added example_at_8.rdql
* Re-fix generation of rdql_parser.c
* rdql_parser.y: Allow optional comma in prefix declaration lists.
* Update rdql_parser bison output fix for no .tab.c
2004-08-17 Dave Beckett <>
* 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
* Remove link with expat (!) in posix regex check
2004-08-13 Dave Beckett <>
* Several fixes for building on win32 from Chris Pointon
* win32/, win32/rasqal.dsp, win32/rasqal.dsw:
win32 build configuration
*, 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,
Do not generate *.tab.[ch] for rdql parser but process and rename
to make .c, .h.
2004-08-03 Dave Beckett <>
* 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_new_floating_literal, rasqal_new_pattern_literal,
rasqal_new_string_literal, rasqal_new_simple_literal,
rasqal_literal_as_string, rasqal_new_prefix,
2004-08-02 Dave Beckett <>
* LICENSE.html: Correct the pointer to LGPL v2.1 (not 2)
2004-07-28 Dave Beckett <>
* move 'rm's inside loop
* Ensure subdirs get config.guess, config.sub
2004-07-27 Dave Beckett <>
* rasqal_expr.c: Add #ifndef STANDALONE ... #endif around test
functions, linked via library.
* Use raptor-config and redland-config with
* Remove duplicate redland-config test
2004-07-21 Dave Beckett <>
* 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,, win32_config.h,
win32_rasqal_config.h: rename win32_config.h to
2004-07-09 Dave Beckett <>
* ChangeLog: ChangeLog in CVS now
2004-06-23 Dave Beckett <>
* Add rule to make
2004-06-21 Dave Beckett <>
* 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
2004-06-17 Dave Beckett <>
* Zap extra $@ on rule line
2004-06-14 Dave Beckett <>
* NEWS.html: 0.9.2 skeleton
2004-06-13 Dave Beckett <>
* Bumped version to 0.9.2
* Snapshotted rasqal_0_9_1 for 0.9.1 release
* Require raptor 1.3.1
* docs/ README should be maintainer-clean
* removed dup enable-release
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 <>
* 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 <>
* 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_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
* 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
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 <>
Don't use RASQAL_INTERNAL_LIBS except in dependencies of
* rasqal_internal.h: remove duplicate and broken YYDEBUG lines
2004-05-29 Dave Beckett <>
* Add --enable-maintainer-mode
2004-05-28 Dave Beckett <>
* tests/, rdql-testsuite/
Add set +e, set -e around multiple tests so they only fail at the end.
* Add flex version check, only in maintainer mode
* Make lex and yacc rules be maintainer only.
* Use automakefile conditionals STRCASECMP and GETOPT
* Use automakefile conditionals STRCASECMP and GETOPT
for conditional sources. Re-order the directives slightly.
2004-05-27 Dave Beckett <>
* check for perl
* Add fix-flex and use it
* fix-flex: Fix flex output
2004-05-15 Dave Beckett <>
* Bumped version to 0.9.1
* Snapshotted rasqal_0_9_0 for 0.9.0 release
* rdql-testsuite/
Improve checking works/correct against expected failures.
* rdql-testsuite/
Check works/correct RDQL tests against expected failures.
* rdql-testsuite/check-rdql: Use portable diff -u in errors
2004-05-14 Dave Beckett <>
* 0.9.0
2004-05-13 Dave Beckett <>
* 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
* rasqal_internal.h: Add rasqal_literal_as_node
* rasqal_literal.c (rasqal_new_string_literal,
rasqal_literal_expand_qname): Discard language if datatype is
* rdql-testsuite/check-rdql:
Turn internal integer, floating into typed literals.
2004-05-12 Dave Beckett <>
* rdql-testsuite/check-rdql: report failures
2004-05-11 Dave Beckett <>
* TODO.html: words
2004-05-07 Dave Beckett <>
* rasqal_query.c (rasqal_query_print):
Don't try to print NULL sequences.
* docs/, docs/, docs/build-docs,
docs/kernel-doc: Rasqal docs and API manual
*, 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.h: Do not export rasqal_literal_as_boolean
* 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)
2004-05-06 Dave Beckett <>
* rasqal.h: Renamed rasqal_query_get_result_binding to
rasqal_query_get_result_binding_value. Added
* 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 <>
* 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
* date
Use new @RAPTOR_MIN_VERSION@ subst.
* Install roqet
* Added roqet.1 and roqet.html, add fix-groff-xhtml
* roqet.1: roqet man page
* SUBST with_raptor
* sigh, rasqal uses raptor
* One more remaining bad raptor cut'n' paste
* rdql-testsuite/ Add check-rdql to dist
* Added build summary.
* rasqal_raptor.c: (raptor_statement_as_rasqal_triple) C99.
* Try to find raptor sources better.
* rdql-testsuite/
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
* 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.
* Moved LTLIBOBJS around to allow strcasecmp,
rasqal_redland to work right.
* Added --redland-config
Added --with-triples-source=(raptor|redland)
2004-05-04 Dave Beckett <>
* 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,
* 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): added, for access to constraint
* 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 <>
* rasqal_expr.c (rasqal_literal_compare):
break after case for floating.
* rdql-testsuite/check-rdql:
check-rdql - Run Rasqal against RDQL testsuite
* rdql-testsuite/
Add check with roqet and then check it is correct with check-rdql
* rdql-testsuite/README: RDQL testsuite notes
* rdql-testsuite/ Updated to RDQL testsuite 2.1a
Added maintainer rules to aid importing, updating and patching.
* 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 <>
* 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 <>
* 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
2004-04-30 Dave Beckett <>
* require raptor 1.3.0
2004-04-28 Dave Beckett <>
* librasqal.3: early man page experiment
2004-04-27 Dave Beckett <>
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 <>
* 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 <>
* 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):
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
* Remove linking with redland
* Remove rasqal_redland.c
* rasqal_raptor.c: Rasqal triple store implementation with raptor
* Added rasqal_raptor.c
2004-04-20 Dave Beckett <>
* Added strcasecmp.c
* 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 <>
* 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
(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 <>
* 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
* 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
* 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_internal.h, rasqal_expr.c, rasqal_engine.c: Rename
rasqal_promote_string_literal_to_native to
* 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_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 <>
* 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
* 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
* 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.
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.
* 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
* Check for regex libraries - pcre or posix (in libc)
2004-04-13 Dave Beckett <>
* 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/ 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.
* 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
* 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
(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.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 <>
Add cppflags to AM_CFLAGS to compile tests against external headers
2004-04-10 Dave Beckett <>
* 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
* rdql_parser.y, rdql_common.h: year
2004-04-09 Dave Beckett <>
* rasqal_internal.h, rasqal_expr.c:
Replace rasqal_sequence with raptor_sequence.
2004-04-08 Dave Beckett <>
More autofoo moving redland-config hack into
* 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.
* Removed rasqal_sequence
* rasqal_sequence.c: deleted rasqal_sequence
Remove --static-libs, substitute with_raptor to get libs and cflags
for raptor
* substitute with_raptor
autofoo fixes to enable compiling against raptor in nearby source
tree ../raptor as well as a system copy
2004-04-06 Dave Beckett <>
* Fix check for internal raptor
2004-04-06 Dave Beckett <>
* 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 <>
* 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
* rasqal_internal.h: Added column to rasqal_query for executing.
Added rasqal_engine_execute_init, rasqal_engine_execute_finish.
2004-03-27 Dave Beckett <>
*, Use some AM_INIT_AUTOMAKE options.
Require automake1.7, which requires autoconf 2.54
Support --help, emit to stdout and exit 0.
2004-03-11 Dave Beckett <>
* Handle old raptor-config, check for raptor sources
2004-02-28 Dave Beckett <>
* 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_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_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
Added rasqal_new_triples_source, rasqal_free_triples_source,
Added rasqal_redland_init temporarily.
* rasqal.h: Added rasqal_triples_match, rasqal_triple_meta,
rasqal_triples_source, rasqal_triples_source_factory as public.
* 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_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): Updated to use
(rasqal_engine_expand_constraints_qnames): Added, to expand
any qnames in constraints using rasqal_expression_foreach and
(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 <>
* 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.
* 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
Added --version-decimal to rasqal-config
* rasqal-config.1: Added --versiond-decimal
2004-02-25 Dave Beckett <>
*, require raptor 1.2.0+
2004-02-24 Dave Beckett <>
* Require raptor 1.3.0
Update the build lines
Export library la files
* Require raptor 1.3.0 min
* roqet.c (main): filename now a variable.
Don't print query after execution.
* rasqal_query.c,
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.
* 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 <>
* 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
* 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/ Remove check-rdql-queries with rasqal_query-test
*, Added rdql-testsuite
* rdql-testsuite/ 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_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.
* MEM_LIBS includes redland for testing
* 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
* remove roqet extra link
* Added no-install roqet utility
* roqet.c: Rasqal RDF query utility
* Add getopt_long check
* getopt.c, rasqal_getopt.h: Public domain getopt
* 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 <>
* 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.
Handle blank nodes.
(rasqal_select_next): Use previously bound variable values.
* rasqal.h: variable gets an offset
rasqal_new_variable taks a rdf_query arg.
2004-02-20 Dave Beckett <>
* 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_engine.c:
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.
* 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
* 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:
Removed namespaces code, never called here and should be more
(rdql_parse): Call new rasqal_engine_declare_prefixes and
* rdql_common.h:
Moved namespaces field from rdql struct to rasqal_query
* Added rasqal_engine.c
Make all test programs use $(DEFS), $(LIBS)
2004-02-19 Dave Beckett <>
* rasqal_sequence_test needs
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,
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,, 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 <>
* 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/ 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.
Use raptor_uri in rasqal_literal.
Change rasqal_new_literal, rasqal_new_prefix to use raptor_uri
* Check for vsnprintf, return values
* Added rasqal_expr.c
Compile tests with internal cppflags
* rasqal_expr.c: Rasqal expression classes
2004-02-05 Dave Beckett <>
* Make tests/Makefile
* tests/ build rasqal_query_test
* Moved RDQL tests to tests dir
* tests/ 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/
* -lrasql
2004-01-12 Dave Beckett <>
* Add @RASQAL_INTERNAL_CPPFLAGS@ for some tests that
use it to get raptor.
*, Remove REDLAND_* macros, in-redland checks