Skip to content

Releases: ad-freiburg/qlever

v0.5.49

Choose a tag to compare

@hannahbast hannahbast released this 07 Jul 18:12
v0.5.49
305daf3

What's Changed

  • Create a new graph on POST to the Graph Store URL by @Qup42 in #2861
  • Use IdTableView<0> in EvaluationContext and related interfaces by @joka921 in #2933
  • Drop redundant member from TaskQueue by @RobinTF in #2947
  • Don't show stripped columns in IndexScan descriptor by @ullingerc in #2941
  • Fix GROUP BY optimizations for updates and materialized views by @RobinTF in #2913
  • Properly resolve relative IRIs by @RobinTF in #2780
  • Let OptionalJoin handle limit and offset by pushing to left child by @RobinTF in #2699
  • Don't propagate limit and offset through explicit INTERNAL SORT BY by @RobinTF in #2974
  • Drop accidental array wrap from SPARQL update response by @hannahbast in #2986
  • Use unique temporary file names in CompressedRelationsTest by @Qup42 in #2950
  • Add builtin function ql:toEpoch by @yarox-1 in #2841
  • Remove deprecated parser/data/Iri.{h,cpp} by @marvin7122 in #2955
  • Delegate management of index, cache, etc. from Server to Qlever class by @Damekt in #2965
  • Fix use-after-stack-return in cheap compilation mode by @joka921 in #2993
  • Replace const IdTable& by IdTableView<0> in several operations by @joka921 in #2999
  • Add VariableCounter utility to count variable occurrences in a parsed query by @ullingerc in #2958
  • Fix cmake compiler flags for ninja with clang by @ullingerc in #2987
  • Add ZipMergeUniqueView for merging two sorted ranges by @Qup42 in #2975
  • Log query start and end to new .metrics-log.jsonl file by @tanmay-9 in #2871
  • Migrate join, path, and spatial-join call sites to Result::idTableView() by @joka921 in #3006
  • Fix ZipMergeUniqueViewTest compilation on Clang-16 by @joka921 in #3014
  • Migrate read-only call sites across the query engine to Result::idTableView() by @joka921 in #3018
  • Introduce IndexAndViews and snapshot it per request by @RobinTF in #3019
  • Add mode to HttpServer for lazy streaming of HTTP body by @joka921 in #2962
  • Introduce BufferedWriteSerializer by @RobinTF in #2948
  • Reduce code duplication in test/CMakeLists.txt by @RobinTF in #2946
  • Bump more GitHub Actions to drop the Node 20 deprecation by @RobinTF in #2951
  • Remove static keyword from free functions in headers by @RobinTF in #2994
  • Bump libspatialjoin by @RobinTF in #2996
  • Add construct-deduplication runtime parameter and corresponding DeduplicationMode by @marvin7122 in #2934
  • Replace almost all remaining usages of Result::idTable by Result::idTableView<0> by @joka921 in #2932
  • Add tryGet and insert to LRUCache by @marvin7122 in #2944
  • Add IoUringManager and vocabulary batch-lookup result types by @marvin7122 in #3007
  • Implement aligned serializers by @joka921 in #2791
  • Don't throw on missing docs file in buildDocsDB by @RobinTF in #3002
  • Faster permutation writer by @RobinTF in #3003
  • Refactor BasicGraphPatternsInvariantTo using VariableCounter by @ullingerc in #3008
  • Correctly set spatialjoin working directory and basename by @patrickbr in #3009
  • Migrate test call sites from Result::idTable() to Result::idTableView() by @joka921 in #3030
  • Fix CMake config when jemalloc is manually installed by @RobinTF in #3033
  • Move added VALUES clause to the end of the SERVICE body by @RobinTF in #2912
  • Add ql:simplifyGeometry function by @ullingerc in #3015
  • Change ToEpoch logic to use milliseconds instead of nanoseconds by @yarox-1 in #3000
  • Remove Result::idTable() by @joka921 in #3029
  • Accept any InputRangeTypeErased for InputFileSpecification, not just std::vector by @joka921 in #2961
  • Unify QueryPlan and PlannedQuery by @Damekt in #3011
  • Replace ParallelBuffer with AsyncBlockSource realized via boost::asio by @joka921 in #3023
  • Implement SortedSequence, which will replace std::set in LocatedTriples by @Qup42 in #3024
  • Make cleanup of temporary files in IndexRebuilderTest more robust by @RobinTF in #3034
  • Use a TaskQueue instead of std::async for writing the partial vocabularies by @RobinTF in #2949
  • Fix use-after-free for LocalVocabIndex Ids in CONSTRUCT export by @hannahbast in #3025
  • Move the implementation of the Join operation to JoinImpl by @MarkVeser in #3020
  • Simplify IndexMetaData implementation and move away from mmap by @RobinTF in #2971
  • Replace BatchedPipeline class with thread pools by @RobinTF in #2956
  • Fix caching and cloning of non-deterministic operations like RAND() or BNODE() 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 BY by @RobinTF in #2966
  • Move query planning from Server class into Qlever class by @Damekt in #3038
  • Save and restore the global logging stream in tests by @Qup42 in #3054

