Releases: ad-freiburg/qlever
Release list
v0.5.49
What's Changed
- Create a new graph on
POSTto the Graph Store URL by @Qup42 in #2861 - Use
IdTableView<0>inEvaluationContextand related interfaces by @joka921 in #2933 - Drop redundant member from
TaskQueueby @RobinTF in #2947 - Don't show stripped columns in
IndexScandescriptor by @ullingerc in #2941 - Fix
GROUP BYoptimizations for updates and materialized views by @RobinTF in #2913 - Properly resolve relative IRIs by @RobinTF in #2780
- Let
OptionalJoinhandle limit and offset by pushing to left child by @RobinTF in #2699 - Don't propagate limit and offset through explicit
INTERNAL SORT BYby @RobinTF in #2974 - Drop accidental array wrap from SPARQL update response by @hannahbast in #2986
- Use unique temporary file names in
CompressedRelationsTestby @Qup42 in #2950 - Add builtin function
ql:toEpochby @yarox-1 in #2841 - Remove deprecated
parser/data/Iri.{h,cpp}by @marvin7122 in #2955 - Delegate management of index, cache, etc. from
ServertoQleverclass by @Damekt in #2965 - Fix
use-after-stack-returnin cheap compilation mode by @joka921 in #2993 - Replace
const IdTable&byIdTableView<0>in several operations by @joka921 in #2999 - Add
VariableCounterutility to count variable occurrences in a parsed query by @ullingerc in #2958 - Fix
cmakecompiler flags forninjawithclangby @ullingerc in #2987 - Add
ZipMergeUniqueViewfor merging two sorted ranges by @Qup42 in #2975 - Log query start and end to new
.metrics-log.jsonlfile by @tanmay-9 in #2871 - Migrate join, path, and spatial-join call sites to
Result::idTableView()by @joka921 in #3006 - Fix
ZipMergeUniqueViewTestcompilation on Clang-16 by @joka921 in #3014 - Migrate read-only call sites across the query engine to
Result::idTableView()by @joka921 in #3018 - Introduce
IndexAndViewsand snapshot it per request by @RobinTF in #3019 - Add mode to
HttpServerfor lazy streaming of HTTP body by @joka921 in #2962 - Introduce
BufferedWriteSerializerby @RobinTF in #2948 - Reduce code duplication in
test/CMakeLists.txtby @RobinTF in #2946 - Bump more GitHub Actions to drop the
Node 20deprecation by @RobinTF in #2951 - Remove
statickeyword from free functions in headers by @RobinTF in #2994 - Bump
libspatialjoinby @RobinTF in #2996 - Add
construct-deduplicationruntime parameter and correspondingDeduplicationModeby @marvin7122 in #2934 - Replace almost all remaining usages of
Result::idTablebyResult::idTableView<0>by @joka921 in #2932 - Add
tryGetandinserttoLRUCacheby @marvin7122 in #2944 - Add
IoUringManagerand vocabulary batch-lookup result types by @marvin7122 in #3007 - Implement aligned serializers by @joka921 in #2791
- Don't throw on missing docs file in
buildDocsDBby @RobinTF in #3002 - Faster permutation writer by @RobinTF in #3003
- Refactor
BasicGraphPatternsInvariantTousingVariableCounterby @ullingerc in #3008 - Correctly set
spatialjoinworking directory and basename by @patrickbr in #3009 - Migrate test call sites from
Result::idTable()toResult::idTableView()by @joka921 in #3030 - Fix
CMakeconfig whenjemallocis manually installed by @RobinTF in #3033 - Move added
VALUESclause to the end of theSERVICEbody by @RobinTF in #2912 - Add
ql:simplifyGeometryfunction by @ullingerc in #3015 - Change
ToEpochlogic to use milliseconds instead of nanoseconds by @yarox-1 in #3000 - Remove
Result::idTable()by @joka921 in #3029 - Accept any
InputRangeTypeErasedforInputFileSpecification, not juststd::vectorby @joka921 in #2961 - Unify
QueryPlanandPlannedQueryby @Damekt in #3011 - Replace
ParallelBufferwithAsyncBlockSourcerealized viaboost::asioby @joka921 in #3023 - Implement
SortedSequence, which will replacestd::setinLocatedTriplesby @Qup42 in #3024 - Make cleanup of temporary files in
IndexRebuilderTestmore robust by @RobinTF in #3034 - Use a
TaskQueueinstead ofstd::asyncfor writing the partial vocabularies by @RobinTF in #2949 - Fix use-after-free for
LocalVocabIndexIds inCONSTRUCTexport by @hannahbast in #3025 - Move the implementation of the
Joinoperation toJoinImplby @MarkVeser in #3020 - Simplify
IndexMetaDataimplementation and move away frommmapby @RobinTF in #2971 - Replace
BatchedPipelineclass with thread pools by @RobinTF in #2956 - Fix caching and cloning of non-deterministic operations like
RAND()orBNODE()by @RobinTF in #2798 - Find statement boundaries by scanning blocks from the back by @RobinTF in #2959
- Fix wrong results and assertion errors for certain expressions in
GROUP BYby @RobinTF in #2966 - Move query planning from
Serverclass intoQleverclass by @Damekt in #3038 - Save and restore the global logging stream in tests by @Qup42 in #3054
v0.5.48
You find the official QLever packages for Debian, Ubuntu, Ubuntu-derived distributions, and macOS at https://docs.qlever.dev/quickstart/
What's Changed
- During index build, free memory from parsing stage before vocabulary merging stage by @joka921 in #2843
- Complete the refactoring of the
CONSTRUCTevaluation code by @marvin7122 in #2837 - Add
started-atfield to result fromcmd=dump-active-queriesby @tanmay-9 in #2836 - Reduce allocations in index builder and simplify vocabulary merger code by @RobinTF in #2839
- Check that
rebuild-indexnever writes outside of original directory and never overwrites by @RobinTF in #2860 - Fix another use-after-free, this time in
MessageSenderby @hannahbast in #2869 - Fix reported buffer size in RDF parser error message by @MikiDi in #2382
- Minor cleanup of #2823 by @marvin7122 in #2840
- Make
IndexTest.updateInputFileSpecificationsAndLogpass atLOGLEVEL=WARNby @Qup42 in #2848 - Properly catch exceptions during
rebuild-indexby @RobinTF in #2852 - Fix assertion error when building an empty text index by @RobinTF in #2799
- Don't precompute sort keys for the partial vocabularies by @RobinTF in #2856
- Treat
FetchContentdependencies asSYSTEMand drop the GCC 12/13-Wno-errorworkarounds by @joka921 in #2873 - Reduce in-memory buffer for
idTriplesduring partial-vocab building by @RobinTF in #2857 AD_LOG_DEBUGthe actually-usednum-triples-per-batchby @RobinTF in #2858- Avoid redundant
Sortoperation in query plan forEXISTSby @RobinTF in #2874 - Support
path{n},path{n,m},path{n,},path{,n}in SPARQL property paths by @SvenPVoigt in #2240 - Update
clang-formatfrom16to18by @RobinTF in #2880 - Avoid a GCC 12
-Werror=array-boundsfalse positive inExplicitIdTableOperationTestby @RobinTF in #2888 - Fix bug in unifying local vocab IDs when building a partial vocabulary by @RobinTF in #2891
- Fix
YEAR(?date)prefilter when value is non-numeric or non-integral by @RobinTF in #2882 - Store
IndexandMaterializedViewsManagerviashared_ptrby @RobinTF in #2892 - Fix assertion error in
IndexScanwhen joining materialized views by @ullingerc in #2898 - Fix bug in optimized
GROUP BYwithCOUNTby @RobinTF in #2901 - For
cmd=dump-active-queries, return{}instead ofnullwhen no active queries by @RobinTF in #2903 - Turn vocabulary-order check during index build into an assertion by @RobinTF in #2894
- Fix handling of prefix regexes with character class escapes by @hannahbast in #2926
- Use 7 chars instead of 6 for git hash by @RobinTF in #2914
- Add addition for dates and durations by @yarox-1 in #2814
- Make logging thread-safe and the log level runtime-configurable by @joka921 in #2834
- Propagate limit and offset through
Sortoperation by @RobinTF in #2797 - Fix error for HTTP response with empty body by @Qup42 in #2870
- Make tests runnable in parallel again by @RobinTF in #2876
- Run
rebuild-indexindependently of the query memory limit by @RobinTF in #2893 - Make lazy
GROUP BYas fast as non-lazyGROUP BYby @RobinTF in #2921 - Fix copy-paste error in
CMakeLists.txtby @S7uX in #2945 - Make
getBlocksForJoinlinear-time by @joka921 in #2928 - Bump Docker GitHub Actions to drop the
Node 20deprecation by @RobinTF in #2927 - Read on-disk vocabulary via
preadinstead ofmmapby @RobinTF in #2931
v0.5.47
You find the official QLever packages for Debian, Ubuntu, Ubuntu-derived distributions, and macOS at https://docs.qlever.dev/quickstart/
What's Changed
- Remove the
globalSingletonIndex_static pointer fromIndexImplby @RobinTF in #2818 - Compute diff between two snapshots and remap IDs to the new index by @RobinTF in #2822
- Set
permutationWriterNumThreadsto 5 for index build by @hannahbast in #2833 - Simplify
mergeVocabularyphase and remove memory spike by @RobinTF in #2827 - Make
WordWriterBase::finishWasCalled_atomic by @RobinTF in #2828 - Add
GraphNameManagerfor managing unique graph IRIs for Graph Store Protocol by @Qup42 in #2744 - Remove two files that were completely unused by @RobinTF in #2830
- Refactor triple instantiation for
CONSTRUCTqueries into dedicated files by @marvin7122 in #2824 - Make the RDF parsers work for arbitrary input streams by @joka921 in #2838
- Add
ql:has-wordtriples if option--add-has-word-triplesby @hannahbast in #2579 - Add
EnumWithStringsbase class and refactorVocabularyTypeto use it by @joka921 in #2835
v0.5.46
You find the official QLever packages for Debian, Ubuntu, Ubuntu-derived distributions, and macOS at https://docs.qlever.dev/quickstart/
What's Changed
- Preparations for rewriting queries to use materialized views by @ullingerc in #2692
- Fix wrong size estimate for full scan of a materialized view by @ullingerc in #2707
- Allow creating materialized views as part of index build by @ullingerc in #2693
- Don't deduplicate rows implicitly when scanning materialized views by @ullingerc in #2708
- Re-enable the clang 21 build by @RobinTF in #2734
- Rewrite simple chain join to scan of materialized view if possible by @ullingerc in #2649
- Add template preprocessing phase for
CONSTRUCTqueries by @marvin7122 in #2710 - Add workflow for native build on
macOSusingAppleClangby @tanmay-9 in #2630 - Simpler lifetime management for the bug fix from #2684 by @RobinTF in #2690
- Encode literals from
STRDTasValueIdby @ullingerc in #2713 - Fix
sparql-results+jsonfor solutions where all variables are unbound by @RobinTF in #2715 - Fix handling of
UNDEFvalues inPrefixRegexExpressionby @RobinTF in #2714 - Ensure that tests can be compiled and run on all
LOGLEVELs by @Qup42 in #2719 - Fix order for Cartesian product join when
UNDEFin left input by @RobinTF in #2726 - Add runtime parameter
service-allowed-iri-prefixesto specify whitelist forSERVICEcalls by @ullingerc in #2728 - Fix nested
LIMITandOFFSETand redundantStripColumnsoperation by @RobinTF in #2741 - Fix regression involving
useGraphPostProcessing_by @ullingerc in #2745 - Make destructor of
CallbackOnEndViewexception-safe by @joka921 in #2533 - Change log level of "No timeout check" messages from
WARNtoDEBUGby @hannahbast in #1635 - Normalize away the
xsd:stringdatatype by @RobinTF in #2732 - Prove
UndefStatus::AlwaysDefinedfor more expressions by @RobinTF in #2733 - Fix division by zero for
INwith RHS with more than 1000 elements by @RobinTF in #2747 - Update most GitHub workflows to
Ubuntu 24.04by @joka921 in #2743 - String produced by
GROUP_CONCATshould never have a language tag by @RobinTF in #2751 - Let
Permutationknow to whichMaterializedViewit belongs, it any by @ullingerc in #2753 - Add
ql:envelopeLowerLeftandql:envelopeUpperRighthelper functions by @ullingerc in #2754 - For each
BINDexpression in a materialized view query, remember the column by @ullingerc in #2756 - Distinguish between "cancelled" and "failed" status for lazy query results by @RobinTF in #2628
- Add subtraction for dates by @yarox-1 in #2645
- Remove outdated documentation and refer to https://docs.qlever.dev by @ullingerc in #2631
- Allow to completely bypass QLever's cache by @joka921 in #2758
- Faster compilation with type-erased
StringExpressionby @joka921 in #2735 - Fix the compilation with
CHEAPER_COMPILATION=ONby @joka921 in #2767 - Implement Graph Store Protocol operation
HEAD, and fix status codes forPUTandDELETEby @Qup42 in #2532 - Fix the sonarcloud uploader by @joka921 in #2774
- Support redirects in
SERVICErequests by @hannahbast in #2435 - Compute
BINDcolumn via materialized view if possible by @ullingerc in #2742 - Store
UndefStatusfor each column of a materialized view by @ullingerc in #2772 - Fix spurious test failures in
IndexTest(hopefully) by @joka921 in #2775 - Add non-owning variants of
LiteralOrIri,Iri, andLiteralby @joka921 in #2736 - Improve the performance of
rebuild-indexand of the graph metadata update by @RobinTF in #2738 - Add batch evaluation of variables for
CONSTRUCTqueries by @marvin7122 in #2723 - Add operation
vacuum-delta-triplesthat removes redundant update triples by @Qup42 in #2737 - Rewrite star join to scan on materialized view if possible by @ullingerc in #2776
- Let
SpatialJoinuse bounding boxes from an underlying materialized view by @ullingerc in #2769 - Add internal function
ql:prefix-matchby @RobinTF in #2755 - Extend
IndexScandescriptor to include all scanned columns by @ullingerc in #2790 - Fix rewrite of chain join to materialized view for edge case (subject fixed and not sorted by subject) by @ullingerc in #2789
- Rename
--parse-paralleloption ofqlever-indexto--parallel-parsingby @nbdani in #2796 - Reduce cyclic dependency between
indexandenginelibraries by @marvin7122 in #2765 - Index nested loop join for
MINUSandEXISTSwhen left side is larger by @RobinTF in #2312 - Clone subtrees before applying
LIMITandOFFSETby @RobinTF in #2782 - Refactor graph search in
TransitivePathoperation by @schaetzr in #2730 - Finish the migration to
C++17by @joka921 in #2786 - Add
tryGetmethod toLRUCacheandLRUCacheWithStatisticsby @marvin7122 in #2763 - Update GitHub Actions to avoid Node.js 20 deprecation issues by @RobinTF in #2811
- Add magic service
ql:external-valuesby @joka921 in #2778 - Implement remaining cases of date and duration subtraction by @yarox-1 in #2784
- Make
IdTablecheaper to move, andIdTableViewcheaper to create by @joka921 in #2759 - Remove redundant
globalSingletonComparator_by @RobinTF in #2801 - Change interface of
toValueIdto takeconst IndexImpl&by @RobinTF in #2808 - Make
disable-cachingruntime parameter accessible viaHTTPby @hannahbast in #2809 - Fix four independent "use-after-free" bugs discovered with ASAN by @joka921 in #2812
- Fix three build failures in the
CPP17/GCC 8andAppleClangworkflows by @RobinTF in #2815 - Distinguish between
IdOrLiteralOrIriandIdOrLocalVocabEntryby @RobinTF in #2813 - Fix two more lifetime issues (one ASAN and one SEGV) by @hannahbast in #2816
- Drop redundant
detail::qualifiers inParallelMultiwayMerge.hby @marvin7122 in #2823
v0.5.45
There are now official QLever packages for Debian, Ubuntu, Ubuntu-derived distributions, and macOS; see https://docs.qlever.dev/quickstart/
What's Changed
- Allow writing materialized views from queries with less than four columns by @ullingerc in #2639
- Avoid hashing twice in
BlankNodeManager::allocateBlockby @RobinTF in #2648 - When writing a materialized view, remember the query string by @ullingerc in #2653
- Show name of materialized view in
IndexScandescriptor by @ullingerc in #2655 - Ensure that tests also compile and run for
LOGLEVEL < WARNby @Qup42 in #2671 - Unload materialized view when overwritten by @ullingerc in #2657
- Use the new binary names
qlever-indexandqlever-serverin all Dockerfiles by @ullingerc in #2677 - Load materialized views when starting the server by @ullingerc in #2659
- Native
WebAssemblyakaWasmbuild withEmscriptenby @ZamirCS-369 in #2577 - Fix blank node label consistency in parallel parsing by @joka921 in #2676
- Preparations for binary index rebuild by @RobinTF in #2660
- Fix destruction order of
transformation_andview_inCachingTransformInputRangeby @tanmay-9 in #2682 - Refactor code for the evaluation of
CONSTRUCTqueries by @marvin7122 in #2652 - More efficient size estimate for
IndexScan, in particular for a full index scan by @RobinTF in #2680 - Enable fast "binary" rebuilding of the index, including updates by @RobinTF in #2408
- Lazy and prefiltered
OPTIONALby @joka921 in #2695 - Prove
UndefStatus::AlwaysDefinedfor a variety of expressions by @joka921 in #2698 - Fix division by zero bug for
FILTER(... IN ())by @RobinTF in #2702 - Insert
ql:langtagtriple when inserting triple with an object with a language tag by @RobinTF in #2674
v0.5.44
There are now official QLever packages for Debian, Ubuntu, Ubuntu-derived distributions, and macOS; see https://docs.qlever.dev/quickstart/
Version for the Autocompletion Paper
Please use this version only for reproducing the results of our Autocompletion Paper.
In this case, please consider the Caveats from the README.md
For all other uses, a stable version from the master branch is probably better suited.