0.13.1 (2026-07-31)
- app: add the plan Ordering as an http header to the response (4b501d5)
- query_engine: add a specialized OrderByWithLimit node (34d3814)
- query_engine: implement free IUs for boolean expressions (#1377) (f366c81)
- silo: allow
limitongroupBy(035e244)
0.13.0 (2026-07-29)
- silo: Insertions response: removed
insertionfield. Mutations response: removedmutationfield. The string was constructed from information that is still present in the response. - preprocessing: the database config options
defaultNucleotideSequenceanddefaultAminoAcidSequencehave been removed.sequenceNameis now required on all nucleotide and amino acid filters (nucleotideEquals/aminoAcidEquals,hasMutation/hasAAMutation,insertionContains/aminoAcidInsertionContains,symbolInSetand the mutation profile filters).
- app: add a --version command to the silo binary (8b3146e)
- preprocessing: remove default sequence names from database config (#1386) (b8712ec)
- query_engine: add join operator (f7cbaf4)
- silo: allow updating of string columns (818a737)
- silo: remove
insertionandmutationfield from responses (#1408) (72fca9f)
0.12.1 (2026-07-27)
- performance: add co-occurrence query benchmark (2c52241)
- query_engine: bitmap-based aggregation for count group-bys (a81fd24)
- SaneQL: pipeline optimization step: map pull up through filter (#1354) (b1966c4)
- silo: add update function to python bindings (6e27cd5)
- silo: add WebAssembly build (#1320) (f41993a)
- silo: sort nulls consistently as smallest value (00420f3)
- silo: always prime Selection with most-selective predicate (a8b458e)
- silo: when adapting references, compute the coverage bitmaps only when necessary (8f178dc)
0.12.0 (2026-07-15)
- preprocessing: remove deprecated preprocessing config values
intermediateResultsDirectory,preprocessingDatabaseLocation,duckdbMemoryLimitInGand database config valuesdateToSortBy,partitionBy - silo: use date32 type for dates instead of converting to string
- silo: change query interface to saneql
- add
unionAlloperator to SaneQL queries (#1305) (53da65f) - preprocessing: remove deprecated preprocessing config and database config values (#1287) (fbe4014)
- SaneQL: add
schemaoperator to get query result schema (#1333) (f61955e) - silo: add a dedicated filter-pushdown-pass and move node resolution to own file (2da2f48)
- silo: add a references to input fields in
.map(...)expressions (2ce79f2) - silo: add an at expression (82f98b4)
- silo: add column narrowing to query planner (90071f3)
- silo: change query interface to saneql (daba3ea)
- silo: log the query plan and optimization steps (50e3e17)
- silo: organize string columns in immutable chunks (b8922e4)
- silo: use date32 type for dates instead of converting to string (f907787)
- preprocessing: ignore bracketed comments in Newick tree files (#1268) (9d0e323)
- silo: disambiguate unary/binary minus in SaneQL (#1266) (e1739ff)
- silo: null sequences should not match N symbol queries (004bba4)
- silo: replace charToSymbol switch with a lookup table (4395af5)
0.11.3 (2026-05-18)
- silo: add a MutationProfile filter (2d49d9b)
0.11.2 (2026-04-17)
- silo: add option to ignore unknown lineage values (16e1389)
0.11.1 (2026-03-23)
- silo: allow sequence-column inputs to be zstd-compressed in base64 format (1f2bbc5)
- silo: let
N(Xfor amino acids) also code for-(a081630)
0.11.0 (2026-03-03)
- silo: "" is no longer considered
nullfor date columns
- silo: add a DateEquals expression (9cf5fd4)
- silo: actually validate dates on insertion (9e24c7b)
0.10.1 (2026-02-27)
- performance: add performance benchmark for the many short-read filters (f8ef7ab)
- silo: add verbosity argument to CLI interface (0bc682d)
0.10.0 (2026-02-22)
- silo: SILO will return
nullinstead ofNN...NN/XX...XXfor sequences that werenullin the input. "" in the input is no longer considerednullfor columns withtype: stringandgenerateIndex: true
- benchmarking: remove keep-silo feature (e1486ae)
- silo: add null_bitmap for all columns to explicitly model NULL (baef7d3)
- silo: improve IsNull expression to support
IndexedStringColumn,ZstdCompressedStringColumnandSequenceColumn(6e48abf)
0.9.12 (2026-02-19)
- silo: return query result as arrow IPC if the http header is set (6044c73)
0.9.11 (2026-02-18)
- silo: error if a user tries to insert invalid insertion positions (ad7ef81)
0.9.10 (2026-02-12)
- silodb: release python bindings as release artifacts (1117dde)
0.9.9 (2026-02-11)
- silo: add a arrow query interface to the python bindings (4b7df7e)
- silo: add python bindings (bb7ca5a)
0.9.8 (2026-02-04)
- silo: avoid race-condition in plan clean-up leading to crashes (0685ad8)
0.9.7 (2026-01-30)
- add compiled binaries for linux to GitHub releases (#1129) (c7dd359), closes #575
- ci: add a ci formatting job for workflow/*.yml (a67ed2c)
0.9.6 (2026-01-28)
- performance-tests: add benchmark for nested ors (34d6986)
- silo: add a StringInSet expression to filter for many strings (b67fd5a)
- silo: add an IsNull filter (3437b3d)
- silo: improve rewriting of nested Or expressions (24b27a4)
- silo: rewrite StringEquals and StringInSet expressions during optimization (23553ae)
- test: add performance benchmark for many StringEquals filters (579e6c6)
0.9.5 (2026-01-22)
- build: change builder base image to debian (9e07f48)
- silo: correctly adapt local reference in incremental appends (fa2ef25)
0.9.4 (2026-01-15)
- legacyNdjsonTransformer: correctly parse floats with serde_json by setting the feature flag
float_roundtrip(8d38b27) - silo: do not use mimalloc on Mac (6d78de8)
- silo: only link mimalloc into the final executable, not the library, which might be included differently (51fa4dc)
0.9.3 (2025-12-16)
- benchmarking: add optional
QUERIEScustom variable (772cd36) - benchmarking: allow avoidance of preprocessing by setting
OUTPUT_DIR(74c8b84) - benchmarking: optionally store the produced binaries (7bb482c), closes #1087
- benchmarking: update api-query to ignore empty ignore regex files (f572701)
- silo: add function to dynamically create tables in a silo instance (b70f1df)
- silo: use mimalloc as the default allocator (2203db9)
- benchmarking: accept differences in HTTP error responses (df3e18b)
- benchmarking: set a timeout waiting for SILO to start (f50e38d)
- benchmarking: set default for
QUERIESenv var, not justQUERIES_DIR(20ad729)
0.9.2 (2025-12-03)
- benchmarking: add DEBUG custom variable for running debug builds (541afc8)
- benchmarking: update api-query, enable CSV log file w/ checksum comparisons (3d135d0)
- build: add Makefile rule to generate conanprofile (1a8a334)
- build: tag images with branch name again (670817c)
- ci: add CI workflow that also runs the test suite with debug build (9bdc52b)
- documentation: add documentation for sequence storage format (47e4081)
- silo: add efficient way of computing vertical coverage bitmaps and use them to adapt reference positions (8e7e9f4)
- silo: add reordering of predicates to apply most selective predicates first (1db8cf0)
- silo: better compression for sequences (9eb69c7)
- silo: change IsInCoveredRegion to predicate instead of being its own filter-operator (6fef558)
- silo: enable rewrite of SymbolInSet expressions under Or (5489117)
- silo: split compile function into separate rewrite step (27b7e7c)
- build: correctly fix the cppstd for installing the arrow dependency (0c4aed3)
- build: fix Makefile to not repeatedly invoke
conan install(346e6a9) - silo: do not add empty coverage bitmaps (5bd32c7)
- silo: remove memory leak in sequence storage (1da9ecd)
0.9.1 (2025-10-28)
- benchmarking: support versioned datasets (#1031) (4a7399b), closes #1018
- performance: add performance benchmark subdirectory with a benchmark on mutation queries (23af5c1)
- silo: add amino acid codes J, O, U and clean some code (ccf15ed)
- silo: add template to run ppx instances (#1019) (129b428)
- silo: address memory leak concerns (#1008) (7359eea)
- silo: fix clang-tidy configs (no comment allowed in checks), error on warnings in CMake clang-tidy option (#1009) (d5bbaba)
- silo: improve error message if primary key is of type lineage (#1030) (a861141)
- e2e: remove obsolete version tag in docker compose files leading to warning (5beabad)
- silo: correctly error when requested insertion positions are larger than reference sequence size (befbc76)
- silo: optimize check for unique keys (4738a27)
0.9.0 (2025-10-03)
- silo: Multiple breaking changes to lineage configuration:
- PreprocessingConfig:
lineageDefinitionsFilenamerenamed tolineageDefinitionFilenamesand changed from string to list - DatabaseConfig:
generateLineageIndexchanged from boolean to string (expects lineage definition filename)
- PreprocessingConfig:
- silo: support multiple lineage systems (f4be635)
0.8.6 (2025-09-26)
- improve logging in the query_plan (bd2b494)
- silo: add a health endpoint that checks whether the api is able to answer requests (5422ff1)
- silo: add throttled reslicing of ExecBatches before zstd decompression (8ac2859)
- silo: remove TBB dependency (#985) (91ec897), closes #873
- update arrow to version 21.0.0 (478366e)
- improvements of the arrow plan teardown after a query finishes (223e5c6)
- test: properly free request handlers in tests (0f9e0d9)
0.8.5 (2025-09-09)
- silo: add possibility to disable generation of unaligned sequence columns in schema (b3bf856)
- silo: add possibility to specify offset in the input ndjson (bf3a1d9)
- silo: also allow lower-case characters as input in sequences (97bba59)
0.8.4 (2025-09-04)
- bump version manually to release major refactor separately (0a06315)
0.8.3 (2025-09-02)
- default to using number of threads equal to processors (9795d28)
0.8.2 (2025-08-28)
- increase default concurrent connections to 256 and number of worker threads to 8 (987717c)
0.8.1 (2025-08-13)
- add a default timeout of 2 minutes between sending response batches of requests (f5effef)
- add mrcaParent and mrcaDepth to response of MostRecentCommonAncestor queries (f49177b)
0.8.0 (2025-08-11)
- the schema of the expected ndjson file changed. Pass all data flat, and aligned sequence data as a json object together with corresponding insertions. SILO no longer appends "unaligned_" internally when looking for fields in the ndjson
- use simdjson as json parser during preprocessing (542d231)
0.7.11 (2025-08-11)
0.7.10 (2025-08-07)
- bump the silo serialization version (d7adad5)
0.7.9 (2025-08-07)
- benchmarking: check for the presence of the BENCH_OUTPUT_LOG var (d04789b)
- ci: do not cancel in-progress runs, which could lead to non-generation of released images (32a9b83)
- throw an error when a user requests a limit without specifying ordering (3ad8dfe)
- validate a arrow query plan before executing it to catch errors that might lead to dying requests (c49a698)
0.7.8 (2025-08-01)
0.7.7 (2025-07-31)
- silo: further optimizations of queries using the phylo tree - use hash sets instead of vectors (#917) (8164013)
0.7.6 (2025-07-29)
- silo: add an endpoint to export a newick of the nodes in the filter (#911) (0bb94b7)
- silo: optimize phyloSubtree action (#916) (7c218d4)
- silo: refactor config - rename
phyloTreeNodeIdentifiertoisPhyloTreeField(#921) (3085059)
0.7.5 (2025-07-23)
- benchmarking: add benchmarking probes to preprocessing (8fbebe1)
- benchmarking: add probes to "action" part of query evaluation (f63eb41)
- benchmarking: add query type to benchmark context before query execution (e62677c)
- benchmarking: hack: save evobench log file from preprocessing phase (5193ae8)
- benchmarking: optimize & add possibility to pass constexpr string variables (3e7a41b)
- benchmarking: update api-query, add REPEAT, CONCURRENCY vars (4a063d8)
- silo: optimize ndjson sink for higher download speeds (4c97982)
- benchmarking: also prefix output dir name with $COMMIT_ID (e18c881)
- benchmarking: prefix output dir name with $DATASET (df6405e)
- build: change format target to also include .hpp files (7c90965)
- project out the superfluous column instead of producing mismatching schema-ExecBatches (53e3187)
- properly designate the hash_count_all output as int64 in the output schema (e04987c)
0.7.4 (2025-07-21)
- silo: accept more characters in newick string and improve error messages (#891) (5f8bc9e)
- silo: correctly deduplicate requested fields (78f4146)
0.7.3 (2025-07-17)
- enable filtering for recombinant lineages with specifiable mode for including all recombinant sublineages or only the ones that are fully contained in the clade of the filtered node (6e335dd)
- benchmarking: only depend on WisePulse for the tool to run, not for the data (#875) (1aa4dc9)
- silo: handle newick files with new line at end (#889) (7f31fa7)
0.7.2 (2025-07-08)
- add the field
additionalFieldsto Fasta action (#861) (80777f1) - benchmarking: add benchmarking/ directory with benchmark runner code (be93833)
- benchmarking: add copy of the evobench-probes library (b73e414)
- benchmarking: add probe on query plan execution (f2d96df)
- benchmarking: add probes on all operator evaluate methods (96b14c6)
- benchmarking: add probes on Date sort optimization (44b61de)
- benchmarking: re-use the TCP address/port immediately (8d8940f)
- enable Backpressure when streaming batches (3af7d04)
- show the error message when failing with a Poco::Net::NetException (07c42b2)
- silo: add MostRecentCommonAncestor action (#834) (157f186)
- benchmarking: update location of sorted_input_file.* (02daf40)
- better error message if the DateBetween column is not of type date (9b7fa99)
- change default streaming batch size from 50000 to 32767 to avoid reslicing batches (718fd22)
- improve error messages when ndjson file is invalid (#850) (dcff2e9)
- stop streaming response when network stream is interrupted (d58d668)
- use arrow::acero::SourceNode when constructing a TableScan (7035f1f)
0.7.1 (2025-07-02)
- add proper error messages for invalid groupByFields (2c8babb)
- evaluate the bitmaps in the preparation of the QueryPlan to not send wrong http headers (9c831c9)
- make TableScan react to StopProducing calls (#855) (ea3ee7d)
- throw an error when silo tries to start on a port that is already in use (e0ee23b)
0.7.0 (2025-06-30)
- the field sequenceName in the Fasta and FastaAligned is now named sequenceNames and required to be an array (#804)
- change field sequenceName to sequenceNames in Insertions action (#821)
- change field sequenceName to sequenceNames in Mutations action (#819)
- rename DatabaseInfo field
totalSizetoverticalBitmapsSizeandnBitmapsSizetohorizontalBitmapsSize(#805) - Null values are no longer ordered as the smallest element, but at the start or end instead. This is decided based on the sort-order of the first orderByField to mimic old behavior. This leads to a breaking change when ordering by multiple fields with mismatching order direction (#799)
- all unaligned nucleotide sequences are prefixed with
unaligned_in the api requests and response (#795)
- streaming implementation of the SILO query engine based on the arrow framework (#765, #775, #792, #795, #799, #809, #821, #829, #837)
- cache DatabaseInfo, add amino acid sequence columns to size info (bc0d0a2)
- silo: add function to get all clades that are descendants of an internal node (#815) (d1f9989)
- silo: add recommended vscode extensions to .vscode folder for developers using vscode (d2c74db)
- silo: improve the docs and update build_with_conan.py (#779) (f176fd6)
- silo: read in phylogenetic tree files and create tree structure (#806) (f3d3f36)
- silo: refactor phylotree to use nodeId for children and parent and serialize (#822) (29e8361)
- avoid dropping the input bitmap of Selections in a nested And query (e87093c)
- correctly error when the input data contains illegal insertion characters (4867c32)
- remove erroneous warning printed on every preprocessing run (82b65c8)
0.6.0 (2025-04-23)
- the DatabaseConfig fields
dateToSortByandpartitionByhave been deprecated and do no longer have any effect. The internal endpoint for more detailed database storage information has been removed.
- add
appendas a third silo execution mode for incremental preprocessing (84c4ae3), closes #368 - introduce a database schema that actually describes the schema of the database (be71e08)
- still enable
silo preprocessingas a shorthand for initialize-then-append (9a91d0e)
0.5.9 (2025-04-16)
0.5.8 (2025-03-31)
0.5.7 (2025-03-17)
- correctly expect an escaped stop codon in requests (9b3c27a)
0.5.6 (2025-02-27)
- add coverage field to Mutations output and make it possible to only return subset of the fields (2b11472)
0.5.5 (2025-02-25)
- return proper error message when index is out of bounds for a HasMutations filter (50e9f49)
0.5.4 (2025-02-20)
- add monitoring to log the swapover to datasets (39f1ed2)
- call malloc_trim after all connections to the old database are finished (5742a52)
- tell malloc to give empty heap space back to the OS before every fasta call (16ce850)
- prohibit allocation of new Poco threads for incoming requests (7c2994f)
0.5.3 (2025-02-06)
0.5.2 (2025-01-29)
0.5.1 (2025-01-28)
- update base image to ubuntu:24.04 (46d0567)
- return an error if reserved value INT32_MIN is used in filter (042646b)
0.5.0 (2024-12-19)
- new command line / config system
- declare virtual constructor for abstract base class CustomSqlFunction (603ddf6)
0.4.0 (2024-11-14)
metadataInputFilekey in preprocessing config file has been removed. Instead, ndjson files should be used and specified with thendjsonInputFilenameoption
- preprocessing: correct error message when field is in config but not in metadata file (828182a)
- remove shared_ptr in lambda captures which might lead to memory leaks (a26d8b8)
0.3.2 (2024-10-30)
0.3.1 (2024-10-25)
- preprocessing: error on duplicate primary keys (687c3ef)
- validate the column types earlier to prevent duckdb auto-casting to cast types with differing round-trip conversions (ac238b2)
0.3.0 (2024-10-16)
- generalized wildcard queries (#458)
- The preprocessing config field
pangoLineageDefinitionFilenamehas been renamed tolineageDefinitionFilename. - We now accept a YAML lineage definition file instead of a Pango alias key.
- Input and query validation now checks whether the provided lineage exists in the defined lineages, and errors are thrown if validation fails.
- The metadata type
pangoLineagehas been removed.type: stringwithgenerateLineageIndex: trueshould be used instead.
- The preprocessing config field
- resolve aliases when inserting to or querying lineage indexes again (0e841e6)
- update script to also generate aliases (43ac4aa)
0.2.24 (2024-10-15)
- prevent setDatabase starvation which leads to no updates of currently loaded database (24e4db6) (#613)
0.2.23 (2024-10-10)
- preprocessing: enforce exact match on file base stem when pairing sequence and metadata when processing from file (7c9b23d), closes #607
0.2.22 (2024-10-01)
0.2.21 (2024-09-20)
- preprocessing: resolves spurious OOM crashes when handling large datasets (6e4eae2)
0.2.20 (2024-09-17)
- make duckdb memory limit configurable via preprocessing config (c112eb1)
0.2.19 (2024-09-12)
0.2.18 (2024-09-12)
- do not abort on assertment failures (4e5f598)
- panic: add
ASSERT,UNREACHABLE,UNIMPLEMENTED, safer env var (867d08f) - update duckdb version (577c1b2)
- duplicate key in sample.ndjson (c9b5232)
- increase duckdb memory limit to 80GB (20131bb)
- order of randomized tests changed (d29b2f2)
0.2.17 (2024-08-30)
-
manually overwrite already existing unaligned sequence files in the temp folder (f37fd88)
- In case the unaligned sequence directory already existed in the temp folder when running preprocessing, it is manually deleted. Before, this lead to a bug, as the currently used duckdb version does not correctly overwrite the temp files and may leave duplicate entries in the output. This is fixed in duckdb PR #11787 which is included in release v0.10.3
0.2.16 (2024-08-29)
- do not order keys and sequences differently, leading to wrong unaligned sequence results when dateToSortBy is set (b0f8352)
- do not return incorrect results when encountering a null value in the unaligned sequence action (a69d117)
- fix the RIGHT JOIN in preprocessing of unaligned sequences to contain the correct primary key (a25d5d0)
0.2.15 (2024-08-23)
- don't abort when unaligned sequence is missing - we should return
null(#542) (2c649cb), closes #541
0.2.14 (2024-08-19)
- new operator for matching strings against regular expressions (ade25e8)
- typo in the error message if a column is not found (67029a4)
0.2.13 (2024-08-06)
- bump serialization version to 2 (e897203)
- bump serialization version to 3 (7584214)
- support SAM files as sequence input and allow partial sequence input with an offset (5be9a9f)
- allow all sequence-names by escaping them properly in all SQL statements (901fc7e)
0.2.12 (2024-07-31)
- change base image to ubuntu (64dee0d)
0.2.11 (2024-07-24)
- streaming: report an error when sorting requested while streaming (313d6bb)
0.2.10 (2024-07-22)
- reduce function calls and parallelism when inserting rows into storage backend (#509) (93ba858)
- preprocessing: don't abort inserting insertions upon finding a null value (03a500a)
0.2.9 (2024-07-18)
- have no default sequence by default, implement default amino acid sequence from config (2edf924), closes #454
- set the default sequence when there is only a single sequence in the reference genomes (0ae4022), closes #454
- throw error in preprocessing when default sequence is not in reference genomes (287bb8b), closes #454
0.2.8 (2024-07-08)
- the
FastaandFastaAlignedactions now stream their result instead of allocating it in memory, closes #112
0.2.7 (2024-06-25)
- don't abort when reading table in chunks (26b1558)
0.2.6 (2024-06-19)
0.2.5 (2024-06-17)
- empty input without partitioning (5fa3c92)
0.2.4 (2024-06-14)
- allow null for sequenceName in insertion contains queries (6dbe251)
0.2.3 (2024-06-10)
- be able to start without genes, without nucleotide sequences or with neither (e878ed5)
- empty ndjson input files more robust (#473) (9d4232b)
- erroneous file created during unit tests should not leak (1b764af)
- insertions being added at wrong index for large files (#472) (e056ed9)
- remove incorrect compile flags (b92ee4e)
0.2.2 (2024-05-31)
- start with empty files without throwing an error (d407b92)
0.2.1 (2024-05-28)
0.2.0 (2024-05-23)
- old database_config files might be invalid if they contained insertion columns. Also, we are more prohibitive for ndjson input files, which now MUST contain nucleotide/amino acid insertions for all respective sequences. The insertions action and filter do no longer require a column field.
- insertions no longer in metadata or databaseConfig, instead expected for all aligned sequences #372 (1f3680c)
0.1.1 (2024-05-23)
- add number of partitions to /info (1e780b5)
- add serializationVersion to SILO output for smoother transitioning to new formats (d3badb6)
0.1.0 (2024-05-10)
- return data as NDJSON instead of JSON
- AAMutations with multiple sequences (0def8b2)
- Action for amino acid distribution (a0a4cf1)
- add limit orderBy and offset to all query actions (13b7e01)
- add log statements to loadDatabaseState (46a0421)
- add more tests, make less flaky and viable with large dataset (7772ae3)
- add unit test for findIllegalNucleotideChar, unique test case name for insertion contains invalid pattern tests (99c9c4b)
- added amino acid insertion search, added many test cases and fixed various bugs (d1e4b2b)
- allow default preprocessing config along with user defined preprocessing config (ee9f20e)
- allow reading fasta files with missing segments and genes #220 (8ea9893)
- allow reading segments and genes that are null from ndjson file #220 (d0a3a7e)
- also get Runtime Config options from environment variables (33bdd65)
- also log to stdout (54b8a47)
- also return mutation destructed that does not need to be reparsed (a93abbf)
- Alternative templating of symbol classes (6b61985)
- automatically detect file endings for fasta files (75bd14e)
- be more lenient on input data, ignore superfluous sequences and fill missing sequences with Ns (ee12186)
- Better test coverage for SymbolEquals filter (42c685c)
- boolean columns, resolves #384: const declaration (685db9f)
- boolean columns: actions/tuple: update assignTupleField() (b020109)
- boolean columns: add and use JsonValueType (2ad1268)
- boolean columns: add bool to JsonValueType, update tuple (3c990e2)
- boolean columns: add expression_type "BooleanEquals" (b82ec69)
- boolean columns: add filter_expressions/bool_equals (ff2a138)
- boolean columns: add optional_bool (a2e47f8)
- boolean columns: add storage/column/bool_column (5eb3430)
- boolean columns: column_group: update ColumnPartitionGroup (d7adecf)
- boolean columns: column_group.h: add {ColumnPartitionGroup,ColumnGroup}::bool_columns fields (af44f1a)
- boolean columns: database (c555a68)
- boolean columns: database_config: add "bool" case to DatabaseConfigReader::readConfig() (12fc7b8)
- boolean columns: database_config: add "boolean" case to de/serialisation (e6d5363)
- boolean columns: database_config: add BOOL to ValueType (0b47b82)
- boolean columns: database_config: update DatabaseMetadata::getColumnType() (30febdd)
- boolean columns: database_partition (0aef8f0)
- boolean columns: optional_bool: add
==(f0aa3e8) - boolean columns: selection (e52f2dc)
- build metadata in parallel to sequences. Do not create unaligned sequence tables in preprocessing, rather hive-partition them directly to disk. Better (debug-)logging (c1cdfeb)
- bulk Tuple allocations now possible (902ec04)
- clearer Operator::negate and Expression::toString, logical Equivalents for debug printing/logging for the Leaf Operators IndexScan and BitmapSelection (026b639)
- consistent behavior of configs when starting SILO with both --preprocessing and --api (847ec7e)
- declutter README.md from linting option, which is now disabled by default and enforced in the CI for the Linter (9220435)
- details no longer shows insertions (#354) (473cd98)
- display database info after loading new database state (0249416)
- display preprocessing duration in logs in human-readable format (not in microseconds) #296 (a2499af)
- do not enforce building with clang-tidy by default. Linter will still be enforced (7134e45)
- FastaAligned action (50776c8)
- faster builds by copying @corneliusroemer image caching for our dependency images, which rarely change (#374) (7867bc7)
- filter for amino acids (b52aabd)
- fix sorting (1ed18ae)
- flipped bitmap can now be set before insertion (f61c803)
- format DatabaseConfig (4fb8f1b)
- format PreprocessingConfig (ee35207)
- generalize mutations action to have consistent behavior for different symbols (9834aea)
- generalizing symbol and mutation filters. Clear handling of ambiguous symbols (aa9ad4d)
- Generalizing the config for multiple nucleotide sequences and multiple genes (9a80204)
- have structured and destructured insertion in insertions response (0a7e46a)
- hide intermediate results of the preprocessing - don't put it in the output (44327b0)
- implement basic request id to trace requests #303 (4defb59)
- implement data updates at runtime. More resilient to superfluous or missing directory separators (dc5dfaa)
- implement insertion columns and search (9167236)
- improve loadDB speeds (2b7cd7d)
- improve validation error message of some actions on orderByFields (a0da5b5)
- insertion action targets all insertion columns by default (6b70241)
- insertion columns for amino acids and multiple sequence names (3cc8fee)
- insertions action (e067062)
- insertions contains action now targets all columns if the column name is missing (32a6951)
- introduce new storage type for Sequence Positions, where the most numerous symbol is deleted (6e15204)
- introduce storage of unaligned sequences from either ndjson file or fasta file and make them queryable via the Fasta action (44df849)
- load table lazily. Unaligned Sequences do not need to load the table (c2a8439)
- log databaseConfig and preprocessingConfig (d2dc58c)
- logging for partition (e75a925)
- logging improvements (4c12a88)
- make database serializable again (2523e67)
- make pangoLineageDefinitionFilename in preprocessing config optional, linter errors (0f3dc53)
- make partition_by field in config optional (3942418)
- make SILO Docker image by default read data from /data (e83b910)
- make threads and max queued http connections available through optional parameter (3ecde68)
- migration to duckdb 0.10.1 (c1426ef)
- mine data version at beginning of preprocessing (362fe0f)
- More robust InputStreamWrapper (305dd36)
- multiple performance improvements for details endpoint (28f41d0)
- optimize bitmaps before finishing partition (5b06d58)
- order all actions by default (a2f5c04)
- preparation of insertion columns (c14a370)
- put output and logs to gitignore (789e489)
- reenable bitmap inversion (75ac20f)
- reenable pushdown of And expressions through selections (802bec0)
- refactor saving and loading database to not require preprocessing structs anymore (45bf7ed)
- reintroduce randomize for all query actions (166045c)
- reserve space in columns when bulk inserting rows (e3c9620)
- return data as NDJSON instead of JSON (c236ba4), closes #126
- return data version on each query (be5c886)
- return only aliased pango lineages (abf0844)
- reveal some more details when reading YAML fails (1f8d9db)
- run preprocessing in github ci (f53eddb)
- save database state into folder with name <data version> (41923eb)
- separate preprocessing and starting silo (9808e2d)
- serialization of partition descriptor to json (472c1da)
- some suggestions for the insertion search (ae900da)
- Specifiable nucSequence query target (7cc609f)
- statically disable deleted symbol optimisations because of performance penalty (4e522f4)
- stick to the default of having config value keys in camel case (a1cae40)
- storing amino acids (f11a330)
- support for nullable columns (6f78e3a)
- support recombinant lineages (3e848a5)
- template class for sequence store (cef4d48)
- templatized Symbol classes (6b9d734)
- test set with amino acid insertions (de2c4f8)
- throw an error when there is not initialized database loaded yet #295 (b17f72a)
- tidying up CLI and file configuration for runtime config. Added option for specifying the port (c3a88a0)
- Unit tests for Tuple (4fc06e8)
- update conan version (5540a67)
- use 'pragma once' as include guards instead of 'ifndef...' (bc49aa5)
- use own scope for preprocessing (2a93846)
- use same default min proportions for mutations actions as the old LAPIS (f42f830)
- adapt randomize query results to target architecture. x86 and ARM have possibly different std::hash results (#355) (600000d)
- add bash dependency which is required by conan build of pkgconf and is not installed on alpine by default (1b3f51c)
- add insertion to database_config test (aec40d0)
- add missing file for test (262bedc)
- add missing sequenceName field to mutation action "orderBy" (06c8c86)
- add sleep statement before row call (8fa8efb)
- add workaround so insertions are read correctly (8a2bfa8)
- allow sql keywords for metadata field names #259 (6fbeee5)
- also consider 'missing' symbols in the mutation action. Bugfix where Position invariant was broken because of 'missing' symbols (fab72a6)
- alternative non-exhaustive three mer index (467086f)
- always build dependency image for amd64 platform (4f73cb0)
- bug when filtering for indexedStringColumns which are not present in some partitions (62d4e08)
- bug where sequence reconstruction is false when the flipped bitmap is different from the reference sequence symbol (edac58c)
- change random ordering for gcc hashing (78055ff)
- change test to reflect new optimisations (cb63010)
- compiling And: append selection_child->predicates to predicates - not vice versa (bdebca5)
- deterministic order for e2e test (02427a2)
- divergence between mac and linux info test results, fix memory leaks in Threshold.cpp (ffcefd0)
- do not exclude zstd filter from boost installation (c974230)
- do not use std::filesystem::path::relative_path() to also support absolute paths (b9ff422)
- endToEndResults (c807a33)
- error when the Mutations action looked for sequences but the filter was empty (91e5d52)
- fix memory leaks in indexed_string_column.cpp and insertion_contains.cpp (c2eeac8)
- floatEquals and floatBetween with null values (47b436e)
- hide nucleotide sequence for default sequence (584715c)
- insertion column, remove reference (d940c52)
- insertion search e2e and insertion column tests, dont allow non-empty value for insertion search (19af04d)
- linking error on linux (ad9076c)
- linter (54d3c34)
- linter (e6b6ab7)
- linter (b31851c)
- linter (34830ab)
- linter errors (e9e1bbf)
- Linter throws again and added clang-format option (87cb4a5)
- Make C++ flags in CMake compatible for MacOS (38cae69)
- metadata info test accessing getMetadataFields output no longer directly but over the address of a const (0dcdee1)
- missing include (0773999)
- new linter errors (ea6934c)
- no longer have regression when no bitmap flipped is most efficient (b653753)
- nodiscard (silence warnings) (69421c1), closes #390
- non default unaligned nucleotide sequence prefix (93b4829)
- nucleotide symbol equals with dot (6ad623e)
- only apply order-by if the field is set, validate orderBy fields for all operations (405a7f1)
- pango lineage filter with null values (b7238a8)
- parse error messages for mutation filter expressions (9e4612d)
- put compressors into sql function to avoid static variables (c1a11c8)
- quoting {} in "x.{}" SQL struct accesses, as a string starting with a number leads to parser errors (#409) (f3ba6db)
- random (but deterministic for a version) result can depend on internal state, which was changed with duckdb update (9d9351b)
- recursive file reading for nodejs<20 (9ac0ffe)
- remove caching for linter. Docker image to large on github actions. (8eaeee6)
- response format (bca4961)
- revert duckdb migration due to it being unable to build the new version on the GitHub runner (2a62c54)
- revert test numbers to pre-optimization (99b600a)
- Roaring from 1.3.0 -> 1.0.0 because of broken CI (ce82c77)
- seralization for insertion_index and insertion_column (ee99f8d)
- single partition build fix (a8af1c9)
- specify namespace fmt in calls to format_to (#353) (62ffa3b)
- specifying apk versions (2c2354e)
- test cases verifying that the positions index for mutation distribution are now 1-indexed (fdf972a)
- test with deterministic results, remove 2 unused variables (96a424b)
- unit test info number updates for new pango-lineages in test data (39d07c2)
- unit tests and mock fixtures (db506a1)
- update cmake version on ubuntu (227a2dd)
- Upper and lower bound should be inclusive in DateBetween filter (53c6c05)
- Wrong compare function used in multi-threaded case, which displayed wrong tuples in the details endpoint when a limit was used (650bf36)
- zstd dependency (c145722)