v0.5.48

Choose a tag to compare

@hannahbast hannahbast released this 12 Jun 15:39
v0.5.48
15bbdad

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 CONSTRUCT evaluation code by @marvin7122 in #2837
  • Add started-at field to result from cmd=dump-active-queries by @tanmay-9 in #2836
  • Reduce allocations in index builder and simplify vocabulary merger code by @RobinTF in #2839
  • Check that rebuild-index never writes outside of original directory and never overwrites by @RobinTF in #2860
  • Fix another use-after-free, this time in MessageSender by @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.updateInputFileSpecificationsAndLog pass at LOGLEVEL=WARN by @Qup42 in #2848
  • Properly catch exceptions during rebuild-index by @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 FetchContent dependencies as SYSTEM and drop the GCC 12/13 -Wno-error workarounds by @joka921 in #2873
  • Reduce in-memory buffer for idTriples during partial-vocab building by @RobinTF in #2857
  • AD_LOG_DEBUG the actually-used num-triples-per-batch by @RobinTF in #2858
  • Avoid redundant Sort operation in query plan for EXISTS by @RobinTF in #2874
  • Support path{n}, path{n,m}, path{n,}, path{,n} in SPARQL property paths by @SvenPVoigt in #2240
  • Update clang-format from 16 to 18 by @RobinTF in #2880
  • Avoid a GCC 12 -Werror=array-bounds false positive in ExplicitIdTableOperationTest by @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 Index and MaterializedViewsManager via shared_ptr by @RobinTF in #2892
  • Fix assertion error in IndexScan when joining materialized views by @ullingerc in #2898
  • Fix bug in optimized GROUP BY with COUNT by @RobinTF in #2901
  • For cmd=dump-active-queries, return {} instead of null when 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 Sort operation 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-index independently of the query memory limit by @RobinTF in #2893
  • Make lazy GROUP BY as fast as non-lazy GROUP BY by @RobinTF in #2921
  • Fix copy-paste error in CMakeLists.txt by @S7uX in #2945
  • Make getBlocksForJoin linear-time by @joka921 in #2928
  • Bump Docker GitHub Actions to drop the Node 20 deprecation by @RobinTF in #2927
  • Read on-disk vocabulary via pread instead of mmap by @RobinTF in #2931

v0.5.47

Choose a tag to compare

@hannahbast hannahbast released this 27 Apr 09:24
b2f2e10

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 from IndexImpl by @RobinTF in #2818
  • Compute diff between two snapshots and remap IDs to the new index by @RobinTF in #2822
  • Set permutationWriterNumThreads to 5 for index build by @hannahbast in #2833
  • Simplify mergeVocabulary phase and remove memory spike by @RobinTF in #2827
  • Make WordWriterBase::finishWasCalled_ atomic by @RobinTF in #2828
  • Add GraphNameManager for 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 CONSTRUCT queries into dedicated files by @marvin7122 in #2824
  • Make the RDF parsers work for arbitrary input streams by @joka921 in #2838
  • Add ql:has-word triples if option --add-has-word-triples by @hannahbast in #2579
  • Add EnumWithStrings base class and refactor VocabularyType to use it by @joka921 in #2835

v0.5.46

Choose a tag to compare

