-
Notifications
You must be signed in to change notification settings - Fork 25
/
ChangeLog.9
3660 lines (2484 loc) · 116 KB
/
ChangeLog.9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2011-12-14 Dave Beckett <[email protected]>
* src/rasqal_query_transform.c:
(rasqal_query_remove_empty_group_graph_patterns): Only for GROUP
2011-12-13 Dave Beckett <[email protected]>
* src/rasqal_datetime.c:
Size of xsd:Date prefix is 6 not 7
2012-02-13 Lauri Aalto <[email protected]>
* autogen.sh:
require automake 1.11.2+ for -Wextra-portability
2012-02-11 Dave Beckett <[email protected]>
* configure.ac:
Report raptor version in build summary
2012-02-09 Dave Beckett <[email protected]>
* src/rasqal_digest_md5.c, src/rasqal_digest_sha1.c,
src/rasqal_internal.h: Added RASQAL_BAD_CAST RASQAL_GOOD_CAST
after raptor
Added it to MD5 and SHA1 calls where a len turns into a size_t
* build/.gitignore: ar-lib
* configure.ac:
Add automake option -Wextra-portability and
AM_PROG_AR to make it happy
2012-02-05 Dave Beckett <[email protected]>
* INSTALL.html, LICENSE.html, NEWS.html, README.html,
RELEASE.html, TODO.html: 2012
* src/rasqal.h.in, src/rasqal_datetime.c,
src/rasqal_format_html.c, src/rasqal_format_json.c,
src/rasqal_format_rdf.c, src/rasqal_format_sparql_xml.c,
src/rasqal_format_sv.c, src/rasqal_literal.c,
src/rasqal_query_results.c, src/rasqal_query_write.c,
src/rasqal_xsd_datatypes.c: Added RASQAL_LITERAL_DATE for xsd:Date
rasqal_literal_type gains RASQAL_LITERAL_DATE but it is
unfortunately not in the FIRST_XSD to LAST_XSD range so needs it's
own handling.
(rasqal_new_xsd_date): Fix call to rasqal_xsd_datetime_parse() to
unset isDateTime flag.
(rasqal_xsd_check_date_format): Added. Add xsd:date to recognized
datatype URIs in XSD module.
(rasqal_xsd_datatype_uri_to_type, rasqal_xsd_datatype_type_to_uri)
(rasqal_xsd_datatype_check, rasqal_xsd_datatype_parent_type): Add
date support as an XSD type that is not in the FIRST..LAST range.
(rasqal_new_numeric_literal): Handle RASQAL_LITERAL_DATE via
rasqal_new_xsd_date()
(rasqal_free_literal): Updated for date Updated many other methods
to pretty much do the same thing as RASQAL_LITERAL_DATETIME for
RASQAL_LITERAL_DATE.
(rasqal_literal_compare): Use new rasqal_xsd_date_compare
(rasqal_literal_equals_flags): Use new rasqal_xsd_date_equals
(rasqal_literal_cast): Allow casting string to date and date to
string.
2011-12-04 Dave Beckett <[email protected]>
* src/Makefile.am, src/rasqal_xsd_datatypes.c: Eliminate never
used code in rasqal_xsd_datatypes.c Removed empty test code
* docs/rasqal-changes.tsv, docs/rasqal-sections.txt,
src/rasqal.h.in, src/rasqal_datetime.c, src/rasqal_internal.h: Add
rasqal_xsd_date for XSD:Date
(rasqal_new_xsd_date, rasqal_free_xsd_datetime): Added constructor
and destructor
(rasqal_xsd_date_to_counted_string, rasqal_xsd_date_to_string)
(rasqal_xsd_date_equals, rasqal_xsd_date_compare): Added core
methods
2011-12-03 Dave Beckett <[email protected]>
* src/rasqal_query_results.c: Fix blank node generation for
constructs
(rasqal_literal_to_result_term): Added, pulled out of
rasqal_query_results_get_triple(). Rewrite blank node IDs to be
prefixed by the result number, only if the original value was a
blank node from the CONSTRUCT otherwise leave it alone.
(rasqal_query_results_get_triple): Use above to turn rasqal values
into raptor terms and constrain to the RDF rules.
2011-11-20 Dave Beckett <[email protected]>
* configure.ac: search for AWK and use it
2011-11-18 Dave Beckett <[email protected]>
* src/rasqal.h.in: this is rasqal
2011-11-17 Dave Beckett <[email protected]>
* NEWS.html, RELEASE.html, configure.ac:
Bumped version to 0.9.29
* Snapshotted rasqal_0_9_28 for 0.9.28 release (GIT
6618f96e1be4693f1f73be138dd94c46ecc98376)
2011-11-16 Dave Beckett <[email protected]>
* configure.ac:
Make sure raptor is new enough or fail configure
2011-11-15 Dave Beckett <[email protected]>
* .gitmodules, autogen.sh, configure.ac, libmtwist,
src/Makefile.am, src/mtwist_config.h, src/rasqal_random.c: Add
libmtwist as a submodule to implement random
* RELEASE.html: 0.9.28
* src/Makefile.am: Made git-version.h a non-distributable source
file.
2011-11-14 Dave Beckett <[email protected]>
* src/rasqal_general.c:
(rasqal_log_error_varargs): Use raptor_vasprintf for raptor >= 2.0.5
2011-10-24 Dave Beckett <[email protected]>
* src/rasqal_mt_rand.c: Remove rasqal includes
* src/rasqal_mt_rand.c: multiple code style fixes.
2011-10-23 Dave Beckett <[email protected]>
* src/rasqal_mt_rand.c: RASQAL_MT_MATRIX_A
* src/Makefile.am, src/rasqal_mt_rand.c, src/rasqal_random.c:
Mersenne Twister functions
* configure.ac, src/rasqal_random.c: Use GNU MP random routines if
GMP was configured
* src/rasqal_random.c: Do not cast int to double, let arithmetic
promote it
* src/rasqal_random.c:
(rasqal_new_random): Set initial seed from system
* src/rasqal_expr.c, src/rasqal_expr_numerics.c,
src/rasqal_internal.h, src/rasqal_random.c: Rename random methods;
add double function
(rasqal_random_seed): Renamed from rasqal_random_srand
(rasqal_random_irand): Renamed from rasqal_random_rand
(rasqal_random_drand): Added returning a double Updated callers to
use new names.
2011-10-23 Dave Beckett <[email protected]>
* INSTALL.html, configure.ac:
Make random approach configurable
Added --with-random-approach=ALGO to select from the choices
It is still an error to have nothing, since rand() is always
available in POSIX.
2011-10-19 Dave Beckett <[email protected]>
* src/rasqal_random.c: RASQAL_RANDOM_STATE_SIZE
* src/rasqal_random.c: fixes for initstate_r and random_r
* src/Makefile.am, src/rasqal.h.in, src/rasqal_expr.c,
src/rasqal_expr_numerics.c, src/rasqal_internal.h,
src/rasqal_query.c, src/rasqal_random.c: Switch random to an
object and add tests rasqal_random: added new structure with RNG
state
(rasqal_random_get_system_seed): Takes a world pointer.
(rasqal_new_random): Renamed from rasqal_random_init
(rasqal_free_random): Renamed from rasqal_random_finish
(rasqal_random_rand): Document range is 0..RAND_MAX inclusive.
(rasqal_new_evaluation_context): Create RNG object.
(rasqal_evaluation_context_set_rand_seed)
(rasqal_expression_evaluate_rand, rasqal_query_prepare): Use RNG
object to set seed and get a number.
2011-10-19 Nicholas J Humfrey <[email protected]>
* src/rasqal_format_sv.c: Added W3C Format URIs for SPARQL 1.1
Query Results CSV and TSV Formats.
Added See Also URIs for CSV format.
2011-10-18 Dave Beckett <[email protected]>
* configure.ac, src/rasqal.h.in, src/rasqal_random.c: Add support
for glibc random_r() and prefer re-entrant random routines
random_r() is a glibc extension
Prefer the re-entrant random number generators in order:
random_r(), rand_r() then the portable but not so safe: random()
and rand().
2011-10-17 Dave Beckett <[email protected]>
* src/rasqal.h.in, src/rasqal_expr.c, src/rasqal_internal.h,
src/rasqal_random.c: With initstate(), save old state
rasqal_evaluation_context gains a field old_random_state
(rasqal_random_init): Altered to be an initializer
(rasqal_random_finished): Added to be a finisher
(rasqal_random_srand): Renamed from rasqal_random_init.
Updated callers
2011-10-16 Dave Beckett <[email protected]>
* configure.ac, src/rasqal.h.in, src/rasqal_expr.c,
src/rasqal_expr_numerics.c, src/rasqal_internal.h,
src/rasqal_query.c, src/rasqal_random.c: Update random support to
enable use of BSD random() and prefer it
rasqal_evaluation_context gains a buffer for BSD random to use.
configure checks for srandom() and initstate() and if both are
present, prefers that over rand_r and rand for a RNG.
(rasqal_random_get_system_seed): Now takes rasqal_evaluation_context
arg.
(rasqal_random_init): Added to init the random state with seed.
(rasqal_random_rand): Added to get the random number from the RNG.
(rasqal_evaluation_context_set_rand_seed): Now just calls
rasqal_random_init().
(rasqal_expression_evaluate_rand): Now calls rasqal_random_rand().
2011-10-13 Nicholas J Humfrey <[email protected]>
* src/rasqal_format_json.c: Added URI for W3C Working Draft to
SPARQL JSON Result Format.
* src/rasqal_format_json.c, src/rasqal_format_sparql_xml.c: Added
W3C Format URIs to the JSON and XML SPARQL result formats.
2011-10-12 Dave Beckett <[email protected]>
* src/rasqal_regex.c: POSIX regex implementation of replace
(rasqal_regex_match): Set extended regex syntax.
(rasqal_regex_replace_posix): Rewrote based on
rasqal_regex_replace_pcre approach.
(rasqal_regex_replace): Add an extra outer capturing ()s for POSIX
regexes so that we always know what was matched.
* configure.ac: Set RASQAL_REGEX_POSIX in test not PCRE
2011-10-11 Lauri Aalto <[email protected]>
* utils/roqet.c:
(main): Remove obsolete -w from roqet --help.
Already removed from code in
0df20a7c4cff1c73640b42fc8b8d5a5fa33d99ba.
Fixes Issue 0000474
http://bugs.librdf.org/mantis/view.php?id=474
2011-10-09 Dave Beckett <[email protected]>
* src/rasqal_regex.c: Use UTF-8 for pcre matching and set compile
and exec options correctly
(rasqal_regex_match, rasqal_regex_replace): Split regex compile
and regex exec options. Set UTF-8 mode for compiling PCRE regexes
so that characters are matched not bytes.
* src/rasqal_expr_strings.c:
(rasqal_expression_evaluate_replace): Copy lang and datatype to
result
* src/rasqal_regex.c: Implement replace all for
rasqal_regex_replace (PCRE)
(rasqal_regex_replace_pcre): Replaced with a looping construct
that replaces all matches with the replacement.
(main): Add tests for PCRE with above
* tests/algebra/convert_graph_pattern.c:
(file_read_string): prevent gcc stack size warning in test code
* src/sparql_parser.y:
(main): prevent gcc stack size warning in test code
* src/rasqal_regex.c:
doc comments
* src/rasqal_expr.c, src/rasqal_expr_strings.c,
src/rasqal_internal.h, src/rasqal_literal.c, src/rasqal_regex.c,
src/rasqal_variable.c: Move all regex code to rasqal_regex.c
(rasqal_regex_match): Added.
* src/rasqal_expr_strings.c, src/rasqal_internal.h,
src/rasqal_regex.c:
(rasqal_regex_replace*): Renamed to match module name
* src/rasqal_regex.c:
(rasqal_string_replace): reset default posix flags
* src/rasqal_expr_strings.c:
(rasqal_expression_evaluate_strmatch): reset default posix flags
* src/rasqal_regex.c:
(rasqal_string_replace): rc is only used for posix regex
* src/Makefile.am, src/rasqal_expr_strings.c,
src/rasqal_internal.h, src/rasqal_regex.c: Move replace regex code
to new rasqal_regex.c module
* src/rasqal_expr_strings.c:
(rasqal_regex_get_ref_number): Added
* src/rasqal_expr_strings.c:
(rasqal_string_replace_pcre, rasqal_string_replace_posix): set
result_len_p
* src/rasqal_expr_strings.c:
Tidy rasqal_string_replace internals
(rasqal_string_replace_pcre, rasqal_string_replace_posix): Added.
Pulled out of rasqal_string_replace
* src/rasqal_expr_strings.c: PCRE compile fixes
* src/rasqal_expr_strings.c:
(rasqal_string_replace): Added pulled out of
rasqal_expression_evaluate_replace()
* src/rasqal_expr_strings.c: actually set options
2011-10-07 Dave Beckett <[email protected]>
* src/rasqal_expr_strings.c:
(rasqal_expression_evaluate_replace): Partial REPLACE implementation
2011-10-04 Dave Beckett <[email protected]>
* src/rasqal.h.in, src/rasqal_expr.c, src/rasqal_expr_evaluate.c,
src/rasqal_expr_strings.c, src/rasqal_internal.h,
src/rasqal_query_write.c, src/sparql_lexer.l, src/sparql_parser.y:
Add support for SPARQL 1.1 STRBEFORE, STRAFTER, REPLACE
rasqal_op gains new tokens RASQAL_EXPR_STRBEFORE,
RASQAL_EXPR_STRAFTER and RASQAL_EXPR_REPLACE.
Add parsing for STRBEFORE (2 args), STRAFTER (2 args) and REPLACE
(3 or 4 args)
(rasqal_expression_evaluate_strbefore)
(rasqal_expression_evaluate_strafter): Add expression evaluation
for RASQAL_EXPR_STRBEFORE and RASQAL_EXPR_STRAFTER.
(rasqal_expression_evaluate_replace): Add skeleton code to
evaluate RASQAL_EXPR_REPLACE - currently always fails.
* src/rasqal.h.in, src/rasqal_expr.c: Support builtin functions
with up to 4 arguments rasqal_expression gains arg4 for 4th
expression argument
(rasqal_new_4op_expression): Added to construct 3/4-arg
expressions.
2011-09-13 Dave Beckett <[email protected]>
* src/rasqal_literal.c, src/rasqal_xsd_datatypes.c: Clear errno
before calling strtol() and checking the result
2011-09-12 Dave Beckett <[email protected]>
* src/rasqal_query_write.c:
(rasqal_query_write_sparql_20060406): Correct output of LIMIT,
OFFSET
2011-09-11 Dave Beckett <[email protected]>
* src/sparql_parser.y: Switch language 'sparql' to SPARQL 1.1
* configure.ac: Use strtod() to convert runtime environ name that
can't be optimized away.
* configure.ac: Need stdlib for atof() in test
2011-09-08 Dave Beckett <[email protected]>
* configure.ac: Use 0.000 to get a 0 exit code
* configure.ac: Improve ceil, floor and round configure test
Use a more comprehensive configure build and run test for ceil(),
floor() and round() to prevent GCC optimizing it away and getting
the wrong answer when checking whether to link with -lm
2011-09-05 Lauri Aalto <[email protected]>
* src/rasqal_result_formats.c:
(rasqal_world_guess_query_results_format_name): Fix for compiling
with RASQAL_DEBUG > 2
* src/rasqal_general.c, src/rasqal_result_formats.c:
(rasqal_query_language_register_factory
rasqal_world_register_query_results_format_factory): Fixes for
compiling with RASQAL_DEBUG > 1
Fixes Issue #0000471
http://bugs.librdf.org/mantis/view.php?id=471
2011-08-30 Dave Beckett <[email protected]>
* src/rasqal_format_sparql_xml.c: Handle <literal></literal> as
empty literal in reading XML results
2011-08-28 Dave Beckett <[email protected]>
* src/Makefile.am, src/rasqal_datetime.c, src/rasqal_internal.h,
src/snprintf.c: Remove all use of snprintf for xsd:datetime and
xsd:date formatting.
(rasqal_format_integer): Added like snprintf() args but with
options for width and padding.
(rasqal_xsd_datetime_timezone_format): Now returns bytes or <0 on
failure.
(rasqal_xsd_format_microseconds): Added to format microseconds as
fractions of a second with no trailing 0s.
(rasqal_xsd_datetime_to_counted_string): Use
rasqal_format_integer() and rasqal_xsd_format_microseconds() to do
the formatting here and remove a loop calling snprintf() twice
with a NULL arg first.
(rasqal_xsd_date_to_string): Use rasqal_format_integer().
(rasqal_xsd_datetime_get_tz_as_counted_string): Use updated
calling convention of rasqal_xsd_datetime_timezone_format().
* src/rasqal_datetime.c:
(rasqal_xsd_date_to_string): Remove use of snprintf
2011-08-27 Dave Beckett <[email protected]>
* src/rasqal_datetime.c:
(rasqal_xsd_datetime_timezone_format): Remove one snprintf()
2011-08-25 Dave Beckett <[email protected]>
* tests/algebra/check-algebra, tests/rdql/testsuite/check-rdql,
tests/sparql/check-sparql: Set DIFF envariable for check tests to
allow use off GNU Diff
Thanks to Peter O'Gorman (pogma) for the patch
Fixes Issue#0000467
http://bugs.librdf.org/mantis/view.php?id=467
* src/rasqal_algebra.c, src/rasqal_general.c, src/rasqal_graph.c,
src/rasqal_query_transform.c, src/rasqal_raptor.c,
src/rasqal_result_formats.c, src/rasqal_row.c,
src/rasqal_rowsource_aggregation.c,
src/rasqal_rowsource_triples.c, src/rasqal_variable.c,
src/rasqal_xsd_datatypes.c: Code style: use calloc(type, count,
size) form on one line
* src/rasqal_row.c:
Do not calloc with 0 count - not portable
(rasqal_new_row_common): Add a condition around the if using code
from patch in bug. Thanks to Peter O'Gorman (pogma)
Fixes Issue#0000466
http://bugs.librdf.org/mantis/view.php?id=466
* src/sparql_lexer.l, src/sparql_parser.y: debug level doc
2011-08-24 Dave Beckett <[email protected]>
* utils/check_query.c: Use rasqal_literal_string_to_native to just
make it work
* utils/check_query.c: Use rasqal_query_results_sort() to sort
results.
* src/rasqal_internal.h, src/rasqal_query_results.c: Added
internal function to sort saved rows by some function
(rasqal_query_results_sort): Added calling
rasqal_query_results_execute_and_store_results if there is a
factory and no results sequence. Sorts the internal results
sequence
* src/rasqal_internal.h, src/rasqal_row.c: Added
rasqal_row_compare() internal function for sorting
2011-08-23 Dave Beckett <[email protected]>
* NEWS.html, RELEASE.html, configure.ac:
Bumped version to 0.9.28
* INSTALL.html: ws
* Snapshotted rasqal_0_9_27 for 0.9.27 release (GIT
2371992e6bc8d4573576dd90ea172626948a11f1)
* docs/rasqal-changes.tsv, docs/rasqal-sections.txt,
docs/tmpl/section-variables-table.sgml, src/rasqal.h.in,
src/rasqal_internal.h, src/rasqal_query.c, src/rasqal_variable.c:
Added rasqal_variables_table_contains to the public API
(rasqal_variables_table_contains): Added, renamed from the
internal function rasqal_variables_table_has().
* configure.ac: Do not enable debug messages by default for
--enable-maintainer-mode
This now requires the extra --enable-debug option to configure or
autogen.sh
* configure.ac: Added --with-gmp option to configure for GMP
* README.html, RELEASE.html: Document rassqal 0.9.27 requires
raptor 2.0.4 or newer
* configure.ac: RAPTOR_MIN_VERSION is now 2.0.4
2011-08-23 Lauri Aalto <[email protected]>
* src/rasqal_algebra.c:
(rasqal_algebra_extract_aggregate_expressions): Do not attempt to
traverse NULL projection->variables
2011-08-22 Dave Beckett <[email protected]>
* RELEASE.html: 0.9.27
* src/rasqal_expr_evaluate.c: Enable evaluation debugging only if
RASQAL_DEBUG_EVAL is set
* src/Makefile.am:
Add rule so git-version.h is always checked/built
This is found in cases such as a fresh GIT checkout (or a make
distclean). During compilation gcc will add the .deps files that
ensure the complete dependencies are recorded.
* .gitignore, src/Makefile.am, src/rasqal_general.c,
src/rasqal_internal.h: Build a git-version.h in maintainer mode
and add to string version
* configure.ac: Define -DMAINTAINER_MODE when in maintainer mode
2011-08-21 Dave Beckett <[email protected]>
* src/gettimeofday.c: header
* src/timegm.c:
(rasqal_timegm): Add a Windows version using _mkgmtime()
* src/win32_rasqal_config.h.in: Undefine DELETE, IN, GROUP tokens
for windows
* configure.ac, src/Makefile.am, src/gettimeofday.c,
src/rasqal_general.c, src/win32_rasqal_config.h.in: Add
gettimeofday() for windows
* src/win32_rasqal_config.h.in:
Add timeval definition and round()
* src/rasqal_rowsource_graph.c:
(rasqal_graph_rowsource_read_row): Remove temporary assert; not
needed.
* src/rasqal_rowsource_graph.c: Revert previous commit
67548342ca93d70d834e10483f3ae9e4974a622a
(rasqal_graph_rowsource_read_row): Input row size is correct, do
not lose last input row var.
* src/rasqal_rowsource_graph.c:
(rasqal_graph_rowsource_read_row): Copy correct number of input
row vars
* ChangeLog, NEWS.html, RELEASE.html: 0.9.27
* src/rasqal_format_sv.c: use eol_str as parameter
* src/rasqal_format_sv.c: Generate CRLF for TSV and LF for CSV
following draft
* src/rasqal_format_sv.c:
Generate CSV/TSV following draft SPARQL
1.1 CSV/TSV results format
http://www.w3.org/2009/sparql/docs/csv-tsv-results/results-csv-tsv.html
* src/rasqal_rowsource_union.c: More row debug printing
* src/rasqal_rowsource_join.c: Made join properly reset when doing
extra rows
(rasqal_join_rowsource_reset): Start at JS_START More row debug
printing
* src/rasqal_rowsource_graph.c: Handle GRAPH ?g returning an empty
when there is just the default graph.
(rasqal_graph_rowsource_init): Do not pass on finished flag state
to result of init, it is not an init error to finish now.
2011-08-20 Dave Beckett <[email protected]>
* tests/sparql/check-sparql: fix graph compare with dup triples
* src/rasqal_query_results.c: Handle skipping unbound variables in
CONSTRUCT properly
(rasqal_query_results_get_triple): Use
rasqal_query_results_next_internal to not fail check and Reset
skipped flag.
* src/rasqal_query_results.c: Do not duplicate code for moving to
next result (unchecked)
(rasqal_query_results_next_internal): Added
(rasqal_query_results_next): Use
rasqal_query_results_next_internal() after verb check
(rasqal_query_results_next_triple): Use
rasqal_query_results_next_internal so that CONSTRUCT does not fail
after first result row when this check happens.
* src/rasqal_rowsource_join.c: Fix bogus join test to test natural
and left correctly
It was bad because the join variable 'b' had a full match between
left and right tables. Now the natural join returns 2 rows wheras
the left join returns 3 since there are no values for b='green' in
the right table.
* src/rasqal_query_transform.c, src/rasqal_rowsource_join.c:
project all variables in group and optional sub-GPs
(rasqal_query_graph_pattern_build_variables_use_map_binds): Pass
GROUP and OPTIONAL through the binding also done for UNION using
the existing rasqal_query_union_build_variables_use_map_binds()
(rasqal_join_rowsource_read_row): Requires a change here to
prevent generating too many rows in a left join when rows are not
compatible. Not entirely clear why yet.
2011-08-20 Dave Beckett <[email protected]>
* src/rasqal_rowsource_join.c:
(rasqal_join_rowsource_read_row): Bind variables when a row is
generated.
* src/rasqal_rowsource_join.c:
(rasqal_join_rowsource_read_row): Code tidy - no semantic changes.
2011-08-19 Dave Beckett <[email protected]>
* src/rasqal_rowsource_distinct.c:
(rasqal_distinct_rowsource_init): do not set unused var con
2011-08-18 Dave Beckett <[email protected]>
* src/rasqal_internal.h, src/rasqal_rowsource.c: rowsource class
implements saving rows when required
Added internal flags when the rowsource class must do the work
RASQAL_ROWSOURCE_FLAGS_SAVE_ROWS - in process of saving rows
RASQAL_ROWSOURCE_FLAGS_SAVED_ROWS - have saved rows for replay
(rasqal_rowsource_read_row): When saving, store the rows in
rowsource rows_sequence (and keep a reference). When replaying,
read them out and make a new reference. When using read_all_rows
to implement read_row, copy the entire sequence. When the last
row is seen, set the RASQAL_ROWSOURCE_FLAGS_SAVED_ROWS flag and
reset he RASQAL_ROWSOURCE_FLAGS_SAVE_ROWS flag. Adjust messaging
to note when a saved row is being returned
(rasqal_rowsource_read_all_rows): Implement saving for entire
sueqneces of rows copying the entire sequence and copying it again
to replay.
(rasqal_rowsource_reset): If the rowsource does not implement
reset and the rows are saved, reset the offset.
(rasqal_rowsource_visitor_set_requirements): When resets are
required but the rowsource does not implement it, set the
RASQAL_ROWSOURCE_FLAGS_SAVE_ROWS flag so this module does the
work.
* src/sparql_parser.y: word
* src/sparql_parser.y: Add syntax support for CONSTRUCT WHERE {
triples }
* src/rasqal_graph_pattern.c: docs
2011-08-16 Dave Beckett <[email protected]>
* src/rasqal_rowsource_slice.c: Reset slice rowsource properly and
use result numbers (offsets) from 1
(rasqal_slice_rowsource_init): Added to set initial result offset
to 1.
(rasqal_distinct_rowsource_reset): Reset result offset to 1.
(rasqal_slice_rowsource_read_row): Some debug messaging
* src/rasqal_rowsource_distinct.c: Reset distinct rowsource
properly; empty map and zero offset
(rasqal_distinct_rowsource_init_common): Added
(rasqal_distinct_rowsource_init): Added to call above to make it
clear; with calloc()ed memory this is not actually necessary.
(rasqal_distinct_rowsource_reset): Call above.
2011-08-15 Dave Beckett <[email protected]>
* src/rasqal_internal.h, src/rasqal_rowsource.c,
src/rasqal_rowsource_join.c, src/rasqal_rowsource_union.c: Allow
rowsources to set requirements on inner rowsources.
(rasqal_rowsource_set_requirements): Added to do the visit using
rasqal_rowsource_visitor_set_requirements().
Added flag RASQAL_ROWSOURCE_REQUIRE_RESET to indicate requiring
the ability to do rasqal_rowsource_reset() on an inner rowsource.
* src/rasqal_format_rdf.c, src/rasqal_format_sparql_xml.c,
src/rasqal_internal.h, src/rasqal_rowsource.c,
src/rasqal_rowsource_aggregation.c,
src/rasqal_rowsource_assignment.c,
src/rasqal_rowsource_distinct.c, src/rasqal_rowsource_empty.c,
src/rasqal_rowsource_filter.c, src/rasqal_rowsource_graph.c,
src/rasqal_rowsource_groupby.c, src/rasqal_rowsource_having.c,
src/rasqal_rowsource_join.c, src/rasqal_rowsource_project.c,
src/rasqal_rowsource_rowsequence.c, src/rasqal_rowsource_slice.c,
src/rasqal_rowsource_sort.c, src/rasqal_rowsource_triples.c,
src/rasqal_rowsource_union.c:
Replace unused rowsource set_preserve method with set_requirements
Delete all rowsource implementations of the unused set_preserve
method and all calls to rasqal_rowsource_set_preserve() that did
nothing.
* src/rasqal_rowsource_triples.c: Remove unused
preserve_on_all_finished from triples rowsource
* src/rasqal_rowsource.c:
(rasqal_rowsource_visit): Allow truncation of recursive visits.
* src/rasqal_internal.h, src/rasqal_row.c:
(rasqal_row_sequence_copy): Added
2011-08-14 Dave Beckett <[email protected]>
* src/rasqal_rowsource_graph.c: Store number of data graphs
rasqal_graph_rowsource_context gains a dg_size field.
(rasqal_graph_rowsource_reset): Calculate dg_size once.
* src/rasqal_rowsource_join.c: Remove reading rows from join
rowsource init Label enum states with JS_prefix.
Add state JS_INIT for once-only setup.
(rasqal_join_rowsource_init): Set initial state to JS_INIT and
delete setup that reads rows
(rasqal_join_rowsource_read_row): Handle JS_INIT. Rename states
with JS_ prefix.
(rasqal_join_rowsource_reset): Rename state with JS_ prefix.
* src/rasqal_rowsource_join.c: Make rasqal_join_state an enum
* src/rasqal_rowsource_join.c: Use FINISHED not 2 for state
* src/rasqal_rowsource_graph.c: Do not call reset in graph init
(rasqal_graph_rowsource_init): Inline and just call
rasqal_graph_next_dg()
* src/rasqal_raptor.c: Save and use which parts of triples are
bound and reset those vars
rasqal_raptor_triples_match_context gains bind_parts field
(rasqal_raptor_next_match): Add debug print when matches end
(rasqal_raptor_init_triples_match): Save parts that are bind and
then use it to reset variables we are about to bind to NULL, to
ensure that the triples match gets the proper NULL values.
* src/rasqal_rowsource.c:
(rasqal_rowsource_reset): Debug warning when reset cannot be done
* src/rasqal_engine_sort.c, src/rasqal_internal.h,
src/rasqal_rowsource_sort.c: Make
rasqal_engine_rowsort_calculate_order_values not use query fields
(rasqal_engine_rowsort_calculate_order_values): Add order_seq arg
rather than use rasqal_query_get_order_conditions_sequence().
(rasqal_sort_rowsource_process): Pass in order sequence to
rasqal_engine_rowsort_calculate_order_values()
* tests/algebra/convert_graph_pattern.c: Use
rasqal_algebra_query_add_orderby with projection arg.
* src/rasqal_algebra.c, src/rasqal_engine_algebra.c,
src/rasqal_internal.h: Pass order sequence and distinct flag to
algebra nodes
rasqal_algebra_node: Add distinct field.
(rasqal_new_orderby_algebra_node): Add distinct flag and store it.
(rasqal_algebra_query_add_orderby): Renamed from
rasqal_algebra_query_add_modifiers since it only does ORDERBY and
DISTINCT. Add projection arg to get distinct info. Use it to get
distinct flag for calling rasqal_new_orderby_algebra_node()
(rasqal_algebra_select_graph_pattern_to_algebra): Use
rasqal_algebra_query_add_orderby with projection arg for distinct.
(rasqal_query_engine_algebra_execute_init): Pass in projection arg
to rasqal_algebra_query_add_orderby.
* src/rasqal_engine_algebra.c, src/rasqal_internal.h,
src/rasqal_rowsource_sort.c: rasqal_new_sort_rowsource gets
order/distinct from args not query fields
rasqal_sort_rowsource_context: Add order_seq and distinct fields.
(rasqal_sort_rowsource_init): Get order seq from context not
direct from query object.
(rasqal_new_sort_rowsource): Add order seq and distinct args and
store them.
* src/rasqal_algebra.c, src/rasqal_engine_algebra.c,
src/rasqal_internal.h: Implement slice algebra node
rasqal_algebra_node: Renamed slice fields to limit, offset
(rasqal_new_slice_algebra_node): Added
(rasqal_algebra_algebra_node_write_internal): Adjust for field
rename.
(rasqal_algebra_select_graph_pattern_to_algebra): Apply slices in
sub-SELECT.
(rasqal_algebra_query_add_slice): Added
(rasqal_algebra_slice_algebra_node_to_rowsource): Added.
(rasqal_algebra_node_to_rowsource): Call above to handle
RASQAL_ALGEBRA_OPERATOR_SLICE.
* src/Makefile.am, src/rasqal_internal.h,
src/rasqal_rowsource_slice.c: Add slice rowsource
(rasqal_new_slice_rowsource): Added.
* src/rasqal_internal.h, src/rasqal_query_results.c: Pull
limit/offset checkint out of rasqal_query_check_limit_offset()
(rasqal_query_check_limit_offset_core): Added with just limit and
offset parameters.
(rasqal_query_check_limit_offset): Now calls above with fields
from query.
* tests/algebra/convert_graph_pattern.c:
(main): Update call to rasqal_algebra_query_add_distinct
2011-08-13 Dave Beckett <[email protected]>
* src/rasqal_algebra.c:
(rasqal_algebra_query_add_distinct): Handle NULL projection
* src/rasqal_query_transform.c:
Walk sub-SELECT graph pattern once.
(rasqal_query_graph_pattern_build_variables_use_map_binds): Do not
bind SELECT inner GP multiple times; skip the sub-GP loop.
* src/rasqal_query_transform.c:
More debugging of vars scope
* src/rasqal_query_transform.c:
(rasqal_query_dump_vars_scope): Added for debuggin vars scope
* src/rasqal_query_transform.c: DEBUG_FH
* src/rasqal_query_transform.c: Make
rasqal_query_build_variables_use_map_binds take a graph pattern
arg
(rasqal_query_build_variables_use_map_binds): Add gp arg like the
use function rasqal_query_build_variables_use_map() does.
(rasqal_query_build_variables_use_map): Update call to above.
* src/rasqal_algebra.c, src/rasqal_engine_algebra.c,
src/rasqal_internal.h: Use projection to get distinct flag
(rasqal_algebra_query_add_distinct): Add projection arg for
distinct flag.
(rasqal_algebra_select_graph_pattern_to_algebra,
rasqal_query_engine_algebra_execute_init): Update callers
* src/rasqal_algebra.c:
(rasqal_algebra_select_graph_pattern_to_algebra): Implement
sub-SELECTs
2011-08-11 Dave Beckett <[email protected]>
* RELEASE.html: 0.9.27
* src/rasqal_query.c: word
* src/rasqal_query.c:
(rasqal_query_set_variable): set named variables like old behaviour
* src/rasqal_query.c:
(rasqal_query_has_variable): autodocs - any type
* docs/rasqal-changes.tsv, docs/rasqal-sections.txt,
docs/tmpl/section-query.sgml,
docs/tmpl/section-variables-table.sgml, src/rasqal_query.c: docs
for 0.9.27 new functions
* src/rasqal.h.in:
Edit header rasqal.h.in not generated header
* src/rasqal.h.in, src/rasqal_internal.h, src/rasqal_query.c,
src/rasqal_query_results.c, src/rasqal_rowsource_aggregation.c,
src/rasqal_rowsource_groupby.c, src/rasqal_rowsource_project.c,
src/rasqal_variable.c: Use variable name with type to distinguish
_:foo / ?foo in same query
(rasqal_query_has_variable2): Added with type arg deprecating
rasqal_query_has_variable(). Note warning about use of
RASQAL_VARIABLE_TYPE_UNKNOWN as ambiguous.
(rasqal_query_has_variable): Deprecated for above. Lookup by any
type.