Stardog Platform Release Notes
10.0.1 Release (2024-03-26)
SHA256: ad408b5bdda437f71e1ce2f91f00975c39f602eaac012bbbea334cda69dc3df3
Fixed Bug
- VG description for Trino driver showing incorrect driver class (#PLAT-6774)
- VG extra results when joining two constant-constrained triple patterns (#PLAT-6773)
- StackOverflowError on a VG query for an inferred predicate (#PLAT-6764)
- Virtual graph and data source operations should expel on failure. Found by Antithesis testing. (#PLAT-6760)
- Label service raises errors when the keyword contains unescaped special characters (#PLAT-6753)
- Bind placement optimizer should not pull bind with non-deterministic expressions (#PLAT-6738)
- Virtual graph and data source operations may cause system transaction ID inconsistency with ZooKeeper. Found by Antithesis testing. (#PLAT-6735)
- Pushing projections incorrectly interacts with DISTINCT added by the reasoner (#PLAT-6718)
- Cluster should register databases which fail to initialize due to invalid configuration (#PLAT-6709)
- Exception during transaction begin may leave abandoned lock in ZooKeeper (#PLAT-6696)
- PruneVirtualGraphJoins fails to prune nodes inside scope in the RHS of optionals (#PLAT-6695)
- Cluster fails to sync offline database (#PLAT-6662)
- VG fails to translate date + duration expression (#PLAT-6653)
- Inlining bind values can lead to serializing problems and incorrect results (#PLAT-6634)
- Subqueries with LIMIT and non-deterministic expressions cannot be correlated during optimization (#PLAT-6616)
- Datasource can become unusable if knowledge catalog gets out of sync with registry (#PLAT-6585)
- JSON import key order affects number of generated triples (#PLAT-6442)
- Virtual import key order affects performance (#PLAT-6423)
- JSON import failing to create edge properties for array fields (#PLAT-5992)
- JSON import can lose triples depending on the the order of fields in an object (#PLAT-5960)
9.2.2 Release (2024-03-26)
SHA256: 3f736697c77238d73813ab19ba806f036dcba7837640a20a9d516cf958e68306
Fixed Bug
- Exception during transaction begin may leave abandoned lock in ZooKeeper (#PLAT-6696)
- JSON import key order affects number of generated triples (#PLAT-6442)
- Virtual import key order affects performance (#PLAT-6423)
- JSON import failing to create edge properties for array fields (#PLAT-5992)
- JSON import can lose triples depending on the the order of fields in an object (#PLAT-5960)
10.0.0 Release (2024-01-31)
SHA256: 8cc78bee7f9678edc927849b08f99ba98c25711446bec7db6ad9614394a343cf
Added New Feature
- Schema version tracking (#PLAT-6464)
- New database option to enable Voicebox (#PLAT-6456)
- Service to find the labels of given entities (#PLAT-6448)
- Embedded vector store for semantic search (#PLAT-6290)
- Atlan Support for Knowledge Catalog (#PLAT-6028)
- Secret manager integration for secure password management (#PLAT-4928)
- VG support for Trino (#PLAT-3002)
Deprecated Functionality
- Remove TxtAI integration (#PLAT-6491)
- Support for ZooKeeper 3.7 is deprecated (#PLAT-6296)
Modified System
- Add support for stored namespaces to SPARQL renderer (#PLAT-6551)
- Turn on FTS and/or voicebox.enabled for all catalogs (#PLAT-6482)
- Improve distinct values estimation for scans with variable predicates (#PLAT-6465)
- Set default reasoning schema not to use wildcard (#PLAT-6455)
- Add types to the statistics service (#PLAT-6450)
- Define a dynamic threshold for textMatch (#PLAT-6447)
- Introduce database option label.properties (#PLAT-6444)
- VG provide suggestions when unique key set table not found (#PLAT-6380)
- Remove cache target auto registration functionality (#PLAT-6357)
- Replicate cache target information directly to cluster nodes instead of via ZooKeeper (#PLAT-6322)
- Rewrite NOT EXISTS filters as MINUS operators (#PLAT-6321)
- Memory management: do not check on-disk iterators unless spilling happened (#PLAT-6311)
- Add preview support for ZooKeeper 3.9 (#PLAT-6287)
- Support for ZooKeeper 3.8 is GA (#PLAT-6286)
- Eliminate non-matching VG patterns from unions in optionals (#PLAT-6283)
- Upgrade to Curator 5.5.0 (#PLAT-6267)
- Add configuration option to read and apply ACLs from custom ZK path to all znodes created by Stardog (#PLAT-6266)
- Numeric literals should lazily generate labels (#PLAT-6183)
- Improve rendering of n-ary union operators in query plans (#PLAT-6109)
- Remove VG information from ZooKeeper (#PLAT-6068)
- Update security model to allow for non-su admin of cache assets (#PLAT-5884)
- Robust query planning for federated queries (#PLAT-5845)
- Audit logging of cache admin events (#PLAT-3098)
- Audit logging of virtual graph admin events (#PLAT-3096)
- Cache and SPARQL queries may not push limit down to source (#PLAT-1794)
- Pushing projections down the query plan (#PLAT-980)
- Do not invalidate reasoner state unnecessarily under updates (#PLAT-225)
Fixed Bug
- Single variable DISTINCT may trigger NullPointerException with nary joins (#PLAT-6626)
- SPARQL renderer misses dot for property paths (#PLAT-6550)
- SPARQL renderer outputs incorrect query when ORDER BY uses a function (#PLAT-6549)
- Query profiler displays incoherent results when projection push optimizer is enabled (#PLAT-6489)
- Hash and loop join operators incorrectly discard cross product upon skipping to the same or smaller join key (#PLAT-6478)
- Incorrect handling of RDF-star embedded patterns in INSERT/DELETE…WHERE queries (#PLAT-6472)
- Preamble hints may cause lost query results with reasoning and LIMIT (#PLAT-6471)
- Static evaluation of constant expressions in BINDs does not happen in the presence of SERVICEs (#PLAT-6468)
- Unexpected result variable in SPARQL JSON/XML result when ordering by a function (#PLAT-6438)
- Fix cardinality estimations using predicate statistics with bound subject/object (#PLAT-6430)
- OPTIONALs with filters are missing in the profiler output (#PLAT-6425)
- Data Catalog Databricks metadata provider hitting API rate limit (#PLAT-6368)
- MINUS operators do not track memory blocks (#PLAT-6353)
- Printing an executable plan with an adaptive bind join yields infinite recursion (#PLAT-6352)
- EXPLAIN should prevent connection timeouts (#PLAT-6351)
- VG query with distinct and returning only constants fails on Salesforce (#PLAT-6254)
- VG query containing UNION can lead to unnecessary joins (#PLAT-6200)
- Poor join on constant join key in a query with multiple VALUES and UNIONS (#PLAT-5478)
- Virtual graph queries with unions return duplicates with distinct (#PLAT-3862)
9.2.1 Release (2023-12-13)
SHA256: 7d80130dc71df38ecc415d894e4ce14942c0d390c6f5970ac72393cf27d9d225
Security Vulnerability
- Can edit namespaces with only READ on dbs (#PLAT-6307)
Modified System
- VG should (debug) log the translated plan (#PLAT-6391)
- VG does not push OFFSET plan node to Databricks (#PLAT-6317)
Fixed Bug
- Term replacement in zero+ property paths can cause incorrect results in edge cases (#PLAT-6435)
- N-ry merge join can skip incorrectly due to mutable solutions (#PLAT-6429)
- VG failing with NPE when explaining query (#PLAT-6393)
- VG with name that includes iri path delimiters has truncated name and can’t be deleted (#PLAT-6364)
- Stardog script can fail to start without STARDOG_HOME environment variable set (#PLAT-6348)
- Stored Query Service bug: sqs:vars is sensitive to the order of variables (#PLAT-6325)
- VALUES lost during optimization of complex query with property paths and OPTIONALs (#PLAT-6297)
- Canonical rendering of SPARQL Service queries can omit required prefix definitions (#PLAT-6275)
- Check if node is cluster member before updating KG metrics (#PLAT-6253)
- Query log incorrectly stores status for failed queries (#PLAT-6249)
- Stardog version is not set in ZK if it’s empty and a non-default join strategy is specified (#PLAT-6248)
9.2.0 Release (2023-09-27)
SHA256: 13b576d3bc7fb4c68b6f50f2066c36e4cfef1dbb94fc6fbc636e52e577c653d9
Security Vulnerability
- Do not run stardog in docker with same user that owns stardog directory (#PLAT-6116)
- BITES configuration can be used to make changes outside db directory (#PLAT-6115)
Added New Feature
- Add new CLI command to convert Stardog metadata files between formats (#PLAT-6227)
- Add credential storage support to Databricks Unity catalog provider (#PLAT-6103)
- Add CLI command to repair mismatches between transaction ids on local nodes and ZK (#PLAT-6084)
- Write audit logs in JSON format on the server-side (#PLAT-5435)
Modified System
- Enable heap dumps on OOM by default (#PLAT-6171)
- Format data catalog datetimes in ISO yyyy-MM-dd format (#PLAT-6101)
- Push filters through aggregates in generated SQL queries (#PLAT-6085)
- Highlight mismatches between local transaction ids and ids in ZK with cluster status command (#PLAT-6083)
- Add server-side configuration options for constraining query resources (#PLAT-6081)
- Data source option to control the batch size of ServiceJoins (#PLAT-6048)
- Log ZooKeeper information when Stardog fails to obtain a lock (#PLAT-6047)
- Support NaryJoins in Branch and Bound optimizer (#PLAT-6046)
- Reduce cluster join lock timeout and increase rejoin retries (#PLAT-6022)
- Add transaction ids for all databases and ZK transaction ids to cluster status output (#PLAT-6014)
- Add flag to zk clear to delete one or more locks from ZooKeeper (#PLAT-6013)
- Avoid cardinality over-estimations for patterns with many matching Characteristic Sets (#PLAT-5983)
- Changes to Purview provider for new Domain features (#PLAT-5968)
- Collapse relations and attributes in Collibra provider (#PLAT-5967)
- Change Purview qualified name to use a linkable reference to Stardog (#PLAT-5966)
- Get catalog properties without providers added to system (#PLAT-5947)
- Improve result serialization selection for Stardog-backed SPARQL Services (#PLAT-5886)
- Log information on how the query ended in the query log (#PLAT-5873)
- Include reasoning schema in query log entries (#PLAT-5872)
- Optimize data prefetching over JNI (#PLAT-5838)
- Minimize the overhead of SPARQL solutions with lazy bindings (#PLAT-5836)
- Improve CLI support for database configuration files (#PLAT-5818)
- OAuth-created user expiration (#PLAT-5763)
- Create complete schema when Purview is the only catalog provider (#PLAT-5738)
- Add the data source type to each data source so that VET tools do not need to guess at the type from the driver (#PLAT-5732)
- Add a new Knowledge Graph metric for number of virtual graphs (#PLAT-5683)
- VG-aware join order optimization (#PLAT-5411)
- Removal of Deprecated Storage Backends (#PLAT-5374)
- Reduce allocation rate of quads for index scans (#PLAT-1176)
Fixed Bug
- RDF data load threads block unnecessarily on OutOfMemory errors (#PLAT-6189)
- VG with CASE can translate to SQL with IS NOT TRUE when used with Service Join (#PLAT-6181)
- VG that joins on VARCHARs with different precisions can lead to unnecessary joins (#PLAT-6164)
- VG with reasoning and LIMIT applies LIMIT before DISTINCT (#PLAT-6163)
- VG that joins on an aggregation can lead to unnecessary joins (#PLAT-6154)
- Query failures during optimization do not switch the tx back to idle state (#PLAT-6145)
- Merge join can lose solutions after spooling data from the right operator (#PLAT-6138)
- IndexOutOfBoundsException when showing plan for a valid-but-empty query (#PLAT-6133)
- Improve error message when failing to get the lock for read only mode (#PLAT-6130)
- Path direction optimizer can lose the start node pattern for a property path operator (#PLAT-6126)
- UNNEST operator should check for cancellation (#PLAT-6122)
- #pragma evaluate works incorrectly when pattern generates new values (#PLAT-6112)
- Onlining a database with txtai should not expel the coordinator if the txtai server is unavailable (#PLAT-6111)
- ORDER BY may throw an IndexOutOfBoundsException (#PLAT-6108)
- Safe Mode configuration property is ignored (#PLAT-6107)
- Outer LIMIT in a query with a VG overrides LIMIT on a subquery (#PLAT-6082)
- ArrayIndexOutOfBoundsException in a query with GROUP BY over singleton (#PLAT-6080)
- Handle SaslAuthenticated state from ZooKeeper (#PLAT-6031)
- Coordinator does not replicate offline to all nodes if the db is set offline during db create (#PLAT-6016)
- Local node failing concurrent cluster action (e.g. commit) may result in other nodes being expelled unnecessarily (#PLAT-6015)
- Try to push filters into unions of Virtual Graphs (#PLAT-6011)
- Newly introduced variables in projections are not assigned correctly (#PLAT-5908)
- Suggestions for relationships use qualified names inconsistently (#PLAT-5899)
- Transaction log rotation while node is joining may cause cluster inconsistency (#PLAT-5897)
- Some data catalog IRIs are not properly encoded (#PLAT-5830)
- Profiling a stored query containing an NaryJoin may lead to IllegalStateException (#PLAT-5810)
- Date comparison filters do not use the optimized codepath for inlined values (#PLAT-5806)
8.1.3 Release (2023-10-31)
Modified System
- Upgrade ZooKeeper version to 3.6.4 (#PLAT-6268)
- Upgrade to Curator 5.5.0 (#PLAT-6267)
- Add configuration option to read and apply ACLs from custom ZK path to all znodes created by Stardog (#PLAT-6266)
- Add flag to zk clear to delete one or more locks from ZooKeeper (#PLAT-6013)
Fixed Bug
- Stardog version is not set in ZK if it’s empty and a non-default join strategy is specified (#PLAT-6248)
- Empty write transaction leads to mismatch between ZooKeeper and cluster nodes (#PLAT-6086)
- Replicated VG Registry throws NPE on sync with ZK (#PLAT-6064)
- Handle SaslAuthenticated state from ZooKeeper (#PLAT-6031)
- Previous coordinator may expel other nodes after it is out of the cluster (#PLAT-5956)
- Transaction log rotation while node is joining may cause cluster inconsistency (#PLAT-5897)
- Unbound values in insert query causes txn log error and NPE (#PLAT-5785)
- Aggregation functions with DISTINCT are not properly closed (#PLAT-5712)
- Replicate all user and role permissions to cluster nodes (#PLAT-5662)
- Replicated VGs and caches should assert the node is a cluster member before performing operations (#PLAT-5627)
- Enabling named graph security for catalog db causes cluster nodes to be expelled (#PLAT-5437)
- Native iterator leak during query execution prevents reclaiming of old data files on disk (#PLAT-5367)
- Loading file with named graphs into the default graph causes cluster inconsistency (#PLAT-5341)
- Unlabeled blank nodes in input files may cause cluster inconsistency (#PLAT-5296)
- The option preserve.bnode.ids=false is not supported in the cluster (#PLAT-5289)
- Catalog scanner runs too frequently (#PLAT-5204)
- Queue ZooKeeper events when the thread pool is full instead of rejecting them (#PLAT-4953)
- Committing empty transactions on a cluster node results in nodes unable to rejoin cluster (#PLAT-4907)
- Invalid values can creep into the database through SPARQL updates (#PLAT-1182)
9.1.1 Release (2023-08-23)
SHA256: fe4b64ef32998c79334dea514b27eec4ab813a0a6f008bb00dd1b2c416767302
Modified System
- OAuth support for multiple username claims (#PLAT-5990)
- Additional bind statements introduced during GraphQL translation cause performance problems (#PLAT-5957)
- Include iterator create and delete statistics by default (#PLAT-5857)
- OAuth support for mapping a group to superuser (#PLAT-5762)
- OAuth option for permission to request for Azure-group-based role mapping (#PLAT-5756)
Fixed Bug
- Empty write transaction leads to mismatch between ZooKeeper and cluster nodes (#PLAT-6086)
- Arrays cannot be used with IRI arguments in GraphQL (#PLAT-6071)
- Replicated VG Registry throws NPE on sync with ZK (#PLAT-6064)
- Stride reasoner does not work with virtual transparency (#PLAT-6061)
- BI Server should log the DB for which an error is thrown when loading tables (#PLAT-6042)
- Cannot query data source directly using special characters in column names (#PLAT-6041)
- BI Server NullPointerException when loading a stored query that accesses a virtual graph (#PLAT-6033)
- SPARQL parser incorrectly reuses anonymous variables (#PLAT-6017)
- GROUP BY + SUM aggregation over numbers with decimal + float data types returns empty result (#PLAT-5998)
- Query-time boolean constants can be handled incorrectly (#PLAT-5962)
- Previous coordinator may expel other nodes after it is out of the cluster (#PLAT-5956)
- Aggregation functions GMEAN / SUM + some uses of ORDER BY have issues with mixed types (#PLAT-5914)
- Adaptive bind join throws an exception after a hash join upgrade if prefetched more than 1000 results (#PLAT-5910)
- Incorrect overflow check when inlining large xsd:integer/xsd:long literals (#PLAT-5893)
- Misleading error about “CacheHttpService missing compatible constructor” (#PLAT-5846)
9.1.0 Release (2023-07-06)
SHA256: ee0302ebba799cc57767fc1f7b89df9c60f7429ee0614f72448278576aced3fe
Added New Feature
- Support Azure-based role mapping (#PLAT-5710)
- Add EMR Serverless as External Compute (#PLAT-5686)
- Add a service to expose selectivity statistics through SPARQL (#PLAT-5503)
- Add a Purview metadata provider for the Data Catalog (#PLAT-5412)
- Add semantic search capability (#PLAT-5347)
- Query Log Database (#PLAT-5113)
- Virtual Graph Passthrough Authentication via Microsoft Identity (Azure AD) (#PLAT-1943)
Modified System
- ZooKeeper 3.6 is no longer supported (#PLAT-5896)
- OAuth role mapping from Azure application roles (#PLAT-5766)
- Extra whitespace causes properties to be ignored (#PLAT-5761)
- Enable transaction logging for databases on cluster start (#PLAT-5760)
- Support for OAuth flow from Cloud Apps/LaunchPad to Databricks (#PLAT-5655)
- Virtual graph support for OAuth2 authorization (#PLAT-5631)
- Restrict rounding of cardinality estimations (#PLAT-5628)
- Support select query with reasoning enabled in ER (#PLAT-5611)
- Enhance Entity Resolution CLI to accept query file or stored query (#PLAT-5610)
- Improve default estimations for star-patterns with bound objects (#PLAT-5579)
- Create a utility to translate OWL axioms to Stardog rules (#PLAT-5557)
- Add preview support for ZooKeeper 3.8 (#PLAT-5525)
- Add ability for Purview provider to write Stardog metadata back to Purview (#PLAT-5414)
- Support IAM roles to auth with AWS for database backups (#PLAT-5389)
- Update NiFi dependencies to 1.21 (#PLAT-5077)
- Non-superuser with . permission unable to modify stored queries (#PLAT-4902)
- Allow valid user name regex to be configurable (#PLAT-4307)
- Avoid replicating read-only transactions (#PLAT-4127)
Fixed Bug
- Using MIN / MAX Aggregate functions with GROUP BY and mixed numeric types leads to incorrect results (#PLAT-5826)
- Variable replacement in the COUNT(?var) aggregate is incorrect (#PLAT-5825)
- Property path optimizer can cause incorrect results in queries with aggregation (#PLAT-5824)
- Aggregation rules cause incorrect results when variables are not used in aggregation functions (#PLAT-5817)
- StackOverflowError triggered by #pragma push.filters aggressive (#PLAT-5791)
- Unbound values in insert query causes txn log error and NPE (#PLAT-5785)
- Filter order in query can affect query plan (#PLAT-5765)
- Floating point rounding error affect cardinality estimation accuracy (#PLAT-5753)
- Cardinality coefficients of scopes are not updated correctly (#PLAT-5741)
- Graph Store protocol GET requests should not be subject to query timeouts (#PLAT-5731)
- A bind join may fail to return results after declining adaptation (#PLAT-5701)
- Rules with IN function returns no results for first execution (#PLAT-5684)
- Invalid geospatial shape throws exception during database restore (#PLAT-5681)
- Join order optimizer unnecessarily considers external sorting for scans (#PLAT-5636)
- Merge join cost often depends on one operand only (#PLAT-5632)
- Replicated VGs and caches should assert the node is a cluster member before performing operations (#PLAT-5627)
- Push filters optimization works inconsistently for filters with EXISTS (#PLAT-5613)
- Multisketch can incorrectly return its size (#PLAT-5587)
- Data in temp .spilling folder not deleted upon query error (#PLAT-5569)
- Cluster may become inconsistent if the nodes fail for different reasons during replication (#PLAT-5365)
- Failed spatial indexing does not release the Lucene lock file (#PLAT-3860)
- Invalid geospatial data added in a transaction breaks reindexing (#PLAT-3859)
- Attempting user/password auth against a cluster configured for kerberos auth throws an NPE (#PLAT-3622)
9.0.1 Release (2023-05-19)
SHA256: 9a4a0d9b5f4ec609d8c17d2cf0b8101d16d26b09a0f26fb90eaf8ff12ebd2e3c
Security Vulnerability
- Introduce a configuration option to disable storing SHA1 passwords (#PLAT-5699)
- Server backup command should require administrator privileges (#PLAT-5698)
Modified System
- Make token claim configurable for Stardog server (#PLAT-5556)
Fixed Bug
- Aggregation functions with DISTINCT are not properly closed (#PLAT-5712)
- A bind join may fail to return results after declining adaption (#PLAT-5701)
- Datasource native query should rewrite LIMIT and OFFSET to syntax supported by backing database dialect (#PLAT-5697)
- Replicate all user and role permissions to cluster nodes (#PLAT-5662)
- Aggregation and negation rules sometimes not returning expected inferences (#PLAT-5591)
- Data in temp .spilling folder not deleted upon query error (#PLAT-5569)
- Stride reasoner inserts distinct and projection incorrectly (#PLAT-5568)
- Rules with BINDs result in incorrect query results (#PLAT-5567)
- Committing empty transactions on a cluster node results in nodes unable to rejoin cluster (#PLAT-4907)
- Global salt used for JWT signing may differ across cluster nodes (#PLAT-4651)
- Failed spatial indexing does not release the Lucene lock file (#PLAT-3860)
- Invalid geospatial data added in a transaction breaks reindexing (#PLAT-3859)
- Invalid values can creep into the database through SPARQL updates (#PLAT-1182)
9.0.0 Release (2023-04-05)
SHA256: f5274e101d9f21740395e5fefdd84e16c6514f3af5c5303d16e454bf6ac90e99
Added New Feature
- Collibra Catalog Support (#PLAT-5111)
- Entity Resolution Service (Beta) (#PLAT-5109)
- New Datalog Reasoner - Stride (Alpha) (#PLAT-5108)
- Azure Purview metadata provider for the Data Catalog (preview) (#PLAT-5413)
- Virtual Graph support for Azure Synapse Analytics over JDBC (#PLAT-5233)
- Add geo-replication support to read replicas and standby nodes (preview) (#PLAT-4992)
- Safe mode to start the server (#PLAT-3049)
- Expose SHACL validation in SPARQL (#PLAT-1598)
- Upgrade to Java 11 (#PLAT-2385)
Deprecated Functionality
- Remove support for Ubuntu 16.04, 18.04, and Debian 9 (#PLAT-5584)
- Remove DL reasoning support (#PLAT-5530)
- Remove embedded connections (#PLAT-4984)
- Remove standby-join command and API (#PLAT-4899)
- Remove command to auto generate cluster config (#PLAT-4852)
- Remove auto restore database from backup on startup (#PLAT-4851)
- Remove support for caching local named graphs (#PLAT-5340)
- Drop anonymous user from default setup (#PLAT-1520)
- Support for ZooKeeper 3.6 is deprecated (#PLAT-5523)
Modified System
- Allow GraphQL variables to be used with the iri field (#PLAT-5446)
- Make join decompositions deterministic (#PLAT-5391)
- Prefetch data from selective Virtual Graphs (#PLAT-5363)
- Redirect DESCRIBE queries to cache nodes (#PLAT-5358)
- Virtual Graph BigQuery JDBC driver upgrade to version 1.3.0 (#PLAT-5342)
- Implement more reliable way of retrieving Databricks row count statistics (#PLAT-5324)
- Row count estimations for non-trivial SQL joins are inaccurate (#PLAT-5300)
- Enable passing prebuilt hash table to hash joins (#PLAT-5276)
- Disable reasoning for SQL/GraphQL schema generation by default (#PLAT-5224)
- Manage off-heap byte buffers in the native layer (#PLAT-5217)
- Support regex filtering for metrics endpoints for Prometheus (#PLAT-5211)
- Change default masking function for sensitive properties (#PLAT-5191)
- VG improve error message when missing NoSQL driver (#PLAT-5179)
- Add distinct object counting to count-min sketches (#PLAT-5156)
- Allow changing executable query plans at runtime (#PLAT-5066)
- Cleaner error message when multiple clients try to create the same database concurrently (#PLAT-5029)
- Add status command for standby nodes and read replicas (#PLAT-4995)
- Add attempt sync command to manually sync standby nodes and read replicas (#PLAT-4994)
- Upgrade Jena to 4.7.0 (#PLAT-4306)
- Cached graph support for path queries over a single named or virtual graph (#PLAT-2275)
- Docker image changed from CentOS 7 to Ubuntu 22.04 (#PLAT-1886)
- Support parameterization of graph templates in CONSTRUCT/INSERT/DELETE queries (#PLAT-1010)
- Add n-ary union plan node and operator (#PLAT-956)
- Include stack trace in HTTP server response for errors (#PLAT-217)
Fixed Bug
- “Reader is not valid” error during bind join adaptation (#PLAT-5513)
- Broken IRIs in knowledge catalog (#PLAT-5512)
- INSERT/DELETE/WHERE queries may ignore query.memory.exceeds.strategy=FINISH_QUERY_EXECUTION (#PLAT-5475)
- Tuple queries hang intermittently for 60 seconds when closed before consuming all results (#PLAT-5453)
- Incorrect constant replacement in adaptive bind joins leads to query failures (#PLAT-5444)
- Enabling named graph security for catalog db causes cluster nodes to be expelled (#PLAT-5437)
- Improve cluster and standby error messages when run against unsupported cluster node types (#PLAT-5404)
- Data Catalog creates invalid IRIs (#PLAT-5396)
- Incorrect reuse of cached query plans after pre-evaluation (#PLAT-5388)
- Exception: N-ary join with less than two operands detected (#PLAT-5372)
- DESCRIBE fails to return results over Virtual Graphs (#PLAT-5357)
- Possible system crash on shutdown due to unsafe lookups in context index (#PLAT-5345)
- Bnodes should not be allowed in DELETE WHERE templates (#PLAT-5291)
- TurtleWriter special character handling in blank nodes (#PLAT-5280)
- VG can translate FILTER on result of CASE statement to invalid join condition (#PLAT-5245)
- Cache auto register feature broken (#PLAT-5215)
- Catalog refresh fails when adding literal constant term map to model (#PLAT-5134)
- IRI of mapping is not persisted (#PLAT-4816)
- BI/SQL queries failing when sensitive properties are enabled (#PLAT-4732)
- ML training query results in a failure with virtual graphs (#PLAT-4470)
- Fix message for revoking a standby node (#PLAT-2939)
- Deal gracefully with concurrent create/drop requests for the same database name (#PLAT-2250)
8.2.2 Release (2023-02-13)
SHA256: 9a114966d2cdaa1c44b73c824a4b45b76be8a80c2fdf37f52eab27899cd7b99c
Fixed Bug
- Native iterator leak during query execution prevents reclaiming of old data files on disk (#PLAT-5367)
- Loading file with named graphs into the default graph causes cluster inconsistency (#PLAT-5341)
- AlphaNumericComparator violates the comparator contract (#PLAT-5302)
- Unlabeled blank nodes in input files may cause cluster inconsistency (#PLAT-5296)
- The option preserve.bnode.ids=false is not supported in the cluster (#PLAT-5289)
- Incorrect sort key error when attempting to delete data from a named graph (#PLAT-5287)
- System db checkpoint fails due to missing properties file (#PLAT-5275)
- Virtual Service Query should preserve multiplicity of batch solutions (#PLAT-5216)
- JSON file import - BOUND function not properly working in WHERE (#PLAT-4716)
- Spatial indexing fails when the geometry is a bnode (#PLAT-960)
8.2.1 Release (2023-01-11)
SHA256: 5231375da1bb630df27c8bd1a7e018ef18a5950851179b2ce840d4fb1af1ef91
Fixed Bug
- Databricks metadata provider ignores host property (#PLAT-5249)
- Make sure that queries get unregistered when failing in pre-execution (#PLAT-5219)
- Catalog scanner runs too frequently (#PLAT-5204)
- Geospatial queries using JTS shapes trigger runtime error (#PLAT-5194)
- Reduce log level for “value clash” messages (#PLAT-5189)
- Databricks password visible in data-source options (#PLAT-5183)
- MatcherService unable to work with qualified table names (#PLAT-5181)
- Do not store data source passwords as plaintext in zookeeper (#PLAT-5162)
- Literals in rules only appear after running a query the second time (#PLAT-5147)
- Use the same SERVICE operator for local and HTTP caches (#PLAT-5146)
- Do not store data source passwords as plaintext in the system database (#PLAT-5140)
- Occasional failure to get information about processes running in the storage (#PLAT-5127)
- Sensitive property value masking does not work with VG caches (#PLAT-5076)
- Error creating MySQL VG with no default database in the connection string (#PLAT-5072)
8.2.0 Release (2022-12-07)
SHA256: 5e3e1a3662744327348884b60ddc3e50b76663688d075a933204913b664020ee
Added New Feature
- Link Sources and Mappings in the Catalog (#PLAT-4739)
- External Compute for Virtual Graph Materialization (#PLAT-4435)
- Support Azure Blob Storage for database backup and restore (#PLAT-4298)
- Development support for macOS ARM (#PLAT-2986)
Deprecated Functionality
- Deprecate cluster generate command (#PLAT-5165)
- Deprecate standby join command and API endpoint (#PLAT-5164)
- Deprecate support for auto restore databases from backup on startup (#PLAT-5163)
- Deprecate async profiler (#PLAT-5012)
- VG deprecate support for SMS1 (#PLAT-4784)
Modified System
- ZooKeeper 3.5 is no longer supported (#PLAT-5161)
- Support for ZooKeeper 3.7 is GA (#PLAT-5160)
- Avoid logging full stacktraces of query parsing errors (#PLAT-5054)
- Disable joins on predicate variables if other join keys exists (#PLAT-5028)
- Control statistics updates for the cache database (#PLAT-5020)
- HTTP endpoint to return metadata for all databases (#PLAT-4977)
- Inline values of the service variable in service queries (#PLAT-4932)
- Add an index option to disable accounting for the active graph statistics in cardinality estimation (#PLAT-4912)
- Refactor Stardog kernel initialization so it can be tracked as a single process (#PLAT-4885)
- Implement bind join to hash join upgrade v2 (#PLAT-4880)
- Admin operations like db create/restore/drop should be atomic (#PLAT-4865)
- Upgrade to Curator 5.4.0 (#PLAT-4861)
- Optimize joins over VGs cached on the same target (#PLAT-4825)
- Support literal inlining for query-time generated values (#PLAT-4824)
- Allow private Prometheus CIDR configuration to support a list of CIDR blocks (#PLAT-4791)
- Support domainIncludes/rangeIncludes in auto-schema generation (#PLAT-4767)
- Add last system transaction id to cluster status output (#PLAT-4746)
- Obtain cardinality estimations for SPARQL Federation endpoints backed by Stardog (#PLAT-2650)
- Data source options call returns passwords in clear text (#PLAT-2624)
- Defer syntax validation of stored queries till execution (#PLAT-763)
Fixed Bug
- Race condition when releasing write lock while another node is joining may cause cluster inconsistency (#PLAT-5094)
- Error creating MySQL VG with no default database in the connection string (#PLAT-5072)
- VALUES with only UNDEF causes “Bind nodes must bind at least one variable” errors (#PLAT-5063)
- SHACL client does not send the reasoning schema parameter to the server (#PLAT-5060)
- Files that fail to delete on drop db throws NPE (#PLAT-5021)
- Fix cardinality overestimations for star-patterns with bound objects (#PLAT-4997)
- Include Netty dependency for ZooKeeper client libraries to support SSL (#PLAT-4989)
- BI server does not include primary/foreign keys in show create table output (#PLAT-4980)
- VG can return false negative as result of not-equal (!=) operator (#PLAT-4966)
- Enabling all options for “db optimize” yields an exception (#PLAT-4963)
- Fail to initialize stored query tables in the Bi/SQL server (#PLAT-4962)
- Gross cardinality over-estimations for joins with unbound patterns (#PLAT-4961)
- VG query with subquery joined with union is translated into multiple services (#PLAT-4955)
- Queue ZooKeeper events when the thread pool is full instead of rejecting them (#PLAT-4953)
- VG queries with LIMIT may force eager execution of more remote queries than necessary (#PLAT-4941)
- Gross cardinality underestimation for star-pattern with selective predicate (#PLAT-4931)
- Context-first index is not chosen for a query with selective graph (#PLAT-4926)
- Reasoning pre-processing should be handled as a cancellable process (#PLAT-4910)
- VG doesn’t support SUBSTRING function on some platforms (#PLAT-4895)
- VG can lose ORDER BY when combined with DISTINCT (#PLAT-4887)
- VALUES rewriter can duplicate patterns (#PLAT-4882)
- Cluster fails to reconnect to ZooKeeper if ZooKeeper server IPs change (#PLAT-4853)
- Throw UnsupportedException when attempting auto restore a database on startup with GCP (#PLAT-4850)
- VG creates unnecessary joins when translating BIND (#PLAT-4765)
- Progress not reported for compaction if it’s triggered for data vacuuming (#PLAT-4678)
- CLI Broken on FIPS-Compliant RHEL8 servers when using self-signed certificates (#PLAT-4617)
- Virtual transparency query not optimal in the presence of caches (#PLAT-3788)
8.1.1 Release (2022-10-12)
SHA256: 685bca7a420881f715d2635be23a6c10be86347071d874a338ed9e4f2e908d63
Modified System
- Expose Database table/column metadata via the catalog (#PLAT-4842)
- Databricks REST calls from data catalog require user-agent value (#PLAT-4800)
- VG option to ignore schema validation (#PLAT-4819)
Fixed Bug
- Variable not replaced correctly in nested (NOT) EXISTS patterns (#PLAT-4847)
- Incorrect handling of * projections in subqueries with VALUES (#PLAT-4846)
- Matching suggestions don’t work when properties have multiple domains (#PLAT-4794)
- Catalog database is updated at startup causing cluster nodes to require full sync every startup (#PLAT-4792)
- Index statistics gets into a permanently closed state (#PLAT-4790)
- Optimizer can fail to assign initial index order to a scan (#PLAT-4789)
- VG creates unnecessary joins when translating BIND (#PLAT-4765)
- Case-sensitivity of database names causes troubles (#PLAT-4721)
8.1.0 Release (2022-09-07)
SHA256: 0542a3fff69bdd9fb8c5286031bbcfa5d54526d7995eb501d08e5997552a6c10
Security Vulnerability
- Authorized users can delete arbitrary files via BITES directory configuration (#PLAT-4446)
- Upgrade dependencies to address security vulnerabilities (#PLAT-4680)
Added New Feature
- Unified progress monitoring and cancellation (#PLAT-3123)
- VG support for three-level namespaced table identifiers (catalog.schema.table) (PLAT-4526)
WARNING: There is a change to the storage format for data sources that prevents reverting back to version 8.0.1 once the upgrade to 8.1.0 has been made. Please backup your system database prior to upgrading to this release. - Include metadata from the Databricks Unity in Stardog Data Catalog (#PLAT-4425)
- Add preview support for ZooKeeper 3.7 (#PLAT-4546)
- Support for ZooKeeper 3.6 is GA (#PLAT-4607)
- SPARQL service that generates a sequence of numbers (#PLAT-4461)
- Matching suggestion service to semi-automate virtual graph mapping creation (#PLAT-3930)
- Add server and database options for SPARQL Update query timeouts (#PLAT-945)
Deprecated Functionality
- Support for ZooKeeper 3.5 is deprecated (#PLAT-4749)
- Deprecate embedded connections (#PLAT-4667)
Modified System
- Add an HTTP error code to designate a cancelled process (#PLAT-4675)
- Cluster may become inconsistent if the coordinator fails commit and other nodes succeed (#PLAT-4663)
- Make pretty turtle serializer deterministic (#PLAT-4662)
- Round up cardinality estimations to smooth out small differences due to non-determinism (#PLAT-4650)
- Address count-min sketch non-determinism (#PLAT-4626)
- Support cancellation of SPARQL Update queries without WHERE (#PLAT-4608)
- VG support for catalog wildcard (#PLAT-4570)
- Improve cardinality estimations for ML services (#PLAT-4542)
- Make exports from virtual graphs cancellable (#PLAT-4500)
- Simplify algebraic cardinality estimations involving subqueries and property paths (#PLAT-4492)
- Make “db optimize” cancellable (#PLAT-4476)
- Add data source metadata to catalog that ISN’T mapped to a VG (#PLAT-4453)
- Add license expiration to unauthenticated metrics output (#PLAT-4443)
- Add unauthenticated prometheus endpoint on Stardog for configurable private address space (#PLAT-4437)
- Introduce a db option to set the dataset for GraphQL queries (#PLAT-4413)
- Data catalog automatically create database and load schema if not exists (#PLAT-4406)
- VG support for more than one SQL catalog per data source (#PLAT-4389)
- Should error when adding a data source that references a schema that does not exist (#PLAT-4381)
- Get rid of the timeout inside the join order optimizer (#PLAT-4360)
- VG should raise an error when a table that’s set in unique.key.sets is not found (#PLAT-3968)
- SPARQL federation pass through basic authentication (#PLAT-3811)
- Prevent Azure AD group authenticated user from assigning roles (#PLAT-3616)
- Add databricks driver to distribution (#PLAT-3287)
- Improve cardinality estimations for joins on the object variable (#PLAT-1772)
Fixed Bug
- Cardinality-based min pattern search is broken and causes query planning non-determinism (#PLAT-4692)
- RDF stream processor not terminating after all consumers have stopped (#PLAT-4664)
- role revoke man page incorrectly shows
database:databasename
instead ofdb:databasename
(#PLAT-4659) - Possible cardinality overestimations for star-patterns which match no data (#PLAT-4655)
- Failed commits prevent a subsequent rollback (#PLAT-4637)
- Query execution failure with Direct Hash Join under a Bind Join (#PLAT-4597)
- Tokens generated with the token manager for a non-existing Stardog user only work on the Stardog cluster node that generated it (#PLAT-4567)
- Prevent Azure AD group authenticated user from logging in if the corresponding role is deleted (#PLAT-4549)
- GraphQL auto schema generation fails if user does not have metadata permissions (#PLAT-4547)
- LOAD query on s3 presign URL doesn’t ignore querystring (#PLAT-4528)
- Including a hint in a query causes the plan to be regenerated on every execution (#PLAT-4527)
- Equality index being recalculated if reasoning wasn’t used in a prior query (#PLAT-4511)
- VG error with TRIM BOTH on MS SQL Server (#PLAT-4466)
- Server fails to start if user info in system db get corrupted (#PLAT-4445)
- BI/SQL connections cannot be killed if no query is running (#PLAT-4430)
- GraphQL schema generation does not handle namespaces correctly (#PLAT-4412)
- Db creator does not have admin permissions on the db (#PLAT-4396)
- Supported driver causes errors when creating a Virtual Graph from an Athena source with “Iceberg” tables (#PLAT-4390)
- Grouping dates by quarter fails in Tableau (#PLAT-3816)
8.0.1 Release (2022-07-29)
SHA256: ac47e6aca186050826a358fd987625c806491cefb456492f8ce6728f6741c565
Modified System
- VG support for schema wildcard (#PLAT-4588)
Fixed Bug
- Incorrect PATH query results when the end pattern has a FILTER which matches a single result (#PLAT-4594)
- Incorrect results with DISTINCT in aggregates when WHERE binds only a single variable (#PLAT-4593)
- Incorrect constant replacement in fully bound property paths (#PLAT-4564)
- Graph store protocol operations may result in inconsistent cluster state (#PLAT-4555)
- Incorrect property path optimization within [NOT] EXISTS patterns (#PLAT-4531)
- Similarity search may throw errors with cluster (#PLAT-4465)
- Unbound ?path variable in path query results with BIND (#PLAT-4428)
- Stardog server incorrectly reports query block usage for one pool type (#PLAT-4391)
- VG mapping improperly handling constant column values with DISTINCT (#PLAT-4384)
- DISTINCT inside aggregation functions can cause a memory leak (#PLAT-4380)
- BindJoin throws an exception with certain queries (#PLAT-4379)
- Correlated subqueries create an unbounded number of memory trackers (#PLAT-4377)
- VG converts COALESCE to CASE returning BOOLEAN type on MS SQL Server (#PLAT-3986)
- VG: Coalescing term map over CASE expression generates invalid SQL for Oracle (#PLAT-1045)
- VG can create DB2 SQL query with off-by-one reference to table alias (#PLAT-108)
8.0.0 Release (2022-06-01)
SHA256: 9576c1059e2c7e6163d456488485bb27117faddfa6747a592b467f6ca9f67fd5
Security Vulnerability
- RDF/XML parser vulnerable to XML External Entity (XXE) attacks (#PLAT-4355)
- Reasoning explanations violate sensitive property permissions (#PLAT-4352)
- Reasoning explanations violate Named Graph security (#PLAT-4351)
Added New Feature
- Expose internal Stardog Data Catalog as a database (#PLAT-4383)
- Add database checkpoint capability for the system database (#PLAT-3838)
- Add read replicas to the cluster (#PLAT-3958)
- Add support for rolling upgrade of patch versions to the cluster (#PLAT-2150)
- Add preview support for ZK 3.6 (#PLAT-3921)
- Add a custom function to calculate the variance and the standard deviation (#PLAT-4254)
- VG support for testing a JDBC connection (#PLAT-4039)
Deprecated Functionality
- Remove support for OWL constraints (#PLAT-4276)
- Remove support for ZK 3.4 (#PLAT-4382)
- Remove virtual graph query cache functionality (#PLAT-4311)
- Remove support for built-in archetypes (#PLAT-4284)
- Remove reasoning undo command (#PLAT-4283)
- Remove Sesame support (#PLAT-4277)
- Remove the query.pp.contexts option (#PLAT-2932)
Modified System
- Always enable OS metrics (#PLAT-4300)
- VG support for UUID and BINARY types (#PLAT-4243)
- Support service joins for OPTIONALs (#PLAT-4176)
- Improve star-pattern estimations with named graphs (#PLAT-4079)
- GRANT permission over built-in graphs should act like a wildcard (#PLAT-4075)
- Extend profiler to support replacements on the logical plan level (#PLAT-4054)
- Improve operator specific query metrics in the profiler output (#PLAT-4042)
- Improve SPARQL performance for large updates (#PLAT-3907)
- Improve dictionary performance while importing virtual graphs (#PLAT-3906)
- Upgrade to Curator 5.2 (#PLAT-3893)
- Improve choice of chain statistics for cardinality estimation (#PLAT-3805)
- Option to inline stored queries in BI/SQL (#PLAT-3775)
- Database query timeout setting does not apply to BI/SQL queries (#PLAT-3736)
- Avoid spilling of single solutions during query evaluation (#PLAT-3667)
- Allow for other LDAP attributes to drive Stardog user creation (#PLAT-3446)
- Improve error message when virtual import fails (#PLAT-3438)
- Improve cardinality estimations for joins where only one operand is a triple pattern (#PLAT-3418)
- Extend SPARQL profiler to cover operators with dynamic query plans (#PLAT-3095)
- Improve cardinality estimations for joins with services (#PLAT-2802)
- Query explain {ID} should return the currently executing plan (#PLAT-2700)
- Upgrade to RDF4J 3.7.7 (#PLAT-2658)
- Make the export operation cancellable (#PLAT-1465)
Fixed Bug
- Named graph permissions are not restored properly from db backup (#PLAT-4317)
- NPE thrown while parsing NTriples file (#PLAT-4314)
- Changing cluster coordinator during writes may result in an inconsistent cluster. Found by Antithesis testing. (#PLAT-4309)
- SPARQL LOAD no longer loads NQuad/TriG files into named graphs (#PLAT-4274)
- Some filters can be incorrectly pushed under LIMIT (#PLAT-4272)
- VG LIMIT without ORDER BY inside UNION omits parentheses (#PLAT-4262)
- Multi-threaded NTriples parsing broken when preserve.bnode.ids is disabled (#PLAT-4240)
- VG can miss join elimination opportunities when querying multiple virtual graphs (#PLAT-4125)
- Cluster nodes may be expelled when SHACL shape validation times out (#PLAT-4123)
- “Unexpected bytes read” error when crashed cluster nodes try to sync (#PLAT-4104)
- SHACL incorrectly handles literals as target nodes (#PLAT-4099)
- Selective constants can yield gross under-estimations of cardinality (#PLAT-4070)
- READ access to a role should allow users to see that role (#PLAT-4065)
- Unknown transaction exceptions during replication may cause the cluster to become inconsistent. Found by Antithesis testing. (#PLAT-4019)
- VG allowed to save with errors after data source updated (#PLAT-3967)
- Default file_preload settings impacting initial numKey metrics and others (#PLAT-3936)
- ConcurrentModificationException thrown during shutdown resulting in cluster that doesn’t start (#PLAT-3935)
- Fix object selectivity estimation with predicate variable (#PLAT-3836)
- TO_DAYS function not supported in the BI/SQL endpoint (#PLAT-3815)
- Handle special case where VALUES clause is empty (#PLAT-3763)
- Constant inlining optimization is sensitive to the order of filters (#PLAT-3745)
- Do not re-optimize query plans when profiling through the plan endpoint (#PLAT-3362)
- BI SQL query treats IRIs as Strings (#PLAT-2967)
- Queries using “graph<db://{db name}>” syntax get stuck in infinite recursion (#PLAT-2649)
- Query events keep unnecessary references to database connections (#PLAT-2339)
- Spooling in merge joins can cause the server to run out of memory (#PLAT-1254)
- VG NPE when translating IF function with an unbound argument (#PLAT-3932)
- Improve optimization of multiple VALUES patterns (#PLAT-3242)
7.9.2 Release (2022-06-01)
SHA256: 77b8e9b3a8973f48f2d895721fd625bad94cf541bd1064ce3d2b66fd346ebc8a
Security Vulnerability
- RDF/XML parser vulnerable to XML External Entity (XXE) attacks (#PLAT-4355)
- Reasoning explanations violate sensitive property permissions (#PLAT-4352)
- Reasoning explanations violate Named Graph security (#PLAT-4351)
7.9.1 Release (2022-04-26)
SHA256: f6154c6fe9e394c5a994a3681847ddce07f23ddbff85e889ee4200e3e0cfc8d0
Critical Bug Fix
- Possible data loss when same triples are removed and added in the same transaction (#PLAT-4189)
WARNING: If the same triple is removed and then added in the same transactions then it is possible that the addition will not be persisted in one or more of the indices. There are multiple indices maintained by Stardog and as due to this bug the contents of indices can get out of sync resulting in incorrect query results where the triple is not returned even though the transaction succeeded. The likelihood this situation occurs increases if the number of triples added in a single transaction are high or the amount of memory given to Stardog is low. This bug affects only the version 7.9.0 and not prior versions. Upgrading to 7.9.1 would prevent this issue from happening in the future. If you cannot upgrade from 7.9.0 then you should set the configuration option storage.vacuum.encode.commit=false in stardog.properties and restart the server. Using thedb verify
command would confirm whether a database has been affected by this issue in the past. You can read the repairing databases section of the documentation for fixing the inconsistencies in the index.
Security Vulnerability
- SHACL allows unauthorized users to see contents of named graphs (#PLAT-3994)
WARNING: A user can use SHACL constraints to validate the contents of a named graph and the SHACL violation messages would reveal the contents of the named graph even if the user does not have read access to that named graph. This vulnerability affects all versions of Stardog when named graph security is enabled. - SHACL allows unauthorized users to see values of sensitive properties (#PLAT-3993)
WARNING: A user can write a SHACL constraint to validate the values of a sensitive property and the SHACL violation messages would reveal those values that the user might not have read access to otherwise. This vulnerability affects all versions of Stardog where sensitive properties are enabled via fine-grained security.
Fixed Bug
- Disable direct I/O to avoid “Unexpected bytes read” error (#PLAT-4223)
- Queries with EXISTS patterns can fail if sensitive properties are enabled (#PLAT-4171)
- Incorrect query plan cache reuse after adding data (#PLAT-4170)
- Infinite recursion through trie in statistics (#PLAT-4059)
- UNDEF in VALUES restricting a graph ?g variable may cause a query to fail (#PLAT-4041)
- tag:stardog:api:shacl:fromNamed applied incorrectly in presence of graph aliases (#PLAT-3969)
- Incorrect cached plan reuse for query with predicate variables if sensitive properties are enabled (#PLAT-3953)
- Incorrect RDF serialization of stardogShacl:fromNamed property (#PLAT-3934)
- Cached plans for virtual graphs return incorrect results (#PLAT-3896)
- Linux stardog.service file should nofiles to 100000 to match documentation (#PLAT-4168)
7.9.0 Release (2022-02-23)
SHA256: ef60a9d178914d2cbbc0cf5915489c3e424888731f9c391ec165a875f7ccb2bc
Added New Feature
- Add stardog:reduce SPARQL function to aggregate data long paths (#PLAT-3506)
- SHACL report should allow the user to specify the query dataset for SPARQL constraints (#PLAT-3421)
- Support sampling over triples patterns in SPARQL (#PLAT-3384)
- Add support for ARRAY_INDEX for UNNEST (#PLAT-3271)
Modified System
- Support for ZooKeeper 3.4 is deprecated and support for ZooKeeper 3.5 is GA (#PLAT-3779)
- Avoid loop joins for object-object joins in BI/SQL queries if possible (#PLAT-3676)
- Change default cluster commit timeout to 1 hour (#PLAT-3664)
- Use multiple threads for loading a single ntriples/nquads file (#PLAT-3662)
- Don’t explicitly assign user or role permissions to superusers that create those resources (#PLAT-3619)
- Add server property to configure block size of managed memory (#PLAT-3613)
- Disable direct I/O mode in the transaction log (#PLAT-3566)
- Rewrite OPTIONALs to inner joins when possible (#PLAT-3431)
- Sampling over triples patterns in SPARQL should support multiple named graphs (#PLAT-3427)
- Display optimizer hints in the query plan (#PLAT-3385)
- Improve FILTER EXISTS optimization (#PLAT-3377)
- Improve CSV import performance (#PLAT-3156)
- BI server support for translating LEFT JOIN to SPARQL OPTIONAL (#PLAT-3101)
- Support path queries via Stored Query Service in SPARQL Update queries (#PLAT-2841)
- Extend security model to include Stored Queries (#PLAT-2782)
- Improve interaction of constant inlining and constant expression evaluation (#PLAT-2637)
- Inner LDAP groups should inherit parent groups permission (#PLAT-2559)
- Storage support for sampling over triple patterns (#PLAT-1657)
- Improve performance of xsd:date/xsd:dateTime comparison in SPARQL (#PLAT-1288)
- BI server support for additional date/time functions (#PLAT-245)
Fixed Bug
- Stored Query Service disables memory management (#PLAT-3789)
- Virtual transparency may return incorrect results (#PLAT-3784)
- Query optimization non-determinism due to fluctuation of very small cardinalities (#PLAT-3740)
- Query optimizer does not select the n-ary merge join for a star-shaped scope (#PLAT-3738)
- Server doesn’t stop after loading databricks virtual graph (#PLAT-3734)
- Incorrect query plan cache reuse via Stored Query Service in presence of graph wildcards (#PLAT-3704)
- Transactions using data streams (files) may swallow errors (#PLAT-3703)
- Incorrect cached query plan reuse in presence of graph wildcards (#PLAT-3697)
- VG for Databricks ignores default schema on connection string (#PLAT-3692)
- Stored Query Service incorrectly handles the case when only some variables are correlated (#PLAT-3685)
- Server errors out on startup if non-superuser is removed and then added back as superuser with same name (#PLAT-3684)
- Acquired and spilled memory is double counted when queries finish (#PLAT-3673)
- Auto config rocksdb parameters when SMB/cifs mount detected under Linux (#PLAT-3652)
- Out of memory error during reasoning query with unbound predicate (#PLAT-3628)
- Memory going over defined limits for short periods of time (#PLAT-3624)
- Parameterized index scan uses an incorrect sort type (#PLAT-3620)
- Managed memory used by path queries is not reported in server metrics (#PLAT-3605)
- Incorrect inlining of start nodes into property paths in queries with complex projections (#PLAT-3599)
- Stored PATH query uses cached plan for a different input value (#PLAT-3590)
- BI Server mappings are different if generated from CLI (#PLAT-3585)
- Incorrect timings reported by db create when search or spatial is enabled (#PLAT-3564)
- Need to set rocksdb paranoid_checks to false during system db recovery (#PLAT-3560)
- Inefficient direct hash joins after pushing filters (#PLAT-3555)
- JSON import fails with nested objects with variable keys (#PLAT-3525)
- BI server query with join may throw exception if join condition cannot be translated to SPARQL (#PLAT-3503)
- Using tokens for authentication may make user list out of sync in the cluster (#PLAT-3485)
- Incorrect plan cache reuse when a graph variable changes value from local graph to VG (#PLAT-3463)
- OPTIONS-xxxxxx.dbtmp files are left behind in data directory (#PLAT-3457)
- Optimization of complex expressions in ORDER BY can incorrectly reuse variables (#PLAT-3454)
- Query test execution does not comply with the runs parameter (#PLAT-3444)
- SPARQL Federation queries should include built-in namespace prefixes (#PLAT-3428)
- FILTER on unbound IRI equality can return false positive (#PLAT-3389)
- Client hangs when closing a graph query before processing all results (#PLAT-3386)
- Database connections may timeout for long running transactions (#PLAT-3375)
- Cost of bind joins is too high when the join key appears in unrestricted triple pattern (#PLAT-3370)
- JSON import not working with mapping a variable to an object key (#PLAT-3367)
- BIND optimization interferes with security.masking.function option (#PLAT-3335)
- Named graph aliases are ignored when the query dataset is virtual (#PLAT-3315)
- Connection can time out during SHACL report if database.connection.timeout is very small (#PLAT-3313)
- Adjust cluster timeouts for replication based on the progress of the local node (#PLAT-3263)
- Incorrect cardinality estimation for certain combinations of joins (#PLAT-3255)
- Hints can distort profiling results (#PLAT-3248)
- Flattening BIND patterns creates performance issues with EXISTS (#PLAT-3246)
- BI/SQL server leaking memory when connections are closed before logging in, eg TCP health checks (#PLAT-3216)
- VG sql.schemas does not handle white space trimming, causing issues for users (#PLAT-3210)
- MongoDB can fail with unsupported operation when joining two variable predicates (#PLAT-3197)
- BI Server errors on MySQL Workbench-generated queries when requesting table details (#PLAT-3136)
- Query explain failure does not close the cancellation point (#PLAT-3127)
- Explain fails for some INSERT/DELETE queries (e.g. if WHERE collapses to EMPTY) (#PLAT-3125)
- Additional permissions required to access virtual graph through named graph alias (#PLAT-2985)
- VG creation for Elasticsearch may return error message mentioning MongoDB (#PLAT-2976)
- BI SQL query with multiple subqueries fails with “Cannot open nested transactions” (#PLAT-2951)
- Failure to flush unsaved changes to the system catalog during shutdown (#PLAT-2636)
- VG MongoDB join error when constraining IRI to literal (#PLAT-787)
- SHACL client does not check HTTP trailers for server-side errors (#PLAT-587)
- Get metadata about server without read metadata permissions (#PLAT-3791)
- Implicit join detection for subqueries with Stored Query Service (#PLAT-3746)
- Pull hybrid reasoning operators out of the union of conjunctive queries (#PLAT-3682)
- Add UserAgent string for Stardog to databricks connector (#PLAT-3681)
- Lazily perform the close and open operations on hashtables with spilling support (#PLAT-3677)
- Update transaction log config to use the combined log file wrapper rather than a single truncated log file (#PLAT-3598)
- Non-super user can change the password of super users if they are allowed to write to user (#PLAT-3531)
- Improve the optimization which turns unselective full-text search index scans to SPARQL filters (#PLAT-3423)
- Allow only superusers to use the diagnostic report remotely (#PLAT-3413)
- Constant optimizer ignores expressions in BIND (#PLAT-3383)
- Configuration option to specify the named graphs that contain SHACL constraints (#PLAT-3379)
- Named graph aliases should not add virtual graphs to local-only datasets (#PLAT-3264)
- Updates for memory management under continuous workload (#PLAT-3121)
- Improve estimations of very frequent chains with a constant on the right end (#PLAT-2921)
- VG SPARQL empty query should be optimized away (#PLAT-2801)
- Should raise a warning when pack.enabled=true, but license does not allow it (#PLAT-2697)
- Account for variables in BINDs and projections during cardinality estimations (#PLAT-2489)
- Ability to get database metadata without read metadata permissions (such as search.enabled) (#PLAT-2450)
- Turn on compaction filter optimization by default (#PLAT-2165)
- Use #pragma cardinality hint outside of join order optimization (#PLAT-1587)
7.8.3 Release (2022-01-20)
SHA256: 278009000b74958d1c1f39653cf3c516b79676dcf6d6f7ca1d40d169c197ad5d
Security Vulnerability
- Plan endpoint enables access to objects of sensitive properties (#PLAT-3504)
WARNING: If sensitive property feature is enabled and a user does not have the permissions for sensitive properties, that user should not be able to read the objects associated with the sensitive properties. However, in earlier verions, users could circumvent this restriction by using the plan query feature to read such objects. A user would still need read access to the database and their action would be logged in the audit log. Othere query forms (SPARQL, GraphQL and SQL) were not affected by this issue. With 7.8.3 release, executing plan queries respect the sensitive property permissions.
Modified System
- Upgrade log4j to 2.17.1 (#PLAT-3563)
- Server metrics should require dbms-admin permissions (#PLAT-3330)
- Require user to be a superuser in order to impersonate other superusers (#PLAT-3328)
- Require user to be a superuser in order to create other superusers (#PLAT-3321)
Fixed Bug
- Stored Query Service incorrectly propagates query results with unbound variables (#PLAT-3537)
- Filters can be incorrectly pushed into scopes with virtual graph patterns (#PLAT-3536)
- Incorrect inlining of a pattern with BIND as a start node pattern for property path (#PLAT-3453)
- Replacing constants in parameterized index scans can cause OOM error (#PLAT-3447)
- Incorrect push of a filter into OPTIONAL when a variable can be unbound (#PLAT-3430)
- Incorrect query plan reuse for hybrid reasoning queries (#PLAT-3378)
- Optimized path operators and bind joins can leak JVM heap memory (#PLAT-3372)
- NPE when creating a user if the super user field is not set (#PLAT-3322)
- Do not blindly reuse cached query plans for queries with different full-text search patterns (#PLAT-3307)
- Incorrect constant inlining from equality filter on top of BIND (#PLAT-3275)
- Incorrect inlining of a start pattern in a property path node (#PLAT-3268)
- Cannot bring a database online when search is enabled (#PLAT-3251)
- JWT Token not properly disabled (#PLAT-3460)
- Automatically detect the right setting memory mapped files on windows (#PLAT-3401)
7.8.2 Release (2021-12-16)
SHA256: 4e78ecc7d6a313080fb822f1c4d60f82cdec214fa34d93ab12611207f762b228
Security Vulnerability
- Upgrade log4j to 2.16.0 (#PLAT-3433)
WARNING: A second security vulnerability for log4j (CVE-2021-45046) was disclosed earlier this week. This vulnerability can be exploited if the attacker can manipulate the Thread Context Map (MDC) input data (would typically require direct access to JVM) and a non-default logging configuration using either a Context Lookup (for example, $${ctx:loginId}) or a Thread Context Map pattern (%X, %mdc, or %MDC) has been set up for Stardog. If you have modified the default logging configuration distributed with Stardog to use such patterns you should upgrade to this version.
7.8.1 Release (2021-12-10)
SHA256: a041f2104f9b5c90ffcb9b53c8debd53ec8c16424ff17427360dd11f798159b2
Security Vulnerability
- Upgrade log4j to 2.15.0 (#PLAT-3419)
WARNING: On December 9, 2021 a serious security vulnerability (CVE-2021-44228) was disclosed in the logging library Log4j. This vulnerability allows an attacker to execute code on a remote server. The 7.8.1 release upgrades the Log4j dependency to resolve this vulnerability.
7.8.0 Release (2021-11-17)
SHA256: bc66184d66b8aded1e14117c27fcb5beae54971dde199cdbc1c3e6be05486355
Added New Feature
- Graph analytics (GA) - (#PLAT-3319)
- Group sensitive properties for finer-grained access control (#PLAT-2713)
- Support custom entity extractors in SPARQL (#PLAT-2851)
- Search configuration option for word stemming (#PLAT-2854)
- Per-database Lucene tokenizer and token filter configuration (#PLAT-425)
- Extend clients to support editing metadata for a stored query (#PLAT-2776)
- Introduce new ICV option to limit violations per shape (#PLAT-1703)
Modified System
- Query list should show the shape being run for ICV validation reports (#PLAT-2925)
- Nested loop join should take advantage of sorted input (#PLAT-2910)
- Reuse index iterators for complex property paths (#PLAT-2839)
- Log progress report for SHACL validation (#PLAT-2653)
- Smarter inlining into property path patterns (#PLAT-2078)
- Improve performance of graph analytics algorithms (#PLAT-1968)
- Translate full-text search to filters for improved performance (#PLAT-1494)
- Optimize ASK/LIMIT queries for quick retrieval of first results (#PLAT-1405)
- Reuse index scans in bind joins, filters with EXISTS and path queries (#PLAT-373)
Fixed Bug
- Incorrect parameterization for queries with edge property patterns (#PLAT-3233)
- Possibly incorrect constant inlining in queries with edge property patterns (#PLAT-3226)
- VG with Cosmos DB cannot compare numbers of different type (#PLAT-3219)
- Services not supported in EXISTS blocks (#PLAT-3198)
- Only allow file-based db restore on single node clusters (#PLAT-3124)
- Repair may cause the cluster to become inconsistent (#PLAT-3075)
- Standby nodes do not shut down completely (#PLAT-3069)
- Continuous read/write workload might cause server to run out of memory (#PLAT-3058)
- Getting a connection to a database that doesn’t exist throws NPE in the cluster (#PLAT-3023)
- Execution of SQS with externally specified parameter fails (#PLAT-3012)
- Cluster nodes expelled after sending a create db API request with files without specifying copyToServer (#PLAT-2982)
- VG creation on Databricks / Spark SQL interprets table identifiers incorrectly (#PLAT-2948)
- Execution of multiple SQS calls fails (Unable to order service calls outputs) (#PLAT-2938)
- VG creation fails when JDBC driver raises exception during metadata retrieval (#PLAT-2872)
- Adding triple pattern to TO clause of MongoDB mapping causes incorrect query results (#PLAT-2835)
- Error from virtual graph when asking for exact database size (#PLAT-2660)
- Error creating virtual query plan when plan contains a VG that uses [] for identifier quotes (#PLAT-2646)
- Cached local NGs do not use cache to fufill request (#PLAT-2591)
- Cache create command fails but only after loading and parsing (#PLAT-2590)
- Possible system crash during shutdown due to late transaction rollbacks (#PLAT-2528)
- Java API - ResourceExistsException thrown when BinaryRDF is specified as output format during client side export (#PLAT-2302)
- TextMatch queries over cached nodes do not work with FROM clause (#PLAT-2268)
- VG MongoDB fails to filter with integer value (#PLAT-784)
- VG MongoDB query may return incomplete results (#PLAT-448)
- VG MongoDB support to cast from strings (#PLAT-134)
- Fix constant replacement in Stored Query Service patterns (#PLAT-3211)
- VG MongoDB query cannot be explained with JSON query plan (#PLAT-2923)
7.7.3 Release (2021-11-03)
SHA256: bfa1c65860da5c223309127bb2f588288de44dca0477ceff3d6caf76a9a18c1c
Fixed Bug
- Incorrect reuse of a cached plan for a query with Stored Query Service (#PLAT-3155)
- Leaked managed memory blocks on timeout in SPARQL Update (#PLAT-3054)
- Leaked managed memory blocks when preventing illegal access to named graphs (#PLAT-3053)
- Cache target removal doesn’t clear cached datasets from registry (#PLAT-3008)
- VG StackOverflowError when generating mappings with several thousand tables (#PLAT-3001)
- GraphQL schema generation fails for properties with range owl:Thing (#PLAT-2978)
- Constant replacement in BIND patterns may lead to an incorrect sort type (#PLAT-2950)
- GraphQL schema generation fails on class named ID (#PLAT-2949)
- Do not acquire the cluster admin lock for optimize (#PLAT-2907)
- Do not acquire the cluster admin lock to list all queries (#PLAT-2906)
- A node with databases should refuse to join an empty cluster (#PLAT-2926)
- Make DatabaseService exempt from NG security check (#PLAT-2913)
- Nested loop joins when the join key variable is bound to GetStatement result (#PLAT-2502)
7.7.2 Release (2021-09-01)
SHA256: 1b3ad3254c8d5996bd24c23238dcdb352b0b81aa649c687f8efdb23d0626836e
Added New Feature
- New CLI command and API method for renaming stored queries (#PLAT-2757)
- Support sqs:limit and sqs:offset in Stored Query Service (SQS) (#PLAT-2511)
Modified System
- Create HTTP endpoint for diagnostic reporting capabilities in single server (#PLAT-2773)
- Report actual operator cardinality in query profiling results (#PLAT-2727)
- Virtual transparency query improvements for type patterns (#PLAT-2041)
- Selectively canonicalize constants for query plan reuse (#PLAT-193)
Fixed Bug
- Restoring older backups with 7.7.1 works only under a new database name (#PLAT-2908)
- Dropping a db removes the metrics associated with another db (#PLAT-2887)
- Phantom database prevents node from joining (#PLAT-2883)
- Large GraphQL results can cause server to run out of memory (#PLAT-2880)
- GraphQL queries may return fewer results than set in the “first” directive (#PLAT-2848)
- Inlining patterns into property paths causes incorrect results of bind joins (#PLAT-2842)
- Large cardinality over-estimations with predicate variables (#PLAT-2840)
- GraphQL queries may return fewer results than graphql.default.limit (#PLAT-2833)
- Large transactions can leave a temporary directory behind (#PLAT-2814)
- Equality inliner binds variable to itself (#PLAT-2749)
- Queries try to target non cached datasets (#PLAT-2748)
- Stardog logs warning about being unable to load native library at startup (#PLAT-2683)
- Datasource column names with periods result in invalid SMS2 variables (#PLAT-2382)
- DB connection timing out while queries (or SHACL) are running (#PLAT-2381)
- NPE in virtual graph queries when optional variables appear in joins (#PLAT-2260)
- Update plan cache accordingly after SQ is renamed (#PLAT-2760)
- Create a metadata property to indicate a stored query group (#PLAT-2758)
- VG Google Sheets connector returns incomplete results when hitting rate limit (#PLAT-2622)
- Support client-generated query IDs (#PLAT-2506)
- Do not rewrite non-selective filters with IN into VALUES (#PLAT-2172)
7.7.1 Release (2021-08-04)
SHA256: 7ddd39b7ce61d313a44fa1499d856520831f263605bc05de4136671e3840ac05
Added New Feature
- Implement a virtual graph LDAP connector (#PLAT-2472)
- SPARQL query profiler (#PLAT-308)
- Implement a virtual graph Snowflake connector (#PLAT-29)
Modified System
- Enhance kernel config values logged during starrocks start up (#PLAT-2655)
- Enhance api-token-realm JWT issuers setting to use .well-known url if available. (#PLAT-2645)
- Cluster nodes return different results while a transaction is in progress (#PLAT-2639)
- Optimize evaluation order of filter expressions (#PLAT-2533)
- Add ability to send a native query directly to a data source (#PLAT-2471)
- Restrict number of and size of logging backup files (#PLAT-2405)
- Database backup does not include db permissions (#PLAT-1017)
Fixed Bug
- Reordering DISTINCT and ORDER BY prevents optimization of ORDER BY with LIMIT (#PLAT-2743)
- VG over REDSHIFT doesn’t use row count in cardinality estimates (#PLAT-2688)
- VG query with UNNEST operators gives error (#PLAT-2663)
- SHACL validation report does not propagate server errors back to the client (#PLAT-2654)
- Two performance issues: too few cores in container and missing patch within rocksdb 6.x (#PLAT-2595)
- Avoid the bind join when the join key is the target variable in a BIND operator (#PLAT-2561)
- Database fails to start with Corruption: SST file is ahead of WALs (#PLAT-2494)
- Push filter optimization incorrectly handles edge properties (#PLAT-2483)
- JSON Import: Differently-ordered keys produce different results (#PLAT-2414)
- Provide an error when literals and IRIs exceed their limits into the database (#PLAT-2187)
- query list run on cluster provides incorrect info in columns (#PLAT-1624)
- system.db.count has incorrect value (#PLAT-1495)
- Add default implementation of UserDefinedFunction.accept (#PLAT-2667)
- JSON-LD parser assigning same ID to bnodes from separate datasets (#PLAT-442)
7.7.0 Release (2021-07-07)
SHA256: ba3db495632dbd5b30a98414ca0f28692877b21657e2f0467e94cc6d60836dea
Added New Feature
- [Preview] Read-only mode for the cluster (#PLAT-157)
- Google Sheets virtual graph connector (#PLAT-2473)
- Change virtual transparency definition to be more consistent (#PLAT-2246)
WARNING: Stardog 7.7 changes the behavior of thevirtual.transparency
option, enabling some of the prior functionality at all times leaving a more well-defined function under the control of the option. The docs for the new definition can be found here and differences compared to earlier versions are explained here.
Modified System
- Regularly flush the WAL (#PLAT-2574)
- Server and database backups should not acquire cluster lock (#PLAT-2535)
- Performance degrades significantly once memory management is required (#PLAT-2532)
- VG should support zero-length property paths if the start or end node are defined (#PLAT-2485)
- Improve cardinality estimations for cyclic patterns (#PLAT-2071)
- Option to specify URI patterns for local entities (#PLAT-198)
- Improve error message when data file not found (#PLAT-150)
Fixed Bug
- VG query with Service Join might throw CyclicMetadataException (#PLAT-2644)
- Downgrade to 7.6.2 or earlier not possible (#PLAT-2606)
- Optimizer should remove hint from empty plan node (#PLAT-2581)
- CLI command not properly storing username when credentials come from a password file (#PLAT-2588)
- Incorrect handling of special graph IRIs (like stardog:context:default) in projections (#PLAT-2558)
- VG should return start node for zero-length property path with empty results (:start :missing* ?end) (#PLAT-2578)
- Standby registry may throw NodeExists exception due to race condition in cluster initialization (#PLAT-2560)
- VG source_metadata is sending Stardog properties to JDBC drivers which reject them (#PLAT-2552)
- RDF parse error cause cluster nodes unable to accept writes (#PLAT-2527)
- Change RDF/XML export file format (#PLAT-2491)
- Initialization failures when connecting to cluster nodes for replicating data may result in an inconsistent cluster. Found by Antithesis testing. (#PLAT-2404)
- Missing CONSTRUCT query results from cached graph (#PLAT-2395)
- Unbounded input variables when using stored query service with edge properties (#PLAT-2360)
- Log database name when rebuilding literal index (#PLAT-2176)
- Non-deterministic order of cardinality estimations (#PLAT-1199)
- Remove mentions of TRIX as an acceptable RDF serialization format (#PLAT-101)
- Change WAL to memory mapped IO (#PLAT-2573)
- #pragma join.type off hint does not support service joins (#PLAT-2525)
- Fix RocksDB GetFreeSpace() to have appropriate value for non-root users (#PLAT-2523)
- Configuration option for local IRI templates (#PLAT-2407)
- Create a query hint for materializing any arbitrary scope within a query (#PLAT-2372)
- VG coalescing should be applied to pushed filters (#PLAT-2050)
- Creating a cache target with use existing database flag as a user with a special character in their password throws error (PLAT-2353)
7.6.4 Release (2021-06-02)
SHA256: 3d847ed6eda8e6ee368f67dcb7e2f8e3eb36822237144b1f0f473041ee8f8c57
Added New Feature
- Add property functions for RDF list operations (#PLAT-1203)
Modified System
- Expose Id function for use in queries (#PLAT-2330)
- Query hint to disable plan cache (#PLAT-284)
Fixed Bug
- TermFrequencyServiceQuery declares incorrect output variable (#PLAT-2420)
- RDF Parse error leads to cluster nodes resyncing (#PLAT-2419)
- Cannot Bind URL to xsd:anyURI in VG Mapping (#PLAT-2406)
- Virtual transparency support for property paths when using a variable in a graph clause (#PLAT-2400)
- Race condition on cluster startup throws ZooKeeper NodeExists exception (#PLAT-2397)
- Server hanging while initializing VG registry (#PLAT-2394)
- Exception thrown when LDAP group does not exist - users cannot log in (#PLAT-2391)
- Inaccurate cardinality estimations for joins with property paths with inlined patterns (#PLAT-2348)
- Conjunctions in filter expressions prevent optimization of IN (#PLAT-2318)
- Reindexing literals with multiple threads fails when search is enabled (#PLAT-2317)
- Query plan caching can lead to incorrect results when GRAPH clause has variable argument (#PLAT-2245)
- Incorrect counting when the variable could be unbound (#PLAT-2203)
- NPE on virtual query with JOIN and WHERE (#PLAT-2188)
- Querying graph names produces duplicates with SERVICE (PLAT-1916)
- Bind declares all its variables as assured (#PLAT-1134)
- Very large updates against search-enabled databases might use too much memory (#PLAT-629)
- Invalid IRIs are inserted to the database via data add command (#PLAT-221)
- NiFi - Stardog Processor Expression Language Scope (#PLAT-2295)
- Make query plans useful for DELETE/INSERT…WHERE queries (#PLAT-1149)
7.6.3 Release (2021-05-07)
SHA256: eb82fd94816ceee8a0b40bd4f83a40655643c383e9f08a613c4262a12596a8eb
Security Vulnerability
- Backup should require admin permissions on the database (#PLAT-2294)
WARNING: Thedb backup
command when used with an S3 or GCP bucket target did not enforce the access control permissions allowing people with valid login credentials to create backups of databases for which they do not have read permissions. Starting with this releasedb backup
command requiresEXECUTE
permission onadmin
actions for the database. See the documentation for the details of the security model.
Added New Feature
- SPARQL correctness and performance testing functionality (#PLAT-867)
Modified System
- Detect and report active transactions during database optimization (#PLAT-2000)
- VG should test data source on creation (#PLAT-1834)
- Selective service is not pushed into UNION (#PLAT-1808)
- Support special graphs in named graph security permissions (#PLAT-1917)
Fixed Bug
- GroupBy operator incorrectly reports variables (#PLAT-2312)
- Missing variable values in results of correlated subqueries executed with Stored Query Service (#PLAT-2299)
- FILTER IN / VALUES rewriting can create unnecessary loop joins (#PLAT-2274)
- Queries return duplicates when owl:sameAs is enabled but schema reasoning is disabled (#PLAT-2267)
- SameAs reasoning queries with constants don’t return expected results (#PLAT-2265)
- VG virtual transparency not recognizing virtual graph IRIs when they are bound using VALUES or BIND (#PLAT-2258)
- SQS Query not working on SD 7.6.2 (#PLAT-2257)
- Explanations don’t work with sameAs inferences (#PLAT-2230)
- Path queries with various edge property representations produce bad results or don’t run (#PLAT-2192)
- Standby node registry may be lost from ZK 3.5+ when Stardog node disconnects (#PLAT-2168)
- Cache targets and query info may be lost from ZK 3.5+ when Stardog disconnects (#PLAT-2167)
- Attempting to query for edge properties on a database with it disabled throws an error (#PLAT-2137)
- SPARQL VG property sparql.graphname should be required (#PLAT-2109)
- Database state metric registered twice during restore (#PLAT-2101)
- VG CLI requires mappings file for import virtual graph (#PLAT-2046)
- Binding virtual graph in CLI query produces no results (#PLAT-2028)
- SHACL validation over virtual graphs returns empty results (#PLAT-1926)
- shacl.targetClass.simple setting does not take effect (#PLAT-1925)
- Data with edge properties not loading properly via CLI with geospatial or search enabled (#PLAT-1577)
- SPARQL update queries do not use optimized updater (#PLAT-2306)
- Hard-code explorer.stardog.com into CORS_ALLOWED_ORIGINS (#PLAT-2296)
- Capture Rocksdb 6 Performance degradations against Starbench (#PLAT-2277)
- Support efficient SHACL validation over cached virtual graphs (#PLAT-2270)
- Property inclusion list for search indexing (#PLAT-2154)
7.6.2 Release (2021-04-12)
SHA256: 12b72fbdbf745fc0f45902d3b1a0f3165526f4712064d004d88719551ce5602e
Modified System
- Disable license request command in CLI in favor of Stardog Free (#PLAT-2225)
- Update EULA for Stardog Free (#PLAT-2223)
Fixed Bug
- Fix rare race condition during db create/drop (#PLAT-2224)
7.6.1 Release (2021-04-07)
SHA256: b3b56f786abfe7446118aec739cc88475911c28fc14ee0d0e0dd01ad308e07e1
Critical Bug Fix
- Previously deleted triples re-appearing in database after
db optimize
(#PLAT-2124)
WARNING: Usingdb optimize
in earlier versions can in some cases make previously deleted triples partially visible. There are multiple indices maintained by Stardog and as a result of this bug the contents of indices can get out of sync resulting in incorrect query results. Databases on whichdb optimize
has not been used would not be affected. Using thedb verify
command would confirm definitively whether a database has been affected by this issue. Recreating the database usingdb backup
anddb restore
commands will fix the index inconsistency. The contents of the database will need to be manually inspected and cleaned up to make sure previously deleted triples do not exist anymore.
Added New Feature
- Support correlated (lateral) subqueries through Stored Query Service (#PLAT-1463)
- Allow custom loaders to be used at db creation time (#PLAT-2181)
Modified System
- Expose “sd-query-id” response header (for exposing SPARQL query ID on execute/update) (#PLAT-2209)
- Log more detailed db verify results (#PLAT-2162)
- Enable owl:sameAs reasoning as a standalone reasoning type (#PLAT-2025)
- Selectively invalidate cached plans for queries with Stored Query Service (#PLAT-1934)
Fixed Bug
- Stored queries can get out of sync if updated concurrently (#PLAT-2185)
- Cluster node unable to join the cluster due to ZK NoNode exception when using VGs with ZK 3.5+ (#PLAT-2166)
- Search.index.properties.excluded causes Duplicate key exception (#PLAT-2164)
- Stored Query Update does not persist between restarts correctly (#PLAT-2161)
- Nightly KG metrics query for connected nodes is timing out (#PLAT-2160)
- VG import fails with ‘Too many connections’ (#PLAT-2156)
- Setting search.index.stopwords to empty list triggers an error (#PLAT-2148)
- Bad cardinality estimations for patterns with VALUES (#PLAT-2130)
- Partial backup from db with inconsistent indexes fails to restore (#PLAT-2126)
- Deleted triples not vacuumed during optimize (#PLAT-2125)
- Cluster becomes inconsistent if user without create db permission restores a database (#PLAT-2115)
- Roles visible to users with any permission on the role, should require READ (#PLAT-2111)
- Invalid joins detected after reasoning (#PLAT-2110)
- Incorrect inlining of constants and patterns into zero-or-more property paths (#PLAT-2106)
- Bind join should inherit optimizer hints (#PLAT-2105)
- KG metrics fail when a database is offline (#PLAT-2103)
- Server hangs if it is stopped while data is loading (#PLAT-2100)
- Allocation failures can cause leaks of memory blocks used for query execution (#PLAT-2094)
- The db verify command fails with invalid index orders (#PLAT-2093)
- CSV import fails with NullPointerException if neither unique.key.sets property nor mappings provided (#PLAT-2076)
- Virtual import file fails with kerberos (#PLAT-2073)
- Users cannot list roles if the permission to read them is granted through a role (#PLAT-2062)
- VG query with window function generates invalid SQL (#PLAT-2033)
- Stored query remove CLI command always exits 1 (#PLAT-2019)
- Cluster may claim database was created but then reports it doesn’t exist. Found by Antithesis testing. (#PLAT-1993)
- SPARQL VG initialization failure prevents server startup (#PLAT-1976)
- Inlining equality filters sometimes doesn’t happen in OPTIONALs (#PLAT-1633)
- Filter equality inlining is not always correct for nested predicates (#PLAT-220)
- VG verbose explain should return relational and native queries (#PLAT-2143)
- Add support for Triangle Count (#PLAT-1966)
7.6.0 Release (2021-03-03)
SHA256: fb5116b14b140718e98c0ba7d69bb165f7340fecf61916693ce3c2dc54cc71be
Added New Feature
- Adds cluster diagnostics report command (#PLAT-1874)
- Support edge properties in virtual graphs (#PLAT-31)
- Improve bulk loading performance at db creation time (#PLAT-1949)
Modified System
- Kerberos authentication for NiFi connector (#PLAT-2023)
- Optimize joins with singleton BINDs and VALUES patterns (#PLAT-1985)
- Continue server startup procedure when some database cannot be initialized (#PLAT-1960)
- Refresh data source metadata (#PLAT-1930)
- Streaming statistics computation during database creation (#PLAT-1777)
- Server shutdown should wait till processes accessing storage finish (#PLAT-1600)
- Improve cardinality estimations for property paths (#PLAT-669)
- Optimize inter-VG queries with IRI templates (#PLAT-528)
Fixed Bug
- Server fails to return list of running queries under heavy load (#PLAT-2072)
- Search service unnecessarily materializes results in memory (#PLAT-2045)
- Query plan cache bug can lead to incorrect results when variable in projection is replaced by constant (#PLAT-2039)
- Query plans with service nodes fail to parse due to scope rendering (#PLAT-2009)
- Queries for CLI can take 10 seconds to terminate (#PLAT-2003)
- VG unable to load REDSHIFT data source on server restart (#PLAT-2001)
- VG optimizers cannot be disabled with hints (#PLAT-1999)
- Incorrect evaluation of FILTER NOT EXISTS within OPTIONAL (#PLAT-1991)
- Queries with ORDER BY might take a long time to cancel (#PLAT-1986)
- VALUES rewriting interferes with property path optimization (#PLAT-1974)
- Literal indexes not properly closed (#PLAT-1971)
- Disallow role creation when configured for LDAP (#PLAT-1969)
- Database drop is blocked indefinitely by active transactions (#PLAT-1961)
- Combinatorial explosion when analyzing patterns with detected cardinality mis-estimations (#PLAT-1931)
- Warning while dropping a database with search enabled (#PLAT-1920)
- Redundant UNIONs as path expressions in query plans with reasoning (#PLAT-1919)
- Make search options mutable (#PLAT-1945)
- Automatic model evaluation not performed by default (#PLAT-228)
7.5.1 Release (2021-02-10)
SHA256: 1f2c6275d33438e1e5cb992b1f188f937c7d0439075373f8c7d96d4506cd0839
Security Vulnerability
- Users without permissions can drop dbs if the request goes through non-coordinator nodes in the cluster (#PLAT-1992)
7.5.0 Release (2021-01-27)
SHA256: dcc13590fc041eec069511bc9f47db728c6ac9867c4fedc803afa8e04b75f13d
Added New Feature
- Graph Analytics (Beta) (#PLAT-11)
- Expose Stardog as a Spark dataset (#PLAT-318)
Modified System
- Show plans for stored queries executed through Stored Query Serivice (#PLAT-1922)
- Limit number of results retrieved through SPARQL Federation (#PLAT-1859)
- Improve performance of large transactions for LCW databases (#PLAT-1854)
- Support graph aliases as values of the graph parameter throughout Stardog APIs (#PLAT-1853)
- Streaming execution of SERVICE queries to SPARQL endpoints (#PLAT-1852)
- VG make options file optional in virtual add CLI when data-source is provided (#PLAT-1793)
- Refresh metadata counts (#PLAT-1685)
- Account for skipping cost in the cost model for direct hash joins (#PLAT-1675)
- Optimize property paths which do not distinguish start nodes (#PLAT-1623)
- Concurrent transactions are blocked when search is enabled (#PLAT-1509)
- Disable Lucene indexing based on properties (#PLAT-1118)
- Database metrics for size of full-text search and geospatial indexes (#PLAT-913)
- VG mapping generator should ignore inaccessible foreign keys (#PLAT-491)
- Full-text search option to include score explanation (#PLAT-434)
- VG variable predicate optimizations for MongoDB, Cassandra, Elasticsearch (#PLAT-192)
- Inline joined operators into complex property path operators (#PLAT-83)
Fixed Bug
- Better error messages for virtual import when arguments are incorrect (#PLAT-1904)
- VG query or import against PostgreSQL may fail with OOM (#PLAT-1884)
- Bind a SERVICE variable to a constant should preserve the variable’s name (#PLAT-1883)
- Stored Query Service may incorrectly initialise the dataset for the stored query (#PLAT-1881)
- Partial backups fail if the dictionary is invalid (#PLAT-1880)
- Incorrect use of HTTP trailers in chunked HTTP responses (#PLAT-1879)
- Updating LDAP config with Property Set CLI command fails with parameter values that contain spaces (#PLAT-1878)
- Cluster stop may indicate shutdown is cancelled for a node if the node drops from ZK too quickly (#PLAT-1868)
- KG metrics fails with LDAP enabled (#PLAT-1864)
- Inaccurate estimations for star-joins with object constants (#PLAT-1863)
- Cluster admin status API returns invalid JSON (#PLAT-1828)
- VG names missing when queried using virtual transparency with no triple patterns (#PLAT-1780)
- VG query fails when literals of length greater than 2048 are pushed in a service join (#PLAT-1779)
- Virtual graph “not available” or NPE thrown during materialization (#PLAT-1778)
- Role permissions are not cleaned up for LDAP groups (#PLAT-1760)
- Cluster status API returns invalid JSON (#PLAT-1718)
- VG queries take a very long time to terminate for jdbc sources (#PLAT-484)
- VG mapping query with left join on two tables with same field names throws exception (#PLAT-282)
- Deprecate reasoning undo command (#PLAT-1915)
- Deprecate support for OWL constraints (#PLAT-1914)
- Deprecate Sesame support (#PLAT-1913)
- Full text search option to show parsed Lucene query (#PLAT-1871)
- Allow configuration of Lucene “stop” words, word break chars (#PLAT-1836)
- Optimize INSERT/DELETE…WHERE evaluation when WHERE generates duplicate results (#PLAT-1659)
7.4.5 Release (2020-12-16)
SHA256: 93f6ad2c528c885315d3f2867152a0566b8624c592a61795d4538ee3390813d2
Security Vulnerability
- Disabling query timeouts by setting the option query.timeout.override.enabled to false allows users with read permissions to update databases (#PLAT-1823)
- VG allows removing data source with virtual graphs without DELETE permissions on virtual-graph (#PLAT-1796)
- VG allows data source overwrite without requiring DELETE permissions on data-source (#PLAT-1795)
Added New Feature
- Adds ephemeral API security tokens as an authentication mechanism (#PLAT-1738)
- Support named graph aliases (#PLAT-248)
Modified System
- Improve VALUES rewriter’s interaction with SERVICEs (#PLAT-1802)
- VG to online data source directly rather than only the virtual graph (#PLAT-1785)
- Overwriting data source should refresh dependent graphs (#PLAT-1697)
- Allow cache nodes to be created out-of-band (#PLAT-1630)
- Algebraic rewriter should push selective patterns in scopes with property paths (#PLAT-1612)
- Coalesce query scopes before the main query optimisation phase (#PLAT-1609)
- Improved cardinality estimations for spatial functions (#PLAT-1596)
- Stored Query Service query plans should display input constants (#PLAT-1486)
- Estimate and report approximate Virtual Graph sizes in the metrics (#PLAT-1473)
- Support writing query results directly to a stream (#PLAT-281)
Fixed Bug
- Typed literals are not serialized correctly in TSV query results (#PLAT-1843)
- Virtual Graphs not associated with a database cause a NPE when added as a cache dataset (CLI). (#PLAT-1842)
- VG causes cluster restarts when adding a NoSQL graph (#PLAT-1840)
- Bind join class cast exception failure in SPARQL* (#PLAT-1838)
- VG is not starting if NoSQL source is offline (#PLAT-1833)
- VG online with shared data source not also onlining the data source (#PLAT-1819)
- ForkJoinPool initialization fails when 1 cpu is available to Java (#PLAT-1818)
- Spaces in pack zookeeper address string cause UnknownHostException (#PLAT-1816)
- CSV import fails to BIND with IF expression containing unbound variables (#PLAT-1814)
- VG remove data source in cluster does not fully remove dependent virtual graphs (#PLAT-1801)
- SPARQL* query fails with owl:sameAs reasoning (#PLAT-1800)
- VG overwrite data source not working in cluster mode (#PLAT-1799)
- #pragma reasoning off is ignored when owl:sameAs reasoning is enabled (#PLAT-1798)
- Reasoning queries may fail with reasoning.type = NONE set in the database options (#PLAT-1797)
- GMean can produce incorrect results with memory management enabled (#PLAT-1791)
- SHACL report not respecting sh:message for SPARQL constraints (#PLAT-1774)
- Spilling files not deleted in case of query execution failures (#PLAT-1771)
- SUM returns incorrect results with memory management enabled and mixed data types (integer/decimal) (#PLAT-1717)
- Server crash during a transaction leaves dictionary in inconsistent state (#PLAT-1676)
- Nearby and within functions do not work with shapes defined in the query (#PLAT-1662)
- Support EXISTS expressions in the plan parser (#PLAT-1658)
- Create a dynamic memory budget (#PLAT-1653)
- Corrupted backup after running out of disk (#PLAT-1645)
- SPARQL* joins evaluated incorrectly with FROM (or external dataset) (#PLAT-1610)
- Stored Query Service: some bound variables not returned (#PLAT-1534)
- Retry cluster partial sync from another node before falling back to a full sync (#PLAT-212)
7.4.4 Release (2020-11-11)
SHA256: 9756d441f096ae1d96f8a038ffdebc5d0b868d88084d6b11b7361faacc94ca70
Added New Feature
- Support higher-order functions over paths (#PLAT-1762)
- Support data sources in cluster (#PLAT-1681)
- SPARQL plan evaluation endpoint (#PLAT-504)
Modified System
- Optimize memory footprint for path queries running through the Stored Query Service (#PLAT-1705)
- Support mappings multiple LDAP groups to a single Stardog role (#PLAT-1694)
- Security for data sources (#PLAT-1682)
- Make query rewriting cancellable (#PLAT-1457)
- VG cache datasource metadata (#PLAT-283)
- Put less values in the query dictionary (#PLAT-256)
- Support timeout/kill operations for queries in the pre-execution state (#PLAT-183)
Fixed Bug
- VG that uses shared data source does not invalidate query cache when virtual graph removed (#PLAT-1788)
- VG can return NullPointerException when removing a virtual graph that doesn’t exist (#PLAT-1769)
- Named Graph Security interferes with Stored Query Service (#PLAT-1759)
- KG metrics fails with Named Graph Security (#PLAT-1758)
- 7.4.2 connection issues with Tableau (#PLAT-1752)
- Stardog server crashes silently during startup when open file limit is exceeded (#PLAT-1695)
- Reclaim storage on database drop (#PLAT-1667)
- Improved performance of geof:distance (+ added geof:shape and geof:point) (#PLAT-1664)
- Query explain fails when a reasoning operator appears in EXISTS (#PLAT-1642)
- geospatial geof:nearby is producing results inconsistent with geof:distance (#PLAT-1562)
- Integrate repair functionality into backup process (#PLAT-292)
- BI Server failing to connect to Tableau when db has invalid mapping (#PLAT-1751)
7.4.3 Release (2020-11-04)
SHA256: 0e5a8d36bb1fce064fdfdb391c608586def7923352acdc3ef14fc96255523fed
Fixed Bug
- VG unable to restart for unrecognized SQL dialects (#PLAT-1764)
- Virtual Graphs are lost during 7.4.2 upgrade (#PLAT-1763)
- JDBC data source can fail to reload if it has multiple unique or foreign keys (#PLAT-1736)
7.4.2 Release (2020-10-23)
SHA256: b86698881cc30367bf23a853d4c25d0ccf6e4f9a547c4ab0b52f54b4d85ce8f7
Added New Feature
- Add preview support for ZooKeeper 3.5 (#PLAT-1529)
Modified System
- Provide index verification command to check data integrity (#PLAT-1672)
- Contents of dropped database might come back after recreation (#PLAT-1666)
- BI server support for direct SSL connections (#PLAT-1665)
- Add cluster node role to the cluster status api (#PLAT-1660)
- Remove deprecated zk start and zk stop commands (#PLAT-1597)
- Decouple VG connection as a separately managed resource (preview - standalone only) (#PLAT-700)
- Support for Databricks (and Spark SQL) (#PLAT-4)
Fixed Bug
- Error Connecting to BI Server - Failed to load metadata:null (#PLAT-1701)
- Dropped database might not be cleaned up (#PLAT-1696)
- Server fails to start due to duplicate CFs (#PLAT-1674)
- Dropping database during ICV validation causes server to crash (#PLAT-1673)
- Alternative key elimination in joins can lead to large cardinality overestimations (#PLAT-1668)
- OOM more likely if Stardog starts with empty home (#PLAT-1648)
- Query execution failure from a bind join on a graph variable (#PLAT-1647)
- VG support for HTTPS connections to Elasticsearch (#PLAT-509)
- VG for Elasticsearch is ignoring username and password properties (#PLAT-378)
- SHACL report with limit of 0 returns
sh:conforms true
when violations in the db exist (#PLAT-40)
7.4.1 Release (2020-10-07)
SHA256: c6f57e6eaa0fec1346b9a52b95a4b94b1c5bb60cbaf0869ee9f6e425936a0bfb
Added New Feature
- Added SSL support in the BI/SQL server (#PLAT-1541)
- Provide a set of knowledge graph metrics (#PLAT-9)
- Make server properties editable without restarting the server (#PLAT-3)
Modified System
- Option to change the default Lucene query parser behavior to AND (#PLAT-1605)
- Improved variable substitution in VALUES (#PLAT-1591)
- Upgrade ZooKeeper to 3.4.14 (#PLAT-1589)
- Remove deprecated zkstart and zkstop commands (#PLAT-1567)
- Deprecate stardog-admin zk start and stop commands (#PLAT-1566)
- Change Stardog docker image permissions to run as non-root by default (#PLAT-1508)
- Extract path independent patterns from path queries (#PLAT-1029)
- Push selective patterns into OPTIONALs (#PLAT-718)
- LDAP support new role mappings without restart (#PLAT-360)
- Tableau Connection - MySQL Date Format Error (#PLAT-242)
Fixed Bug
- Encryption-at-rest REST API has secrets in the path (#PLAT-1608)
- BI server causes cluster sync issues (#PLAT-1595)
- Empty node optimisation interferes with constant inlining (#PLAT-1586)
- Tool-dependent errors connecting to the SQL interface (#PLAT-1448)
- Diagnostics report does not include rocksdb logs (#PLAT-1434)
- BI server throws BufferOverflowException on large result rows (#PLAT-216)
- Cost model incorrectly assesses skip cost when BIND nodes are involved (#PLAT-1622)
- Plan parser incorrectly parses query plans with complex BIND expressions (#PLAT-1620)
- Stardog is not seeing new users as they are added to LDAP (#PLAT-1618)
- VG query fails with NPE in RelMetadataQuery (#PLAT-1582)
- BI server query fails with CONCAT of two literals (#PLAT-1575)
- Thread refitting errors during db optimize command (#PLAT-1564)
- ML training (incl similarity index) may keep files open after deletion (#PLAT-1558)
- Full-text search scores are equal for documents of different lengths (#PLAT-1549)
- VG import failure due to DB connection timeout (#PLAT-1527)
- db create man pages options has misleading description (#PLAT-638)
7.4.0 Release (2020-09-09)
SHA256: e2f3f886ab58433999aabc7944dec320af9e96c57a5623c51d3e8ad7bee9750c
Added New Feature
- Stardog connectors for Apache NiFi (#PLAT-1557)
- Allow restoring to a version different than the last backup (#PLAT-1524)
- BI server support for LDAP authentication (#PLAT-1456)
- Stored Query Service (GA)
Modified System
- Support query dataset overriding in Stored Query Service (#PLAT-1466)
- Push selective patterns into OPTIONALs (#PLAT-718)
- Upgrade Curator to 4.2 (#PLAT-641)
- Add missing xsd:long cast function (#PLAT-363)
- Return edge properties from DESCRIBE queries (#PLAT-353)
Fixed Bug
- Cluster node that fails to get all queries is expelled (#PLAT-1493)
- Periodic unauthorized exception in cluster causes a node to be expelled (#PLAT-1492)
- SHACL validation explanation not displaying report from icv.active.graphs (#PLAT-1453)
- truncated result set due to memory limit (#PLAT-1446)
- Report semantically invalid path queries early (#PLAT-795)
- Cannot execute statement in transaction as read-only user (#PLAT-254)
- BI server cannot be queried by read-only user (#PLAT-253)
- Connections run ICV validation after read-only queries (#PLAT-1555)
- SHACL validation StackOverflows with recursive imports (#PLAT-1533)
- Size of the server backup folder grows without limits (#PLAT-1523)
- Database creation with server-side files fail with the CLI (#PLAT-1516)
- Do not reuse query plans using indexes unavailable after adding data (#PLAT-1513)
- Missing cardinality estimation for a binary index size (#PLAT-1502)
- ArrayIndexOutOfBoundsException during SPARQL update (#PLAT-1501)
- Memory managed dictionary incorrectly increments the local ID counter (#PLAT-1496)
- stardog:nodes function works incorrectly when paths are traversed backwards (#PLAT-1490)
- stardog-admin.bat not exiting when a license is not found (#PLAT-1488)
7.3.4 Release (2020-08-05)
SHA256: e0fb01672f57e39415baf3acecea5a4e7e7d367f378613c5c314ee4aa2735d69
Security Vulnerability
- Plan cache interferes with property-based data protection (#PLAT-1409)
Modified System
- Add a database option to disable dictionary vacuuming for search index optimization (#PLAT-1447)
- Optimize stardog self-federation (#PLAT-1418)
- Complex 0+ property paths are sometimes treated as operators generating unordered output (#PLAT-1417)
- JSON import slow with many large arrays (#PLAT-1416)
- Push selective services into nested scopes (#PLAT-1415)
- Rewrite filters with disjunctions into unions (#PLAT-1322)
- Complex 0+ property paths are sometimes treated as operators generating unordered output (#PLAT-616)
- Introduce option for more accurate spatial results (#PLAT-557)
- Full-text search option to include score explanation (#PLAT-434)
- BI server should log a warning for any table mapping which can’t be realized (#PLAT-433)
- Improve optimize message (#PLAT-1433)
- Switch DESCRIBE to lean solutions (#PLAT-1419)
- Simplify the query cancellation mechanics (#PLAT-97)
Fixed Bug
- Invalid index order on a query enumerating named graphs with VALUES or FILTER (#PLAT-1425)
- Push down rewriting does not happen on query1 of the LDBC SNB benchmark (#PLAT-1414)
- Leaked connection to system index on db create (#PLAT-1413)
- xsd:gYear not inlining correctly (#PLAT-1411)
- VG Cassandra not escaping quote in string literals (#PLAT-1410)
- Erroneous query results with bind join and reasoning with unbound predicates (#PLAT-1407)
- JSON-LD parser assigning same ID to bnodes from separate datasets (#PLAT-442)
- VG with Kerberos config may conflict with HTTP server auth (#PLAT-423)
- JSON-LD results buffered in memory (#PLAT-372)
- Provenance will not return if any VG is unavailable (#PLAT-138)
- SERVICE query with a GRAPH block containing VG does not get evaluated properly (#PLAT-96)
- Backup event not stored in the audit log (#PLAT-71)
- Broken bsbm100m_updates tests after an encryption commit to Rocks (#PLAT-65)
- Stored query service fails with path queries which exceed the memory managed dictionary threshold (#PLAT-64)
- Database offline should cancel search index rebuild (#PLAT-1431)
7.3.3 Release (2020-07-21)
SHA256: e85bd15e8d2f6c6b06a8f703b7f3ca4b9578b0bbc859f00b2646dbaf026892ea
Security Vulnerability
- Changing password only requires read permission for the user (#PLAT-1437)
7.3.2 Release (2020-07-01)
SHA256: cfc0436fab1ca6ce047ff7c3733b445db355db8e69763bf4757db6dfe3b671bc
Added New Feature
- Property-based access control to mask sensitive data (beta) (#9262)
- In-memory numerical literal index to improve range queries (beta) (#8984)
- Stored query service (beta) (#8703)
Modified System
- Remove deprecated Helm charts from the release zip (#9258)
- VG support for comparing xsd:string and rdf:langString (#9144)
- VG translation of STRLANG function (#9143)
- VG support lang tag in concat function (#9142)
- VG should not concat IRI types (#9136)
- Improved cardinality estimations for DISTINCT with multiple variables (#9116)
Fixed Bug
- Nary join plan node does not preserve the order of operands (#9270)
- Filter IN optimizer does not prevent plan caching (#9255)
- Estimations of star joins with constants in the object position shouldn’t be treated as accurate (#9240)
- Lower casing of hint values creates issues for #pragma equality.identity (#9236)
- DELETE/INSERT WHERE queries not respecting NG security permissions (#9235)
- Push filters optimization incorrectly handles EXISTS in BIND (#9232)
- ICV report interprets –shapes incorrectly (#9230)
- Config option query.timeout.override.enabled is ignored (#9229)
- Missing mandatory fields in kernel events related to stored queries (#9222)
- Client libraries attempt to access environment’s SSL trustStore when not using https (#9220)
- VG can throw exception translating constant boolean values (#9208)
- VG creation on MongoDB fails if mapped collection is a view (#9207)
- Bind join produces incorrect results (#9200)
- Slow hash joins over skewed data (#9199)
- VG query with NULL boolean term in SQL query errors on Hive (#9198)
- VG on Redshift or Hana can create invalid SQL when CONCAT used with IS NOT NULL (#9197)
- Dropping a database should safely cancel ongoing operations (#9193)
- Make spilling procedure resilient in case of disks with very low IOPS (#9186)
- VG may treat NULL fields as empty strings when concatenating (#9185)
- VG creates improper syntax for IS NOT TRUE expression on some dialects (#9184)
- VG does not escape single quotes properly on BigQuery, Impala (#9182)
- Incorrect evaluation of property path without variables inside FILTER EXISTS (#9181)
- VG returns empty string as NULL on some dialects, single blank on others (#9171)
- VG translates BOUND to invalid SQL on some dialects (#9170)
- Index out of bounds error on a query with GROUP BY (#9150)
- VG can equate types of xsd:string and rdf:langString (#9091)
- VG mapping with nullable field for string lang can fail to join as expected (#9088)
- CSV import should allow commented out lines (#6712)
- Virtual graph queries may equate two strings with different languages (#5345)
- Virtual graph queries using Lang() function may not return a value (#5188)
7.3.1 Release (2020-06-03)
SHA256: 3e0add588b908f3790dd224fefeb5324edf854a607f099a3653e9815c91fca8a
Security Vulnerability
- BI server queries don’t respect named graph security (#9026)
Added New Feature
- Encryption at rest (Feature Preview) (#9178)
- Increase the maximum length of a role and user name (#9006)
Modified System
- Rebuild the full-text index when search.optimize = true is used for “db optimize” (#9148)
- Audit log tail always starts from the beginning of the file (#9146)
- Improve update performance by utilizing more cores (#9113)
- Upgrade Apache Jena dependency to 3.14.0 (#9053)
- BGP representation for query hints (#8983)
- Memory distribution over various components can be specified in stardog.properties (#8878)
- VG Queries : Fetch from original source, when multiple retries to connect to cached database fail (#8852)
- Make named graph parameters in CLI consistent (#7552)
- Log print –tail option should print only the tail (#3192)
Fixed Bug
- Rare IllegalArgumentException errors on queries where ORDER BY variables have empty string values (#9131)
- Missing query plan in the log upon timeout or kill (#9128)
- langString comparisons are prioritizing lang over value (#9124)
- SPARQL move query causes a cluster node to be expelled (#9110)
- SPARQL move query might cause cluster nodes to get out-of-sync (#9108)
- Database without metadata prevents server from starting (#9102)
- Do not allow regular users increase query timeout value (#9098)
- Missing results for property paths in SERVICE (#9092)
- VG error on expression using var bound outside service (#9085)
- VG error using boolean expression of two LANG functions (#9084)
- Database connections should not time out during read query execution (#9071)
- Suppressed error when a query times out during the optimization/reasoning phase (#9067)
- Some database storage metrics are lost after a server restart (#9057)
- Degrading read performance after adding and deleting a large named graph (#9056)
- Interrupt connectable components cleanly when the server is shutting down (#9049)
- Hash join should check cancel flag while iterating over materialized hashtable (#9046)
- Invalid IRIs cause cluster nodes to get out-of-sync (#9043)
- Standby node throws NPE if unable to determine cluster coordinator (#9034)
- A query with DISTINCT and some unused variables gets into an infinite loop (#9031)
- Make user-facing database options readable (e.g. query.dictionary.overflow.threshold) (#9030)
- Joins with variable predicates return no results (#9023)
- Projection with * is not expanded correctly for VALUES after WHERE (#9018)
- SPARQL queries with aggregation may sometimes fail to obey timeouts/kill commands (#9010)
- Bulk loading huge datasets might cause OOM (#8963)
- Remove VCS commands from CLI and API (#8708)
- Support SSL for intra-cluster communication (#8668)
- Disable direct IO for transaction log when file system block size is too large (#8662)
- security.named.graphs option being stored as a String (#8494)
7.3.0 Release (2020-05-06)
SHA256: 62ffbc835a9a549aeb76f0f0dfd333f326d392a72040e57d021db570067fe25d
Added New Feature
- SHACL validation of data in Virtual Graphs (#8836)
- Stardog 7 Windows beta support (#8810)
- Support Metabase in the BI/SQL server (#8773)
Modified System
- Add option to include provenance of virtual graphs when generating data models (#9029)
- Deprecate Helm charts (#9012)
- Optimizer hint for cardinality of query patterns (#8982)
- Make Stardog 7 server compatible with Stardog 6 client (#8941)
- PooledConnection should perform a release on close (#8914)
- Only cluster members can perform admin actions (#8891)
- Expose named graph size statistics via SPARQL (#8883)
- Expose RocksDB statistics before a Stardog database is created (#8879)
- Sign and notarize native libraries for macOS (#8849)
- AWS Marketplace License Limit (#8825)
- BI server queries should appear in list of running queries (#8808)
- Expose the list of supported query hints in SPARQL Service Description (#8790)
- VG connection pool default timeout set to 10 seconds (#8782)
- Update graphql-java dependency to version 14.0 (#8736)
- Generate data models from VG mappings (#8734)
- Improve performance of dictionary restore (#8730)
- Correct the value of dbms.memory.direct.buffer.used metric (#8705)
- VG drop support for ES mapping types (#8569)
- VG query with LIMIT may retrieve more data than necessary (#8464)
- VG push aggregations into virtual import (#8154)
- BI server support for KILL QUERY command (#8093)
- File parsing error on CLI doesn’t name file with error (#7852)
- Create an optimiser hint for query decomposition (#6509)
Fixed Bug
- Queries with bnodes in a graph position fail (#8990)
- RDF4J: getStatements(subject, predicate, object, contexts…) is always evaluated with reasoning (#8989)
- Server backup location specified on the cli is not replicated in the cluster (#8986)
- Constant inlining fails for the term frequency service (#8968)
- HTTP connection with EXACT_SIZE ignores uncommitted changes (#8951)
- RDF4J - StardogRepositoryConnection.size() should operate on the entire repository (#8950)
- Unnecessary context scan added to EXISTS patterns within a graph keyword (#8947)
- Binding constants to variables in rules leads to reasoning errors (#8926)
- CLI doesn’t print very good information when CSV import mappings file is missing (#8889)
- Bnode in update queries cause cluster inconsistency (#8885)
- Standby node should not replicate backup to the cluster (#8868)
- Unnecessary de-duplication for scans with graphs bound to a parameter value (#8858)
- VG query against MSSQL with ORDER BY and LIMIT may fail (#8853)
- IllegalArgumentException encountered when attempting to BIND a regex (#8841)
- Cache Target fails to initialize with CuratorFactory implementation not found (#8824)
- BI server query may fail using TIMESTAMP function with nullable argument (#8822)
- BI server exception with str_to_date function (#8809)
- Improve responsiveness to query kill commands for complex property paths (#8799)
- BI server generated mappings may function differently than equivalent exported mappings (#8793)
- Get reasoning schema ignoring input schema (#8761)
- GraphQL schema generation fails for object properties without a range (#8710)
- GraphQL schema generation fails if namespaces are not registered (#8709)
- Virtual transparency queries are reused with different constants in object position (#8697)
- BI server connection fails when any user-visible database is offline (#8555)
- RDF4J bug: getStatements returning statements from non-specified contexts when the context specified is of BNode value (#8487)
- Broken pipe error in rdf4j connection (#8422)
- VG query generates invalid SQL when DISTINCT used with no fields (#8220)
- Virtual graph queries may not push joins (#8125)
- BI server mapping validation improvements (#7971)
- VG boolean functions can return wrong type (#7538)
- VG access requires READ permission (#7536)
- Export virtual graph does not respect permissions (#7521)
- VG export mappings ignores
parser.sql.quoting=ANSI
(#7059) - VG MongoDB queries ignore silent argument in SERVICE block (#6256)
- Context index query returns duplicate results (#4192)
7.2.1 Release (2020-04-01)
SHA256: c1727225a3f0f368d8a0549ac10f11db27bf930a96c3ef180c07c8457551a7eb
Added New Feature
- Runtime support for Java 11 (#4425)
Modified System
- Remove XGBoost (#8716)
- Improve memory utilization while loading large datasets (#8679)
- Make different statistical components available as they are computed (#8672)
- Loading files over HTTP introduces slight overhead (#8649)
- Stop polluting the dictionary with path literals (#8642)
- Finish database creation before statistics is computed (#8636)
- Enforce limits on the amount of memory consumed by a query (#8618)
- Provide metrics for query memory consumption (#8617)
- Query endpoints should accept a query param specifying results with prefixes (#8606)
- Allow pretty turtle buffer size to be modified by user (#8599)
- Split the {db}.txn.size metric into {db}.txn.add.size and {db}.txn.remove.size (#8478)
- Add an option to disable empty checker in the reasoner (#8332)
- VG JSON import support for constant templates and zero-arg functions (eg BNODE) (#8192)
- Fall back to less accurate estimations when chain statistics is not available (#7960)
Fixed Bug
- Rename txns.speed metrics to txns.latency since they measure latency (#8733)
- Failure to cancel the indexing phase of bulk loading process (#8714)
- CSV import fails with non-string constant in SMS1 mappings (#8711)
- Server backup creates the backup on a single node in the cluster (#8690)
- VG fails with cannot infer return type for COALESCE (#8686)
- VG query execution failure should report root exception message (#8683)
- Avoid closed stream exceptions when graph query results are closed immediately (#8678)
- Cluster may be unable to start in k8s if one or more nodes are out of sync with ZK (#8674)
- Events in the audit log are not always ordered (#8666)
- VG query with BIND in OPTIONAL binds variable without optional match (#8665)
- USER LIST exception from non-superuser when listing users with permissions to all resources (#8654)
- LDAP prevents server start if username has special characters (#8630)
- Data model HTTP endpoint does not support content negotiation (#8627)
- SHACL is not recognized as an output format for data model command (#8626)
- RDF4J broken pipe issue on some long connections (#8601)
- VG SQL query may perform slowly with variable predicate and single triples map (#8596)
- Loading large data sets may cause the healthcheck to fail due to resource exhaustion (#8595)
- ICV API calls do not complain about non-existent database name (#8515)
- Incorrect count query with SERVICE and graph (#8514)
- Repeated modifications of same named graph sees performance degradation (#8492)
- Write Conflict causes node to be evicted in cluster mode (#8399)
- VG error message doesn’t indicate root cause (#8130)
- VG unsatisfiable filter may generate invalid SQL query (#7496)
- VG support for MariaDB (#6913)
- Virtual graph may infer wrong type for SQL function used in mappings (#5024)
- Plan cache is now cleared when database is taken offline (#3772)
7.2.0 Release (2020-03-04)
SHA256: 187b379a90d798ab45b165eced15e619877acd1d5b317db64a0e486b98bfb3fa
Security Vulnerability
- Potential connection hijacking when Stardog is configured with Kerberos and a Load Balancer (#8605)
Added New Feature
- Create a CIM database archetype (#8579)
Modified System
- Support file-based archetypes (#8578)
- Inspect OWL restrictions during data model generation (#8563)
- Support generating SHACL constraints from data models (#8562)
- Serialize implicit SHACL class targets as types (#8560)
- License info does not show error details (#8558)
- Preserve user-submitted GraphQL schema serialization (#8554)
- VG support for Elasticsearch 7 (#8553)
- Include thread dumps as part of server metrics (#8551)
- Virtual graph support for Salesforce (#8542)
- Disable the server profiler by default (#8493)
- Add server metrics for spilling (#8489)
- Security check leads to stream source being read twice (#8480)
- Split the {db}.txn.size metric into {db}.txn.add.size and {db}.txn.remove.size (#8478)
- Add method for updating existing GraphQL schemas over HTTP (#8470)
Fixed Bug
- VG import file –remove-all option deletes all graphs (#8593)
- Commit events are not logged in the audit.log (#8587)
- ORDER BY error on data with RDF literals having user-defined datatypes (#8580)
- Bad loop join in a plan with direct hash join and VALUES (#8575)
- ShaclReader fails to recognize implicit targets defined in named graphs (#8574)
- Auto-generated data models should not have duplicated properties (#8561)
- VG creation fails when two FKs reference the same field in parent table (#8545)
- Admin connections from the HttpConnection object can use default admin credentials when a user name and password is specified (#8539)
- VG NPE for missing unique keys with Elasticsearch (#8535)
- Auto schema source options don’t show up in Studio (#8533)
- Inline SHACL constraints are not returned by icv export (#8532)
- Several places not encoding/decoding with UTF-8 (#8530)
- VG import should recognize SMS2 extension (#8528)
- BI/SQL: query translation fails on year ranges (#8516)
- Fail to create database with incorrect database archetypes (#8513)
- Sparql LOAD operator tries to get RDF format incorrectly (#8508)
- Allow graph queries change context for triples with edge properties (#8504)
- Lexical Error when String literal contains multiple of 4 backslashes in middle of characters (#8497)
- Setting parameters in path queries may be incorrect (#8495)
- Edge properties parsing may fail after fixing a syntax error in Turtle/TriG (#8490)
- VG NPE reading ElasticSearch index with Object data type (#8484)
- RDF4J bug: Stardog throws a RepositoryException when passing null value context to a RepositoryConnection’s size method (#8482)
- HTTP PUT should override existing GraphQL schema (#8481)
- VG generating mappings for delimited files fails when no header record present (#8473)
- Wrong indexes used in queries with aggregates with distinct (#8463)
- RDF4J hasStatement not querying all contexts by default (#8462)
- RDF4J Repository does not re-initialize (#8461)
- Search space restrictions lead to sub-optimal query plans (#8441)
- LDAP user dn templates should be case insensitive (#8418)
- VW training fails with Oracle JDK on RHEL with unable to build model: std::bad_cast (#6638)
7.1.2 Release (2020-02-03)
SHA256: 263d5387472f68b2629dc0fb7c1a1768fb447082e67f4016bbd61cc7b22213e7
Added New Feature
- Kerberos authentication for cluster peer to peer communication (#8457)
- Automatic schema generation/translation (#7991)
- SMS2 support for CSV files (#6872)
Modified System
- VG auto-generate mappings for CSV import (#8458)
- Log when a supported OS is not detected (#8343)
- Slow path query on movies data (#8186)
- Improve pushing patterns into reasoning operators (#7015)
- Inline constants into OPTIONAL patterns (#3789)
- Import CSV files on the server side (#3271)
Fixed Bug
- Non-deterministic array OOB error in the dictionary on large updates (#8413)
- Repeated checks for single context inside index reader are slow due to MVCC cache misses (#8403)
- Optimizing a db with icv enabled throws NPE (#8402)
- JSON import may create wrong statements from nested object arrays (#8398)
- krb5 causing stored query overwrites to fail (#8389)
- OWL schema operator incorrectly handles child patterns (#8368)
- RDF4J swallows exceptions (#8340)
- Error messages are swallowed (#8273)
- SPARQL renderer doesn’t put hints in a block (#8230)
- VG JSON import with BIND(IN) returns incorrect result (#8225)
- Setting database option incorrectly cause the database to be lost (#8070)
- Full-text search not supported in path queries (#7774)
7.1.1 Release (2020-01-08)
SHA256: 9f3947a9e7772b21b22a1381064058ac481a3883b07856d4d6fa998a176d18f0
Security Vulnerability
- LDAP cache permits access with invalid credentials (#8371)
Modified System
- Use namespaces for serializing statements in CLI table results (#8318)
- Search connection does not need deleted triples (#8021)
Fixed Bug
- Add missing database metrics to Prometheus output (#8373)
- Reasoning queries against non-existent graph throws exceptions (#8355)
- “No separator found in URI” error with blank nodes (#8346)
- SPARQL order by subject throws an exception with edge properties (#8337)
- SPARQL graph management queries fail with edge properties (#8336)
- Database with reasoning schemas cannot be backed up (#8235)
user list
permissions not applying correctly (#8207)- Inefficient retrieval of database options (#8123)
7.1.0 Release (2019-12-12)
SHA256: 6f31547d9776249e95a699622a845522e7342b8f676231f2d87ab8d2774aab2c
Added New Feature
- Support for edge properties in RDF and SPARQL (#8294)
Modified System
- DB creation endpoint should accept properties file (#8295)
- Basic query optimization for edge property patterns (#8275)
- BI server support for DATE/TIME/TIMESTAMP functions (#8242)
- BI server support for EXPLAIN command (#8232)
- BI server compatibility with MySQL Workbench (#8222)
- VG online command for unavailable virtual graphs (#8216)
- VG support for Google BigQuery (#8189)
- BI server table size approximation (#8094)
Fixed Bug
- Client connection to a booting cluster node results in an NPE (#8305)
- VG in a cluster should fallback to locally stored graphs if ZK is uninitialized (#8293)
- VG creation fails on DB2 over system tables (#8274)
- VG creation fails to DB2 on z/OS (#8269)
- VG auto-generated mapping produces invalid SMS2 representation (#8221)
- VG import skips full-text indexing when VG IRI is in local DB (#8212)
- Don’t prevent Stardog cluster from starting up if a VG source is down (#8206)
- Bad VGs stay in ZK even when not added to the nodes and prevent the cluster from starting (#8205)
- VG SMS2 mappings don’t properly handle escaped strings (#8184)
- VG queries with virtual transparency may return no virtual results with cached plan (#8168)
- VG queries with virtual transparency may return incomplete results with reasoning after restart (#8167)
- VG query returns incorrect results with object datatype mismatch (#8147)
- VG in cluster can be listed but not removed (#8121)
- VG JSON import doesn’t bind values for BOUND or COALESCE functions (#8135)
- VG import in cluster can return error for VG does not exist (#8081)
- VG on unsupported platform prefixes string literals with charset (#8077)
- VG CLI commands can report success when failed (#8065)
- VG JSON import not updating full-text search index (#8061)
- VG add/import with default DB in cluster gives error (#8032)
- VG creation in the cluster fails if database is not provided (#8007)
- Virtual transparency local scan pruning is too conservative (#7827)
- Bind joins inside path query plans can cause problems (#8270)
- DELETE/INSERT query throws Exception with empty INSERT (#8265)
- SUM incorrectly handles literals of incompatible datatypes (#8261)
- Bad traversal direction decision for a path query (#8250)
- Database backup fails after dictionary vacuuming (#8248)
- Incorrect ORDER BY results with negative numbers (#8246)
- Invalid rdf:langString literals cause backup problems (#8238)
- BI server STR_TO_DATE() function returns incorrect results (#8241)
- BI server query with UNION over a single field throws exception (#8227)
- BI server queries fail when CONCAT is given one argument (#8133)
- BI server query with INTERVAL expression may return syntax error (#8126)
- BI Server queries using stored queries with aggregation may return incorrect results (#8046)
- BI Server queries may fail with stored queries containing VALUES (#8036)
- Filters with IN expression return incorrect results in BI/SQL (#8199)
- CLI throws exception when server returns error without message (#8195)
- Kerberos initialization failure doesn’t log details (#8180)
- Full-text search doesn’t respect threshold with variable as query (#8152)
- JSON import can fail in a cluster (#8119)
- Various CLI commands’ help pages incorrect (#8101)
- Server crashes after db repair (#8089)
- Database gets stuck in ComingOnline state (#8071)
- Update annotations for
transaction.write.conflict.strategy
so that it shows up in Studio (#8060) - Server backup fails after a db drop (#8022)
- CLI user permission command for user with icv-constraints permissions causes NPE (#7893)
- Cluster node unable to join after full sync due to db drop conflicting with create (#7812)
- JSON import fails with HTTP connection error (#7810)
- SPARQL parameters not applied to arguments of UNNEST expressions (#7705)
- Hints for turning off optimizers may not work with GROUP BY (#7406)
- Path queries with reasoning could be incorrect when start node is unbound (#6960)
- Mixed type literals are sometimes ordered incorrectly (#4174)
6.2.4 Release (2019-11-14)
SHA256: ebe2fe5418bd690360fc9efbe3782a6df2168906b6e814e5f122b20f0e104551
Added New Feature
- Virtual graph support for Exasol (#7124)
Modified System
- Reorder Distinct, Projection, and Order solution modifiers (#7501)
- Provide support to run commands as another user similar to sudo/su (#7218)
Fixed Bug
- VG generated mappings exclude rows with NULL values (#7782)
- Sub-optimal plans with bind joins (#7612)
- VG fields mapped as IRIs can generate errors on some platforms (#7595)
- Differential graph update reads inaccessible source graphs (#7575)
- Rounding-necessary error in aggregates (#7568)
- JSONLD not accepted as a valid format for data add (#7558)
- Incorrect results of Min/Max aggregates on strings, IRIs, and bnodes (#7551)
- Exception in the memory management layer on systems with prohibited unaligned memory access (#7542)
- Stored query incorrectly treated as GraphQL (#7541)
- Wrong index used for a scan created through query rewriting (#7534)
- Incorrect skipping on aggregate differential counting indexes (#7515)
- Webconsole search query performance regression in 6.2.* (#7507)
- VG returns empty mappings when virtual graph is offline (#7968)
7.0.3 Release (2019-11-06)
SHA256: d659abcbaf0fb12d7e99a7726303748d147947268cf54c65c9dd574cd5091f24
Modified System
- Improved cluster stability with full-text search index under write load (#8056)
- Reduce performance measurement overhead in storage engine (#8031)
- Allow multiple SPNs in the kerberos keytab file. (#8024)
- Improve chains selectivity statistics computation on very diverse datasets (#7959)
- Apply the push filter optimization to query plans with rules using filters (#7945)
- BI server support for Apache Superset (#8008)
- BI Server data type handling improvements (#7932)
- BI Server support for Siren Investigate (#7931)
- VG explain format change to REL_QUERY (#8009)
- VG support for user defined types and language tags in SMS2 mappings (#7910)
- VG support for IRI() function in SMS2 mappings (#7555)
- VG RDBMS does not require JDBC driver class name (#6006)
- Standardized error codes and messages (#3487)
- Decompose conjunctive filter expressions (#3011)
Fixed Bug
- ID mappings in the dictionary are lost if server crashes after db creation (#8088)
- Incorrect inlining in the presense of GROUP BY (#8055)
- BI Server may not recognize new stored queries immediately (#8034)
- BI server sql.schema.graph option cannot be get/set from CLI (#7939)
- BI Server connections may prevent server shutdown (#7933)
- BI Server query may fail with HAVING COUNT (#7929)
- VALUES rewriter should handle the case when the same variable occurs in multiple VALUES (#8026)
- VG failing on Exasol when no access to EXA_DBA_TABLES (#8001)
- VG language tag lost when returning mappings in R2RML format (#7936)
- VG mapping generator may fail when non-table objects are present (#7935)
- VG creation may fail when port not provided (#7901)
- VG generated mappings exclude rows with NULL values (#7782)
- VG mapping generation fails on PostgreSQL when expressions are indexed (#7781)
- VG compound expression is over-simplified when converted to SQL (#7698)
- Virtual transparency doesn’t efficiently query graph names (#7786)
- Virtual transparency queries may include unnecessary local rdf:type scans (#7785)
- Virtual transparency queries fail in presence of offline VGs (#7703)
- Incorrect inlining in the presense of BIND operators (#8000)
- Slow EXISTS with large active graph (#7999)
- Bind join returning incomplete results (#7996)
- Ntriples parser rejects bnode with underscore in label (#7993)
- Hint to disable join choice may be ignored (#7978)
- SMS2 mapping with BIND target var included in input causes StackOverflowError (#7976)
- Disabling passwords with kerberos causes cluster to fail #7970
- “Keys must be added in order” exception while bulk loading (#7938)
- Trial license flow can’t reach out to license server from behind proxy (#7913)
- Empty predicate checker is slow on large databases with named graphs (#7904)
7.0.2 Release (2019-10-02)
SHA256: 2b52dbea72206349a6cb2ed9eec954d9ff62b6368f6ec019398c19d7d86a8ccb
Added New Feature
- SQL query support for BI/viz tools (beta) (#7886)
Modified System
- Improved cardinality estimations involving 0+ property paths and unions (#7873)
- Adds HTTP endpoint to expose metrics for Prometheus (#7870)
- Allow importing namespaces directly from files sent over HTTP (like CLI) (#7795)
- Inefficient ORDER BY over IRIs with many duplicates (#7775)
- Support SPO queries in DL mode (#7760)
- Improve update performance with Last-Commit-Wins (#7729)
- Adds license entries and admin commands for standby nodes (#7519)
- Detect non-existent nodes/shapes specified explicitly in “icv report” command (#7499)
- Virtual graph connection pool convenient defaults (#4851)
- Support zero-or-one simple property paths natively (#3611)
Fixed Bug
- Incorrect skipping over unique predicates when all data is in a single named graph (#7889)
- JSON import fails when mappings size is around 4kB (#7884)
- VG R2RML tableName may not follow dialect quoting rules (#7856)
- Stored functions with unused variables (#7849)
- Bnodes cannot be used in stored functions (#7848)
- Equality filter inlining fails when multiple equality predicates are chosen to be folded to the same variable (#7826)
- Timeout during clause condensation inside the reasoner (#7801)
- Incorrect ordering of IRIs while encoding namespaces (#7790)
- Zero length property paths mishandled during cardinality estimations (#7779)
- JSON import may omit triples when array elements are combined in expressions (#7766)
- Some exceptions are swallowed in the DL mode (#7758)
- DL reasoning query with rdfs:label results in error (#7754)
- Incorrect handling of double literals during aggregation when functors are enabled (#7749)
- addDayTimeDurationToDateTime doesn’t accept correct arguments (#7662)
7.0.1 Release (2019-09-04)
SHA256: 96f5632186ce5d1ef7a6625966ac997349556b87a9ca03424eae352c098befc4
Added New Feature
- Virtual graph support for Exasol (#7124)
- Virtual graph support for Elasticsearch (#7091)
Modified System
- Add optional precision argument to round() function (#7734)
- Parallelized spatial indexing and evaluation of geo:relate (#7682)
- Support “pretty” Turtle for SHACL validation reports over HTTP (#7590)
- Text search result clustering (#7579)
- Text search option to generate highlighted fragments (#7571)
- VG support for AVG aggregation (#7565)
- Provide support to run commands as another user similar to sudo/su (#7218)
- Search index vacuuming (#6272)
- Change search transaction mechanism (#6271)
- VG JSON file import (#6217)
Fixed Bug
- The wrong pid is ending up in the pid file (#7742)
- Wrong event is fired on database restore (#7737)
- VG Cassandra should not translate queries that filter on aggregated fields (#7710)
- Stop reporting approximate commit results in CLI commands (#7689)
- RHEL 7 is not loading the correct native library (#7688)
- Make sure “data size”, Connection.size(), etc. never report negative values (#7683)
- Backup/Restore problems with non-empty target directory and txn_blocks files missing problem (#7667)
- Fix man documentation for server backup and server restore (#7652)
- Cautious query plan reuse does not work (#7643)
- Text search with offset but no limit returns error (#7573)
- Text search with variable query doesn’t compute score (#7572)
- Aggregations can return different types when run from VG (#7564)
- JSONLD not accepted as a valid format for data add (#7558)
7.0.0 Release (2019-08-07)
SHA256: f4f2d5db81549400e5af8d4f79760b556a05f7e10b9d8f9d1ba37ded985b46fe
Added New Feature
- New LSM-tree based storage backend for higher write throughput (aka Project Mastiff) (#7658)
- Support multiple reasoning schemas (#7539)
- Virtual Transparency: Ability to query all graphs including virtual without naming them (#4778)
- Helm chart for Elastic Stack deployment with Stardog and ZooKeeper logs (#7376)
Modified System
- Performance optimizations for spatial indexing (#7601)
- Reorder Distinct, Projection, and Order solution modifiers (#7501)
- Add config option for Stardog Cluster and Cache Target storage class in Helm (#7587)
- Add nodeSelector to Stardog Cluster StatefulSet for Helm (#7586)
- Use physically missing indexes in queries (#6620)
- Improve performance of large writes (#5856)
Fixed Bug
- Sub-optimal plans with bind joins (#7612)
- VG fields mapped as IRIs can generate errors on some platforms (#7595)
- Exception in the memory management layer on systems with prohibited unaligned memory access (#7542)
- Stored query incorrectly treated as GraphQL (#7541)
- Wrong index used for a scan created through query rewriting (#7534)
- Incorrect skipping on aggregate differential counting indexes (#7515)
- Aggregations that count occurrences of a var can include solutions where that var is missing (#7456)
- Only create cached dataset if a database and graph name are specified for Helm deployments (#7588)
- Differential graph update reads inaccessible source graphs (#7575)
- Rounding-necessary error in aggregates (#7568)
- Incorrect results of Min/Max aggregates on strings, IRIs, and bnodes (#7551)
- Some db optimize options are ignored (#7484)
- Rollback does not release the shared lock on the index writer (#7480)
- Dictionary vacuuming leaves stale entries in the caches (#7470)
- Query level reasoning flag ignored in explain() (#5411)
- Make obsolete index migration work with Mastiff (#4630)
6.2.3 Release (2019-07-10)
SHA256: 1da51efe5cce756713a69bedc792ae4dc27cd14cbc505aa06f5eef8b52da93d0
Added New Feature
- Standby nodes in cluster (Beta) (#7545)
- Support storing GraphQL queries (#6908)
Modified System
- VG include graph iri when logging queries (#7465)
- VG include Var names in query explanation (#7463)
- Make cluster node rejoin retry policy configurable (#7425)
- Create a way to override default QueryResultFormat (#7391)
- Add cluster metrics cli command to show metrics from all nodes (#7381)
- VG RDBMS support for local evaluation of SQL-unsupported expressions (#7321)
- Improve performance of aggregation over very large inputs (#7161)
- Add license validity/expiration to /admin/status response (#6969)
- VG JDBC metadata inspection command (#6623)
- VG property to indicate unique keys that are not returned in metadata (#5066)
Fixed Bug
- Describe with reasoning fails with an exception (#7490)
- HTTP server returns 406 for text/tsv (#7472)
- Data add fails with kerberos (#7468)
- Count function including unbound variables (#7456)
- JMX metrics for some databases are not updated (#7453)
- Patterns in a rule silently ignored (#7449)
- RDFS properties incorrectly recognized as object properties (#7448)
- VG copy can return null values on first execution (#7439)
- Unable to delete helm cache target chart if stardog.name isn’t set (#7433)
- Query API does not set limit() parameter over HTTP for explain calls (#7431)
- SPARQL parser applies externally set LIMIT incorrectly to subqueries (#7428)
- Virtual graph password file not working (#7415)
- Select query stuck in Terminating phase on certain errors (#7414)
- Reasoning queries print warnings about sub-queries (#7412)
- Return error for GraphQL mutation and subscription operations (#7411)
- Incomplete bash completion scripts (#7386)
- Poor cardinality estimations for joins on the object variable (#7374)
- INSERT…WHERE query not parsing correctly with multiple graphs (#7370)
- VG creating query plans that have unions with an empty argument (#7364)
- SPARQL functions (Bound, Coalesce, If, In) are not allowed in rules (#7363)
- FROM NAMED with graph variable caching query plans incorrectly (#7356)
- Path query with reasoning spanning named graphs returns incomplete results (#7354)
- Authentication events do not show in the audit log (#7311)
- IP address not appearing in audit logs (#7309)
- Reasoning in VG query causing issues in translation (#7305)
- VG service join is not thread-safe (#7304)
- VG query with CONCAT() may throw exception with different data types (#7270)
- Wrong parsing of queries with empty group graph patterns (#6080)
- Empty predicate check can throw ConcurrentModificationException (#5577)
6.2.2 Release (2019-06-05)
SHA256: bdccd6dad266588cf783215bee7c27aeef086ba198d6442a33689be6cd77eeeb
Security Vulnerability
*SEC: Regular users can shut down the server (#7284)
Modified System
*MOD: Introduce split() and index() functions for dealing with Stardog array literals (#7336) *MOD: UNNEST operator to extract array elements (#7330) *MOD: Allow arbitrary annotations with stored queries (#7345) *MOD: Add descriptions to stored queries (#7327) *MOD: Add reasoning flag to stored queries (#7326) *MOD: Add HTML endpoint to retrieve database properties with default/allowed values (#7325) *MOD: Improve error message when CSV column name not found (#7307) *MOD: Support Date/Time functions on xsd:dateTimeStamp types (#7279) *MOD: add GET request to retrieve database property values (#7273) *MOD: VG option to override dialect (#7049)
Fixed Bug
*FIX: VG query plans render incorrectly on Microsoft Windows servers (#7320) *FIX: deb/rpm packages are overwriting custom configuration on upgrade. (#7296) *FIX: Outdated error message(s) for database names (#7289) *FIX: NPE during path query evaluation (#7276) *FIX: VG security error when requesting mappings (#7271) *FIX: VG with IS NOT NULL check in sqlQuery can return error when queried (#7215) *FIX: VG with rr:parentTriplesMap may map to wrong column if duplicate field names exist (#7207) *FIX: VG with filter in parentTriplesMap can lead to NullPointerException (#7201) *FIX: VG mapping can lose SQL alias when converted to SMS2 format (#7147) *FIX: Queries using system service or stored functions cannot be stored (#6465)
6.2.1 Release (2019-05-14)
SHA256: 5eb0cff5885b6429d11184fa9eebdd4253df9a349efbc9d80958b9ee371198b4
Fixed Bug
- Deadlock on close when results not consumed (#7260)
- Race condition during path query evaluation (#7250)
- Add default VG DB value when using HTTP API (#7235)
- Possible IllegalStateException when using db:// service queries (#7068)
6.2.0 Release (2019-05-08)
SHA256: fb48a87146b20f15a2339cbe93904083a3e020ce9f3e79006fb61568dd119e17
Added New Feature
- Distributed Graph Caching (#6041)
- Helm chart for Stardog Cluster and Cache Targets (#7009)
- VG support for Amazon Redshift (#6192)
Modified System
- More efficient handling of LIMIT in eager evaluation of path queries (#7171)
- Query hint to choose lazy or eager path query evaluation (#7170)
- Eager evaluation of PATHS ALL queries (#7158)
- Optimize reuse of functions in aggregates (#7092)
- Unable to add SPARQL constraints directly via HTTP (#7078)
- Return GraphQL query plans / explanations in JSON (#7056)
- A better cache for cardinality estimations (#5322)
Fixed Bug
- NPE during evaluation of a path query with OPTIONAL in VIA (#7192)
- Race condition in node synchronization in the cluster (#7186)
- Geospatial index not updating on vg import (#7172)
- MMPathInfo is much slower than the on-heap version (#7167)
- Path literals should not be looked up in the main dictionary (#7163)
- Error loading http://www.w3.org/2006/time#month n-triples into Stardog (#7139)
- Query optimizers cannot be turned off for path queries (#7123)
- VALUES rewriting can make path queries slower (#7122)
- Search predicate fails when reasoning is enabled (#7114)
- Admin and user thread pools don’t scale to the max size (#7110)
- Similarity index build fails with reasoning (#7102)
- Path query performance regression due to sub-optimal join order for the VIA pattern (#7100)
- RDF4J null context not supported (#7096)
- Named Graph permission not allowing # in graph names (#7082)
- GraphQL queries throw NPE when no variables are provided (#7074)
- Paths lost when increasing MAX LENGTH of PATHS query (#5143)
6.1.3 Release (2019-04-03)
SHA256: 01a1017d2146a1188b8050a043f3c7a5f34bf5cb1a8563a6eaac939156ede6cc
Added New Feature
- VG support for Athena (#6193)
Modified System
- Improve SHACL validation result serialization (#7042)
- Mixed updates cause differential index size to exceed the limit (#7034)
- Minimize memory usage during updates (#7026)
- Improve CLEAR GRAPH performance (#7021)
- Override the path to stardog.properties with an env (#7008)
- Specify the path to the license in stardog.properties (#7002)
- [SHACL] Support owl:Class as an implicit target (#6981)
- Optimize reasoning queries with complex property hierarchies (#6971)
- Add –compression option to data add/remove CLI commands (#6956)
- VG better errors when table or column identifiers are reserved words (#6911)
- Optimize literal validation during parsing (#6840)
- Optimised DISTINCT for single bound variable (#6757)
- Too many threads are used by the HTTP server (#5134)
- Support additional date/time casts (#4245)
Fixed Bug
- Cluster node that receives SIGTERM does not close ZooKeeper sessions (#7043)
- VG creation returns Java error when FKs cannot be resolved (#7033)
- VG MongoDB connections not closed when virtual graph removed (#7022)
- RDF4J connector improperly binding BNodes to query variables (#7001)
- Cluster backup only performed on one node when a custom location is specified (#7000)
- VG offset without limit can cause error (#6973)
- 6.x does not allow bad IRIs like 5.x did when strict.parsing=false (#6970)
- Virtual graphs can create invalid MySQL query when OFFSET is used without LIMIT (#4860)
- Reasoning queries with limit might not work as expected (#788)
6.1.2 Release (2019-03-07)
SHA256: 8fe85531b8b7f9a4108823ef1111782562caa117db5678909da7f5bb3ee1e386
Added New Feature
- [SHACL] New SHACL validation API with streaming results (#6937)
- VG Support for SAP HANA (#6899)
Modified System
- Optimize index scans for the case of multiple FROM (#6954)
- [SHACL] Improve validation performance (#6936)
- [SHACL] Add option to specify nodes for validation (#6935)
- [SHACL] Add option to specify shapes for validation (#6934)
- [SHACL] Add option to limit number of validation results returned (#6933)
- Improve the performance of ADD/COPY/MOVE queries (#6905)
- [SHACL] Validation report generation is slow when there are many results (#6862)
- Security resource type for administering virtual graphs (#6819)
- VG could provide better error message when mappings are in wrong syntax (#6809)
- Associate virtual graphs with databases (#6728)
- Unnecessary warning messages for subPropertyOf topObjectProperty (#6635)
Fixed Bug
- Virtual import not defaulting local server URL properly (#6941)
- SERVICE queries not working when service returns a charset (#6910)
- Cancelling unknown transactions during rejoin prevents node from rejoining the cluster (#6898)
- CLI does not recognize sms file extension (#6881)
- VG Offset/Limit queries can fail on MSSQL (#6783)
- Frequent writes may block joining cluster nodes indefinitely (#5695)
6.1.1 Release (2019-02-06)
SHA256: ce62661409cf3239374e171e943baa55c389bfbd59b4dc7b4db8ec8ae3ad2509
Modified System
- Hint to control join algorithms (#6828)
- VG CLI report virtual graphs as being “Online” rather than “Available” (#6811)
- Rolling back a transaction with Java API might cause unnecessary warnings (#6800)
- Bind join algorithm (#6708)
- Reduce overhead in CSV virtual import (#5105)
Fixed Bug
- Allow user-defined datatypes in strict parsing mode (#6815)
- Query plans retrieved by the Java API do not consider transactions (#6799)
- Second reasoning query in a transaction may return incomplete answers (#6796)
- Reasoning query inside transaction returns no results if query plan is retrieved first (#6794)
- Cluster unable to start with the ALWAYS_JOIN_UNDER_LOCK strategy (#6789)
- Percent encode / decode not working with characters greater than 255 (#6787)
- Graph store protocol POST should create the target graph (#6741)
- S3 Restore error re-downloading entire file (#6737)
- encode_for_uri issues when given URIs (#6657)
6.1.0 Release (2019-01-16)
SHA256: 1ae4a97bf1ab1256f9f52a11cb25fa39570fdbb5dc204184aba1ebd741f97946
Added New Feature
- SHACL support (beta) (#6786)
- Virtual graph support for Cassandra (#5513)
- Virtual graph support for Teradata (#4777)
- Virtual graph support for off-nominal JDBC drivers (#6564)
- Add a query hint to disable reasoning (#4837)
Modified System
- Constraint queries are executed twice (#6747)
- Every non-essential optimiser should be disableable (#6709)
- BNode creation should not be synchronized (#6583)
- Option to canonicalize language tags to uppercase (#6582)
- Export performance regression (#6575)
- Improve cost estimation for DISTINCT (#6537)
- VG MongoDB aggregate pushdown (#6444)
- Make counting indexes optional (#4996)
- Pretty turtle writer should print types before other properties (#4346)
Fixed Bug
- sh:zeroOrOnePath matching on paths > 1 (#6765)
- Specifying a only default graph dataset precludes querying named graphs (#6749)
- Filters can be erroneously pushed into NOT EXISTS patterns of another filter (#6715)
- Must preserve scopes in EXISTS patterns (#6707)
- Analytics: Similarity search may ignore spa:set() individuals (#6696)
- Support IN filter in Stardog Rules (#6652)
- VG query with mixed types in UNION or VALUES may fail (#6629)
- VG query containing LIMIT without ORDER BY may fail (#6615)
- Conflicts between Stark API and RDF4J (#6612)
- VG queries may fail to resolve BIND expressions (#6608)
- FROM NAMED inlining incorrectly interacts with VALUES inlining (#6607)
- VG import command does not support –server option (#6603)
- Server memory status double counts MM blocks (#6591)
- IllegalArgumentException for nested property paths (#6584)
- Sort operators back to back in the plan (#6531)
- VG generated field names become excessively long (#6013)
7.0.0-beta1 Release (2018-12-19)
SHA256: 8df503e273d86c6f2a0290949326be7c676aebfb39c0969d4e07ec1fb888df4d
Added New Feature
- Implement Last Commit Wins conflict strategy (#6219)
- Dictionary vacuuming (#669)
Modified System
- Do not unnecessarily optimize db after restore (#6676)
- Make vacuuming statistics faster (#6552)
- Parameterize optimize command (#6511)
- Optimize command is using an unnecessary lock (#6510)
- Remove triples indexing strategy (#6468)
- Verify index strategy is initialized correctly (#6139)
- Spatial: Make JTS a database option (#5961)
- Remove db copy command (#5728)
- Remove memory database option (#5694)
- Improvements to the transaction log format (#5590)
- Support analytics in mastiff (#5407)
- Slow statistics look-ups in mastiff (#5305)
- Update Lucene to 7.x (#5221)
- Statistics calculation slowed down during bulk load (#5212)
- Compute extended statistics when counting indexes are off (#4997)
- Improve security level performance (#4926)
- Distribute JTS under new license (#4800)
- Do not use temporary files while reading/writing tx logs (#2667)
Fixed Bug
- Superuser flag not saved for new users (#6682)
- Broken deletion with last-commit-wins semantics after compaction (#6653)
- Adding triples in the cluster require db metadata permission (#6559)
- Data vacuuming ignores unary and context indexes (#6494)
- IllegalStateException while writing to the tx log (#6441)
- Missing jar for org.HdrHistogram.Histogram (#5859)
- MVCC writer should be closed before actual transaction commit (#5838)
6.0.1 Release (2018-11-27)
SHA256: 004ebbbee8d87d003796a92e8be3fdd5992c7e434f7e2710a71d9333c67f24c4
Modified System
- Improve cardinality estimation for FILTER [NOT] EXISTS (#6535)
- Improve estimation of the number of distinct values a variable binds to in a plan (#6493)
- VG retain SMS2 mappings names (#6432)
- VG queries with pushed IRI bindings may preclude use of indexes (#4833)
- Backup versioning data with db backup command (#1547)
Fixed Bug
- CLI hangs if Error thrown during server start (#6562)
- Stardog Windows Service Classpath issues (#6558)
- Cluster node full synchronization does not include versioning history (#6536)
- VG overriding a VG with an invalid mapping corrupts the VG (#6525)
- VG generated SMS2 mappings use hyphens in variable names (#6524)
- VG generated SMS2 mappings have backticks in variable names (#6523)
- VG mappings not using stored namespaces when serializing mappings (#6522)
- Optimiser fails to push a filter through BIND nodes (#6508)
- VG queries with union may generate invalid SQL queries (#6504)
- Stardog 6.0.0 cannot restore backups created by Stardog 5 (#6498)
- VG queries over mappings with IRI template suffixes may throw an exception (#6473)
- Versioning does not work in the cluster (#1753)
6.0.0 Release (2018-11-07)
SHA256: 234ae12d237d1d0a6631c8174ab89c72d4bbad59edf6cec2d3ccc2506aac5f3a
Added New Feature
- Virtual graph support for MongoDB (#5172)
- Virtual graph support for Cosmos DB using Cdata JDBC driver (#6184)
- Virtual graph support for Amazon Aurora (#6107)
- New Java RDF API: Stark (#2050)
Modified System
- Support cast to xsd:dateTimeStamp (#6386)
- VG is too loose when comparing IRIs and Literals (#6258)
- VG RDBMS option for default schema (#6214)
- VG: improve performance of extracting non-string literals from IRIs (#6099)
- Analytics: Prevent predict variable from being in arguments list (#5794)
- Analytics: Make automatic validation optional (#5739)
- Insecure Default Permissions of Data Directory (#5483)
- Virtual graph support for Unicode literals in SQL queries (#4985)
Fixed Bug
- Reduce jar duplication in distribution (#6460)
- Cast fails on certain date types (#6385)
- VG import from MySQL may cause OOM exception (#6357)
- Maven client-http dep downloads 400 versions of AWS SDK (#6237)
- SPARQL expressions in GraphQL does not recognize namespaces (#6229)
- Algebraic rewriting ignores single node scopes (#6208)
- VG queries may use stale mappings (#6204)
- VG metadata not always cleared when new mapping added with -o option (#6201)
- Aggregation in subselect in VG causes NPE (#6167)
- VG queries using FROM fail when reasoning is enabled (#6097)
- VG default mapping generator throws NPE when FK references unmapped schema (#6076)
- “Invalid value for option” errors on startup (#6067)
- No validation is being performed on new resources (#5484)
- Virtual graph queries fail when binding non-ASCII literals from SPARQL (#4788)
5.3.6 Release (2018-10-31)
SHA256: 5ce48e9fdffad8798708c89109f81bc59363b2b0cae4844ff460783897144bef
Modified System
- Concurrent reasoning queries slow due to unnecessary locks (#6333)
- Save context index size in statistics (#6331)
- Support string arguments for the graph directive in GraphQL queries (#6312)
- Make search accessible from GraphQL (#6230)
Fixed Bug
- Concurrent updates with reasoning cause NPE (#6343)
- Incorrect skipping and resetting of MINUS operators (#6338)
- Fields in GraphQL results are not sorted (#6324)
- Stardog query directives are not supported with GraphQL schemas (#6311)
- Scans can be wrongly ordered in the presense of MINUS (#6308)
- Scan’s sort type can be wrong after plan cache lookup (#6307)
- ArrayIndexOutOfBounds exception in statistics (#6300)
- Filtered unary index scans could return wrong results in rare cases (#6282)
- BNode handling in rdf4j connector incorrect (#6264)
- Constant inlining does not happen with indirectly nested BIND operators (#6248)
5.3.5 Release (2018-10-03)
Fixed Bug
- Explaining inconsistency inside transactions does not work (#6267)
- Inefficient aggregation when distinct occurs in many aggregates (#6241)
- Incorrect results when subselects are reset (#6186)
- Unary index is not being used (#6180)
6.0.0-alpha2 Release (2018-09-12)
Added New Feature
- Implement vacuuming to clean up deleted data (#5150)
Modified System
- Limit disk space used by WALs (#6108)
- Extremely slow deletes when search is enabled (#5886)
- Improve write concurrency when search/spatial is enabled (#5868)
- Spatial indexing repeated without data change (#5168)
Fixed Bug
- Invalid geospatial data causes transactions to fail (#6137)
- Unable to initialize a dropped database prevents a node from rejoining the cluster (#5972)
- Dictionary corruption after restore (#5941)
- System database gets corrupted after concurrent admin actions (#5935)
- Server shutdown should properly cancel statistics computation (#5842)
- Quad indexing process should be cancelable (#5841)
- Stopping the server during indexing prevents re-creating the database (#5840)
- Data loss when server crashes (#5826)
- Server fails to start after a crash (#5668)
5.3.4 Release (2018-09-05)
Modified System
- Improvement for join cardinality estimations with 0+ property paths (#6073)
- Optimize * property paths with fixed start within graph keyword (#5997)
Fixed Bug
- Potential NPE in FILTER NOT EXISTS rewriter (#6086)
- GROUP_CONCAT with sameAs producing duplicates (#6016)
- Concurrent writes deadlock on serializable database in the cluster (#5983)
- Inefficient join of patterns sharing only the graph variable (#5973)
- xsd data types in CONSTRUCT (#5951)
- Constant inlining does not happen in the case of nested BIND operators (#5948)
- Improperly formatted db creation events leak server details (#5485)
- Spurious type inferences for owl:Thing and non-existent individuals (#2751)
- CSV imports do not escape special characters in IRIs (#2689)
5.3.3 Release (2018-08-01)
Added New Feature
- Support GraphQL introspection (#5879)
- Analytics: Add similarity search (#5741)
Modified System
- Return GraphQL plans in JSON (#5888)
- Allow HTTPS port to be separately configured (#5524)
- Heavy use of exceptions in filter evaluation result in significant slow down (#5352)
Fixed Bug
- NPE in the memory management layer on resetting a disposed collection (#5906)
- BITES: EntityExtractorService terminates on first input that has no entities (#5811)
- GraphQL fragments do not support namespaces (#5790)
- Exception in Bind operator with FROM (#5777)
- Invalid merge join during BITES query (#5770)
- Inlining constants into BIND nodes can be incorrect (#5629)
6.0.0-alpha Release (2018-07-25)
WARNING: This is a closed alpha release that is not publicly available. As an alpha release it is not suitable for mission-critical data or any data that you cannot afford to lose. Stardog 6 introduces a completely new disk index format that is not backwards-compatible and databases created by previous versions of Stardog must be migrated as explained in the migration guide section of the documentation.
Added New Feature
- New storage engine based on RocksDb (#5869)
- Command to migrate 5.0 index format to 6.0 (#5684)
- Add index.aggregate option to reduce the number of indexes (#3529)
- CLI command to generate bug/crash reports (#5805)
Modified System
- Do not use locks during transactions (#4600)
- Improve concurrent updates (#3262)
- Implement vacuuming for statistics (#5151)
- Allow HTTPS port to be separately configured (#5524)
Fixed Bug
- ICV requires SERIALIZABLE isolation level (#4921)
- GraphQL fragments do not support namespaces (#5790)
- Exception in Bind operator with FROM defect (#5777)
5.3.2 Release (2018-07-11)
Added New Feature
- Add support for auto-restoring databases from a backup, eg: S3 (#5804)
Modified System
- CBD describe strategy should skip reification queries when possible (#5657)
- Support s3 authentication in password file (#5363)
Fixed Bug
- Stardog scripts do not work with mingw (bash that comes with git) (#5677)
- Sequence has been disposed of on delete/insert from graph (#5675)
- VG materialization not closing intermediate ResultSets (#5660)
- Cardinality over-estimations involving full-text search nodes (#5656)
- Date/time literals considered equal to string literals (#5649)
- Incorrect handling of expressions in projection when a subquery with ORDER BY is present (#5636)
- Concurrency issue with MultiPage (#5631)
- Dictionary config options are not persisted (#5595)
- Long literals cause memory leak (#5594)
- VG query may return a single empty result instead of no result (#5585)
- Optimized MINUS operator can sometimes be slower than the standard (#5564)
- Combining filters may prevent [NOT] EXISTS optimization (#5558)
- ML: queries not projecting prediction input vars predict nothing (#4100)
- Cost of a join must depend on what variable is chosen as the key (#2399)
5.3.1 Release (2018-06-05)
Modified System
- Improve enforcing direct memory limit (#5475)
- Equality identity hint should be used for comparison operators (#5390)
- BITES: Error when using linker extractor without search enabled (#5327)
- VG: improved join minimization (#4726)
- Improve graph update performance when search or spatial is enabled (#4666)
Fixed Bug
- Data cardinality restrictions trigger unknown body atom exception (#5540)
- Several data property axioms ignored for some EL ontologies (#5537)
- Not supported error thrown for data sub property triples (#5536)
- Query plans are incorrectly reused in path queries with reasoning (#5527)
- Properties with underscores do not work in GraphQL queries with namespaces (#5518)
- GraphQL arguments do not support namespaces (#5517)
- DisjointUnion axioms may be ignored during reasoning (#5507)
- Query explain not working with model learning queries (#5499)
- Combination of inverses and sameAs can break path queries (#5474)
- Property paths with * should return bindings for non-existent nodes (#5460)
- BITES: Nested transactions error in embedded mode (#5452)
- Unbound predicates in previously-run query (#5387)
- Optimizing FILTER NOT EXISTS can change the order of binding sets (#5367)
- Virtual graph queries may not return expected results with sameAs reasoning and query constants (#5350)
- Virtual graph queries may fail on older versions of Apache Hive that do not support concat operator (#5337)
- Node may be expelled if it joins during constant writes to the cluster (#5328)
- BITES: ReadOnlyConnection not propagating credentials (#5292)
5.3.0 Release (2018-05-09)
Added New Feature
- BITES: Add dictionary linker to SPARQL interface (#5117)
- BITES: Add RDF extractor that saves text as literal (#5091)
- BITES: Allow docstore to be reindexed (#5090)
- Allow custom DESCRIBE strategies (#4709)
- Backup and restore directly to and from S3 and S3 clones (#2145)
Modified System
- Add ServerMetrics CLI command (#5268)
- Do not enforce strict.parsing on the client side (#5248)
- Optimize establishing HTTP connections in the client (#5232)
- Improve concurrent credentials checks (#5230)
- Update to Jena 3.7.0 (#5223)
- Minimize the number of transaction messages exchanged between the cluster nodes (#5205)
- Minimize number of messages client sends for a transaction (#5204)
- Optimize RDF4J hasStatement (#5184)
- Password lookup should not be repeated (#5146)
- BITES: MentionExtractor query should support NER type (#5137)
- Clean spilling files during start-up (#5068)
- Return query plans in JSON (#4532)
- Allow BITES to put/reindex without clearing the existing NG (#3293)
Fixed Bug
- Improve runtime performance of MINUS operators (#5272)
- Cardinality estimations are broken for joins with property paths (#5222)
- Data obfuscate not obfuscating literals with lang tags (#5211)
- Client connection does not push outstanding changes before executing a query (#5210)
- Reasoning Consistency check fails on new db with reasoning.consistency.automatic (#5196)
- DESCRIBE queries are not cancellable (#5191)
- Reasoning disabled during transactions (#4173)
- Describe results don’t include inferred triples (#2104)
- DESCRIBE queries with variables don’t work with reasoning (#1768)
5.2.3 Release (2018-04-10)
Added New Feature
- Specify named graphs in db create command (#1796)
Modified System
- High number of property chains slow down reasoning preprocessing (#5129)
- Allow CLI to add/remove files to/from separate named graphs (#5114)
- Query with property paths does not terminate for a long time after timeout (#5112)
- Include more info in LinuxMemoryMonitor (#5099)
- Add coordinator check to the REST API so transaction requests can be directly sent to the coordinator (#5097)
- Include database size in server status output (#5058)
- Support timeout for GraphQL queries (#5054)
- Expose more options for statistics updates (#5050)
- Add memory.mode value to server status (#4977)
- Make spatial.result.limit a db option and increase the default value (#4975)
- Track more metrics about transactions (#4966)
- Add validation for invalid predicates (#4958)
- OpenNLP models should be reloadable (#4946)
- Fix misleading “Disk Index is corrupted” error when creating a new database (#4935)
- Add dictionary-based entity linker (#4933)
- VG: SQL parser support for LEFT and RIGHT functions (#4931)
- EntityLinker shouldn’t return unlinked entities (#4928)
- Limit the size of each file created during spilling (#4892)
- Make OpenNLPDocumentParser accept any kind of name finder (#4886)
- Allow models to be rewritten (#4108)
- Do not block transaction to compute statistics (#3988)
Fixed Bug
- Service query fails if input variable is not in Projection (#5136)
- DeleteService not properly deleting model data (#5093)
- Running query produces NotSerializableException for audit logging (#5076)
- Virtual graph queries may fail with date literals on Oracle (#5055)
- Property paths may return incorrect results when FROM contains wrong graph IRIs (#5032)
- Cluster: node may OOM due to excessive zkClusterEvent threads (#5028)
- Cluster: Clean up tmp files from a failed sync (#5027)
- Setting reasoning.schema.graphs does not work on non-empty databases (#5021)
- Virtual graph queries using custom functions are erroneously quoted (#5009)
- NoClassDefFoundError thrown when memory is extremely low (#4982)
- Timeout cannot be specified for update queries (#4972)
- VG default mapping may map non-relation schema objects (#4960)
- Virtual graphs do not encode the percent character in IRIs (#4949)
- Listeners don’t get data for CLEAR ALL (#4850)
- Virtual import with search enabled causes cluster node to be expelled (#4322)
- Pushing filters with EXISTS is done before costs are available (#4262)
5.2.2 Release (2018-03-06)
Added New Feature
- Added Kerberos authentication support (#4980)
- Expose entity linking functionality as a SPARQL service (#4811)
- Stardog now supports automagic indexing and mapping of any RDBMS in the enterprise environment into the Knowledge Graph (#3941)
Modified System
- Full virtual graph support for IBM DB2 (#4887)
- Virtual graph support Apache Impala (#4875)
- Quick ZK suspend/reconnect may cause cluster nodes to be expelled (#4852)
- Make search.reindex.tx option writableWhileOnline (#3855)
- Reasoning queries with non-scans can generate non-optimal plans (#4904)
- Update search index incrementally after large transactions (#4786)
- Optimize execution of SERVICE clauses (#2291)
Fixed Bug
- Delayed rewriting of path nodes causes problems with reasoning (#4951)
- VG query may fail on DB2 with VALUES (#4934)
- Virtual graphs not decoding IRI terms prior to generating SQL statements (#4914)
- SERVICE query retrieving CSV results results in NullPointerException (#4913)
- Long transactions cause cluster nodes to be expelled (#4906)
- Property paths with * not rewriting superproperties with reasoning enabled (#4888)
- Running 5.2.1 server on Windows without log4j2.xml in STARDOG_HOME prints long warning (#4881)
- “index.lucene.mmap” property not working (#4863)
- HTTP proxies not being recognized for SERVICE calls (#4857)
- Make OpenNLP usage thread safe (#4830)
- Inline singleton VALUES loses bindings with subquery projection (#4820)
- Embedded BITES connection is closed on put() (#4752)
- Embedded BITES connection throws exception on put() (#4751)
- Virtual mappings with blank nodes trigger exceptions (#3007)
5.2.1 Release (2018-02-06)
Modified System
- Return more than one candidate when multiple with the same top score (#4821)
- Entity linking should search for matches in all contexts by default (#4813)
- Save NER type (#4785)
- OpenNLP introduces bad tokens at end of NER entities (#4784)
- Allow BITES to put() directory (#4782)
- Show dictionary progress (#4759)
- Push filters under services (#4716)
- SILENT semantics for service variables (#4702)
- Allow customization of label properties (#4696)
- Do not include dc:creator triples by default in the entity extractor output (#4695)
- Improve database online/offline status (#4681)
- Virtual graph support for Sybase ASE (#4580)
- Virtual graph connection pool configuration (#4004)
- Do not expel nodes after backup failure (#3914)
- Include query plans in the slow query log (#3909)
- Inline IRIs in singleton FROM NAMED clauses (#3258)
- Improve update performance against large databases (#4758)
- Decrease default memory for client CLI commands (#4754)
- Grid search hyper-parameter optimization (#4730)
- Improve label distance computation performance (#4724)
- Increase linker extractor resilience (#4693)
- Add more NLP pipeline elements (#4686)
- OpenNLP token can generate more than one NER (#4685)
- Accept Connection in Extractor interface (#4684)
- Parallelize backup/restore in the cluster (#4290)
Fixed Bug
- Virtual graph doesn’t parse SELECT FROM VALUES templates correctly for Oracle (#4792)
- Linked entity might not be an IRI (#4783)
- Inline rule parser fails if less than symbol is used in bind/filter (#4772)
- Virtual graphs can throw CyclicMetadataException when queried concurrently (#4743)
- Progress monitor not shown after server restart (#4742)
- Web console unavailable when starting Stardog under Cygwin (#4740)
- Incorrect optimization of GROUP BY with multiple aggregation functions with complex arguments (#4708)
- Push filter optimization can incorrectly handle FILTER EXISTS in some cases (#4704)
- PropertyOp not binding contexts (#4590)
- Virtual graph creation fails when username or password not given (#4575)
- Virtual graph queries on Apache Derby and Sybase may fail with type comparison error (#4488)
- .bat scripts don’t handle spaces in paths (#4310)
- Killed queries are logged twice in the slow query log (#3908)
- stardog.sh attempts to create stardog.log (#3904)
- invoking CLI with invalid command results in 0 return code (#3075)
- Issue running Stardog CLI from a read-only filesystem (#4798)
- Entity mentions might link to each other with query.all.graphs=True (#4781)
- Entities need to be escaped before searching Waldo (#4688)
5.2.0 Release (2018-01-10)
Added New Feature
- Add named entity recognition and linking support in BITES (beta) (#4659)
- Add utility to clear ZK state (#4610)
- Add XGBoost as model (#4433)
- Virtual Graph support for Apache Hive (#3985)
Modified System
- BITES storage support for non-AWS S3 implementations (#4653)
- Add interruption points to spilling operations (#4527)
- Estimate cardinality of virtual graph queries (#4493)
- SERVICE variables (#4491)
- RDF4J StardogRepositoryConnection default auto-commit mode off (#4284)
- Memory managed queue (#4153)
-
Deprecate cluster zkstart zkstop commands in favor of zk start stop (#4675) - Improve data export performance when named graph security is enabled (#4591)
Fixed Bug
- Transactions and connections are left open after BITES extractor error (#4691)
- Default database offline timeout is wrong for CLI (#4680)
- Doc put failures are not propagated to the user (#4679)
- Incorrect handling of property paths with owl:sameAs and named graphs (#4664)
- Exception in a query with property paths and owl:sameAs (#4663)
- Decrease the connection timeout default from 1h to 10m (#4655)
- Linux memory monitor may log warning when memory usage is low (#4647)
- Cluster prepare may timeout prematurely if the cluster is under load (#4643)
- Virtual graphs union is returning cross join when using embedded strategy (#4620)
- ArrayIndexOutOfBoundsException while restoring db with spatial index (#4605)
- Scans within graph ?g are inefficient when all triples are in the default graph (#4572)
- Dictionary value cache limit is set too high causing OOM (#4569)
- Concurrent transactions may cause dictionary corruption (#4560)
- Ntiples/Nquads parser should not stop at first error with strict.parsing=false (#4546)
- Virtual Graph error for SINGLE_VALUE function (#4545)
- Internal server error when performing a reasoning query with a language tag literal (#4539)
- Property path operators incorrectly handle resets (#4536)
- Slow query logging disabled with named graph security (#4513)
- Plan cache ignores hint values (#4487)
- Misleading error message using Webconsole when it’s not enabled (#4127)
- Strict parsing option in stardog.properties is ignored (#2817)
- rdfs:label cannot be used in rules (#4568)
- Training with empty dataset behaviour should be consistent (#4557)
- Uniformize parameters for models (#4434)
5.1.0 Release (2017-12-07)
Added New Feature
- Add support for GraphQL schemas (#4519)
- Stored SPARQL functions (macros) (#4186)
- Support rules in turtle files natively (#4010)
Modified System
- Virtual graph support for alternative property paths (#4486)
Fixed Bug
- Statistics computation does no terminate on very diverse datasets (#4520)
- ORDER BY ignored in path queries (#4509)
- ClassCastException on path queries with solution modifiers (#4508)
- Virtual graphs with property paths may generate invalid SQL (#4459)
- Virtual Graph /mappings endpoint not honoring Accept header (#4455)
- No content negotiation on Sparql Service Description’s (#4453)
- VG queries with VALUES may fail on Apache Derby (#4451)
- Virtual graph queries on Apache Derby may fail with NULL literals (#4450)
- NPE in log after startup on older Linux kernels (#4422)
- Investigate double spatial indexing on backup restore (#4401)
- Estimate cardinality of spatial queries (#4349)
- Estimate cardinality of search queries (#4282)
- VG: pushing large SIP join sets fails on MySQL (#4247)
- RDF4J bindings: Exhausting connection pool (#4243)
- Virtual graph queries may leak JDBC connections when using join bindings (#3488)
- Incorrect results with * property paths and sameAs reasoning (#2243)
5.0.5.1 Release (2017-11-06)
Modified System
- GraphQL CLI help does not show execute (#4418)
- Property paths can return duplicates (#4414)
- Stardog log goes to ${sys:stardog.home} (#4412)
5.0.5 Release (2017-11-01)
Added New Feature
- Support restrictions on start and end nodes in path queries (#4408)
- Add support for GraphQL queries (#4388)
Modified System
- Improve estimations of joins involving property paths with star patterns (#4394)
- Ignore and log non-WGS84 CRS specifications in geospatial WKT (#4332)
- Use a separate environment variable STARDOG_SERVER_ARGS just for server start (#4326)
Fixed Bug
- Subtract function does not accept xsd:duration arguments (#4371)
- Subtracting dates should not use daylight savings (#4370)
- Star path queries with constants return incomplete results inside transactions (#4364)
- Permissions for new user lost after full sync in the cluster (#4356)
- Security changes causes the system metadata in cluster nodes to get out of sync (#4355)
- Incorrect reasoning results with transitive properties that has nested subproperties (#4347)
- Rules with UNION triggers an exception in schema export (#4341)
- stardog.home system property being overwritten on cluster zkstart (#4337)
- FROM/NAMED returning different results than query.all.graphs (#4334)
- Virtual import command fails when JDBC jar is loaded dynamically (#4330)
- STARDOG_EXT environment variable is ignored when –foreground flag is used (#4328)
- Retrieving types with reasoning returns duplicates even with DISTINCT (#4327)
- No graphs returned when retrieving types with reasoning (#4325)
- Retrieving types with reasoning over named graphs return incorrect results (#4324)
- Replicator remotes may be stale if a node loses ZK connection (#4320)
- Cluster stop causes errors on the server-side (#4319)
- Expel nodes that fail precommit after coordinator finishes prepare (#4316)
- Zero-len BITES doc cannot be retrieved (#4314)
- xsd:dayTimeDuration comparison ignores fractional seconds (#4300)
- Node fails to join the cluster with a searchable/spatial db if lock file is left over (#4299)
- License notice has outdated email (#4404)
- Problem with STARDOG SPARQL UPDATE (INSERT) (#4375)
- Review result ordering logic (#4366)
- Improve performance of star path queries with constants over large number of named graphs (#4365)
- Get database options returns invalid JSON (#4351)
- Make Lucene mmap usage configurable (#4283)
- VG: Queries on Oracle return xsd:dateTime instead of xsd:date or include invalid timezones (#4087)
5.0.4 Release (2017-10-03)
Added New Feature
- Allow for multiple strategies when a node re-joins the cluster (#4295)
Modified System
- Make the size of client buffer for updates configurable (#4235)
- Optimize client for mixed updates (#4234)
- Add a database and server option to disable the named graphs check for property paths (#4143)
- Improve error messaging with malformed shapes (#4090)
Fixed Bug
- Node cannot join cluster if db is dropped (#4292)
- Fixed a memory leak in path queries (#4288)
- Backup for offline databases are empty (#4276)
- Failure to write to the tx log makes a database unavailable (#4273)
- SERVICE queries don’t work with https URLs (#4270)
- RDF4J remove not treating null Context as ALL Contexts (#4261)
- Database status command encounters NPE (#4253)
- Transaction rate shows up as 0 in server status output (#4240)
- Trie cache throws exceptions on missing characteristic sets (#4233)
- Reasoning is neither on nor off for path queries (#4229)
- Query with a loop join fails to terminate (#4228)
- Server status shows incorrect number for running queries (#4220)
- DL reasoning producing stale query results (#4218)
- DocumentSearchIndex should consider index creation failures as fatal to init (#4212)
- Node may fail to join the cluster when search is enabled (#4210)
- LockObtainFailedException when a node tries to join the cluster (#4208)
- More aggressively fall back to full sync in the face of sync errors (#4205)
- Endpoints still sending Content-Length with chunked encoding (#4201)
- Small memory leak after database is dropped (#4199)
- CostingVisitor throws NoSuchElementException (#4184)
- Mixed literals are sorted incorrectly (#4174)
- SSL keystore password in plain text in the status output (#4125)
- Don’t show security-related properties in metrics output (#4289)
5.0.3 Release (2017-09-06)
Added New Feature
- (Beta) Path queries for finding all or shortest paths between nodes in the RDF graph (#4089)
- Add registration commands to the stardog-admin CLI (#4187)
- List open transactions (#4137)
- CLI commands for transaction management (#4136)
Modified System
- cast ms-since-UNIX-epoch to xsd:dateTime (#4146)
- Allow functions to be called without namespace prefix (#4054)
- Canceling long transactions (#2095)
Fixed Bug
- Query parser doesn’t preserve the order of projection expressions (#4188)
- Unable to clear database namespaces with RDF4J (#4165)
- xsd:dateTime constants in query truncated to ms precision (#4163)
- Property paths can return incorrect results with named graphs (#4131)
- StardogRepositoryConnection.getStatements drains connection pool for large context lists (#4121)
- ORDER BY doesn’t sort xsd:integer outside 32-bit signed int range (#4114)
- Cluster prepare only waits the default timeout (1h) causing nodes to be expelled if it takes longer (#4112)
- sameTerm binds unbound variables (#4101)
- Query explain non-ASCII chars corrupted (#4098)
- SERVICE queries are always GET (#3861)
- Intermittent connection reset exceptions in the HTTP client (#3084)
5.0.2 Release (2017-08-01)
Added New Feature
- Added a new endpoint, /admin/users/{user}, to retrieve all user info (#4063)
- Add bindings for RDF4J (#2974)
Modified System
- Virtual graph R2RML mappings support template predicate maps (#4025)
- Upgrade to Jackson 2.8.2 (#3999)
- Inefficient iteration over adjacent nodes in property paths (#3991)
- Improve cluster transaction performance (#3964)
- Improve VW error messages (#3962)
- Improve the push filters optimization (#3825)
- Support recursive property paths over virtual graphs (#2773)
Fixed Bug
- Node fails to join the cluster if session expires during synchronization (#4084)
- CLI not setting correct charset when adding files (#4078)
- Property path parser discards zero-or-more modifier when inner path is negated (#4076)
- Make sure dictionary is flushed to disk after each transaction (#4068)
- Embedded connections are left open (#4049)
- Trying to add non-existent file leaves open connections (#4042)
- Wrong exception thrown when adding a stored query that already exists (#4040)
- ClassCastException during statistics cleanup (#4030)
- Web console cannot create non-superuser or delete user (#4022)
- Web console “Export As” giving error (#4019)
- Virtual graph queries did not support VALUES clause (#4015)
- ORDER BY optimizer may re-use var name for fresh var (#4005)
- Virtual graph queries translated CONCAT incorrectly for MSSQL 2008 (#4003)
- Open transaction number is reported as negative in server status output (#4002)
- Data from all graphs returned for stardog:context:default if query.all.graphs is true (#4001)
- Schema browser chokes on UTF-8 characters (#3933)
- No query can be executed if an invalid named graph permission is added (#3930)
- Setting query.timeout to 0 does not work (#3707)
- Virtual graph queries on Oracle return xsd:double instead of xsd:integer (#3019)
- Slow transaction event posting (#2357)
- Singleton operator is incorrect in a graph clause (#758)
5.0.1 Release (2017-07-05)
Modified System
- Improvements to push filters (#3955)
- Improvements to constant optimization (#3954)
- Deploy JDBC drivers without restarting server (#2556)
Fixed Bug
- Database sync fails when spatial is enabled (#3973)
- Shell scripts broken in Cygwin cli defect windows (#3966)
- LockObtainFailedException with search and geospatial (#3963)
- Node cannot join cluster if a newly added user created a database (#3959)
- Support VG queries over different schemas enhancement (#3925)
- NPE in VG materialization with legacy translation defect (#3923)
- LIMIT translated incorrectly for VG queries against MSSQL 2008 and Oracle 11 (#3888)
- Update queries with unbound graph variables are executed incorrectly (#3834)
- Corrupted dictionary when restoring from database backups (#3637)
- Do not push OFFSET/LIMIT into SQL Server VG queries without an ORDER BY (#2993)
5.0 Release (2017-06-22)
Added New Feature
- Support virtual graph queries over different schemas (#3925)
- Special memory configuration for bulk loading very large datasets (#3900)
- Users can now use java.io.tmpdir to specify location of temporary files during building disk indexes (#3895)
Modified System
- More effective optimization for pushing filters down the query plan (#3825)
- Better usage of internal sorting for answering aggregation queries (#3890)
- Better utilization of memory during bulk loads (#3886)
- More scalable computation of statistics on large and diverse datasets (e.g. Wikidata) (#3867)
- Rename assume.iri query hint to equality.identity (#3858)
- Optimized equality filters over graph variables (#768)
- Optimized hash-based data structures with spilling to disk (#3703)
Fixed Bug
- Reasoning is ignored in Webconsole (#3903)
- Exception during statistics re-computation (#3949)
- NegativeArraySizeException while filling the mapping dictionary cache (#3945)
- Stop sending chunked response for SPARQL Update queries (#3940)
- Fix clearing the default graph in cluster deployment (#3935)
- Disable sampled output for server metrics by default (#3932)
- Exception in virtual graph materialization with legacy translation (#3923)
- Better internal sorting for output of BIND operators (#3912)
- Potential overflows in statistics on very large datasets (#3907)
- Wrong page cache size in server monitoring (#3899)
- Avoid exception when enabling JMX without remote access (#3898)
- Wrong formatting of doubles between -1 and 0 in CONSTRUCT queries (#3891)
- Wrong handling of IRIs in numeric aggregation functions (#3889)
- Incorrect reporting of max size of direct memory buffers (#3883)
- Invalid duration representation for values of database options (#3826)
5.0-RC1 Release (2017-05-31)
Added New Feature
- (Beta) Predictive analytics with integrated Machine Learning capability (#3642)
- New and improved monitoring functionality based on the Metrics library (#2138)
- Allow quads to be returned from construct queries (#675)
- VEGA support for SPARQL functions IF and COALESCE (#3778)
- Add a new optimizer hint named push.filters (#3832)
- Add –offset and –limit options to query CLI (#3815)
Modified System
- Change parser.mysql.quoting to parser.sql.quoting so it can be used with other DBs (#3856)
- Deprecate
disk
,mem
,createMemory
,builder
, methods inAdminConnection
(#3811) - Refactor UpdateQuery to implement Query
(#3679) - Remove async and cron based search indexing (#3670)
- Improved handling of literals in StardogValueFactory using enumerations (#1864)
Fixed Bug
- LOAD operation with query params (#3873)
- Resizable partitions for hash-based data structures used for intermediate query results (#3863)
- Optimized duplicate removal for queries for the form SELECT DISTINCT ?x {…}
- Incorrect results with ? and named graphs (#3847)
- SPARQL parser creates list scans without context (#3845)
- Fix routing for web console in IE (#3840)
- Add/remove errors in the web console (#3833)
- Warning in logs about VGs when using community (#3829)
- Watchdog error in log when loading webc onsole w/watchdog disabled (#3827)
- Store durations in the system db using XSD duration strings (#3826)
- Optional variables in aggregates cause NPE (#3823)
- Case sensitive table names when parsing SQL Server queries (#3820)
- Fix NullPointerException triggered by the web console (#3813)
- Retry forwarding drop db to the coordinator (#3812)
- Fix Vega SQL CONCAT() to accept multiple arguments and be nullable (#3777)
- LOAD should use HTTP headers for determining file format (#3706)
- Web console TSV export defaults to filename of “export.null” (#3438)
- Fix handling of queries and quoting in VG import (#3101)
- Web console shows last commit as unavailable (#3020)
- Cluster status command can fail when nodes are in a vpn (#2934)
- Number of running queries reported as negative (#2925)
- Reduce overhead in cluster admin actions #2886
- Make cluster info more helpful (#2794)
- Show query execution time in web console (#1318)
- Extend the amount of stuff available via JMX (#1060)
5.0-Beta Release
Added New Feature
- Query system db and other databases via SERVICE keyword (#3721)
- VEGA: New virtual graph component (#3570)
- Add CLI commands for file processing (#3539)
- Support obfuscating update queries (#3467)
- Grace hash joins (#3462)
- New HTTP server (#3181)
- Removed SNARL Protocol (#3179)
- Native Memory Management (#2527)
- Improved statistics (#1784)
Modified System
- Improve cluster db create performance (#3748)
- Improve order-limit-offset optimization (#3736)
- Require transaction logging in the cluster (#3719)
- Reduced mmap usage (#3710)
- Inlining equality should take into account FILTER [NOT] EXISTS scopes (#3665)
- New retry policy for joining the cluster (#3651)
- Set credentials for LOAD INTO GRAPH statements that refer to remote resources (#3599)
- Eliminate duplicate aggregates (#3560)
- Support more functions for durations (#3556)
- Algebraic rewriting misses VALUES operators (#3551)
- Do not need to cache data when clearing database (#3536)
- Graph update operators can read directly from index for better performance (#3520)
- Clean up temporary index files on start up (#3512)
- Do not index named graphs in Lucene (#3507)
- Optimize away complex expressions in aggregates (#3496)
- Added a cluster password in stardog.properties (#3481)
- Use http trailers to send error information to client about failed responses (#3453)
- Extend algebraic rewriting to avoid loop joins on non-assured variables (#3447)
- Reduce TurtleParser overhead (#3249)
- Do not block writes while node is joining the cluster (#3073)
- Aggregates use more memory than needed (#2908)
- Extend db repair for dictionaries (#1806)
Fixed Bug
- Make statistics loading more robust w.r.t. invalid input (#3802)
- *-property path with bound start could be incorrect (#3792)
- Export to JSON throws error (#3791)
- Inlining of VALUES fails if there’s a nested scope (#3788)
- Inline constants in singleton BINDs (#3787)
- Plan cache can lose constants which are not present in the dictionary (#3771)
- Partitioned coordinator should cancel local tx and rollback (#3764)
- Server side data add with a directory triggers NPE in the cluster (#3761)
- Parsing fails when projection contains aggregates in CONCAT() (#3732)
- Inlining fails with subquery with GROUP BY (#3716)
- Plan cache misses on queries needing aggregate optimizations (#3715)
- Webconsole Load Command Not going to Update endpoint (#3711)
- Non-heap memory usage information is wrong (#3700)
- Fix reentrancy error in NonReentrantMutex (#3696)
- Bulk load copy files to server flag is backward (#3689)
- Creating a db with –copy-server-side and a gzipped file fails (#3688)
- Running out of direct memory while bulk loading doesn’t release memory (#3677)
- ArrayIndexOutOfBoundsException in creating backup (#3668)
- Delete temporary files created while reading tx log (#3663)
- Negative cardinality estimations in MINUS nodes (#3657)
- Getting wrong set of non-optional variables in the translator for MINUS (#3656)
- Resolve raced condition in cluster synchronization which yields incorrect databases (#3654)
- Inconsistent database after sync (#3650)
- Do not use logger during shutdown (#3635)
- Improve OOM handling in dictionary cache (#3634)
- Order-limit-offset optimization does not work with plan cache (#3632)
- Reasoner cannot be used when there is an invalid rule (#3629)
- Execute update query in the same transaction as the connection (#3627)
- Plan reuse can cause incorrect results after adding first named graph (#3606)
- Iterator over 0-path nodes in p* could be incorrect (#3605)
- VG import cannot handle subject IRI without “http” (#3603)
- Wrong encoding being used by client (#3596)
- Getting assured vars bombs out when there aren’t any (#3591)
- Incorrect resetting of p* operator (#3585)
- Incorrect handling of aggregates in order by clauses (#3582)
- Dividing durations by a number might trigger an evaluation exception (#3559)
- Improve system lock handling on system restart (#3552)
- BNodes as objects in INSERT query throw error with [] syntax (#3540)
- Disabling page cache via a system property triggers NPE (#3531)
- SameAs index not updated after schema graphs option is modified (#3517)
- SameAs reasoning works only over schema graphs (#3515)
- Equality index is not being updated correctly (#3504)
- Wrong index order chosen for querying default graph (#3503)
- XPath functions over aggregation triggers exception (#3502)
- Rio TrigWriter improperly handles doubles between -1 and 0 (#3492)
- Turning off spooling for merge join is incorrect (#3483)
- Functions in queries/rules should not be obfuscated (#3479)
- Multiple triples in the THEN clause are ignored (#3477)
- Cluster unable to recover when partition occurs immediately before a tx begins (#3476)
- Race condition when creating ZK zkpw and databases (#3475)
- Network Operations are being performed on the ZooKeeper Event Thread (#3452)
- Zookeeper client fails to find an available server (#3437)
- 15 minute commit when partitioning off a cluster node (#3432)
- ZkClient’s caching of coordinator state can lead to non-repeatable reads (#3414)
- When two nodes try to join the cluster at the same time one gets stuck (#3363)
- Rules should work after obfuscation by default (#3334)
- VG mapping allows only prefixed IRI template for subject (#3315)
- OOB in OffHeapObjectArray (#3309)
- Empty HTTP options request throws NPE (#3272)
- Dictionary corruption after proper shutdown (#3269)
- Flowing more than 2GB to off-heap throws IllegalArgumentException (#3205)
- Search index entries removed from all graphs instead of one (#3042)
- Graph queries not working with accept / (#2997)
- Dropping a database during updates cause node to be expelled from the cluster (#2928)
- Never attempt to load statistics from an incompatible format (#2889)
- Do not query ZK for coordinator check (#2873)
- Cluster fails to rollback timed out connections (#2825)
4.2.4 Release (2017-03-21)
WARNING: As discovered by Martin Hostettler and Fabian Cretton, Stardog cluster has a privilege escalation vulnerability fixed in 4.2.4. User and role permissions propagate correctly, but whenever any user attempted to run any command on the cluster with valid credentials, they were auth’d as a superuser. So given any valid credentials, once auth’d you could do anything. Single servers are not affected by vulnerability.
Security Vulnerability
- Fixed privilege escalation in HA Cluster; affected version: Stardog 4.2.3 (SD-SEC-HA1)
4.2.3 Release (2017-01-17)
Added New Feature
- Add command to export all namespaces (#2739)
Modified System
Include secondary indexes in bulk load speed at creation (#3423) Allow port number is pack.node.address
(#3421) textMatch
should return all results by default (#3411) Optimize r/w access to the full-text index (#3398) Optimize merge joins when the left operand produces unique values for the join key (#3360) Align spatial extraction between bulk load and transaction updates (#3331) Improve query plan legilibilty (#3327) Support human readable durations in query --timeout
option (#3302) Use generated credentials for ZK and intra-cluster authz (#3267)
Fixed Bug
- Namespace prefixes in SRS rule bodies affect obfuscation (#3468)
- Implicit projection is incorrectly expanded where there are subqueries (#3456)
- Incorrect handling of combinations of FILTER EXISTS and BIND in the parser (#3436)
- Incorrect conditional check in script (#3425)
- wktLiterals in queries are being aggressively cached (#3373)
- Rules using UUID() prevent schema export (#3371)
- NPE in MappingDictionary when calling localname(bnode()) (#3339)
- Regex wrongly assumes that the pattern is a constant (#3312)
- Plan cache is invalidated too early (#3266)
- Zookeeper and stardog password diverge when all nodes drop (#3251)
4.2.2 Release (2016-12-29)
Modified System
- Upgrade Curator and ZooKeeper versions (#3415)
- Improve Stardog client for large updates in memory (#3401)
- Suppress connection errors in the log (#3378)
- Optimize COUNT with regard to variable usage (#3367)
- Geospatial indexing should simply skip malformed shapes (#3362)
- For any spatial features which are malformed, print the literal value of the feature to the log (#3343)
- Health check calls cause bogus warnings to be logged (#3127)
- Do not index non-string literals in Lucene (#2264)
Fixed Bug
- Bug in SPARQL replace function (#3385)
- Spatial index is rebuilding completely after adding any data (#3379)
- Resolve variable usage issue with using reasoning with virtual graphs (#3349)
- MemoryManager fails when heap pool cannot be identified (#3348)
- No limit on incoming triples when displaying resource (#3345)
- VG query optimized incorrectly with filter pushing (#3342)
- Subquery projection declares all its variables as assured (#3338)
- geof:within should accept a constant as the first argument (#3329)
4.2.1 Release (2016-12-06)
Modified System
- Avoid unneccesary validations for updates (#3299)
- Need estimations for joins on context variables (#3254)
- Health check causes bogus connection warnings/errors (#3252)
- Admin commands print log4j warnings (#3247)
- Memory settings not logged on startup (#3244)
- Improve UX for expired licenses (#3232)
- Improve virtual graph import/export performance (#3207)
- Get rid of incorrect warnings about unrecognized options (#3191)
- Duration multiplication functions are not registered for the SWRLB namespace (#3176)
- Return version ID when versioning is committed (#3091)
- Query plans with reasoning can be cached (#988)
Fixed Bug
- IN filters don’t work within disjunctions (#3318)
- Stardog Versioning API connection leak (#3314)
- Zero-length property paths return duplicates inside transactions (#3307)
- Keep HTTP connections alive when using chunked responses (#3286)
query.all.graphs
does not work for SPARQL Update queries (#3285)- Property paths with * are incorrect with named graphs (#3274)
- Service node reports incorrect variables (#3257)
- Webconsole fails to export CONSTRUCT query results (#3255)
- Jena bindings pulls old httpclient jars into client jars (#3243)
- Inverse negated property path returns same result as non-inverted (#3240)
- Incorrect sort order for property paths (#3239)
- Differential index keeps growing (#3234)
- Query obfuscate output is wrong when stored namespaces are used (#3228)
- Obfuscating queries with prefixed datatypes throws ClassCastException (#3227)
- Construct queries return incomplete sameAs inferences with joins (#3225)
- TMP files aren’t being flushed when buffering large queries (#3223)
- Reasoning error with property chains not used in assertions (#3219)
- Iterators created for insert/where queries are not closed (#3212)
- CLI displays java.io.EOFException on query timeout (#3210)
- Exporting virtual graphs in the CLI does not work (#3206)
- JSON file extension not recognized (#3202)
- Fix error in binary result parsing (#3194)
- failed VG init cannot be removed (#3172)
- Queries with punning may fail (#2645)
- Property paths can cross named graph boundaries (#1851)
- Cannot explain recursive reasoning results (#926)
4.2 Release (2016-09-29)
Added New Feature
- BITES: Blob Indexing and Text Enrichment with Semantics (#335)
- SNARL Protocol Deprecation (#3072)
- Stored queries (#3030)
- Lazy classification option (#3096)
- Optimize IN filters for expressions (#3063)
- Distinct values filter for aggregated expressions (#3054)
- Make cluster session timeout configurable (#2833)
- Support UNION in Stardog rules syntax (#2383)
Modified System
- Don’t embed the error message in the reason phrase (#3165)
- Use a more efficient classTree query for the webconsole (#3159)
- Translate geof:within usages in FILTERs to the equivalent property function (#3137)
- Improved cancellation interrupts when building intermediate results (#3085)
- Improve error messages for metadata operations on CLI (#3081)
- stardog-admin.bat feature parity with shell scripts (#3079)
- Using retry handler for NoHttpResponseExceptions in HTTP client (#3074)
- Improved optimization of FILTER expressions with MINUS operator (#3064)
- Support off-heap serialization of objects of unknown size (#2919)
- Minus operator can use reset() (#2215)
Fixed Bug
- HTTP Server protocol header is invalid (#3168)
- DELETE/INSERT/WHERE queries close intermediate collections before search index can use them (#3162)
- Turtle parser report incorrect error line number in the presence of comments (#3160)
- SQL Server VG import is broken (#3153)
- CLI output show multiline strings jumbled up (#3148)
- Exports over http can leave connections open (#3144)
- Cluster replication might fail due to credentials issues (#3134)
- Literal variables inlined with constant simplification does not return results (#3133)
- Update queries executed by non-coordinator nodes trigger UnknownTransactionException (#3128)
- Health check calls cause bogus warnings to be logged (#3127)
- Log print shows all queries as not started (#3122)
- Log print CLI command fails with filters >= and <= (#3121)
- TxBegin events are not logged in the audit log of cluster nodes (#3120)
- Set query specific timeouts via Sesame interface (#3117)
- Possible deadlock between StardogKernel & KernelShutdown in embedded mode (#3115)
- –copy-server-side for db create fails when passed a directory (#3113)
- Context-last index order used for scanning triples in a named graph (#3111)
- Bogus warnings in DL mode (#3095)
- Invalid dateTime values cause exceptions during query execution (#3092)
- HTTP call to explain consistency returns 500 for consistent graphs (#3090)
- Rio TurtleWriter improperly handles doubles between -1 and 0 (#3087)
- Special graph ALL is treated incorrectly in GRAPH clauses (#3083)
- Multiple prefixes for same namespace causes problems (#3070)
- Possible class cast exception in SemiFastCompare (#3069)
- Class cast exception when IN filter contains expressions (#3068)
-
Unbound variable in filter cause incorrect results (#3067) - Need to check that all costs are known during join order optimizations (#3062)
- Clean all temporary dirs created by disk-based solution sequences (#3060)
- SPARQL parser does not propagate parameters when parsing expressions (#3059)
- SPARQL parser does not allow 0-arity functions in projections with GROUP BY (#3048)
- NPE in dictionary during concurrent queries (#3012)
- Need to use flowing solution sequence builders for aggregation (#2906)
- DB creation hangs when it runs out of direct memory (#2173)
- Extrapolation of object counts in characteristic sets is incorrect (#2119)
4.1.3 Release (2016-08-08)
Modified System
- User permission cli command does not show any example usage cli (#3057)
- Minimize memory use when querying uncomitted changes (#3025)
- Using the base index for cardinality estimations (#2338)
Fixed Bug
- Parser doesn’t propagate context into FILTER NOT EXISTS defect query-parser (#3058)
- Class cast exception for aggregation queries with values defect query-eval (#3053)
- Adding data to different databases causes running out of memory defect (#3051)
- Another case of wrong parsing BINDs in queries (#3047)
- Do not reuse plans that require a unary/binary index during transactions (#3039)
- Named graph security doesn’t work with WITH (#3037)
- Incorrect results for queries using count indexes (#3034)
- Wrong evaluation of a property path with non-projected variable (#3028)
- AbstractQuery incorrectly dispatches boxed primitives (#3027)
- PropertyFunctions should be able to use non-scan nodes as args (#3026)
- VALUES should not eliminate duplicates (#3022)
4.1.2 Release (2016-07-08)
Added New Feature
- Add a SPARQL function for returning IRI namespace (#2992)
- Add xsd:date cast function (#2976)
Modified System
- Use pretty formatting for R2RML output (#3006)
- Do not import empty values from CSV files (#2994)
- Put LocalName function in Stardog namespace (#2991)
Fixed Bug
- Wrong parsing of multiple BINDs after OPTIONALs (#3018)
- Non-determinism in cardinality estimations (#3017)
- secure processing option for RIO prevents setting of entityExpansionLimit (#3015)
- Wrong parsing of filters after an OPTIONAL (#3014)
- Wrong join type for scans with context-first index order (#3013)
- Combining consecutive FILTERs with && can reduce effectiveness of filter optimizations (#3009)
- ClassCastException upon opening a database connection (#3005)
- Configuring max URL length in HTTP server is not working (#3004)
- IN filter expression doesn’t handle type errors correctly (#3003)
- Virtual mappings with xsd:negativeInteger fail (#3002)
- Strict parsing mode does not validate some datatypes (#3001)
- Implicit join detection fails in the presence of property paths (#3000)
- EXISTS expression is evaluated incorrectly if not in a FILTER (#2996)
- Incorrect skipping in scan with explicit active graph (#2995)
- Wrong treatment of LIMIT in CONSTRUCT queries (#2985)
- Geospatial queries with no results throws an exception (#2982)
4.1.1 Release (2016-06-14)
Modified System
- Show SQL queries while explaining virtual graph query (#2979)
- Remove output log redirect on startup (#2970)
- Change coalescing in SNARL Connections can cause a deep stack (#2951)
Fixed Bug
- Delete queries do not update search/geospatial index (#2983)
- Problem with parsing bind + values (#2981)
- DELETE/INSERT queries fail with sameAs reasoning (#2978)
- Version diff fails for RDF patch format (#2977)
- Service queries where variables are renamed in a projection return incorrect answers (#2975)
- Virtual graphs with default mappings lost after a restart (#2973)
- Push solution modifiers to SQL (#2972)
- Wrong index order used when query defines a dataset (#2971)
- Removals might cause diff index to exceed the limit (#2967)
- Open conn count is not accurate when there are open transactions (#2965)
- NPE while loading security information from the system index (#2963)
- Open conn and tx count not shown for previously created database (#2962)
- Server properties not defined in StardogConfiguration are invisible to status (#2961)
- Concurrent transactions fail when versioning is enabled (#2960)
- NPE in nested merge joins (#2959)
- NPE parsing describe * queries (#2957)
- NPE iterating off end of context scan (#2954)
- Incorrect handling of HAVING clause with implicit group (#2948)
- Key not present error while processing R2RML referencing object maps (#2946)
- SWRLB dateTime functions don’t define a namespace (#2945)
-
SWRLB (dateTime yearMonth)Duration functions return xsd:duration (#2944) - Versioning API dependency on prov should be non-transitive (#2932)
- Strict parsing option in stardog.properties is ignored (#2817)
- Clear all/context is inefficient (#2108)
4.1 Release (2016-05-18)
Added New Feature
- Optimize IN expressions in FILTERs (#2923)
- CLI tool to display access/audit log contents (#2921)
- Allow mixing regular queries with versioning queries (#2911)
- Cluster status command (#2902)
- Use compression for partial database sync (#2901)
- Support all result formats in SERVICE calls (#2893)
- Add an ext directory in server in the distro (#2877)
- Add an option to disable URI escaping in virtual mappings (#2869)
- Improve reasoning performance with transitive properties (#2863)
- Return server properties in server status (#2862)
- Improve performance of hybrid reasoning operators in SPARQL updates (#2858)
- Improve performance of merge joins over named graphs (#2845)
- Improve performance of reasoning queries that use type operator (#2835)
- Update admin web console db table (#2592)
- Have separate server stop and cluster stop commands (#2819)
- Make cluster multi-coordinator (#2636)
- Faster SPARQL parser (#2524)
- Showing incoming links in webconsole instance views (#2238)
Modified System
- Do not coalesce all inputs on client side (#2931)
- Output for db create command is different in cluster mode (#2930)
- Minimize time admin commands are blocked during node join (#2929)
- Allow only one node to join the cluster at a time (#2927)
- Node failing to join the cluster should shutdown (#2899)
- Improve error message for unrecognized file formats in virtual import command (#2883)
- Add license info to pom files (#2867)
- Exclude unsupported axioms from PROV archetype (#2866)
- NamedGraphPermissions is missing from javadocs (#2861)
- Do not require username/password in virtual graph settings (#2842)
- Regex function cannot be used with XPath or SWRL namespaces (#2838)
- Minimize wait time during JVM shutdown (#2834)
- Update to Curator 2.10.0 (#2799)
- Sort classes in the schema browser alphabetically (#2757)
- Relax type constraints for duration functions (#2754)
- Retry node sychronization according to policy when sync initially fails (#2746)
- Tracking the number of changes on the client and eager pushing to the server (#2342)
- Eager change coalescing on client (#2341)
- Increase scope of algebraic rewriting (#2089)
- Reuse ZK cluster credentials from cluster superuser (#1595)
Fixed Bug
- Double closing off-heap/disk sequences (#2941)
- Order By in a subquery may trigger an OOB in the optimizer (#2938)
- Projections with aliases and group by yields incorrect parse error (#2937)
- Password file matching for specific database does not match (#2935)
- Versioning API dependency on PROV API should not be transitive (#2932)
- Events in access/audit log do not have database field (#2924)
- Nodes fail to rejoin the cluster because not all transactions are cancelled (#2915)
- Update queries are not parsed using the database’s namespaces (#2912)
- Parsing of update queries missing closing brace never terminates (#2910)
- Handle empty multipart requests to db create (#2905)
- Malformed log format errors (#2903)
- Partial database sync fails for concurrent transactions (#2900)
- Node joining the cluster gets stuck while syncing a database (#2898)
- ArrayIndexOutOfBoundsException during concurrent reads and writes (#2896)
- system.lock left after the server refused to start on an obsolete home (#2892)
- Transaction fails with inconsistent index size error (#2891)
- Update query may create a graph with a literal name (#2881)
- Literals containing < and > are displayed incorrectly in the webconsole (#2879)
- Editing an individual in web console can lose datatype information (#2875)
- xsd:date and other typed literals are displayed in an edit widget making the lang editable (#2874)
- xsd:int and other numeric types not recognized as such in webconsole (#2872)
- Evaluating star property paths without indexed named graphs yields an error (#2870)
- Missing transitive property inferences with sameAs reasoning (#2865)
- Last modification time for databases are wrong (#2860)
- Update queries with default insert graph might trigger an NPE (#2860)
- Data add command fails for directories if a file has an unrecognized extension (#2854)
- Adding two files with different formats throws parsing exceptions (#2853)
- Loading zip files through the SNARL client causes NPE (#2849)
- Joins in queries might return incomplete results with sameAs reasoning (#2847)
- MemExternalSorter throws IllegalStateException if inserting duplicated quads (#2846)
- Regex function in DL mode tries to match the whole string (#2844)
- Webconsole instance view shows properties in random order (#2841)
- Webconsole displays string “Empty” for number 0 (#2840)
- Date/time arithmetic functions return incorrect results (#2839)
- Webconsole fails to display anything when data contains invalid literals (#2837)
- Webconsole cannot handle valid xsd:integer values (#2836)
- Concurrent reasoning queries may timeout incorrectly (#2831)
- Transient ZK failures during writes block node from re-entering cluster (#2829)
- Empty group solution has wrong multiplicity (#2837)
- Cluster connection times out in the middle of a long transaction (#2834)
- NPE thrown querying large amounts of uncommitted data (#2823)
- Large transactions trigger NPE when transaction logging is enabled (#2820)
- Update queries fail when equality reasoning is enabled (#2802)
- Webconsole missing preserve.bnode.ids and strict.parsing options (#2792)
- Webconsole fails to export results if the query contains a plus symbol (#2767)
- ClassCastException in the SPARQL parser on a query with a complex path (#2652)
- Cluster sends all http post requests to the coordinator (#2631)
- Gracefully handle failures to fit a characteristic set into a page (#2618)
- Rejoin can fail with “no other nodes to sync db” (#2599)
- List of dbs in cluster should be based on consensus, not coordinator (#2539)
- Complex property paths to find cycles miss results (#2319)
4.0.5 Release (2016-02-18)
Modified System
- Allow users to configure max URL length in HTTP server (#2809)
- Misleading security exceptions in admin CLI when exception not related to security (#2795)
- Introduce heuristic-based join order optimization (#2791)
- Query plan caching accounts for selectivity differences (#2784)
- Confusing error message using LOAD with a bad location (#2766)
- Print a message to the log file when Stardog shuts down (#2763)
- Make type and property reasoning operators lazy to reduce memory usage (#2755)
- Load JDBC driver explicitly without relying on the service loader (#2753)
- Minimize memory overhead in MemoryPoolImpl (#2707)
- Display more detailed memory info in server status (#2575)
- Reduced memory footprint of intermediate query results (#1884)
Fixed Bug
- CSV imports don’t support language literals (#2814)
- Inlining constants into Waldo nodes breaks queries (#2813)
- ArrayIndexOutOfBoundsException during database creation (#2811)
- Faulty nodes in cluster should not cause a transaction to fail (#2810)
- HTTP server is not returning a 415 status when URL is too long (#2808)
- Using deprecated text/plain content type for N-Triples triggers NPE (#2807)
- LOAD queries don’t support compressed files (#2805)
- Incorrect sort type for complex property paths with unbound ends (#2803)
- Invalid geospatial data causing cluster nodes to be disabled (#2798)
- IllegalArgumentException thrown from off-heap memory pool for some JDKs (#2797)
- Query dataset rendering is incorrect in update sequence plans (#2796)
- Checks for Authorization http header is not case-insensitive (#2793)
- Classes and properties used only in rules return as null values in query results (#2788)
- Temporary files created for INSERT/DELETE/WHERE queries are not deleted (#2795)
- Cardinality estimations for full-text nodes (#2791)
- Variable rendering for Waldo nodes in the plan incorrect (#2780)
- Optimizing queries for rdf:type using reasoning (#2774)
- Group and minus clauses trigger exceptions with virtual graphs (#2772)
- Files created by Guava’s FileBackedOutputStream are not deleted eagerly (#2771)
- Aggregates min/max does not work with IRIs (#2770)
- New memory indexes can canonicalize literals, existing ones cannot (#2769)
- NPE when trying to extract non-existing TBox (#2768)
- Loading many files at the same time causes client to run out of memory (#2761)
- Query parameters are not assigned IDs and can be cached incorrectly (#2760)
- Inconsistent use of DISTINCT in reasoning queries (#2436)
- Stop preparing subtransactions after first failure (#2305)
4.0.3 Release (2016-01-14)
Modified System
- Include ICV explanations in guard mode (#2749)
- Handle URI templates in language tags of literals for virtual mappings (#2747)
- Query command option to specify a default graph (#2740)
- Support SPARQL dateTime functions for date and time datatypes (#2694)
Fixed Bug
- Sum aggregate uses 0 as the base value (#2756)
- Context iterator should not produce results when there are no contexts (#2750)
- CLI query command prints datatype for language literals in table output (#2745)
- URI templates used for rdf:type in virtual mappings are handled incorrectly (#2743)
- Virtual graph queries with filters in optionals return incorrect answers (#2738)
- Stardog mapping syntax does not support Turtle escape sequences in column names (#2737)
- Virtual mappings retrieved via HTTP cannot be iterated multiple times (#2736)
- Multiple quotes in column names of virtual mappings causes infinite recursion (#2735)
- Support RDF 1.1 string literals in virtual graphs (#2734)
- Stardog mapping syntax should use default datatypes for literals (#2732)
- Construct queries against virtual graphs throw exceptions (#2731)
- Optionals in virtual graph queries can cause NPE (#2729)
- Line numbers in Turtle parse errors are incorrect in the presence of multline literals (#2728)
- Deadlock with serializable isolation level under heavy load (#2727)
- ICV explain ignores query constraints (#2723)
- Constraint validation leaves connections open (#2722)
- False negative query results when using
Contexts.ALL
with named-graph sec in DB (#2721) - ValueExprToExpression missing handler for BNODE (#2720)
- Plan cache incorrectly handles complex property paths (#2717)
- Avoid re-optimization of path expressions in general property path operators (#2716)
- Be more defensive in loading functions from the service loader (#2714)
- Query parameters only used in filters are not bound in the results (#2695)
4.0.2 Release (2015-12-09)
Modified System
- Include virtual graphs in javadocs (#2702)
- SPARQL update queries with a WHERE clause throws exceptions in the cluster (#2701)
- Missing option to virtual import command to clear destination graph first (#2700)
- Support virtual graphs in ADD and COPY queries (#2699)
- Minimize queries sent to virtual graphs (#2692)
- Improve handling of client-side logging (#2688)
- More robust way to figure out system db is out of sync with the cluster (#2566)
- Reasoning not applied to virtual graphs and SERVICE queries (#2690)
Fixed Bug
- Full version IRIs are not supported in vcs tag command (#2709)
- Modify queries using only insert or delete do not work when named graph security is enabled (#2708)
- Version ranges are misinterpreted in vcs diff CLI command (#2705)
- Deprecated TriG mimetype not supported by HTTP server (#2704)
- Caching for Authentication with LDAP (#2698)
- Pushing filters into unions is incorrect (#2696)
- Errors during rejoins might be ignored (#2660)
- Corrupted transaction log causes a database to be deleted at startup (#2659)
- Variable inlining does not work with service (#2549)
4.0.1 Release (2015-12-02)
Modified System
- Improve the undefined prefix error message for update queries (#2687)
- Help message for virtual graph CLI commands are incorrect (#2686)
- Accept constants as the input location for
geospatial:nearby
(#2682) - Update to TinkerPop 3.0.2-incubating (#2669)
- Rewrite
FILTER [NOT] EXISTS
intoOPTIONAL FILTER [!] BOUND
(#2651) - Inform the user when a database cannot be migrated/repaired (#2535)
- Improve performance of Gremlin counting traversals (#2534)
Fixed Bug
- DL reasoning with named graphs is broken (#2685)
- Query info does not include dataset information (#2684)
- Need an implicit scan over all features when the var to a spatial operator is never bound (#2683)
- Only extracting spatial features from the default graph (#2681)
- Variable replacement does not happen in the children of a
PropertyFunction
(#2680) - Replicated data sources being closed too early (#2676)
- Connection resets in proxy during data add (#2675)
- Cardinality estimates are not updated after variable inlining (#2673)
- Cardinality estimates need to be updated for cached plans (#2672)
- Virtual graphs are not supported in the
FROM
clause (#2670) - Open transactions prevent participant nodes from shutting down (#2668)
- Not rolling back prepared transactions leave index in invalid state (#2666)
- Auto rollbacks cause problems in cluster (#2662)
- Handle transaction failures more gracefully (#2654)
- Query Panel not showing language tags in results (#2644)
- R2RML literal mappings with multiple variables are treated as language tags (#2300)
4.0 Release (2015-11-18)
Added New Feature
- Server option to require client certificate via SSL (#2574)
Modified System
- Reduced offline wait time (#2610)
- Update to Sesame 4.0.0 final (#2603)
Fixed Bug
- Exception: The limit cannot be greater than the page size (#2665)
ClassCastException
in algebraic rewriter withVALUES
andUNION
(#2663)- Date/time comparison functions not working in DL mode (#2656)
- Avoiding creating writer for rollback in search index when one was not created (#2655)
- Make the subquery-based JO optimizer a bit more cautious (#2650)
- Bash completion is missing for stardog-admin license is missing (#2649)
- Filters sometimes report negative cardinality (#2648)
- Property paths with the empty path expression should be optimized away (#2647)
- HTTP shutdown call returns status 406 (#2646)
- DB restore is not creating a znode for the new db (#2643)
- Blank nodes break edge caching (#2641)
- OOM in Streamer under heavy read load (#2640)
- Updating individuals within a Named Graph in Web Console strips the context information (#2639)
- Improved optimization of
WHERE
clause of update queries (#2638) - NPE rendering plan explanation (#2637)
- System catalog size grows endlessly (#2635)
- TX logs need to be cleaned up periodically (#2627)
- AssertionError in tx log (#2626)
- TimerPausedException in cluster (#2622)
- EncodingException can leak connections (#2609)
- Exporting NQuads from webconsole yields NPE (#2608)
- Boolean query results ignore content negotiation (#2605)
- Gracefully handle the empty query string in the SPARQL parser (#2588)
- Stuck transaction prevents shutdown (#2582)
- Unavailable nodes in the cluster do not accept server stop command (#2581)
- Some valid construct queries cannot be parsed (#2516)
- Nodes depend on ZK ensemble to shut down cleanly (#2506)
- Connection times out during long SPARQL update queries (#2292)
- Negative cardinality estimations (#1834)
4.0 RC3 Release
Added New Feature
- Add progress monitor for server-side exports (#2545)
Modified System
- Speed up data export for large databases (#2607)
Fixed Bug
- Too many files exceptions in the cluster (#2632)
- NPE if pinged while cluster node is starting up (#2630)
- System db in the cluster syncs on startup even if no changes (#2629)
- IOException: Unsupported class type Permission in the audit log (#2628)
- Event executor terminated in SNARL client (#2623)
- Rolling back a transaction that is in progress fails (#2621)
- ConcurrentModificationException in the algebraic rewriter (#2617)
- Commits without a message reuse previous commit message (#2616)
- Add explicit vcs:Updates type in versioning metadata assertions (#2615)
- Non-select queries for versioning metadata query the database (#2613)
- CLS vcs commit command prints wrong message (#2612)
- Differential index causes repair command to think db is invalid (#2602)
- Deadlock in RPC client can halt coordinator (#2579)
4.0 RC2 Release
Added New Feature
- Per-query timeouts (#2442)
- Add spatial.enabled to webconsole (#2583)
Modified System
- Tinkerpop 3.0.1 (#2554)
- Improved progress reporting for restoring a database from backup (#2552)
- Metadata for index fragmentation (#2530)
- Improved accuracy of sub-query timeouts (#2564)
- Always log timed out queries in slow query log (#2570)
Fixed Bug
- Typos in reasoning undo CLI command (#2561)
- Server losing ZK connectivity causes client to freeze (#2567)
- Restoring 3.x backups in 4.0 assigns bogus datatype to plain literals (#2571)
- Auto-complete scripts missing virtual graph completions (#2572)
- Disk index should clean statistics after closing connections (#2573)
- Opening concurrent search index connections throws exceptions (#2578)
- Coordinator losing ZK connection does not cancel transactions (#2580)
- Spatial query re-writer can eat binds that aren’t using spatial functions (#2584)
- HTTP client sends too many options exceeding URL length restrictions (#2585)
- System database disk usage grows endlessly (#2586)
- Gracefully handle the empty query string in the SPARQL parser (#2588)
- Race condition in free page handling (#2591)
- Inlining singleton VALUES can lose bindings (#2600)
4.0 RC1 Release
Added New Feature
- Property Graphs
- Virtual Graphs
- RDF 1.1
- Java 8
- Geospatial
- Support –bind option in query explain command (#2495)
- Handle adding RDF in compressed format in web console (#2453)
- Cluster-wide shutdown. (#2402)
- Add setting to
stardog-admin
to allow starting the server in the foreground (#2326) - Add a CacheManager for LDAP (#2510)
- Merge proxy functionality into nodes (#2115)
- Introduce configurable isolation level option and serializable transactions (#1222)
Modified System
- Remove explicit migration from the API (#2433)
- Remove
pack.cluster.address
which is deprecated in 3.1 (#2327) - Update to Netty 4.0.30
- Update to Lucene 5.3.0
- Update to Jena 3.0.0
- Update to Sesame 4.0
- Change from JUL to Log4j 2
- Cost model reflects estimation accuracy (#2541)
- Change default values for differential index parameters (#2540)
- Compute and store page fragmentation info (#2530)
- Improved performance of node synch for new nodes (#2517)
- Progress monitor for migration (#2481)
- Improve performance of client side exports (#2479)
- Improve variable inlining to cover more cases (#2465)
- Rename
transactions.durable
option totransaction.logged
for clarity (#2464) - Allow query.timeout to be modified while db is online (#2441)
- Default base URI used for RDF parsing changed from
tag:stardog:api:
tohttp://api.stardog.com/
(#2395) - Define a default namespace for databases (#2390)
- Do not automatically upgrade an index, force user to do it explicitly (#2339)
- Improve optimization of plans re-written by the reasoner (#2102)
- Inline equality filters for some literals (#1925)
- Progress meter for startup (#1684)
- Use DB namespaces while parsing RDF files (#1230)
- Change key binding for Execute in web console query panel (#2543)
Fixed Bug
- Named graph export includes default graph too (#2546)
- Enabling compression for server side exports raises NPE (#2544)
db status
andserver status
are showing negative values for open transactions (#2532)- Large number of small transactions use too much disk space (#2529)
- Some valid ASK queries cannot be parsed (#2508)
- Multiple occurrences of a variable in a triple pattern produces incorrect results (#2502)
- Assured vars for projections are wrong (#2500)
- Implicit join detection does not respect variable scopes (#2499)
- Setting an optional variable as a query parameter produces incorrect results (#2498)
- “Home locked” message not printed to the standard output (#2491)
- Incorrect parsing of update query with USING (#2489)
- PlanCache incorrectly handles plans with VALUES (#2488)
- DB repair can leak direct memory (#2487)
- Server start command cannot be killed with CTRL-C (#2486)
- Server start command creates home directory if it does not exist (#2482)
- Client export does not close the StatementSource after export (#2480)
- Join order optimizers can NPE (#2467)
- Inlining variables used in VALUES clause can lose filters (#2466)
- langMatches implementation is incomplete (#2463)
- Mouse events in webconsole’s tree browser are broken (#2462)
- Queries using DL reasoning compute incorrect results for annotation properties (#2460)
- Unhandled exception
java.util.NoSuchElementException
on query execution (#2459) - Canonicalize operator loses bindings computed by child operator (#2458)
- Top operator does not filter solutions produced by child operator (#2457)
- Show message in UI to alert user when no NG were selected when exporting data (#2454)
- Restored dictionaries might be corrupt (#2452)
- java.nio.BufferUnderflowException during backup (#2451)
- Stats are computed twice after db is restored (#2450)
- Add data in DB web console is not catching parsing errors from stardog (#2449)
- Adding invalid RDF data makes db unusable in the cluster (#2447)
- Bnode URIs in VALUES are not recognized (#2445)
- Can’t start stardog server when
STARDOG_HOME
is a symlink (#2444) - Parameterized queries fail in CLI when parameter value contains equal character (#2443)
- Large databases cannot be migrated (#2440)
- Function registry missing regex and langMatches functions (#2439)
- Non-numeric datatype facets cause UnsupportedOperationException (#2438)
- NullPointerException in datatype reasoning (#2437)
- Joins can be incorrect if the key is bound to a runtime index value (#2431)
- SearchIndex auto-creates an index, but not the metadata (#2428)
- Search uses wrong wrapper when reading metadata (#2427)
- Stored namespaces override namespaces explicitly declared in SPARQL queries (#2426)
- Retrieving role assignments from system index is incorrect (#2414)
- Rolling back unprepared transaction makes database unusable (#2359)
- Reasoning with string literals are broken (#2340)
- Do not allow triples with literal subjects in rules (#2219)
- Log messages are not always flushed to stardog.log (#2172)
3.1.4 (Oh my it’s π) Release
Modified System
- Improved join key selection for multi-key joins (#2399)
- DB Connection timeout default too small in Web Console (#2394)
Fixed Bug
- Data obfuscation w/ named graphs collapses data into default graph (#2411)
- Named graph security checks do not use effective permissions, only explicit (#2410)
- Stack overflow in the TBox operator (#2406)
- Incorrect cache lookup for queries with equality and datatype casting (#2405)
- Bind operator can evaluate bindings in a wrong order (#2404)
- SameAs Operator returns prematurely (#2403)
- Empty query results when data contains
Contexts.ALL
andquery.all.graphs
is enabled (#2400) - Tracking deletions in the search index does not correctly respect the arity of the literal value (#2396)
- Query fails with IllegalStateException: This scan does not provide an ordered output and cannot skip through solutions (#2388)
- Schema browser queries don’t terminate when using named graphs (#2387)
- Incorrect join results in case of non-existent keys (#2412)
3.1.3 Release (2015-07-15)
Modified System
- Improved logging for invalid rules (#2377)
Fixed Bug
- Use Stardog default port of 5820 when none specified for AdminConnection over HTTP (#2391)
- Character encoding defaults to US-ASCII rather than UTF-8 (#2382)
- Service incorrectly reports bound variables (#2381)
- Cluster should not replicate file references from data add/remove, contents should be replicated instead (#2380)
- Copying a database does not create a new entry in ZK (#2376)
- Hard offline is not propagated to particpants (#2375)
- Graph store protocol does not respect parsing options (#2257)
- data add/remove does not correctly handle directory arguments (#2093)
- QueryStringDecoder imposes a hard-coded maximum number of parameters yielding incorrect results for large HTTP requests (#2392)
3.1.2 Release (2015-07-07)
Modified System
- Optimize sorting and de-duplication of uncommitted changes during querying (#2347)
Fixed Bug
- Last committed transaction ID inconsistent across nodes for brand-new databases (#2374)
- Use xerces implementation of DatatypeFactory over the native sun implementation (#2373)
- Databases which could not be created at startup cannot be synched to restore them (#2371)
- List of available databases does not account for databases that were deleted externally (#2370)
- Incorrect index order chosen when vars in equality filters are inlined (#2361)
- Admin console does not work with SSL (#2360)
- Persistent memory index leaks open file handles (#2356)
- LDAP user records are assumed to have uid attribute (#2354)
- ClassCastException during updates (#2277)
3.1.1 Release (2015-06-16)
Modified System
- Reduced optimization overhead for simple queries
- StardogRepositoryConnection buffers updates unnecessarily
Fixed Bug
- Queries which require punning do not work (#2331)
- Queries with unused variables in filters are incorrectly optimized (#2320)
- Security options are not available from the command line (#2344)
- Server default in stardog.properties of security.named.graphs is ignored (#2345)
- Adding a permission which uses an implicit resource avoid adding the resource to the catalog (#2346)
- Problems with enabling reasoning through Sesame interface (#2348)
- Incorrect results with skipping in equality reasoning (#2351)
- Serialization error for permissions in web console
3.1 Release (2015-06-04)
Added New Feature
- Named Graph Security
- Cluster Management Tools
- Improved log shipping between nodes in cluster
- Show class/property definitions in the web console
- Export named graphs from the web console
Modified System
- ConnectionPool will throw an exception (StardogException) when exhausted instead of returning null
- Shiro permission strings are not returned from PermissionManager, returning Permission objects instead
- Improved performance of wildcard removals via Remover#statements()
- Update to Sesame 2.7.15
- Update to Guice 4
- Use namespaces when showing query results in the webconsole
- Improve performance of mixed updates
- Selecting index orders can wrongly prefer context-last orders
- Reduced overhead of security checks
- Deprecated cluster configuration property
pack.cluster.address
; preferred property ispack.zookeeper.address
Fixed Bug
- User can view permissions of a role they do not hold (#2265)
- TSV mimetype is mis-spelled (#2294)
- Weighted MIME types are not being properly handled (#2295)
- Javadocs for StardogRepositoryConnection are out-of-date (#2296)
- Unary variable scans do not bind variables which are constants in the query (#2302)
- Database archetypes not closing iterations (#2303)
- NPE during data add with versioning enabled (#2304)
- Empty VALUES clause not supported (#2306)
- Count query with non-existent named graph in dataset returns an ‘empty’ result (#2307)
- Using data oneOf throws an exception during commit (#2312)
- Export call via HTTP fails with error 500 when no
graph-uri
parameter is used (#2314) - Incorrect join type selection for unbound scan when a sort order is present (#2315)
- Parsing error in web console when STRLEN is used (#2318)
- SPARQL update graph operators should not pull source graph into memory (#2310)
3.0.2 Release (2015-05-12)
Modified System
- Do not force an slf4j implementation in the Maven dependencies
- Improve SPARQL Service Description creation for named graphs
- Improve writing index metadata to disk
- Expose configuration for specifying join/write timeouts in the cluster
- Faster inlining of
xsd:double
-typed literals - Better cardinality estimations for property paths
- Improve plan caching
- Reduce lock contention in search indexing to improve its performance
- Reduced memory overhead of grouping operators
distinct
,minus
,group
and some joins. - Faster update of reasoner state when schema does not change
- Supply the missing switch to enable/disable
query.all.graphs
in web console - Improve performance of the processing of user-defined datatypes
- Better use of concurrency when computing the reasoner state
Fixed Bug
- Detect untyped classes and properties outside schema graphs
- Exception from reasoner when
rdfs:range
is ardfs:Literal
- Missing results when
owl:sameAs
is explicitly used in queries - Missing results for some types of queries when using equality reasoning
- Ground reasoning queries with unknown properties should not update schema
- CLI data add command should send absolute paths
- Query status command prints incorrect timeout value
- Named graph info in SPARL Service Description does not match the spec
- SPARQL Service Description should not include dataset by default
- Avoid caching update plans for
insert/remove data
queries xsd:double
inlining isn’t functional- ‘Reasoning’ is misspelled in the form for creating a new database in the webconsole
- Missing query results with property paths and equality reasoning
- Setting
reasoning.type=NONE
should disable schema reasoning - Error while parsing query that uses
exists
- NullPointerException with GROUP_CONCAT
- Plans with property paths are not cached properly
- Avoid use of default
false
value forquery.all.graphs
- Optimizer can select sub-optimal scans over the index
- Duration 0 is shown as Oms
- Computing reasoner state for a large number of named graphs is slow
- Comments with leading spaces seem to cause parse errors
- Order operator is never simple sorted
3.0.1 Release (2015-04-14)
Modified System
- Improve handling of very large schemas
- Reduced memory usage of reasoner
- Better error messages for SPARQL update parsing errors
Fixed Bug
- Incorrect query results within a transaction
- Super properties of topObjectProperty are list
- Property hierarchy contains duplicates
- Parameters assigned to update queries are not set in the where clause
- Explanations for schema inferences inadvertantly extracts instance data into memory
- Long queries in webconsole produce exceptions
- Optimization of property paths could yield incorrect results
- User defined classes that produce bnodes are hidden in schema browser
- Avg of an empty group returns the wrong result
- Variables bound by VALUES clause not treated as join vars
- IllegalStateException: This scan isn’t supposed to skip
- SL filter does not support data some values as superclass
- Inline optimization fails with sameAs reasoning
- Webconsole does not support reasoning.approximate option
- Overriding query.all.graphs in database configuration does not work
- Literal comparator is broken
- SPARQL Update request with no query returns a 200 via http
- DB creation message contains incorrect info
- Annex dependency causes maven resolution problems
- Accept
*/*
not recognized - Long literals not wrapped in the webconsole
3.0 Release (2015-03-23)
Added New Feature
- Equality Reasoning
- High Availability Cluster
- LDAP Authentication
- DL instance reasoning (in-memory only)
- Removed reasoning types; reasoning is either enabled or disabled. Database auto-detects profile
- ICV Repair Plans
- SPARQL SERVICE keyword support
- Maven support
- Custom SPARQL aggregates
- Extension point for customizing the lucene analyzer used during waldo indexing
- User-defined datatype support
- Utility to print information about current license
- Add
--remove-all
option to data add - New CLI command to undo arbitrary inferences
- New CLI command to fix ICV violations
- New command to import namespaces from an RDF file
- Command to export reasoning schema
- SPARQL built-in support for IF-THEN rules
- Open-sourced Empire bindings (see https://github.com/mhgrove/Empire)
- Deprecated Starman
- Option to abort the bulk load if there is an issue with bulk loading one or more files
- Progress monitor for additions and removals
- Cache strategy for static resources in web console
Modified System
- Significantly improved write performance
- Significant improvements to query planning
- Better handling of large plans during query planning
- Allow SPARQL update queries with VCS commit command
- Search API and CLI support named graphs
- Make query.all.graphs a db option
- Change default CLI construct output format to turtle
- Include rdf:type in reasoning results for variable properties
- Update queries can join existing transactions
- Change the default value of
reasoning.schema.graphs
to all graphs - Update statistics synchronously for large transactions
- Automatically assume
--server-side
in CLI for localhost - Option
reasoning.schema.graphs
no longer writable while online - Improved procedure for finding license in $STARDOG_HOME
- Make connection timeout a database option
- Change schema tree to load schema info from all graphs
- Use the same name for named graphs argument in CLI commands
- Improved error messages when adding files with unrecognized extension
- Less aggressive plan cache invalidation
- Support Sesame’s infer flag
- Show more info for db status command
- Accept ‘bz2’ as an alias for bzip compression
- Improved regex performance
- Reduce lock contention in database when opening connections
- Updated to Shiro 1.2.1
- Updated to data-exporter 1.0.4
- Updated to Netty 4.0.25
- Removed JLine dependency
Fixed Bug
- Editing db metadata with webconsole fails
- Need non-zero exit status in the CLI for invalid queries
- Inconsistency queries with datatypes
- Describe queries with reasoning don’t bring type info
- Pellet should ignore ill-formed OWL axioms
- Datatype restrictions with xsd:pattern should be parsed
- Database dumps in Turtle don’t include prefixes
- Uncaught exception storing large schemas for autocomplete
- ICV convert produces the wrong query for range constraints
- Timed out connections do not specify an error message
- Long transactions should not be automatically closed
- Restored backups maintain path from previous copy
- Commits on differential index can fail on windows
- Corrupt free page info should not prevent repair
- Namespaces interleaved with RDF yields a
ConcurrentModificationException
when iterated over - Web Console freeze when jumping from Admin Console to DB Console
- Exporting a db leaves connections open
- Recursive axioms with literals are not properly unfolded
- Exact text search producing unexpected results in web console
- Flipping databases offline/online immediately in the webconsole fails
- Online attribute in the webconsole is out of sync
- Datasets do not work with update queries
- Repair on an in-mem database should refuse to run
- Failing DELETE/INSERT with WHERE update query with search index enabled
- Clear all against an empty database returns an error
- Error parsing object lists of boolean values in turtle
- Graph constants in SPARQL update not handled correctly
- SPARQL update parser does not use database configuration options
- INSERT DATA fails when same triple is added to multiple graphs
- Incorrect handling of graph keyword in the presence of a dataset
StardogDatasetGraph.getNamedModel
returns wrong resultStardogDatasetGraph.size
should return the number of named graphs- Calling
StardogDatasetGraph.end
after commit/rollback raises an exception - Some configuration options use default serialization making backward compatibility difficult
- SPARQL update query should check write permissions
- Queries with MINUS and sp:directType return wrong answers
- Adding empty files hang
- Database with durable transactions fail when adding/removing files which do not exist
- Describe queries throw an exception when from graph does not exist
- Editing entity in webconsole strips explicit datatype for xsd:string
- Punning returns incorrect results
- Option reasoning.punning.enabled should be mutable
- Guice injector creation deadlocks during init of SNARL client
- ASCII delete char (127) in literals breaks UTF encoding
- Reading from dictionary value file should not go past file length
- avg and gmean aggregates can yield a divide by zero error for empty groups
server start
dies silently with a non-existent $STARDOG_HOME folder- Restore breaks on databases with more than 1M quads
- Server side option causes data remove to fail
- Several built-in vocabulary terms are being reported as datatype/object property
- Repair a database missing index.metadata
- Database config options that use stardog.properties for the default value are not visible to
metadata get
- HTTPConnection.admin uses the wrong server URL
2.2.4 Release (2014-12-11)
Fixed Bug
- File descriptor leak in cluster proxy
- Reasoning write events are not correctly handled by data replication
- ZK and proxy use same java args as Stardog server
- Corrected rolling timeout handling in data replication to better allow for expensive/large replications
2.2.3 Release (2014-11-25)
Modified System
- Querying an uncommitted state with reasoning updates reasoner state eagerly
- More optimized implementation for MINUS when using sorted operands
- Improve SPARQL query pre-processing in Query Panel
- Added timeout to classification which will revert to RDFS when passed
- Finer grained cancel checks in reasoning operators
- Updated to Sesame 2.7.14
- Improved performance of count aggregate
- Added a default setting for the direct memory in the stardog-admin script
Fixed Bug
- Transitive symmetric properties in Stardog are also considered to be reflexive
- Validation checks in oracle mode incorrect in tx containing local changes
- Size in transaction reported incorrectly
- Redundant atom optimization can incorrectly get rid of atoms containing literals
- Cannot clausify some queries using bnodes
- Exporting results ignore reasoning parameter
- Queries with reasoning might blow up if typing is ambiguous
- Query Panel doesn’t recognize db namespaces
- Property chain pre-processing can cause reasoning not to terminate
- Using a graph variable in a query as a join variable will lead to incorrect results
- SWRL rules with nonatomic heads might lead to incomplete results
- Property paths not using wildcard active graph
- The ‘CPU Load’ and ‘Heap Used’ charts might be displayed incorrectly depending on the window size
- Rule extraction does not take int account the schema graphs
- count(distinct *) does not count the distincts correctly
- ”@” and “.” are not considered to be legal user name characters
- Failed transaction prevents future transactions when versioning is enabled
- Reasoning with transitive reflexive properties with SL causes class cast exception
2.2.2 Release (2014-10-15)
Added New Feature
- Support xpath:subtract-dateTimes
Modified System
- Improved performance of BIND operator
- Improved performance of count aggregate
- Better join cost model
- Configuration option for auto stats updates should be writable while online
- Pre-compile all HTML templates for Web Console
- Remove function in Jena interface is not optimal
- Improved performance of scans joined by a context variable
- Reduced join operator initialization time
- Improved selection of scan order
- Updated to Netty 4.0.23
- Improved performance of property path evaluation
Fixed Bug
- Cycles in free pages list
- BNodes can’t be browsed in Query Panel
- Database list in web console displays all databases regardless of user permissions
- Query Panel results browsing does not include non-default graphs
- Server side export creates empty file
- Running
server status
with only one database results in parse error sending status to client - Returning duplicate values from a join
- Corrected help content for VCS functions
- Display of
index.named.graphs
in web console is backwards - Order of updates in VCS commit command backwards
- Handling of duration constants with undefined fields
- OOB that manifests itself as a protocol error
- Cannot override limit of search results in Waldo
- Jena graph returns incorrect size
- Empty node optimization can cause aggregates to be incorrect
- Named models in Jena to do comply with Jena spec
- Version diff causes NPE
- Incorrect projection vars returned in result set for queries with sub queries
- Enable logging for plans causes incorrect results for queries with filters
- Join optimization can create invalid joins
- Data cycles can lead to duplicate results in property path evaluation
- Filter selectivity estimation incorrect for comparisons of literals
- Incorrect results with property paths containing multiple inverses
- Infinite loop rewriting of transitive properties
- Release packaging missing correct vcs HTTP bindings
2.2.1 Release (2014-08-13)
Added New Feature
- Query panel in Web Console supports SPARQL Update queries
server status
command to admin CLI- Bulk load from local files
- Save query button in Web Console query panel
- Method to ExpressionFactory to programmatically create a Stardog Rule from a String
- Optimizations for property path evaluation
Modified System
- Moved system monitoring into separate page in the web console
- Check $STARDOG_HOME for file system permissions issues before startup
- Improved help for
role grant
- Return proper status code for invalid export query format
- Improved round-trip performance of data-time objects in value canonicalization
- Better cardinality of estimation of chains of joins
- Extended coverage of database repair utility
- Better cardinality estimations for scans over union named graphs
- Improved error logging on server side
- Throw an error when modifying the reasoning level of a query within a transaction
- Removed concurrency bottleneck in disk lookups of cardinality statistics
- Improved error messages on startup when required jar files are missing
Fixed Bug
- Homepage content depending on Watchdog is incorrect for community builds
- Queries using “count(distinct *) as ?c” always return a count of 1
- Explanations of update queries
- Missing semicolon in .bat files causes classpath errors
- Lost aggregate function when no explicit group provided in query
- Incorrect canonicalization of IN filter expressions
StardogRepositoryConnection.setAutoCommit
starts a transaction- Reference to obsolete JSON-LD library
- Query results export throws a parse error
- Literal values in web console should be escaped when inserted into a page
- Inconsistent
getDBOptions
in HTTP Admin falsely reportingdb doesn't exist
message - Failed update queries print wrong message
- Handling of very large literals (> 8MB) causes problems during bulk loads
- Database can be left in locked state under high numbers of concurrent commits
- Direct memory size used for off-heap allocations is incorrect
- JSON Serialization errors for Metadata payloads
- Invalid connection string yields an NPE
- Differential index metadata not flushed to disk
- Explaining IC violations can produce NoSuchElementExceptions
- Describe queries are slow with union named graphs
- False positive detecting ‘ask’ queries in Query Panel
- Language tags are not rendering correctly in Web Console
- Invalid rules are included in the rule base
- Reasoner can remain locked if there are errors computing new state during commit
- Query Panel route double decodes input parameters
- Overflow error when querying uncommitted state when changes contain duplicates
- In the Web Console, formats in the ‘Export as…’ drop-down menu on the query panel should be filtered according to the query that was executed
2.2 Release (2014-07-02)
Added New Feature
- Support for RDF versioning
- Admin support for webconsole
- Password file similar to postgres for the CLI
- Support compressed database exports
Modified System
- Support acceptable hostnames via CORS
- Improved recognition of data properties during schema extraction
- Updated to Sesame 2.7.12
- Increase default password max length to 1024 characters
- Dropped support for SD-Connection-String header
- Dropped support for SD-Query-Bindings header
- Improved performance of distinct operator for unsorted results
- Updated to Lucene 4.8.1
- Updated to Guava 17.0
- Improved filter selectivity estimations
- Improved error message when searching over non-searchable database
- Improved error message when reasoning consistency check CLI command is incorrectly formatted
- Disabled non-strict parsing when using durable transactions
- Strict parsing now a database option
- Check literals on insert is folded into strict parsing
- Significant reduction in memory usage and increased performance for transferring RDF over the wire
- StardogDatasetGraph implements the Jena Transactional interface
- Deprecate usage of Jena BulkUpdateHandler
- Do not wrap StardogDatasetGraph in DatasetGraphMap, use internal cache instead
- Reduce default Lucene write buffer size from 1G to 256M
Fixed Bug
- ‘value already present’ error when querying using reasoning
- Expressions in a projection which are used in an order by are incorrectly parsed
- Direct type does not return results when there are equivalent classes
- “No authenticated user” error when iterating over IC violations
- Constraints using max cardinality does not produce expected violations
- Exception thrown due to invalid restrictions during schema extraction
- Web console is not working for IE 8/9
- Interactions between join optimizers can produce suboptimal joins for patterns with unbound predicates
- INSERT DATA with language-tagged literal results in exception
- Inserting a triple/quad with a BNode ID that consists of a single character (e.g., :b) duplicates this character (:bb)
- Database exports don’t use stored namespaces
- “NQUADS” is not recognized as a valid RDF format
- Transitive properties in PROV are not recognized
- Schema queries do not return distinct results
- “NTriples” is not recognized as a valid RDF format
- Counter of allocated off-heap memory does not take into account allocations via ByteBuffer.allocateDirect
- Filter exists expressions in an optional join cannot be translated into a plan
- Rules containing NOT IN expressions in FILTERs might produce incomplete results
- NPE in schema operator
- ICV guard mode used incorrect reasoning type
- Describe queries return no results when query.all.graphs is enabled
- Query plan explanations when obtained via SNARL protocol do not reflect reasoning level
- CSV and TSV are not recognized as valid HTTP result formats
- Aggregate functions are incorrectly canonicalized
- Temp files created during data uploads for stream storage are not deleted when transaction is complete
- Getting namespaces for db over HTTP returns duplicated mappings
- Batch file to run Stardog fails on Windows when path has spaces in it
- Running search queries without a search index yields an NPE
- Failure of termination condition in an outer join which resulted in an infinite join
- Cannot migrate large databases
- Large files cannot be added via HTTP protocol
- Service loader does not ignore comments
- Parse error for xsd:gyear typed literals with the value
1
- Persistant databases show “Index Persist: No” in webconsole
- Incorrect status code for query not found in HTTP API
- NPE during data obfuscation over SNARL protocol
- Cannot export large databases to client
- Losing results with order by & limit from incorrect solution modifier optimization
- Starting server without web console only half works
- Can return incorrect results from index scan when an active graph is explicitly specified
ArrayIndexOutOfBoundsException
can occur when multiple projections appear in a plan- Find method of StardogDatasetGraph is incorrect
- Implement all update functions in StardogDatasetGraph
- A implies {o} is a valid EL axiom, but not accepted by SL profile
- Keys are not recognized as valid EL axioms
2.1.3 Release (2014-04-07)
Added New Feature
- Support for configuration of password requirements
Modified System
- Starting server with
--no-web-console
should print a message - CLI export help needs some clarification
Fixed Bug
- Override of default URL server does not work
- Incorrect error message when failing to connect over HTTP to server w/ HTTP disabled
- When custom bind address is used, server start output does not correctly reflect address server is listening on
- BNodes declared in head of insert/delete queries are static
- Need more graceful handling of query bindings header when it’s the empty string
- Doubled-typed literal values which are .equals, could canonicalize to different identifiers
- Incomplete reasoning with property chains
- Non-deterministic connection failures over SNARL protocol in a server under high load
- SPARQL count optimization can rewrite count expressions to things which are not semantically equivalent
- Commits which contain the removal of an empty named graph yield an NPE during commit to search index
- Update queries via Sesame bindings throw exceptions
- Setting query properties on a Sesame query, such as includedInferred, does not work as expected
Repository.getContextIDs
returns a non-unique list of contexts- Getting the size of a specific named graph via
StardogRepositoryConnection
yields anUnsupportedOperationException
- Shells scripts do not quote paths which fails in the presence of paths with spaces and the like
- Memory mapped tx log files on Windows can get mangled when mem-mapped contents are flushed to disk
- Computation of very large query result sets slows down due to cache thrashing
2.1.2 Release (2014-03-13)
Added New Feature
- Auto-complete feature in Web console’s query panel
- Load query from file in Web console’s query panel
- SNARL API support for performing an export
- Server side export support
- Arithmetic operations for date/time values
Modified System
- Improved error message using using non-existent file to query command on CLI
- Updated to Sesame 2.7.10
- Updated to Protobuf 2.5.0
- Updated to Netty 4.0.17
- Updated to Lucene 4.7.0
Fixed Bug
- Incorrectly handling filter inlining when variable in OPTIONAL side of join
- Most recent version of chrome breaks the webconsole layout
- CORS method
OPTION
is missing - DISTINCT operator could return only a REDUCED result set in some cases with reasoning
- Correctly verify property paths during optimization when both start & end point are unbound
- Rewritten plans might incorrectly share variables which can lead to empty results
- In the Web console, prefixes included in the query panel seem to be irrelevant
- Corrected rendering of accented characters in welcome screen
- Export cli function does not use RDF format aliases
- Unexpected result for HAVING (bound(…)) expression
- Incorrect handling of function expressions within a bind
- Do not create superfluous temp files which are not used or deleted
- Be less aggressive about moving intermediate results off heap
- Failure of termination condition in an outer join which resulted in an infinite join
2.1.1 Release (2014-02-13)
Added New Feature
- Several new SPARQL filter functions from the .NetRDF library
- Allow RDF strings to be passed as input to explain command
- CLI explain option to return multiple explanations
Fixed Bug
- Explanation merging to handle more cases
- Obfuscation CLI commands to work with config files
- Obfuscation CLI commands to handle SPARQL rules properly
- Regex filter persisted over multiple queries
- Cast exception during describe query evaluation over named graphs
- Properties which are both symmetric and transitive are not handled correctly
- Incorrect mime-types sent to server for file references
- Some optionals, when mixed with distinct, still do not return distinct results
- Large numbers of unique BNodes in nq, trig, and trix formats cause RIO to use too much memory
- Buffers used during bulk loading can take up too much memory when large literals are used
Modified System
- Fallback handling of access to sun.misc.Unsafe for JDK’s which do not support it
- Improved filter pushing optimization
- Warning printed from ‘role grant’ command when multiple actions are provided
2.1 Release (2014-01-23)
Added New Feature
- Support for bzip2 compressed input files (with extension .bz2)
- Auto-repair mechanism for common types of index errors
- Generation of multiple proofs for inferences & inconsistencies
- Database repair, backup & restore utilities
- FROM/FROM NAMED ‘default’ can be used as an alias to query default graph
- ‘dbms-admin:shutdown’ permission to allow non-superusers which hold that permission, to shutdown the server
- Improved query scalability by flowing intermediate results off-heap or onto disk. Note: flowing off-heap requires an Oracle JDK due to its use of sun.misc.Unsafe
- Significant improvement in performance of bulk loading and total scalability of a database
- Named Graph information in proofs
- Proofs for integrity constraint violations
Modified System
- Reduced memory footprint of queries while being executed
- Optimizing a database will also rebuild its search index
- Make database namespaces meta property creatable
- Database meta properties cannot be re-initialized to prevent malicious users from changing their behavior
- Updated to Netty 4.0.14
- Updated to Sesame 2.7.7
Fixed Bug
- NaN displayed in waldo search results
- Web console hangs when using with SSL
- Log redirection at startup messes up the logger output
- Over-eager update plan caching resulting in different update queries executing the same update
- Search index is not needlessly rebuilt on stardog
- HTTP server on OpenJDK does not always close connections
- Web console not loading on Win7 when Stardog is run as a service
- Stardog Rules do not use the pre-defined database namespaces
- Encoding of special characters in web console
- Issue in query optimizer where a more optimal plan could accidentally get discarded
- Built-in values (such as owl:Thing) used inside filters are not correctly recognized
- Queries using reasoning and FILTER NOT EXISTS could return incomplete results
- Cannot shutdown server over HTTP if security is disabled
- Functions with zero args, such as BNODE(), can produce incorrect results
- now() returns the time the server started, not the actual current time
- Asking for the types of a class yields an exception
- Axioms using HasValue expressions can case type queries to produce incorrect results
- Value for subject in THEN clause is not returned
- BIND optimizer can incorrectly order the BIND expressions
- IF-THEN rules might fail to recognize term types
- Windows service does not always shut down cleanly
2.0.3 Release (2013-11-07)
Added New Feature
- manpages
- Support for punning when using reasoning & rdf:type
Modified System
- Improved performance of web console in IE
- Improved group help, including full synopsis, in CLI
Fixed Bug
- Browse tab was missing classes in IE9
- Bug in Watchdog API JSON serialization
- Watchdog information in web console not visible on Windows
- Bug in rendering of columns in web console homepage in IE & FF
- Missing elements in web console in IE
- Correctly handle line breaks in proof tree serialization
- Missing final byte when formatting query results using ‘Accept-Encoding: gzip,deflate’
- Parsing of queries which use the Stardog directType built-in
2.0.2 Release (2013-10-24)
Added New Feature
- Support for the “Accept-Encoding: gzip” header over HTTP; enables sending of gzipped responses.
- Graph store protocol to support gzipped content
Modified System
- Improved load progress monitor based on the number of bytes read
- Deprecated the SD-Connection-String header, now specified as a parameter to the request
- Updated to Guava 15
Fixed Bug
- Correctly handling specifying the dataset over SPARQL protocol
- Bug in literal canonicalization
- Bogus warnings about absorption from Pellet
- Re-indexing of searchable databases regardless of whether or not the search index needs to be updated
- Pressing key shortcut multiple times for the help in the web console displayed the help multiple times
- Construct queries do not produce results
- Not able to add properties to individuals in web console
- Query over partitioned graphs in Jena does not work
- Using :textMatch in a query against a non-searchable database causes the web console to spin forever
- Typing a number in query panel results paper gives an error
- Blank lines pre-pended to SPARQL queries in web console
- Negative execution times for queries when retrieved over SNARL protocol
- HTTP server accepting gzip files for data add/remove commands
- Strict parsing turns off RDF/XML parser checks some of which are very memory intensive
- Disabled BNode caching in N-Triples parser which are very memory intensive
- 400 errors when db name is included in connection string header
- Loading of database options in CLI so they can correctly be set
- Evaluation of queries using distinct with a complex, expression-based sort in the order by clause
- Correctly send challenge response in all cases to avoid a browser caching bad credentials
- Bug in proof rendering over HTTP
- SWRL rules containing non-atomic body atoms could cause incorrect results
- ‘db status’ admin CLI command returned an incorrect size for the database
- HTTP server OOM when a large Content-Length for an incoming POST is used
- Transactions state on the client was not correctly cleared in some error cases
- Handling of large gzipped files in the HTTP protocol
- Translation of rules with star-shaped body atoms
2.0.1 Release (2013-10-09)
Added New Feature
- Support for GZip encoded files in the HTTP protocol
- More extensive reasoning functionality exposed via ReasoningConnection
Fixed Bug
- System DB corruption due to starting two Stardog servers using same home directory
- Exporting data in web console occasionally hangs
- 5822 is no longer the default port for HTTP protocol
- Context indexes sometimes out of date after a named graph update
--disable-security
flag actually disables security complete, works for both HTTP & SNARL protocols- Error when using user supplied prefixes in a query via the web console
- Multiple key shortcut dialogs can be displayed at once
- IO error with large responses over HTTP
- Web console loading issues in Windows 7
- DB corruption when multiple Stardog servers are started at once
- Improved handling of completely unbound patterns during reasoning avoiding incomplete results
- Better error response from server when authentication fails
- Resolved concurrency issue in ICV guard mode validation when competing threads are attempting to validate & commit
.bat
files can be run from outside of the bin directory and better respect setting STARDOG_HOME environment variable
Modified System
- Unified SPARQL & SWRL UUID functions
- Better handling of duplicate results in construct queries including when projection uses fully-qualified results
- Improved feedback for adding/removing data via the web console
- External links opened in new tab in web console
- Reduced memory overhead of streaming modifications
- Improved bulk load performance for files without named graphs (RDF/XML, Turtle, etc.)
2.0 Release (2013-09-26)
Added New Feature
- SPARQL Update
- Web Console
- Proofs for reasoning explanations
- JMX monitoring
- PROV support
- SL reasoning profile
- Client & Server dependencies are cleanly separated
- Evaluation of non-recursive datalog queries to improve reasoning performance
- SPARQL-based IF/THEN rules syntax
- New, significantly faster, SPARQL parser
- Native SSL support for SNARL & HTTP protocols
- Single Stardog server, both protocols run on the same port within the same server.
- CLI commands to obfuscate RDF data and SPARQL queries for sharing sensitive data
- Type detection of variables in queries with reasoning
- Ability to load server-side files via the SNARL API
- Support for Sesame directSubClassOf, directSubPropertyOf
Modified System
- Filter expression inlining when used with a group-by expression
- Lock upgrading in search connections which resulted in deadlock in some circumstances
- ICV export added to shell completion scripts
- Error in reasoning where some rules could prevented rewriting
- Handling of ‘=’ in namespaces
- Exception thrown by describe queries via CLI
- EOF exception over HTTP for large datasets
- Rewriting error when punning is used
- Leading comment characters break query type sniffing
- Auto closing of result sets when using embedded connections
- Error in named graph lookups in Jena bindings
- Bug in reasoning where equivalent classes/properties were not correctly accounted for
- Querying for properties/individuals via OWL’s built-in classes produced empty results with reasoning
- Bug in reasoning leading to incomplete answers when punning is used
- Corner case in sameterm inlining where the expression was incorrectly bound
- Bug in query answering where the variable used in a group by was not bound
- The command ‘server start’ now supports –logfile option on Windows too
- Handling of limit & offset in searches on the CLI
- Parse error for small threshold values in search queries
- NPE during the evaluation of some FILTER EXISTS queries where the predicate is not bound
- Filter comparison for literals of unequal datatypes when the literals are inlined into the query
Fixed Bug
- Printing search results in a formatted table
- Using a single namespace for Stardog extensions & default URIs
- Better error messages for malformed literals which create value errors during query evaluation
- Removed unused -u,-p,-P flags from server start
- Search results on CLI sorted by score
- Minimized roundtrips to security module to reduce overhead
- Improved literal comparisons in filters
- Improved query planner performance
- Significant improvement to write performance
- Updated Netty to 4.0.9
- Updated Sesame to 2.7.3
- SNARL API, Jena & Sesame bindings
1.2.3 Release (2013-06-11)
Added New Feature
- ICV export feature to CLI
- fish shell autocomplete scripts
- SPARQL constraints can be added directly via CLI
Modified System
- Improved help content for default options in CLI
- ICV CLI commands to use admin credentials by default
Fixed Bug
- Missing completions from bash autocomplete scripts
- Improved error messages when using the CLI
- Using variables in the predicate position with reasoning lead to incomplete results
- Deserialization errors when commas are used in namespace declarations, for example in tag URIs.
- Add/Remove data over HTTP with strict-parsing enabled
- Handling of strict-parsing when creating a database, option was ignored
1.2.2 Release (2014-07-02)
Added New Feature
- ln, log, atan, asin, acos, sinh, cosh, tang, toDegrees & toRadians to Stardog built-in function library. These are in the tag:stardog:api:functions: namespace.
Fixed Bug
- NPE when using SNARL protocol with a select query that has no variables.
- Removed a source of non-determinism during query rewriting leading to less variance in performance of queries with reasoning
- Corrected namespace rendering in explanations
- Exception handling in begin/commit/rollback in Empire bindings
- Improved performance of rewriting in queries where atoms are repeated
- Bug in iteration cursor propagation during a join
- Corrected execution order planning of chains of dependent SWRL builtins.
1.2.1 Release (2014-01-23)
Fixed Bug
- Order of parameters for CLI commands data add and data remove
- Autocomplete for ‘stardog query’ is fixed
- Added hooks for SWRL trigonometric functions (sin, cos, tan) in the query engine. These functions are available in the SWRLB namespace: http://www.w3.org/2003/11/swrlb#
- Modified the service loader to resolve issues that arise in multiple classloader environments, such as in a servlet container.
- Resolved issue where SWRL rules with bound arguments in the head of the rule produced incorrect results.
- Corrected the execution planning for SWRL rules where multiple built-ins are chained together.
1.2 Release (2013-04-22)
Added New Feature
- Query management functionality to list and kill running queries (API, SNARL, HTTP, CLI extensions).
- New configuration option to automatically kill queries when execution time exceeds a timeout (default 5 min).
- A new logger to log information about slow queries.
- Extend Connection interface to easily login to StardogDBMS to perform administrative action.
- New CLI with improved online help, command groups, and consistent response codes.
- SNARL and HTTP protocols support queries that use stored namespaces similar to CLI.
- New transaction layer which uses async writes & mem mapped logs to improve durable logging performance.
- Support for the ARQ builtins pi, e, sqrt, min & max.
- HTTP server now supports the SPARQL Service Description spec.
- New, more performant security layer.
- Explain data inconsistencies via the reasoning connection.
- Better caching of rewrites of query plans to improve reasoning throughput
- Improved performance of write caching as requests to add/remove data are appended to a transaction
Fixed Bug
- CLI error messages are not consistent regardless of which protocol is used to connect to the database.
- Handling of several SWRL builtins, including comparison operators such as greaterThan or lessThanOrEqual, such that their use yields correct query results.
- Resolved an issue where lookup queries from Stardog’s SesameRepository implementation where incorrectly handled by the plan cache.
- Applied better ordering to conjuncts in a rewritten plan to improve determinism in reasoning query performance.
- Jena named Datasets now work correctly
- Calling ConstraintViolation.getViolations a second time in HTTP connections returns empty results.
- Printing very long literals without whitespace in query results.
- Bug in plan caching where unknown constants introduced in reasoning could result in incorrect query results.
- Closed vulnerability to billion laughs attack.
- Query parsing bug where the name of variable could affect the resulting algebra.
- ICV security permissions…now correctly set permissions for specific access to ICV constraints independent of DB access.
- Using an unsupported output format while displaying the user/role permission table no longer fails silently.
- Property paths to detect cycles now correctly return results.
- Lock issue with concurrent writes to the Waldo index
Modified System
- Moved search related configuration options from DatabaseOptions to SearchOptions.
- Output of query CLI function is less verbose, but supports
--verbose
to get additional information. - Whitespace is no longer allowed in passwords, and passwords must be at least four characters long.
- Database, user, and role names now have a maximum size of 64 characters.
- Password must be specified when creating a new user
- Additional step of describing a literal during search indexing is now optional, and disabled by default which increases search indexing performance in most cases. Can be enabled by setting the ‘waldo.describe.during.indexing’ option in your stardog.properties file.
- Updated to Sesame 2.7.0, Jena 2.10.0, Lucene 4.2.0, Shiro 1.2.1.
- Online & Offline no longer take a wait/no wait option, they are synchronous actions. The current methods are left in the DBMS API, but deprecated, to be removed in the next major version. If you are using these methods from the CLI and need them to be asynchronous, background the task. If you’re using them programmatically, use a Thread. - 400 code is returned from the server if an invalid name is provided for a database.
- More comprehensive Stardog-specific error codes returned from the server in the HTTP protocol in the response header.
- Removed the Stardog Shell from the distribution.
- Removed
http.max.connections.per.route
configuration option autoCommit
andremove(Query)
are deprecated from the Connection API, to be removed in the next release.
1.1.5 Release (2013-03-11)
Added New Feature
- New option ‘leading.wildcard.search.enabled’ which can be configured in stardog.properties, for enabling the leading wildcard search support in the Lucene QueryParser.
Fixed Bug
- Bug in query optimizer where the sort order was not correctly taken into account resulting in poor plan selection.
- Handling of BGPs where a Literal value is used as the subject. Avoiding inadvertently assuming it’s a URI and returning results when performing reasoning, or throwing a cast error.
- Resolved issue with memory usage of the admin client
1.1.4 Release (2014-02-26)
Fixed Bug
- CLI commands that output tabular data might trim results (depending on word wrap boundaries). This resolves namespace metadata updates not being visible.
- Server stop now correctly prompts for password when -P is used.
- Fixed the error in query rewriting that lead to the cryptic “Invalid term in query” error on a client.
1.1.3 Release (2014-02-26)
Added New Feature
- A new configuration option to control preserving bnode ID behavior in parsing.
Modified System
- More efficient copy of http multi-part attachments when creating a database via the http admin interface.
- Using ThreadSafeClientConnManager in Admin HTTP client.
- ICV translation from OWL to SPARQL now uses SPARQL 1.1 (FILTER NOT EXISTS)
Fixed Bug
- Using same internal ID for bnodes coming from different files.
- Unsupported exception throw for symmetric properties in reasoning queries.
- Bug with reasoning queries containing OPTIONALs.
- Reasoning is not used for the expressions inside FILTER [NOT] EXISTS.
1.1.2 Release (2013-04-22)
Added New Feature
- New optimizer for sub queries.
Modified System
- Optimization of EXISTS queries to better account for runtime usage.
Fixed Bug
- Bug in cached query solution handling in joins.
- Resolved two issues with the evaluation of nested property paths.
- Missing query results while updates on other threads are continuing
- Empty passwords no longer allowed.
- Properly displaying user’s permissions when same set of actions was granted by different roles.
- Displaying all roles that granted user a permission.
- Displaying user’s permissions in the case when the executing user has read permission to the user resource but not some of its roles.
1.1.1 Release (2012-12-17)
Fixed Bug
- Deadlock in Connection.remove().query() when in embedded mode
- Duplicates in search results caused by repeated addition of a triple to the database
- Non-termination in evaluation of largely nested filters
- Non-termination in evaluation of nested optionals within graph patterns
- Corrected issue in method which finds transactions in logs requiring recovery
- Error in HTTP client where last byte of payload could be truncated
- Issue in error code translation in the HTTP client
- Connections to HTTP server were not getting closed when invalid/supported mime-types were requested for query responses.
- Resolved issue where filter exists was not using the active graph as specified in the from/from where clause of the query.
1.1 Release (2012-11-14)
Added New Feature
- Support for transitivity reasoning.
- SWRL support.
- SPARQL 1.1 Query support.
- directType, strictSubclassOf & strictSubPropertyOf support.
- Limited support for creating new individuals in your rules.
- Grouping quads by their named graphs in the export output for prettier results.
Fixed Bug
- Top & Bottom properties are not incorrectly included in results of queries with reasoning.
- NullPointerException when using sameTerm filter with a variable that was unbound due to an optional or union.
- NullPointerException in SNARL client connection when client is used in concurrent environment.
- Incorrect results when reasoning with reflexive properties in some corner cases.
- Clear & Remove context where not getting correctly propagated to transaction logs.
- Clear all was not clearing search index.
- sameTerm inlining optimization was violating scope of a graph clause.
- Waldo full text searches over contexts (using from/from named or graph) were not always correctly setting the context of the results.
- Assertion of contexts in the search index is correct when bulk loading.
- Could not assign r/w permissions directly to database metadata.
- Resolved bug in security where only write access was required for reads once a transaction was active on a connection.
- Bug in query planning that could cause it to not terminate for queries with deeply nested optionals.
- Old versions of statistics (on disk) are correctly cleaned up on Windows systems.
- Can now revoke all permissions a role/user has for a resource.
Modified System
- Faster triple pattern evaluation with reasoning for patterns using rdf:type when other patterns bind the subject or object.
- New search indexing algorithm which computes search indexes in a single pass over the RDF index for a significant speed improvement
- New format for search indexes
- Sesame API bindings. StardogSail has been deprecated & removed. Users should stick with StardogRepository.
- Updated Jena to 2.7.4
- Updated Sesame to 2.6.9
- Updated Lucene to 4.0.0
- Updated OpenRdf Utils to 0.8 & CP Utils to 2.3
1.0.8 Release (2012-10-25)
Added New Feature
- Accept Contexts.ALL as a synonym for “clear all” in the HTTP endpoint.
Fixed Bug
- Issue with queries involving reasoning that used Thing or Nothing in filters, which in some cases, could return incorrect answers.
- Granting a permission to a role no longer causes the Role to show up in the Users list.
- Dropping a Role which is still in use now throws the correct type of exception
- NPE during evaluation of a query which uses a variable in a filter that is not used in a BGP.
Modified System
- Clarified documentation in admin create (database) regarding whether or not name is required
- Updated javadocs for Connection to discuss some thread safety issues and a note in Query regarding injection attacks and correct use of the parameter method.
1.0.7 Release (2012-10-02)
Added New Feature
- Filter pushing optimization which will move filters deeper into plans when it appears to be advantageous to do so
Modified System
- Literal comparison improved to increase filter performance
- Improved inlining of constants from filter expressions
- Improvements to bulk loading at database creation time resulting in up to 20% increase in load speed.
- Improved add/remove performance to existing databases
- More aggressive flushing of database contents to disk to minimize risk of data corruption when Stardog server is not properly shut down
1.0.6 Release (2012-09-10)
Fixed Bug
- File streams from HTTP add/remove payloads are closed and cleaned up in all cases, reducing the number of open temp files. Improves shutdown performance
- text/turtle & application/ld+json now work for the HTTP protocol as return format mime types
- Error in query evaluation of deeply nested outer joins
- Issue with a rewriting optimization corner case that could result in non-termination
1.0.5 Release (2012-08-27)
Modified System
- New query planner introduced
Fixed Bug
- Evaluation error in Union skipping & error handling in both SNARL & HTTP protocols
- Incorrect results when unions are used in queries which are rewritten
1.0.4 Release (2012-08-14)
Added New Feature
- Ability to convert Integrity Constraints to SPARQL queries using the API or the CLI
- Support for running Stardog as a Windows service - Support for parameteric queries in CLI query command with (-b, –bind) option so variables in a given query can be bound to constant values before execution
Modified System
- CONSTRUCT query results in HTTP protocol use namespace prefixes from the query to return more concise output
- Error checking in audit/access log configuration to report more informative error messages
Fixed Bug
- CLI command “explain plan” works with queries that use namespaces stored in the database
- Reasoning queries returning incomplete results while retrieving inverse property inferences
1.0.3 Release (2012-07-31)
Fixed Bug
- Issues with batch files in Windows when JAVA_HOME was set to a path containing a space
- Bug in propagation of errors midstream in the SNARL protocol
- Bug where sort order information on unions in a plan was lost resulting in slower queries
Modified System
- New log file header record added with log metadata
- Included the log file descriptor, log.proto, in distribution
Added New Feature
- Ability to load files from a directory recursively
- ReasoningConnection.getBaseConnection to provide access to underlying (nonreasoning) connection
1.0.2 Release (2012-07-18)
Added New Feature
- Stardog Community version and COMMUNITY_LICENSE.txt
- IC validation support in SNARL and HTTP protocols
- HTTP Admin protocol calls to add databases, users, roles
- Support for SPARQL 1.1 Graph Store Protocol (with the exception of PATCH method)
Modified System
- Improved performance for concurrent connections updating the database
- Server start message to clarify Stardog listens on all network interfaces
- Classpath manifests in Stardog jars so only CLI jar defines a classpath
- Netty jars to version 3.5.2
- Moved LICENSE.txt to EVALUATION_LICENSE.txt
Fixed Bug
- Issues with concurrent reads and writes
- Bug with duplicate results with queries containing UNIONs.
1.0.1 Release (2012-07-03)
Added New Feature
- Stardog documentation is now served by the Stardog HTTP server at the URL http://host:port/docs
- Store prefix mappings inside Stardog database metadata and prefix declarations are automatically added to queries executed through CLI and used in query results
- HTTP protocol for Stardog admin commands that lets any Stardog admin command (creating a database, adding users, changing permissions, etc.) can be run through HTTP in addition to the default SNARL protocol Note: if you contemplate implementing a client of the HTTP API, it is not yet stable and a few parts of it will change in the next (1.0.2) release.
- Access and audit logging in Stardog server to log events such as authentication events, queries and transactional change
Fixed Bug
- Make login functions in StardogDBMS publicly accessible
- Validation problems in CLI for very long query strings
- Commits hanging when durable transactions option is enabled
- Stardog sometimes failing to generate an error for syntax errors during add even though no data is added
1.0 Release (2012-06-19)
Added New Feature
- Handling DESCRIBE queries with multiple resources to
Modified System
- New login functions in StardogDBMS to clarify which server (embedded or remote) we are connecting to
Fixed Bug
- Handling DESCRIBE queries where triples about the resource to describe occur in named graphs
- Handling DESCRIBE queries with multiple resources to describe
1.0 RC1 Release
Added New Feature
- Batch files for executing the Stardog command line in Windows
- directSubClassOf & directSubPropertyOf (same sparqldl namespace that is used by Pellet ‘http://pellet.owldl.com/ns sdle#’) which can be used to get the explicit sub class/properties in a query that is using reasoning.
- New command line function to check whether or not the database is consistent.
- New command line function ‘explain inference’ to explain reasoning results (existing ‘explain’ command has been renamed to ‘explain plan’ to avoid confusion).
Modified System
- Clarified error message when using search but the database does not have search enabled
- Consistency checking performance improved
- Bulk loading performance improved at larger scales
- Small reduction in memory overhead of query response streams
Fixed Bug
- Resolved issue where an unbound type operator, “?s a ?o” produced incorrect inferences for some ontologies where there is interaction b/w domain/range & hasValue axioms.
- Bug in the checking of user & role resource names when they’re using the All permission, eg “user:*”
- Consistency checks will not fail (say the db is inconsistent) when the consistency check requires reasoning services not provided by Stardog, such as datatype reasoning.
- Deadlock in bulk loading which can occur when the bulk load exceeds 5B triples.
- Consistency checks for functional data properties which require literal value validations
- Bug in axiom filtering for the EL profile that let non-EL axioms into an EL knowledge base
- Bug in reasoning in the type operator where nominal are used within an equivalence or subclass axiom
- Race condition in index commits in highly multi-threaded environments
0.9.6 Release (2012-05-23)
Fixed Bug
- Checking consistency of a database over HTTP.
- Resolved regex issue used to validate input to security where somevalid inputs could be rejected.
- Multiline queries passed to CLI explain are now correctly parsed.
- Inconsistent usage of base URI used for parsing when one is not specified by the user.
- Fixed an issue with automated TBox extraction where some parts of the ABox were incorrectly put into the TBox resulting in slower than expected performance for queries involving reasoning.
- Bug in reasoning query evaluation where the property variable is unbound which resulted in incorrect inferences to be returned.
- Password decoding in SNARL was incorrectly padding when converting to/from UTF-8 resulting in passwords sent over HTTP failing to match the password in the user database which only occurred with passwords over a certain length.
- Queries with reasoning where the predicate in a BGP is unbound does not correctly return explicit statements when the schema is not present.
- Context variables, such as “graph ?g { … }” are correctly used in joins and used for join ordering.
- Issue with decimal inlining where negative scale values were handled incorrectly resulting in decimal values being mangled on load.
Modified System
- Avoiding reclassification of TBox after commit when the TBox contents did not change. Significant improvement in commit performance for databases with expressive TBoxes.
- Handling of add/remove operations on the server resulting in decreased memory overhead and up to a 50% increase in the time it takes to process the change.
- DL queries that involve ABox operators now cause errors at query time.
- Inferences involving Top/Bottom Object/Data property are ignored.
- Offlining a database will drop the database completely out of memory reducing server overhead of having large, offline databases.
- Increased packet size in SNARL protocol changing maximum size from 64k to 16.7M bytes. This raises the maximum size of a triple or query that can be exchanged to the protocol to nearly 17MB and should avoid any issues with loading datasets with large literals. Earlier versions of the SNARL protocol from 0.9.5 and earlier are not compatible with the new format.
- Storage format of RDF concepts loaded into Stardog has been changed. This is a backwards incompatible change in format and no migration is possible.
- Significant performance increase in loading throughput through better utilization of system resources to perform concurrent loading and in a more compact on disk format for some parts of the database contents.
- Handling of typed literal values in query evaluation resulting in performance improvements in queries which perform math & comparison operations on datatyped literals.
- Reduced overhead of query plan generation resulting in performance increases for smaller queries where execution time does not dominate planning time.
0.9.5 Release (2012-05-02)
Modified System
- Increased performance of database copy.
- Clearer error message when the server subcommand is mistyped.
- Improved access to disk indexes resulting in significant query performance improvements in many workloads.
- Clearer output messages from the ‘drop’ CLI command.
Fixed Bug
- Name of index copy target is validated so you cannot copy a database and give it an invalid name.
- Printing result of ASK queries in the CLI.
- Format parsing for construct queries on the CLI where unrecognized format types were resulting in NullPointerExceptions.
- Databases which fail to initialize are no longer added to the server.
- Better cleanup of databases which failed to be created.
- Query explain over HTTP POST works and no longer returns a NOT_ACCEPTABLE response.
0.9.4 Release (2012-04-18)
Modified System
- New algorithm for handling ?x rdf:type ?o and :inst rdf:type ?o BGP’s in queries with reasoning resulting in significant performance improvements.
- ChannelFactory is shared amongst all clients in the same JVM to avoid OOM errors due to an issue with Netty (NETTY-424).
- Login process to obtain a connection to a database changed to reduce connection overhead.
- Shiro session timeout handling to avoid erroneous timeouts during long processes, such as bulk loads.
Fixed Bug
- Order by will correctly use secondary, tertiary, etc. orderings.
- Null values in sorting are correctly sorted as the lowest value.
- Resolved issue related to reusing a variable multiple times in the same BGP, correct results are now produced.
- Changed handling of Channel close events in database server to avoid endless propagation back to the client, particularly on Windows.
- Database cleanup on close events to avoid corrupting metadata.
- Handling of type errors in regex filter.
0.9.3 Release (2012-04-04)
Modified System
- Server start script gracefully handles the situation when STARDOG_HOME does not exist, is not a directory, or is not writable
- Connection string parameters are now validated, errors are thrown when unknown parameters are provided.
- Return result of empty query results in SPARQL JSON format when accessing the HTTP query endpoint directly. Returning an empty binding set instead of empty JSON.
- Checking of Accept headers for the query HTTP endpoint to better handle the case when multiple Accept headers are sent to the endpoint, but only one is relevant for the type of results to be returned.
- Reporting of query execution time of select queries in CLI to better reflect total execution time.
Fixed Bug
- Resolved issue in query generation arising from a variable being used in a BGP, context statement, and within an optional causing no results to be returned.
- Bug in query planner where a join variable was also used in a filter with an equality test.
- Bug in ICV when datatype restrictions are used in conjunction with a datatype property
- Dropping database on Windows now works; Windows was holding files open and we could not delete them.
- NPE when retrieving an unknown option for a database
- Inferences were missed because hasValue restrictions were incorrectly filtered in RL & EL profiles
- NPE when retrieving user permissions
0.9.2 Release (2012-03-20)
Modified System
- Security layer implementation changed to provide better performance when manipulating user, role, and permission information
- Reasoning & ICV interfaces to be more consistent along consistency checking & validation
- Major improvements to query rewriting performance. Rewrites are up to 3x faster, resulting in a noticeable improvement in executing queries with reasoning
- Improved CLI help
- Friendlier error messages when invalid SPARQL queries are provided in the command line
- More verbose startup & shutdown logging information
- Better output for ICV validation when the database is trivially valid
- A solution to quickly find nearly optimal query plans in case plan optimization takes too long
- Improved hash join algorithm for faster processing in case there are multiple alternative join keys
Fixed Bug
- Bug in query plan caching that could result in incorrect plans being used for similar queries
- Fixed cardinality estimations for some named graph scans
- Significantly better cardinality estimations for large plans, particularly involving multiple unions. Can result in improvements of up to 50% when bad joins can be avoided.
- Bug in ICV when getting constraints for a new database that does not yet have any constraints
- NPE that can arise during query evaluation after loading a large dataset
- Searchable configuration property can now be changed after creation
- Database load errors no longer prevent kernel from starting
- Autocompletion for local files in Stardog Shell works regardless of other parameters used in the command
0.9.1 Release (2012-03-06)
Added New Feature
- Stardog Shell
Modified System
- Auto-update of statistics now lockless
- Made visible extension point for custom SPARQL functions.
Fixed Bug
- Cardinality estimation for queries across named graphs
0.9 Release (2012-02-23)
Added New Feature
- new native protocol, SNARL, based on Netty and Google’s Protocol Buffers
- new system catalog for all system info, metadata, etc.
- new search system over RDF literals, integrated with SPARQL query eval
- new server management: online, offline databases; better server startup, shutdown, and locking
- CLI now supports remote db administration, many new subcommands
- new Quartz-based job scheduler with cron expression scheduling
- new, optimized index support for named graphs and triples-only databases
- new, differential write indexes with customizable merge thresholds
- new customizable TBOX (i.e., reasoning schema or ontology) extraction & management
- new Stardog configuration system, including database creation templates
- new reasoning services (explanation, satisfiability, consistency checking) available programmatically
- reasoning extended to named graphs
- ICV validation extended to named graphs
- new or improved support for NQUADS, Trig, TSV, and CSV
- improved concurrency in data loading
- consistent use of mmap() for better performance
- load GZIP-compressed files directly, including ZIP files with multiple RDF
Modified System
- new security system, including user management, granular roles and permissions model
- new statistics computation & recomputation algorithms
- updated documentation
Fixed Bug
- many (many!) known bugs
0.7.3 Release (2011-12-06)
Added New Feature
- New SNARL Connection view, ReasoningConnection which exposes the functions provided by the Stardog reasoner.
- Support in ReasoningConnection for obtaining the explanation for an inference.
- Explanations of IC violations as the expected and/or missing statements that make up the violation
- New example for using explanation facilities, updating ICV example.
Modified System
- Improved error messages when CLI fails to connect to a database.
Fixed Bug
- Bug in the handling of reflexive properties when they involve TOP
- Bug in initialization of TOP operator with bound objects, resolves NPE in execution
- Bug in bnode handling in TBox extraction
0.7.2 Release
Added New Feature
- RDFS & DL reasoning types. DL reasoning type supports schema-only queries.
- Execution optimizations for when TOP appears in a query due to reasoning
Modified System
- Sesame Repository/Sail implementation to use a SNARL Connection per Sail/RepositoryConnection rather than per Repository.
- Better formatting of query results in CLI query command including new formatting options.
Fixed Bug
- Retrieving ranges of data properties in reasoner.
- Read transaction isolation bug for mulitple connections against the same database.
- Bug related to incorrect reassociation of Shiro auth credentials with pooled connections.
0.7.1 Release
Added New Feature
- Canonicalization of literal values on input, either bulk loading or normal add operations. Canonlicalization can be disabled when creating the database if it is not desired, but is on by default.
Modified System
- CLI connection strings no longer assume you are connecting to an embedded store when no protocol is supplied. You must now specify a protocol.
Fixed Bug
- ExpressionFactory is no longer stripped from the core jar file
- Multiline queries work with CLI now
- Bug in loading IC’s from file, occasionally constraints could be malformed
0.7 Release
Added New Feature
- Bulk insert/removal performance on existing databases greatly improved via concurrent application of changes to the index and the introduction of a differential index.
- Stardog reasoner now supports OWL2 EL and RL reasoning types. These can be specified at connection time and EL & RL reasoning is performed at query time the same as QL.
- Support for ‘hybrid’ and TBox queries for all reasoning types.
- Support for Integrity Constraints.
Modified System
- Propogation of reasoner state amongst open connection to the reasoner, state is better shared across connections requiring less overhead to maintain the up to date state.
- ‘delete’ was renamed to ‘drop’ in the command line.
Fixed Bug
- Bug in two-phase commits for changes to a reasoner
0.6.10 Release
Added New Feature
- an init startup script for a Stardog server so that it can automatically start with other system services at the boot time.
Modified System
- Improved algebraic rewriting of query plans which avoid multiple evaluation of the same part of the query, e.g., the operator in both parts of a UNION.
- A better handling of the UNION operator by sorting its output which facilitates joins with other operators in the query plan.
- A better handling of deep chains of nested joins by maintaining a certain order of intermediate results produced by hash joins and avoiding page loads.
- An improved, threadsafe implementation of the query plan cache, which is now concurrently accessible from all connections. This allows the server to reuse a previously optimized query plan for a structurally equivalent query executed by another client.
Fixed Bug
- FIX: Fixed an issue with not always consuming the HTTP response which could lead to not releasing HTTP connections to the pool and it its eventual exhaustion.
0.6.9 Release
Added New Feature
- CLI now includes an ‘export’ function to dump the contents of part or all of a Stardog database to RDF.
Modified System
- Query rewriting now fails when a query has BGP’s that are not supported by the reasoner; this is strict mode. Strict mode can be disabled and the reasoner will rewrite only the BGP’s it supports. This introduces a JVM flag ‘strictReasoning’ for controlling this behavior.
- HTTP connection will now switch over to HTTP POST if the SPARQL query is very long to avoid any potential URL overflow issues.
Fixed Bug
- Fixed an issue pertaining to QL rewrites with optionals that use a filter which was causing incorrect results for some QL queries (ticket #44).
- Fixed query evaluation where the presence of a particular combintation of union, optional, and distinct can lead to nondistinct result sets (ticket #48).
- Fixed the passing of the disableSecurity flag into the HTTP server
- Fixed a bug in the rendering of SPARQL queries using isBlank with remote endpoints
- Fixed a bug in query evaluation arising from a certain combination of order by, limit, and optional where the sort key is on a variable bound by an optional pattern.
- User specified query bindings specified via Query.parameter are correctly serialized and sent to the remote server.
0.6.8 Release
Added New Feature
- Updated POM to include Avro
- Avro schema included in distribution.
Modified System
- Better handling of constant values in construct queries decreasing the time it takes to create and return the Statements constructed by the query.
- Increased the speed of some index scans by avoiding some page reads
- Better execution plan reuse & caching, similar to Prepared Statements, in structurally equivalent plans.
- Significantly improved join-join cardinality estimations.
- Query optimizer does a better job with join selection and can often pick a better join for the execution.
- Avro & HTTP connections are eagerly validated by the driver so invalid connections will fail on connect rather than on first action.
- Transaction ID generation changed to reduce chance of ID collision
- Internal connection management, both with raw database connections and HTTP based connections to address deadlock issues in highly concurrent environments
Fixed Bug
- Fixed a bug in the caching of the current list of databases, could still access deleted databases in some circumstances. (ticket #42)
- Fixed an bug in the handling of unions in the QL reasoner. Nested unions were occasionally getting duplicated leading to incorrect results without the distinct modifier. (ticket #43, #46)
0.6.7 Release
Added New Feature
- New CLI command ‘server’ which can start any of the installed Stardog servers
- New Avro-based RPC protocol for Stardog Connections
- Maven POM file included in distribution
Fixed Bug
- HTTP error in construct queries via the Jena bindings
0.6.6 Release
Modified System
- Improved query evaluation performance with a new query planner
- command-line interface to accept global args:
--home, --change-buffer-size, --disable-security
- command-line add, remove, create commands to include
--strict-parsing
option
Fixed Bug
- incorrect query evaluation results in some corner cases involving OPTIONAL
0.6.5 Release
Added New Feature
- Support for fulltext search via our semantic search engine Waldo.
Fixed Bug
- Bug in query evaluation where we were missing results when the first entry in an iterator in a disk index occurs on a page boundry
0.6.2 Release
Fixed Bug
- Typo in HTTP protocol, Trig & Trix mimetypes were switched.
- Bug in left outer joins when the right hand operator was initially empty causing the first solution set to be missed. (ticket #39)
- Resolved IllegalArgumentException which was incorrectly thrown from the Jena integration when a query w/ optionals was executed against a remote Stardog database returning null values in the response.
- Bug in detection of special BNode syntax in queries for ensuring BNode stability in queries.
0.6.1 Release
Modified System
- Iteration over disk indices modified to more efficiently calcuate which pages are actually required to answer the query and avoid loading intermediate pages.
Fixed Bug
- Debugging exception thrown when using log4j bindings for SLF4j with the logging level set to debug. (ticket #36)
- Issue with calcuation of optionals in joins when the optional binding is at the beginning or end of an iteration. (ticket #34)
- Resolved synchronization issue for connections to an index that are fetched from the internal connection pool. Resolves getting already closed connections from the pool. (ticket #37)
- Datatyped literals used in filters were getting munged during QL rewrites resulting in an exception. (ticket #35)
0.6 Release
[none]
Modified System
- Improved index page load speed.
- Reduced memory requirements in the indexes wrt to cache overhead
- Persistence of memory indexes to disk is now done in parallel to the greatest extent possible yield a significant increase in save (and load) performance. This required changing the on disk format of memory indexes. Old versions of memory indexes are unfortunately, backwards incompatible with these updates. We apologize for the inconvenience.
- On format of disk-based indexes. This helps us resolve some issues we had with the previous format, and increases load speed, but the index format is backwards incompatible with the previous indexes. However, we provide a migration utility in the command line program for changing old disk indexes to the new format. See the CLI for more information on migrating old indexes (or ping the mailing list).
- Decreased memory usage in the query engine
- Added a change buffer in the layer between the SNARL API and the underlying index it is connected to. This allows most changes within a transaction to be pushed into the index at once increasing the performance of commits as the changes can mostly be applied in bulk.
Fixed Bug
- Bug pertaining to loading datasets which use literals larger than 8k.
- Bug in the writer locks that could allow multiple writers access to an index in a multithreaded environment, which usually lead to corruptted indexes (ticket #29).
- Issue with the CLI’s database create command, multiple calls in rapid succession to create databases caused some of the new databases to be lost (ticket #32).
- QL query rewriter was mangling the variables used within the query in certain situations causing query results to be incorrect (ticket #30).
- QL query rewriter was not correctly respecting variable substitutions with datatyped literals and was subsequently losing the variable binding specified by the user (ticket #31).
- FROM/FROM Named clauses were incorrectly set to the HTTP server
0.5.3 Release
Added New Feature
- Internal buffer for changes via the Sesame API, triples are no longer added to the Stardog database one at a time via the SAIL API. They are buffered until the buffer is full, a read operation occurs, or the transaction is committed.
Fixed Bug
- Internal bookkeeping for the state of the system information, timestamp for last update time is correctly updated and you should not get the out of sync warnings printed to the console.
- Incorrect return code for parse errors in HTTP protocol.
- NPE thrown by TBox extractor when encountering non object/data properties.
- Correct behavior for SPARQL queries w/ QL reasoning that uses the ‘GRAPH’ keyword. BGP’s in graph contexts are not rewritten as inferences are put into the default, no context, graph. Hybrid queries that include some patterns against the default graph and others against patterns in graph contexts are correctly partially rewritten. (ticket #27)
0.5.2 Release
Added New Feature
- Gremlin integration via our Sesame Sail implementation and the Blueprints API. See the README for more details on the integration.
- statements(subject, predicate, object, context) to the Remover API and deprecated statement(…); the latter only accepted non-null values, while the former does accept nulls as wildcards, so it is safe to replace all usages of one with the other. statement(…) is marked as deprecated and schedule for removal from the API no earler than 0.6.
Modified System
- Add, Remove and Clear Contexts now take an optional query parameter, “graph-uri” which specfies the named graph the operation should be executed against. This deprecates the use of this parameter in the actual URL. See HTTP_PROTOCOL.txt for additional details.
- Temp files used to track changes during transactions and to buffer results coming into HTTP server are more aggresively removed.
Fixed Bug
- Specifying ‘null’ as the context to remove via the Connection API now actually deletes the default context rather than the entire contents of the database.
- Cast exception caused during QL query execution when the usage of the property in the query does not match the type (object v data) of the property in the kb. (ticket #24)
- NPE during evaluation of a query with QL reasoning enabled when the query has a optionals nested inside of a graph statement. (ticket #26)
- Could get NPE’s during filter evaluation (compare expressions only) if one of the variables in the expression was not bound to any value in a BGP.
- Malformed literals in inserts could come back and cause errors when being removed. Errors are now thrown when a malformed literal (invalid language tag or inconsistent xsd datatype) is inserted into the database. (ticket #22 & #25)
- Resolving BGP’s across contexts using wildcards (e.g. graph ?g { … }) was losing information between the contexts leading to incorrect results and/or null values in the results. (ticket #20 & #21)
0.5.1 Release
Added New Feature
- Support for the Sesame RepositoryFactory & Config APIs so Stardog can be used via the OpenRDF shell and Workbench.
- Native connection pools for Stardog connections. See the examples for code demonstrating how to configure and use them.
Fixed Bug
- Deleting statements with wildcards via a StardogRepository.
0.5 Release
Added New Feature
- Shiro based security layer
Modified System
- Introduced new Flex Indexes into the Database structure.
Fixed Bug
- Query objects reference to database was not refeshed after commit or rollback of transaction. (ticket #15)
- Bug in queries with graph contexts using unbound variables via an HTTP connection; the variable was getting mangled.
0.4.10 Release
Fixed Bug
- Bug in the concurrent calcuation of statistics where a latch could get stuck when certain types of exceptions occured during processing
- Issue in Remove CLI where description did not match behavior; Specifying only a context now deletes the context as stated in the documentation. (ticket #17)
- Bug in removing a context within a durable transaction that caused the transaction record to get corrupted. (ticket #16)
Modified System
- Changed Add CLI to print an error message if no files are specified to add to the database.
- Removed default parse format of RDF/XML from add & remove operations. If a specific format is specified, that is used, otherwise the format based on the file extension will be used. This brings the behavior of add & remove inline with create. RDF/XML is still used as the fallback when no format is specified and there is a nonstandard extension on the file.
- Modified how some filters are evaluated greatly increasing the speed in which basic (and/or/not & compares) filters are executed.
0.4.9 Release
Added New Feature
- Handling of the TOP concept in the OWL 2 QL reasoner
- New query operator which provides more efficient evaluation of queries where order by and limit are used.
- System information regarding which databases are present will be reloaded from disk when it is changed by an external source.
- JVM flag to disable strict mode of parsing.
Modified System
- Queueing of jobs during concurrent loading to avoid running out of memory when processing large datasets. This also reduces the amount of memory used during loading.
- Altered algorithm to get better estimates of join cardinalities.
- Memory databases to use new statistics algorithm.
Fixed Bug
- Encoding of graph URIs in remove context calls to HTTP server.
- Typo in route which effectively hid the remove context endpoint in the HTTP server.
- Mangling of ASK queries when sending them to the HTTP server. (ticket #13)
- Typo in help information in the add/remove data commands in the CLI.
- BOM markers at the start of files will be gracefully handled instead of failing to parse.
- If copy of system info on disk is more recent than cached copy in memory, it will not be overwritten on shutdown. (ticket #11)
- UnsupportedOperationException thrown when clearing a context within a transaction. (ticket #12)
- IllegalArgumentException thrown when literals are used in query atoms going through rewriting. (ticket #9)
- ClassCastException when non-QL axioms are used. (ticket #8)
- Issue with deleting directories when STARDOG_HOME contains relative paths. (ticket #6)
- NullPointerException when top level scope contains an empty set of query atoms. (ticket #7)
- Closing temporary files in the data directory used for some file operations.
- Concurrent modification exception from an iterator when persisting memory indexes to disk asynchronously.
- HTTP protocol was dropping context information from queries.
0.4.8 Release
Added New Feature
- Creation of db indices is done in parallel. It is an experimental feature which can be disabled via the JVM flag (disableConcurrent); note, that concurrent loading requires more RAM than serial loading. Either give Stardog more RAM (i.e., as much as you cann spare) on startup or pass the disableConcurrent flag.
Modified System
- The name of the file being added/removed from a database in the command line is now printed.
Fixed Bug
- Query atoms of the form { ?a ?a ?b } now return correct results
- Bug in multi-key joins
- Bug in QL reasoning optimizer for detecting empty joins
- File exhaustion bug. When Sesame integration was used with the HTTP server, the server did not always close the temporary files used to track the incoming edits causing some systems to report too many files were open.
- Bug in query evaluation where the named graph bound in a pattern
- cause an exception during execution.
- Cardinality estimates in index statistics
- bug in stardog.sh script so that it can run anywhere (thanks Alin Dreghiciu for this fix)
0.4.7 Release
Fixed Bug
- Fixed an NPE in the HTTP server (reported by Brian Sletten)
Modified System
- make the QL axioms parser more strictly respect the OWL spec, especially w/r/t to the set of datatypes that QL supports