@hannahbast hannahbast released this 16 Apr 10:15
b7486a3

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 CONSTRUCT queries by @marvin7122 in #2710
  • Add workflow for native build on macOS using AppleClang by @tanmay-9 in #2630
  • Simpler lifetime management for the bug fix from #2684 by @RobinTF in #2690
  • Encode literals from STRDT as ValueId by @ullingerc in #2713
  • Fix sparql-results+json for solutions where all variables are unbound by @RobinTF in #2715
  • Fix handling of UNDEF values in PrefixRegexExpression by @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 UNDEF in left input by @RobinTF in #2726
  • Add runtime parameter service-allowed-iri-prefixes to specify whitelist for SERVICE calls by @ullingerc in #2728
  • Fix nested LIMIT and OFFSET and redundant StripColumns operation by @RobinTF in #2741
  • Fix regression involving useGraphPostProcessing_ by @ullingerc in #2745
  • Make destructor of CallbackOnEndView exception-safe by @joka921 in #2533
  • Change log level of "No timeout check" messages from WARN to DEBUG by @hannahbast in #1635
  • Normalize away the xsd:string datatype by @RobinTF in #2732
  • Prove UndefStatus::AlwaysDefined for more expressions by @RobinTF in #2733
  • Fix division by zero for IN with RHS with more than 1000 elements by @RobinTF in #2747
  • Update most GitHub workflows to Ubuntu 24.04 by @joka921 in #2743
  • String produced by GROUP_CONCAT should never have a language tag by @RobinTF in #2751
  • Let Permutation know to which MaterializedView it belongs, it any by @ullingerc in #2753
  • Add ql:envelopeLowerLeft and ql:envelopeUpperRight helper functions by @ullingerc in #2754
  • For each BIND expression 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 StringExpression by @joka921 in #2735
  • Fix the compilation with CHEAPER_COMPILATION=ON by @joka921 in #2767
  • Implement Graph Store Protocol operation HEAD, and fix status codes for PUT and DELETE by @Qup42 in #2532
  • Fix the sonarcloud uploader by @joka921 in #2774
  • Support redirects in SERVICE requests by @hannahbast in #2435
  • Compute BIND column via materialized view if possible by @ullingerc in #2742
  • Store UndefStatus for 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, and Literal by @joka921 in #2736
  • Improve the performance of rebuild-index and of the graph metadata update by @RobinTF in #2738
  • Add batch evaluation of variables for CONSTRUCT queries by @marvin7122 in #2723
  • Add operation vacuum-delta-triples that removes redundant update triples by @Qup42 in #2737
  • Rewrite star join to scan on materialized view if possible by @ullingerc in #2776
  • Let SpatialJoin use bounding boxes from an underlying materialized view by @ullingerc in #2769
  • Add internal function ql:prefix-match by @RobinTF in #2755
  • Extend IndexScan descriptor 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-parallel option of qlever-index to --parallel-parsing by @nbdani in #2796
  • Reduce cyclic dependency between index and engine libraries by @marvin7122 in #2765
  • Index nested loop join for MINUS and EXISTS when left side is larger by @RobinTF in #2312
  • Clone subtrees before applying LIMIT and OFFSET by @RobinTF in #2782
  • Refactor graph search in TransitivePath operation by @schaetzr in #2730
  • Finish the migration to C++17 by @joka921 in #2786
  • Add tryGet method to LRUCache and LRUCacheWithStatistics by @marvin7122 in #2763
  • Update GitHub Actions to avoid Node.js 20 deprecation issues by @RobinTF in #2811
  • Add magic service ql:external-values by @joka921 in #2778
  • Implement remaining cases of date and duration subtraction by @yarox-1 in #2784
  • Make IdTable cheaper to move, and IdTableView cheaper to create by @joka921 in #2759
  • Remove redundant globalSingletonComparator_ by @RobinTF in #2801
  • Change interface of toValueId to take const IndexImpl& by @RobinTF in #2808
  • Make disable-caching runtime parameter accessible via HTTP by @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 8 and AppleClang workflows by @RobinTF in #2815
  • Distinguish between IdOrLiteralOrIri and IdOrLocalVocabEntry by @RobinTF in #2813
  • Fix two more lifetime issues (one ASAN and one SEGV) by @hannahbast in #2816
  • Drop redundant detail:: qualifiers in ParallelMultiwayMerge.h by @marvin7122 in #2823

v0.5.45

Choose a tag to compare

@hannahbast hannahbast released this 24 Feb 19:46
36ed965

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::allocateBlock by @RobinTF in #2648
  • When writing a materialized view, remember the query string by @ullingerc in #2653
  • Show name of materialized view in IndexScan descriptor by @ullingerc in #2655
  • Ensure that tests also compile and run for LOGLEVEL < WARN by @Qup42 in #2671
  • Unload materialized view when overwritten by @ullingerc in #2657
  • Use the new binary names qlever-index and qlever-server in all Dockerfiles by @ullingerc in #2677
  • Load materialized views when starting the server by @ullingerc in #2659
  • Native WebAssembly aka Wasm build with Emscripten by @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_ and view_ in CachingTransformInputRange by @tanmay-9 in #2682
  • Refactor code for the evaluation of CONSTRUCT queries 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 OPTIONAL by @joka921 in #2695
  • Prove UndefStatus::AlwaysDefined for a variety of expressions by @joka921 in #2698
  • Fix division by zero bug for FILTER(... IN ()) by @RobinTF in #2702
  • Insert ql:langtag triple when inserting triple with an object with a language tag by @RobinTF in #2674

v0.5.44

Choose a tag to compare

@hannahbast hannahbast released this 21 Jan 19:49
27eef33

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

Pre-release

Choose a tag to compare

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.