Skip to main content

Changelog 6.0

The 6.0 branch forked the 5.11 branch from version 5.11.4

See the 5.11 changelog for changes before the fork.

6.0.14

2024-05-30

Added

  • {@jira: PIVOT-9230} Added a default parser for Instant class and its corresponding ILiteralType.TIMESTAMP.

Changed

  • {@jira: PIVOT-9257} Improved the XMLA member discovery to only send custom member properties when only one level is requested. This follows closely the XMLA specification.

Deprecated

  • {@jira: PIVOT-9303} The IActivePivotContentService can no longer be used to store user IContextValue. Multiple methods surrounding the use of context values are removed, including getContextValue, setContextValue, removeContextValue, etc...

Fixed

  • {@jira: PIVOT-9299} Fixed ZeroVector.cloneOnHeap() method to return a new mutable array vector instead of this. This issue was causing UnsupportedOperationException when modifying vectors.
  • {@jira: PIVOT-8867} Context values of stream measure are now propagated to NeighborValuePostProcessor.
  • {@jira: PIVOT-9177} Fixed error propagation from data cube to query cube when aggregates cache is enabled.
  • {@jira: PIVOT-9256} Resolved a bug causing the data export REST endpoint to return a 500 error code when the MDX query had an empty result. Now, it generates an empty file and returns a 200 status code to indicate success.
  • {@jira: PIVOT-9257} Fixed NullPointerExceptions raised when passing unknown members to the XMLA member discovery.
  • {@jira: PIVOT-9299} Fixed ZeroVector.cloneOnHeap() method to return a new mutable array vector instead of this. This issue was causing UnsupportedOperationException when modifying vectors.
  • {@jira: PIVOT-9301} Context value drillthrough.maxrows is now taken into account in distributed: the merged result cannot exceed maxrows rows.
  • {@jira: PIVOT-9317} Failing HelloMessage no more leaves the cube in invalid state causing cube discovery failures.

Security

  • {@jira: PIVOT-9504} Bump com.amazon.redshift:redshift-jdbc42 to version 2.1.0.28 to fix CVE-2024-32888.
  • {@jira: PIVOT-9546} Upgraded com.amazonaws:aws-sdk-redshift and com.amazonaws:aws-sdk-s3 to version 1.12.638 to fix CVE-2024-21634.
  • {@jira: PIVOT-9546} Upgraded org.springframework:spring-web to version 5.3.34 to fix CVE-2016-1000027.

6.0.13

2024-04-11

Added

  • {@jira: PIVOT-8557} Log a message when a data node's contributions are removed from the distribution because removalDelay has been exceeded.
  • {@jira: PIVOT-8994} Added DirectMemoryTracker.getTotalUsedMemory() to track reserved memory that is not in the cache. JvmMemoryReport.getUsedDirectMemory() now returns used memory. Use JvmMemoryReport.getReservedDirectMemory() to get reserved memory.
  • {@jira: PIVOT-9151} activeviam.atoti.xmla.maxBufferSize, an ActiveViamProperty has been added to set the maximum size in bytes of an XMLA result.

Changed

  • {@jira: PIVOT-8927} Do not retrieve context values when a user pauses or un-registers MDX queries through the WebSocket service.
  • {@jira: PIVOT-8959} The experimental Maven module generic-jdbc has its groupId changed to com.activeviam.database.
  • {@jira: PIVOT-9151} LimitedByteArrayOutputStream doesn't try anymore to guess if the write operation will result in an OOM. Instead, it checks if the stream to write is larger than the maximum size of the buffer set by "activeviam.atoti.xmla.maxBufferSize".

Deprecated

  • {@jira: PIVOT-8849} The class com.qfs.util.impl.InterruptionUtil is no longer deprecated and marked as internal, following feed-back stating that it was used in client code and post-processors.
  • {@jira: PIVOT-8927} The class com.qfs.spring.websocket.impl.ContextValueWebSocketHandler has been marked as deprecated without alternative. This class was internally used to apply context values for some special services and is not needed anymore.
  • {@jira: PIVOT-8927} The bean com.qfs.server.cfg.impl.ActivePivotWebSocketServicesConfig#contextValueWebSocketHandler() is deprecated for removal. It was used internally to apply some security and is not needed anymore.
  • {@jira: PIVOT-9066} The class com.activeviam.apm.logging.impl.LogbackLoggerUtil has been marked as deprecated without alternative. This class was internally used to forward java.util.logging/JUL logs to Logback and is not needed anymore.

Fixed

  • {@jira: PIVOT-8522} Fixed an issue with the context value IQueryResultLimit where setting one of the two limits could also change the value for the other limit.
  • {@jira: PIVOT-8762} Fixed ArrayIndexOutOfBounds exception when using UDAF.
  • {@jira: PIVOT-8820} Fixed serialization of Copper calculation chains defined in the Data cube.
  • {@jira: PIVOT-8917} Fixed inefficiency in Planning Graph's partial provider selection step. In particular, queries against long computation chains should no longer have a long planning phase when range sharing is enabled.
  • {@jira: PIVOT-8921} Fixed performance issues in MDX engine occurring when argument sets of NonEmpty MDX function have common hierarchies specified in its tuples.
  • {@jira: PIVOT-8950} Correct the definition of the data export REST service when used in conjunction with the module com.activeviam.apm:apm and with the profile application-monitoring enabled. This was previously failing with errors like "The mapped handler method class 'com.activeviam.pivot.rest.dataexport.DataExportRestServiceController' is not an instance of the actual controller bean class".
  • {@jira: PIVOT-9026} Improved performance of unknown measure handling in AAdvancedPostProcessor. This should improve startup time of polymorphic distributed applications in which some data nodes take a long time to join the cluster.
  • {@jira: PIVOT-9043} Fixed a memory leak that could happen when Atoti Server was not properly stopping scheduled tasks.
  • {@jira: PIVOT-9049} DirectQuery: correctly apply the cube IFilterDescription to the hierarchy feeding queries.
  • {@jira: PIVOT-9054} Query Cube's Health Event associated with handling GoodByeMessage now properly logs which node has left the cluster.
  • {@jira: PIVOT-9066} Enable the use of another SLF4J implementation other than Logback. When Logback is used, structured logs are generated as before. When another SLF4J implementation is used, plain logs are generated.
  • {@jira: PIVOT-9143} Fix an issue where intersecting a CubeFilterBuilder with a CubeFilter that was already previously intersected with a third filter would mutate the initial CubeFilter.

6.0.12

2024-02-29

Added

  • {@jira: PIVOT-8761} Added a new Copper measure: Copper.experimental().switchOn(...).
  • {@jira: PIVOT-8787} DirectQuery: Support for inequality operators (>, >=, <, <=) in queries conditions.

Changed

  • {@jira: PIVOT-8283} When using the experimental Distributed Copper API, queries on a horizontally distributed cluster will now be distributed up to the first non-distributed post-processor of the operations chain (versus being distributed from the first distributed post-processor of the chain).
  • {@jira: PIVOT-8667} Improved partitioning algorithm of PrimitiveAggregationNode. This should result in a better performance of queries when large analysis hierarchies are involved.

Deprecated

  • {@jira: PIVOT-8660} com.activeviam.source.jdbc.api.calculator.JdbcCalculatorUtils is deprecated. Use com.activeviam.tech.jdbc.internal.read.JdbcReaderUtils instead.

Fixed

  • {@jira: PIVOT-8132} POJOColumnCalculator is now thread safe.
  • {@jira: PIVOT-8228} Fixed performance issues with cell property initialization when executing MDX queries.
  • {@jira: PIVOT-8411} Fixed the deltas sent to update the values of continuous queries involving location shifting post-processor measures (such as CopperMeasure.parentValueOn etc.).
  • {@jira: PIVOT-8419} Fixed equal and in condition on insertion time update where trigger early registration.
  • {@jira: PIVOT-8750} Fixed PartitionStatistics.getMaxRowId().
  • {@jira: PIVOT-8782} Fixed issues when exporting Mdx query in Arrow files without COLUMNS.

Security

  • {@jira: PIVOT-8671} DirectQuery: Upgraded com.clickhouse:clickhouse-http-client to version 0.6.0 to fix CVE-2024-23689. This might change a few Clickhouse imports.

6.0.11

2024-01-16

Added

  • {@jira: PIVOT-4994} Added new property IDataClusterDefinition.CONCEAL_BRANCHES to hide the branches of the data cube from the query cubes.
  • {@jira: PIVOT-6525} DirectQuery: introduce mechanism to incrementally refresh cube with data from external database. See com.activeviam.directquery.application.api.IRefreshable#refresh(ChangeDescription) and associated documentation.
  • {@jira: PIVOT-8437} Add experimental API to access the database in Copper: Copper.experimental().databaseMeasure(...).
  • {@jira: PIVOT-8478} Added a new class com.activeviam.pivot.server.spring.api.Services to create IDatabaseService.

Changed

  • {@jira: PIVOT-8515} MIN and MAX aggregation functions now support objects that implement the Comparable interface.

Deprecated

  • {@jira: PIVOT-8376} MdxDrillthroughToCsvConverter(MdxDrillthroughRowset, IJsonOutputConfiguration) is deprecated in favor of MdxDrillthroughToCsvConverter(MdxDrillthroughRowset, IJsonCsvOutputConfiguration).
  • {@jira: PIVOT-8478} Deprecated internal methods in com.qfs.server.cfg.impl.DatabaseRestServicesConfig.

Removed

Fixed

  • {@jira: PIVOT-5110} Fixed DrillthroughProperties deep clone method.
  • {@jira: PIVOT-5283} Fixed QueryResultsProcessingTask statistics on aggregation duration.
  • {@jira: PIVOT-6475} Fixed a bug in aggregates cache which might lead to producing empty results on subsequent queries involving the same location.
  • {@jira: PIVOT-7838} Fixed class cast in ShiftMeasure.LevelShift#equals.
  • {@jira: PIVOT-8316} Improved execution speed of queries with filters on partial providers.
  • {@jira: PIVOT-8343} Improved record query performance when run on current thread by not creating empty completion tasks for non-matching partitions.
  • {@jira: PIVOT-8427} Fixed null value handling in Copper UDAF .outputFromBuffer().
  • {@jira: PIVOT-8480} Fixed bug in GetAggregatesResultCellsetTester that caused an error while checking integer measures with .hasValues().
  • {@jira: PIVOT-8517} Fixed thread starvation issue when the threads of each NUMA node wait for the threads from another NUMA nodes to finish.

Security

6.0.10

2023-12-07

Added

  • {@jira: PIVOT-8128} Added specific calculators for vectors in JDBC Source: DoubleArrayJdbcColumnCalculator, IntegerArrayJdbcColumnCalculator, FloatArrayJdbcColumnCalculator and LongArrayJdbcColumnCalculator.
  • {@jira: PIVOT-8137} IReadableDatastore#getEntityResolver() now returns an IDatastoreSchemaEntityResolver to be able to get specific metadata about a Datastore.
  • {@jira: PIVOT-8169} Added IJdbcSourceBuilder to create an IJDBCSource.
  • {@jira: PIVOT-8211} Added KeyValueSourceFactory to create an IKeyValueSource.
  • {@jira: PIVOT-8274} Added CsvSourceFactory to create an ICSVSource.

Changed

  • {@jira: PIVOT-8127} Jdbc source: convert automatically array column to datastore vector column.

Deprecated

  • {@jira: PIVOT-8027} DirectQuery: Static method com.activeviam.directquery.YOUR_DATABASE.api.Session#registerUdaf() has been deprecated in favor of com.activeviam.directquery.YOUR_DATABASE.api.Session#registerSqlUdaf().
  • {@jira: PIVOT-8137} Deprecated methods IDatastoreSchema#getPartitioningDescription(String) and IDatastoreSchema#getNumaSelectorDescription(String).
  • {@jira: PIVOT-8169} Deprecated AJDBCSource, ArrayJDBCSource, MapJDBCSource and NativeJDBCSource, use IJDBCSource.builder() instead.
  • {@jira: PIVOT-8211} Deprecated KeyValueSource, use KeyValueSourceFactory instead.
  • {@jira: PIVOT-8247} IDatastoreSchemaDescriptionPostProcessor and all the implementations are deprecated. Datastore's description post-processors are no longer needed. Most of the transformation done in the post processors can be done directly at the schema's description creation.
  • {@jira: PIVOT-8274} Deprecated CSVSource, use CsvSourceFactory instead.

Fixed

  • {@jira: PIVOT-7960} Fixed the deadlock in the ConflationEventEngine caused by the asynchronous processing of events of different types.
  • {@jira: PIVOT-8182} In a distributed setup, unexpected errors that happened in one cube while sending a message should no longer cause off-heap memory leaks after failing to properly receive this message in another cube. These leaks are believed to be Netty buffers that were not properly released on error handling.
  • {@jira: PIVOT-8322} Fixed NotSerializableException when using Copper.userDefinedAgg on a query cube.
  • {@jira: PIVOT-8318} Fixed NullPointerException when registering a stream for post-processed measure depending on a store lookup in a Query Cube.
  • {@jira: PIVOT-8359} Reduce memory footprint for hash code computation of datastore conditions.
  • {@jira: PIVOT-8359} Speed up hash code computation for cube conditions.

Security

  • {@jira: PIVOT-7805} Migrated the products to depend on Spring Boot 2.7.17, to address CVE-2023-44487.
  • {@jira: PIVOT-7805} Upgraded com.google.cloud:google-cloud-bigquery to 2.34.0 to fix CVE-2023-5072
  • {@jira: PIVOT-7805} Upgraded com.google.cloud:google-cloud-bigquerystorage to 2.44.1, com.google.cloud:google-cloud-bigquerystorage to 2.29.0 and com.google.guava:guava to 32.1.3-jre for dependencies convergence.
  • {@jira: PIVOT-8319} Migrated the products to depend on Spring Boot 2.7.18, to address CVE-2023-4586 and CVE-2023-34062.
  • {@jira: PIVOT-8319} Upgrade ch.qos.logback:logback-core, ch.qos.logback:logback-classic and ch.qos.logback:logback-access to version 1.2.13 to fix CVE-2023-6378.

6.0.9

2023-10-27

Added

  • {@jira: PIVOT-5894} Experimental: Copper can now be used with distributed cubes. See documentation.
  • {@jira: PIVOT-7769} Added CopperPostProcessor.executeInDataCube() method.
  • {@jira: PIVOT-7236} {@jira: PIVOT-7893} Improved the performance of cycle detection in the planning of a pivot query. When printing the query plan timings, this should improve the part that falls into Planning finalization duration, which happens before the actual execution of the query (associated with execution time). This development impacts queries with a large query plan (several hundreds of nodes)
  • {@jira: PIVOT-8008} Added readiness endpoint on atoti server /actuator/health/readiness

Changed

  • {@jira: PIVOT-7246} DirectQuery: upgrade com.amazon.redshift:redshift-jdbc42 to 2.1.0.19.

Deprecated

Removed

Fixed

  • {@jira: PIVOT-7580} Fix continuous MDX query initialization issue caused by uninitialized post-processor on a query cube.
  • {@jira: PIVOT-7111} Fix missing maxLevelPerHierarchy field on cube/query/mdx endpoint.

Security

6.0.8

2023-10-18

danger

Version 6.0.8 introduced a major error in the Leaf Aggregate Provider. Version 6.0.9 is released early to remediate this issue.

Added

  • {@jira: PIVOT-5875} Added the PercentileFunction aggregation function. See the Percentile documentation page.
  • {@jira: PIVOT-7176} The cube filter is now used in distributed cubes to limit the number of data nodes the query is sent to.
  • {@jira: PIVOT-7202} Add withTableFields(String...fieldNames) to simplify the creation of database queries. For instance withFields(FieldPath.of("fieldName1"), FieldPath.of("fieldName2")) can now be replaced by withTableFields("fieldName1", "fieldName2").
  • {@jira: PIVOT-7441} Support all signatures of InStr in MDX queries.
  • {@jira: PIVOT-7737} Support fields beginning by $ in update-where procedures of the database service.

Changed

  • {@jira: PIVOT-7737} Do not require procedures to start by $ in update-where of the database service.
  • {@jira: PIVOT-7737} Make the database service update-where considered keys as procedures first and then as field names.
  • {@jira: PIVOT-7878} CopperLevel.isin(Collection<Object>) was replaced by isin(Collection<?>) to reduce ambiguities with CopperLevel.isin(Object...).
  • {@jira: PIVOT-7931} Improved the performance of LeafAggregateProvider when the majority of members of the hierarchy are included in the level filter.
  • {@jira: PIVOT-8031} Analysis hierarchies extending AAnalysisHierarchyV2 no longer need to define an IAnalysisHierarchyDescriptionProvider if their full description is given to the new method added to the description builder: withAnalysisHierarchy(IAnalysisHierarchyDescription).

Deprecated

  • {@jira: PIVOT-7807} DirectQuery: Method com.activeviam.directquery.YOUR_DATABASE.api.Database#getSchema() has been deprecated in favor of com.activeviam.directquery.YOUR_DATABASE.api.Database#getUserSchema().
  • {@jira: PIVOT-7754} Methods withFields(String...fieldNames) have been deprecated in favor of withFieldsWithoutAlias(String...fieldNames).

Fixed

  • {@jira: PIVOT-7632} The XMLA Servlet now properly handles Excel requests to cancel a query. Excel primarily sends cancellation requests when a user types in a search bar, stops typing (a query is sent to Atoti Server), and then resumes typing.
  • {@jira: PIVOT-7640} Fix issue with CurrentOrdinal mdx function not being able to operate on aliased sets.
  • {@jira: PIVOT-7682} Fix NPE when a file was not found in content service.
  • {@jira: PIVOT-7732} CopperPostProcessor.withType(...) now returns a CopperPostProcessor instead of a CopperMeasure.
  • {@jira: PIVOT-7785} Fix issue with queries where a group-by field has an alias conflicting with the path of a field used in a measure.
  • {@jira: PIVOT-7822} Fix issue with datastore aggregate queries when querying for duplicate field paths and some specific conditions.
  • {@jira: PIVOT-7910} NeighborValuePostProcessor no longer throws an AssertionError if queried on a non-existing member of the shifting hierarchy.
  • {@jira: PIVOT-8031} Fix clone method of hierarchy description.

Security

  • {@jira: PIVOT-7805} Upgraded org.springframework.security to 5.8.17.
  • {@jira: PIVOT-7805} Migrated the products to depend on Spring Boot 2.7.16, to address as many CVEs as possible.
  • {@jira: PIVOT-7805} Upgraded Google libraries (com.google.cloud:google-cloud-bigquery to 2.33.1, com.google.cloud:google-cloud-bigquerystorage to 2.43.0, google-cloud-storage to 2.27.1, com.google.guava:guava to 32.1.2-jre) to mitigate CVE-2022-3171 and CVE-2023-32731.
  • {@jira: PIVOT-7805} Upgraded org.apache.arrow:arrow-vector and org.apache.arrow:arrow-memory-unsafe to 12.0.1 for dependency convergence with Google ecosystem.
  • {@jira: PIVOT-7805} Upgraded com.nimbusds:nimbus-jose-jwt to 9.35 to mitigate CVE-2023-1370.
  • {@jira: PIVOT-7805} Upgraded org.xerial.snappy:snappy-java to 1.1.10.5 to mitigate CVE-2023-43642.
  • {@jira: PIVOT-7805} Upgraded org.mybatis:mybatis to 3.5.13 to mitigate XRAY-127508 and CVE-2020-26945.
  • {@jira: PIVOT-7805} Upgraded org.yaml:snakeyaml to 2.0 to mitigate CVE-2022-1471.
  • {@jira: PIVOT-7805} Upgraded org.mozilla:rhino to 1.7.14 to mitigate XRAY-178804.
  • {@jira: PIVOT-7888} Upgraded libraries to connect to Microsoft Azure (azure-sdk-bom to 1.2.17, azure-resourcemanager to 2.31.0).
  • {@jira: PIVOT-7888} Replaced org.apache.velocity:velocity-tools with org.apache.velocity.tools:velocity-tools-generic 3.1 and upgraded org.apache.velocity:velocity-engine-core to mitigate CVE-2015-0899, CVE-2016-1181, CVE-2018-1000632, CVE-2020-10683, CVE-2020-13936.

6.0.7

2023-08-31

Added

  • {@jira: PIVOT-5714} Add a DistinctCountHistoryFunction function: a distinct count that properly supports removal.
  • {@jira: PIVOT-7295} Add a CubeFilter translator to allow the cube filters to be added to the map of context values in REST queries.
  • {@jira: PIVOT-7563} Add support for emulated vectors (multi-row and multi-column) in DirectQuery Databricks connector.

Changed

  • {@jira: PIVOT-6776} Mapper functions in post-processors are no longer obliged to write null values int result cells explicitly.
  • {@jira: PIVOT-7382} Packages can now be excluded from the ClasspathContributionProvider's scan.
  • {@jira: PIVOT-7554} Copper measures that have name are now visible by default.
  • {@jira: PIVOT-7611} Default lifetime of session context values is increased from 10 minutes to 10 hours.

Removed

  • {@jira: PIVOT-7553} Maven module composer-test now imports its own test dependencies using <scope>test</test>. Projects relying on this module to transitively import junit-jupiter-params, awaitility and mockito-core will need to add these dependencies to their own dependencies.
  • {@jira: PIVOT-7553} Maven module composer-test no longer imports spring-cloud-starter-sleuth.

Fixed

  • {@jira: PIVOT-5714} Changed the DistinctCountFunction to accept non-comparable types.
  • {@jira: PIVOT-7377} Fixed a parallelism issue and improved the speed of an aggregate provider transaction in a very specific case: multiple database partitions only contribute to a unique partition of an aggregate provider.
  • {@jira: PIVOT-7402} The MdxBenchmark class has been replaced by the now working RestClientMDXBenchmark.
  • {@jira: PIVOT-7570} Fix issue in SQL generation for large multi row vectors in MsSql.
  • {@jira: PIVOT-7644} Fix issue with Aggregate Table not being used for some databases.
  • {@jira: PIVOT-7693} DirectQuery: Increase timeout for creating a connection on Redshift connection pool to avoid failure at initial loading.

Security

  • {@jira: PIVOT-7568} Upgrade spring-boot to 2.7.14 to patch CVE-2023-20883 and CVE-2023-33008.
  • {@jira: PIVOT-7568} Upgrade snappy-java to 1.1.10.3 to patch CVE-2023-34453, CVE-2023-34454 and CVE-2023-34455.

6.0.6

2023-07-26

Added

  • {@jira: PIVOT-5860} In the MemoryAnalysisService MBean, added an operation Dump full application memory statistics exporting memory statistics for all versions.
  • {@jira: PIVOT-6356} DirectQuery: add support for Databricks database.
  • {@jira: PIVOT-7429} DirectQuery: introduction of settings POJO for configuration purpose:BigqueryDirectQuerySettings, ClickhouseDirectQuerySettings, DatabricksDirectQuerySettings, MsSqlDirectQuerySettings, RedshiftDirectQuerySettings, SnowflakeDirectQuerySettings, SynapseDirectQuerySettings.

Changed

  • {@jira: PIVOT-5860} In the MemoryAnalysisService MBean, renamed the operation Dump memory statistics to Dump memory statistics for most recent version since this operation only exports the most recent version.
  • {@jira: PIVOT-7349} RecordFormat#getFieldNames no longer creates a new list at each method call, thus improving its footprint.

Security

  • {@jira: PIVOT-7349} PropertiesRecordFormat is no longer used internally and is now deprecated, for removal in 6.1.0.
  • {@jira: PIVOT-7429} DirectQuery: Configuration parameters for DirectQuery that were passed via ActiveViamProperty (either JVM arguments or environment variables) have been deprecated in favor of the associated POJO (BigqueryDirectQuerySettings, ClickhouseDirectQuerySettings, DatabricksDirectQuerySettings, MsSqlDirectQuerySettings, RedshiftDirectQuerySettings, SnowflakeDirectQuerySettings, SynapseDirectQuerySettings).

Fixed

  • {@jira: PIVOT-7236} Fix performance issue in CycleDetectingGraphVisitor.
  • {@jira: PIVOT-7269} Updated IPostProcessor#IS_PARTITIONED_ON_RANGE_LEVELS_PROPERTY javadoc to correctly link to its default value.
  • {@jira: PIVOT-7308} Fix unnecessary cloning of swapped vector blocks.
  • {@jira: PIVOT-7315} Fix overriding epoch dimension visibility with the mdx context.
  • {@jira: PIVOT-7316} Fix query issue when distributing field is null or "N/A". The query engine used to skip cubes with only null distributing fields values.
  • {@jira: PIVOT-7321} When running ListQueries against a Datastore, the option runCurrentThread no longer forks an additional task.
  • {@jira: PIVOT-7336} Copper.storeLookup could use a too recent Datastore version when a transaction would create a Datastore version but not an ActivePivot one.
  • {@jira: PIVOT-7359} When asked to output the K top/bottom elements of the vector, the ZeroVector class no longer throws IndexArrayOutOfBoundException when K = vector.size().
  • {@jira: PIVOT-7367} Properly propagate context value dependencies when optimizing calculated measures with Copper.
  • {@jira: PIVOT-7398} Fix issue with slicing introspection analysis hierarchy and aggregate provider on DirectQuery.
  • {@jira: PIVOT-7413} Fix SQL for queries with Multi Row Vector tables and incomplete joins in DirectQuery.
  • {@jira: PIVOT-7419} Fix bug in DrilldownMember causing members to be missing in the result.
  • {@jira: PIVOT-7433} Filters on Member captions through XMLA were not properly taken into account.

6.0.5

2023-06-08

Added

  • {@jira: PIVOT-6176} Add a WebSocketSnippet to test the WebSocket server with a client call.
  • {@jira: PIVOT-6804} Add possibility to enable aggressive check (using ActiveVIamProperty#AGGRESSIVE_CELLSET_SIZE_CHECK_PROPERTY) on MDX CellSet axis positions during axis materialization (see and IMdxContext#getAxisPositionLimit()).
  • {@jira: PIVOT-6953} Atoti Python SDK: Add configuration options for Hibernate
  • {@jira: PIVOT-6980} Allow Atoti Python SDK to specify custom distribution protocol, include S3Ping JAR in atoti-aws plugin.
  • {@jira: PIVOT-7046} Added getHierarchicalMapping() on IActivePivot.
  • {@jira: PIVOT-7272} Allow Atoti Python SDK to specify distributing fields.

Changed

  • {@jira: PIVOT-6957} All Basic authentication mechanisms are replaced by Login Form authentication. Atoti Server Application users may now specify path to their own HTML login pages when using LDAP, Kerberos or Basic authentication mechanisms.

Deprecated

caution

From version 6.0.5, Atoti Server annotates some classes as @Deprecated, for removal in 6.1. These deprecations are accompanied by another custom annotation @InternalApi. The @InternalAPI annotation indicates that these classes were designed to be used by our internal teams at ActiveViam only, and not as part of the public API. It is for this reason that they are being deprecated. Atoti Server does not provide any replacement for them, as these classes are not features.
See deprecations page for more details.

  • {@jira: PIVOT-7046} IActivePivot.getAggregateProvider() is deprecated in favor of IActivePivot.getHierarchicalMapping()

Fixed

  • {@jira: PIVOT-5978} LimitedByteArrayOutputStream now handles specific edge cases that could cause the XMLA Servlet to still generate Out of Memory Errors.
  • {@jira: PIVOT-6593} Improved read/write and serialization/deserialization performances on snappy-compressed files in memory statistics exports.
  • {@jira: PIVOT-6923} Datastore implementation of IQueryRunner#getByKeyQuery() now accepts key fields in the order specified by IDataTable#getKeyFieldNames().
  • {@jira: PIVOT-7020} Correctly propagate exception to partitions of a JITPrimitiveAggregatesRetrieval.
  • {@jira: PIVOT-7044} Reduce the time needed to create Copper measures.
  • {@jira: PIVOT-7050} Inserting data into an initially empty joined store now correctly updates corresponding analysis hierarchies.
  • {@jira: PIVOT-7062} Fix data loading for JDBC drivers that do not support fetch size hints.
  • {@jira: PIVOT-7081} Fix implementation of FastLogicalQFSBitmap#interruptibleNaiveOr(..). Previous implementation didn't account for the append-only constraint of the QFSBitmap.
  • {@jira: PIVOT-7078} Fix a performance regression for Vector-based Aggregations.
  • {@jira: PIVOT-7089} Fix data race on drop of empty results in ExecutionPlan.
  • {@jira: PIVOT-7145} DirectQuery: Supports a wider range of special characters in ClickHouse column names.
  • {@jira: PIVOT-7160} DirectQuery: Fix generated MAC dump when using an AdaptiveJit as full provider with DirectQuery.
  • {@jira: PIVOT-7188} DirectQuery: Fix issue during validation of DirectQuery when using distributed cube.
  • {@jira: PIVOT-7209} Fix NullPointerException in ActivePivot Monitoring when retrieving attributes of Query Cube MBean in distributed setup.
  • {@jira: PIVOT-7240} DirectQuery: Fix issue on streamed list queries which could lead to record loss.
  • {@jira: PIVOT-7260} Fix bug preventing java code being reused to define Copper level filtering measures.

Security

  • {@jira: PIVOT-7057} Upgrade snowflake-jdbc to 3.13.30 to patch a vulnerability to command injection via SSO URL authentication.
  • {@jira: PIVOT-7230} Upgrade spring-boot to 2.7.11 to patch CVE-2023-20873.

6.0.4

2023-04-17

Added

  • {@jira: PIVOT-5523} The context value expiration time can now be configured by ActiveViamProperty.CONTEXT_VALUE_MANAGER_VALUE_LIFETIME_PROPERTY. This will affect the calculated members created by Excel.
  • {@jira: PIVOT-5964} Added builder for GetByKeyQuery.
  • {@jira: PIVOT-6840} Added query tags on GetByKeyQuery.
  • {@jira: PIVOT-7072} Added IDatabase.getMasterHead(). It will replace IDatastore.getHead().

Changed

  • {@jira: PIVOT-5446} Error messages that are printed when accessing the reserved position for null values in a NullableDictionary are now clearer.
  • {@jira: PIVOT-6984} DirectQuery for ClickHouse correctly reports unsupported table Engines. This was previously unchecked, causing to unknown behavior when used with incorrect engines.

Deprecated

  • {@jira: PIVOT-3121} Deprecating the following datastore classes as part of internal cleaning of unused classes:
    • com.qfs.store.query.IFieldCriterion
    • com.qfs.store.query.IRecordMatcher
    • com.qfs.store.query.plan.IStoreQueryPlanToBe
    • com.qfs.store.query.plan.impl.QueryPlanToBe
    • com.qfs.store.record.IFieldMatchRecordProcedure
    • com.qfs.store.record.flatten.IRecordFlattenerFactory
    • com.qfs.store.transaction.ILogAction
    • com.qfs.store.transaction.impl.MoveLogAction
  • {@jira: PIVOT-6175} com.activeviam.tech.partitioning.internal.IPartitioning#getMaxPartitionId() is deprecated in favor of PartitioningSnapshot#getMaxPartitionId().
  • {@jira: PIVOT-6175} com.activeviam.tech.partitioning.internal.impl.PartitioningUtil#initializePartitioning(IPartitioning, IPartitioning, TIntIntMap) is deprecated in favor of PartitioningSnapshot#from(IPartitioning, TIntIntMap, PartitioningSnapshot).

Removed

  • {@jira: PIVOT-6051} DirectQuery: the property com.activeviam.properties.impl.ActiveViamProperty.MANAGER_FEEDING_TIMEOUT has been deprecated to avoid the misconception that the query was cancelled by ActivePivot.

Fixed

  • {@jira: PIVOT-5288} Fix TimeLineHandler impact computation for distribution.
  • {@jira: PIVOT-5316} Fix issue with not seeing all processor cores for Windows machines with 64+ CPUs.
  • {@jira: PIVOT-6213} DatastoreTransactionQueryRunner no longer creates a transaction object on a partition when there is a transaction on the store.
  • {@jira: PIVOT-6506} Now stopping the application will wait for the cache to be discarded.
  • {@jira: PIVOT-6640} Atoti Python SDK: Ignore non-JSON files when loading translations.
  • {@jira: PIVOT-6642} Improve thread synchronization in the MDX engine.
  • {@jira: PIVOT-6669} Speed up query using the Mdx range operator in subselects.
  • {@jira: PIVOT-6792} Fix race condition in distribution. The issue appeared intermittently on consecutive branch creation and deletion.
  • {@jira: PIVOT-6796} Fix performance regression when feeding copper defined analysis hierarchies.
  • {@jira: PIVOT-6817} DirectQuery: fix issue with count in some query using multi row vector tables.
  • {@jira: PIVOT-6834} Fix ClassCastException when collecting query plan retrieval timings.
  • {@jira: PIVOT-6917} Distributed drillthrough queries properly function when one of the application's data nodes declares concealed hierarchies.
  • {@jira: PIVOT-6987} and {@jira: PIVOT-7068} DirectQuery: fix issue with SQL generation when querying multi row vector tables while filtering on another table.
  • {@jira: PIVOT-7034} DirectQuery: fix possible deadlock when managing update-where triggers in the datastores bundled in DirectQuery applications.
  • {@jira: PIVOT-7053} Fix Unknown coordinate exception on Analysis hierarchy
  • {@jira: PIVOT-7054} DirectQuery: fix issue with SQL generation in case of joins towards multi row vector tables when the local and external table names of the target table are different.

6.0.3

2023-03-07

Added

  • {@jira: PIVOT-5565} IJoinMeasureDescription#setMapping(Collection) is added to allow to use a level in a copper join more than once. Its corresponding getter is IJoinMeasureDescription#getMappingToCube().
  • {@jira: PIVOT-6168} Add execution context compute time per retrieval to query plan, only available for bitmap retrievals.
  • {@jira: PIVOT-5875} Added the MedianFunction aggregation function.
  • {@jira: PIVOT-5929} Allow to add a prefix to the names generated in the content server with ActiveViamProperty.CONTENT_SERVICE_NAME_GENERATOR_PREFIX. This is done to easily differentiate between artifacts and assets created on different content server instances.
  • {@jira: PIVOT-6644} DirectQuery: Add validator on joins for external databases;
  • {@jira: PIVOT-6645} DirectQuery: Add validator on null values in multi-column primitive vectors.
  • {@jira: PIVOT-6646} DirectQuery: Add validator on null values in multi-rows primitive vectors.

Deprecated

  • {@jira: PIVOT-5565} IJoinMeasureDescription#getMapping() is deprecated in favor of IJoinMeasureDescription#getMappingToCube() returning a collection of mapping between levels and fields. This allows to map the same levels multiple times to different fields. The setter IJoinMeasureDescription#setMapping(Map) has been deprecated as well.
  • {@jira: PIVOT-6672} com.qfs.distribution.impl.QueryCubeSync#view in favor of com.qfs.distribution.impl.QueryCubeSync#getView().
  • {@jira: PIVOT-6687} com.qfs.pivot.agg.IAggregateStore#getMeasureColumnIndex(String) is deprecated, in favor of com.qfs.pivot.agg.IAggregateStore#getColumnIndex(String).

Fixed

  • {@jira: PIVOT-5744} Wait for result size task to be done before discarding retrieval's result.
  • {@jira: PIVOT-6581} Fix issue when using DirectQuery on Snowflake with a proxy.
  • {@jira: PIVOT-6596} Fix NullPointerException when querying a database with a non null condition and a null additional condition.
  • {@jira: PIVOT-6730} MDX Calculated Members properly work again in polymorphic distributed applications.
  • {@jira: PIVOT-6745} Clustering fields are detected in join tables to trigger multi step queries.

6.0.2

2023-02-10

Added

  • {@jira: PIVOT-5874} Add the Copper#argmax and Copper#argmin functions.
  • {@jira: PIVOT-5981} Support Microsoft SQL Server (mssql) version 2017, 2019 & 2022

Changed

  • {@jira: PIVOT-5031} Restore printNumaConfiguration() for Aggregate Providers.
  • {@jira: PIVOT-5693} Reduce transient memory footprint of the JIT aggregate provider. This is particularly crucial for use cases including a large number of small transactions.
  • {@jira: PIVOT-5317} The property ActiveviamProperty#DATA_CUBE_REST_ENDPOINT_PROPERTY has now been split into two properties, ActiveviamProperty#DATA_CUBE_REST_ENDPOINT_PORT_PROPERTY and ActiveviamProperty#DATA_CUBE_REST_ENDPOINT_SUFFIX_PROPERTY.
  • {@jira: PIVOT-6036} IStatisticsQueryRunner.estimateColumnCardinality now throws CannotEstimateColumnCardinalityException if the estimation is not possible (instead of various Exceptions).
  • {@jira: PIVOT-6046} Now the query engine checks for interruptions during the planning phase. This is done to avoid cases where the query involving a lot of filtering blocks the session.
  • {@jira: PIVOT-6204} Allow users to disable the initialization of an application in DirectQuery beans. The bean method #startApplication from base configuration classes can be disabled using the property activeviam.directquery.spring.enableLegacyInitialization. Users should instead do their own initialization using tools like CommandLineRunner.
    This applies to ABigQueryConfig, AClickhouseConfig, ARedshiftConfig, ASnowflakeConfig and ASynapseConfig.
  • {@jira: PIVOT-6210} internal IActivePivotSession have been removed from all distributed messengers and messages.
  • {@jira: PIVOT-6210} internal the constructor parameter Id (referring to the session id) has been removed from all messenger constructors.
  • {@jira: PIVOT-6210} Getting/Setting the range sharing limit using JMX is now located in the pivot MBean instead of the QueryPlan MBean.
  • {@jira: PIVOT-6210} Distributed messages implementing the IDatabaseAware interface will be injected a database.
  • {@jira: PIVOT-6211} Database queries correctly fail when having several fields with the same alias.
  • {@jira: PIVOT-6436} Change packages of internal Database query objects erroneously located in public packages.
  • {@jira: PIVOT-6521} internal IActivePivotSession and its subclasses have been removed.
  • {@jira: PIVOT-6521} The class MdxQueryUtil provides utility classes to execute MDX queries.

Deprecated

  • {@jira: PIVOT-6204} The method #apManagerInitPrerequisitePluginInjections from DirectQuery base configuration classes has been deprecated. Users should instead do their own initialization using tools like CommandLineRunner.
    This applies to ABigQueryConfig, AClickhouseConfig, AMsSqlConfig, ARedshiftConfig, ASnowflakeConfig and ASynapseConfig.

Removed

  • {@jira: PIVOT-5317} Remove the syntax allowing to define multiple endpoint within a single application.

Fixed

  • {@jira: PIVOT-4134} Fix NullPointerException in the query plan caused by invalid locations or measures in Prefetchers.
  • {@jira: PIVOT-5541} In a distributed application, a restart of a messenger will now properly free the port it was previously bound to. The freed port will be reusable, meaning that a messenger will no longer be able to use its entire dedicated range of ports.
  • {@jira: PIVOT-5767} Wait for the datastore to close before stopping QfsPools.
  • {@jira: PIVOT-5994} Children of range-sharing retrievals are correctly printed as dependency in the query plan.
  • {@jira: PIVOT-6009} Correctly name Spans after their creation.
  • {@jira: PIVOT-6015} Fix copper first objects comparator being ignored
  • {@jira: PIVOT-6133} Fix deadlock when allocating partition content.
  • {@jira: PIVOT-6196} Fix an issue where we couldn't restart a DistributedMessenger when it was already paused.
  • {@jira: PIVOT-6203} Fix an issue with StoreFieldMonitor#histogram() in JMX console producing ClassCastException on dictionarized fields.
  • {@jira: PIVOT-6633} Fix NullPointerException during continuous queries registration in distributed setup.
  • {@jira: PIVOT-6500} Support KPIs in Data Export CSV tabular format.
  • {@jira: PIVOT-6577} Fix ClassCastException occurring when aggregating the contributors.COUNT measure.

6.0.1

2022-12-07

Added

  • {@jira: PIVOT-6113} Add a dictionarize method on Field in DirectQuery databases.

Changed

  • {@jira: PIVOT-5852} The WatcherService will now create its WatcherThread with the same tracing context as the parent task (for example a file listener).
  • {@jira: PIVOT-5989} Performance improvement in DirectQuery's generated SQL queries by pushing some conditions in the join clause.
  • {@jira: PIVOT-6122} internal ClickHouse DataValidator is now package-private and final.
  • {@jira: PIVOT-6122} internal IStreamListenerRegistration, returned by IDataStreamer#registerListStreamView, is now correctly public. It migrated from com.activeviam.database.internal.view into com.activeviam.database.api.query.
  • {@jira: PIVOT-6122} internal The listener type com.activeviam.database.internal.view.IListViewListener, required by IDataStreamer#registerListStreamView has been made public as com.activeviam.database.api.query.IStreamListViewListener.
    The internal method #getPriority() has been removed. The internal method #onSelfFailure(Throwable) has changed not to return any value, preventing it from being able to rollback a transaction.
  • {@jira: PIVOT-6122} internal DatabaseId entities, returned by various methods like IDatabaseSchema#getDatabaseId() is now public, moving from the package com.activeviam.database.internal.schema to com.activeviam.database.api.schema.
  • {@jira: PIVOT-6122} internal the following public classes have been final, to avoid internal tempering:
    • com.activeviam.database.api.query.PointAggregateStore
    • com.activeviam.database.api.query.ResultAcceptorWithoutPartitioningWrapper
    • com.activeviam.database.api.selection.impl.Selection

Deprecated

  • {@jira: PIVOT-5877} The ILocalityIdentifier#canBeLocalized is deprecated. Use ILocalityIdentifier#localMeasurePredicate instead.

Removed

  • {@jira: PIVOT-6081} The PartialProviderDefinition.NO_DIMENSION_DEFINED flag for unspecified dimension names has been removed

Fixed

  • {@jira: PIVOT-5867} AHibernateContentService's locking strategy is improved to lock smaller unit of works. This will prevent potential deadlocks.
  • {@jira: PIVOT-5978} Prevent OutOfMemoryError crashes in the XMLA Servlet when attempting to send a message that does not fit in a byte array of size Integer.MAX_VALUE. RuntimeException will be thrown instead.
  • {@jira: PIVOT-5997} Adaptive JIT is now always used instead of JIT with DirectQuery.
  • {@jira: PIVOT-6027} Fix APM Spring configuration.
  • {@jira: PIVOT-6053} Fix performance issue when reducing the number of allowed concurrent queries in the MdxQueryBouncer.
  • {@jira: PIVOT-6112} Fix issue in DirectQuery filtering on the wrong dates when pushing queries to Snowflake.

6.0.0

2022-11-08

Added

  • {@jira: PIVOT-2930} Add ICubeFormatter.getMeasureCaption(String) that will replace getMeasureCaptions().
  • {@jira: PIVOT-4747} New API: IDatabase. The IDatastore is now a specialization of IDatabase.
  • {@jira: PIVOT-4887} New Rest Bulk API for Content Server. See RestBulkApiServerController.
  • {@jira: PIVOT-5077} Replication is disabled by default for the contributors.COUNT measure on distributed cubes. It can be re-enabled using the cube description builder, right after stating asQueryCube().
  • {@jira: PIVOT-5177} IPartialAggregateProviders can be filtered on certain levels (whether they are handled by the provider).
  • {@jira: PIVOT-5180} Added springdoc dependency in the sandbox to showcase how to list all rest endpoints.
  • {@jira: PIVOT-5181} Lead/Lag/First/Last measures can be configured to shift to the exact location or the first non-null element. New builders are available in the class com.activeviam.copper.api.Copper.
  • {@jira: PIVOT-5183} Add rebuild operations for indexes to the datastore API.
  • {@jira: PIVOT-5207} New endpoint in the Database Rest API to retrieve actual number of records in the store. See IDatabaseRestService. It replaces the IDatastoreRestService.
  • {@jira: PIVOT-5317} Data cube now can have a unique identifier using the fluent builder API IDataClusterDescriptionBuilderWithIdAndMessengerDefinition#withUniqueIdentifierInCluster.
  • {@jira: PIVOT-5317} Expose remote data cube physical addresses in the query cube.
  • {@jira: PIVOT-5429} Introduced new interface IAnalysisHierarchyDescriptionProvider to describe the properties of the Java-based analysis hierarchies.
  • {@jira: PIVOT-5561} Introduce a new API to write aggregation bindings on objects and vectors. See this migration note for details.
  • {@jira: PIVOT-5609} Serialization of null values: introduce a new method ConditionToJsonNodeHelper.convertMapIncludeAll that includes keys with null values in the JsonNode. It relies on a dedicated ObjectMapper (see JacksonSerializer#getObjectMapper(true))
  • {@jira: PIVOT-5631} ActiveUIResourceServerConfig and AdminUIResourceServerConfig are now core classes. You no longer need to copy them from the Sandbox to your projects.
  • {@jira: PIVOT-5734} Copper#constant now supports Object Vectors.
  • {@jira: PIVOT-5871} New aggregation functions were added to the core product. See the what's new page
  • {@jira: ADMINUI-10} In the sandbox, a /ui folder is created in the Content Server at startup if it does not exist yet. It contains the file structure necessary for ActiveUI to work correctly.

Changed

  • {@jira: PIVOT-3121} IPostProcessedMeasure no longer has a generic parameter.
  • {@jira: PIVOT-4747} The Datastore API is no longer accessible from an ActivePivot. It was replaced by the Database API. See the migration notes for details.
  • {@jira: PIVOT-5116} In the StoreDescriptionBuilder all operations on fields should be done before defining the partitioning. For example, you cannot call addField() after withPartitioning().
  • {@jira: PIVOT-5135} Creating a sub-second QueriesTimeLimit will now throw an IllegalArgumentException stating that a time limit must have a duration over 1 second.
  • {@jira: PIVOT-5145} IPluginValue and IExtendedPluginValue are not Serializable by default anymore.
  • {@jira: PIVOT-5295} MDXCellSet now always returns the list of default members, even if the cell set itself is empty.
  • {@jira: PIVOT-5298} All ActivePivot named threads are now prefixed by activeviam and suffixed by worker-i where i is the thread count number.
  • {@jira: PIVOT-5333} Increase severity for full reset and pending initial discovery messages to WARNING in distributed clusters.
  • {@jira: PIVOT-5349} The method CSVSource#setFileIdentifierComparator was moved to ICSVSourceConfiguration, which is now created through the builder CSVSourceConfigurationBuilder.
  • {@jira: PIVOT-5373} ICursor is now auto-closeable. See migration notes.
  • {@jira: PIVOT-5378} The INumaNodeSelector interface has been separated into INumaNodeSelector and IDatastoreNumaNodeSelector, which live in different modules.
  • {@jira: PIVOT-5383} Tracing has been removed from APM and is now part of the core product.
  • {@jira: PIVOT-5417} All rest endpoints have been migrated to Spring MVC and the JsonResponse wrapper removed.
  • {@jira: PIVOT-5422} IDatastoreSchemaDescription.getDictionaryGroups now uses sets of StoreField.
  • {@jira: PIVOT-5429} Numerous ActiveViamProperty and JwtConfig property values were renamed to uniformize their naming conventions (see the migration notes).
  • {@jira: PIVOT-5429} Pivot hierarchy descriptions now use the IHierarchyDescription interface.
  • {@jira: PIVOT-5429} Changed how the Analysis hierarchies are defined. See migration notes.
  • {@jira: PIVOT-5468} The Datastore REST API is now called Database REST API. Queries will behave like if the autoDetectOuterReferences parameter was set to true in 5.11.
  • {@jira: PIVOT-5486} Sub-interfaces and classes of conditions are now internal.
  • {@jira: PIVOT-5486} The IDictionaryCursor interface was removed. By default, IListQueryRunner#run and similar methods will return plain values. Use the option IListQueryRunner#withDictionarizedValues() to retrieve dictionarized values.
  • {@jira: PIVOT-5486} DatastoreQueryHelper.selectDistinct(...) was changed to only support querying distinct values of a field belonging to a given table.
  • {@jira: PIVOT-5486} Renamed PARTIAL_PROVIDER_SELECTOR_PLUGIN_KEY_PROPSERTY to PARTIAL_PROVIDER_SELECTOR_PLUGIN_KEY_PROPERTY (typo in PROPERTY).
  • {@jira: PIVOT-5490} The methods in HierarchiesUtil no longer throw checked exceptions.
  • {@jira: PIVOT-5528} Change the behavior of Copper Join Hierarchies that come from a field joined with a datastore reference on the Copper store. In the past the results could be empty when the reference failed.
  • {@jira: PIVOT-5548} Aggregate provider's ProviderCoordinate now contains the provider's name instead of the index. Renamed MemoryStatisticConstants#ATTR_NAME_PROVIDER_INDEX to ATTR_NAME_PROVIDER_NAME.
  • {@jira: PIVOT-5556} Provided a clearer exception message when attempting to create a hierarchy misusing MultiVersionAxisHierarchy#FIELD_PATH_PROPERTY. This property replaces the FIELD_EXPRESSION_PROPERTY.
  • {@jira: PIVOT-5582} Namespace and version are by default deduced from namespace prefix in ASpringVersionedRestServerConfig.
  • {@jira: PIVOT-5637} Partial providers can no longer be filtered on levels they do not handle.
  • {@jira: PIVOT-5683} Constructors of AAggregation and its implementations were changed. Passing the type of the source is now mandatory. Implementations that can enforce their own aggregated type now do so.
  • {@jira: PIVOT-5723} All post-processor output types are now nullable by default.
  • {@jira: PIVOT-5732} Changed the implementation of the or operator on multiple bitmaps.
  • {@jira: PIVOT-5792} Changed the API to create Dynamic conditions on the Datastore/Database. It is now mandatory to name a parameter using the as(String) method.
  • {@jira: PIVOT-5820} Unify IChunkSetCursor and IArrayReaderWithCursor into a single concept, ITableCursor.
  • {@jira: PIVOT-5834} Static methods in BaseConditions have been renamed. They are now all starting with a lower case. Lesser and LessOrEqual have been changed to less and lessOrEqual.
  • {@jira: PIVOT-5839} Chunks#DEFAULT_CHUNK_SIZE now cannot exceed 65536.
  • {@jira: PIVOT-5839} ActiveViam Property NATIVE_MEMORY_CACHE_RATIO_PROPERTY (-Dactiveviam.nativeMemoryCacheRatio) now defaults to 0.4, instead of 0.8.
  • {@jira: PIVOT-5840} IAxisLevelDescription's propertyName field is now named selectionField to clarify what it represents. The getPropertyName() and setPropertyName(String) methods have been renamed accordingly.
  • {@jira: PIVOT-5914} Sandbox applications use AdminUI version 5.0.7.

Deprecated

  • {@jira: PIVOT-4747} Deprecated IDatastoreVersion in favor or IDatabaseVersion
  • {@jira: PIVOT-4747} Deprecated IReadableDatastore#getHead() in favor of getHead(String) and IReadableDatastore#getBranches() in favor of getHeads().
  • {@jira: PIVOT-4747} Deprecated several of the signatures ofDatastoreQueryHelper#createGetByKeyQuery.
  • {@jira: PIVOT-5429} Several methods from AAnalysisHierarchy have been deprecated, use IAnalysisHierarchyDescriptionProvider instead (see migration notes).
  • {@jira: PIVOT-5429} Deprecated the ability to have introspecting levels in AAnalysisHierarchy.
  • {@jira: PIVOT-5486} DistinctAcceptor is now considered in internal class. Its signature changed to work on plain records without dictionary values and don't require the number of partitions.
  • {@jira: PIVOT-5536} The name of the ActivePivotManager's monitoring bean is now a constant: ActivePivotManager.
  • {@jira: PIVOT-5561} The following abstract classes are deprecated: AGenericBaseAggregationFunction, AGenericAggregationFunction, AGenericVectorAggregationFunction, AVectorAggregationFunction.
  • {@jira: PIVOT-5905} The method hasNext in ICursor has been deprecated, use next directly.
  • {@jira: PIVOT-5905} The method rewind of ICursor will become an internal method.

Removed

  • {@jira: PIVOT-4437} Remove ActivePivotDatastorePostProcessor, NumaSelectorPostProcessor and WeightMaximizingNumaSelectorPostProcessor.
  • {@jira: PIVOT-5175} Dropped SOAP services.
  • {@jira: PIVOT-5180} Dropped CXF.
  • {@jira: PIVOT-5320} Removed legacy post-processors. See the migration notes for details.
  • {@jira: PIVOT-5590} Removed realtime drillthrough feature from Excel Add-in.
  • {@jira: PIVOT-5590} Removed native output type "Excel" from the list of supported drillthrough output types.
  • {@jira: PIVOT-5378} Removed getDatastore methods from ISchemaSelectionSession and IActivePivotSchemaSelectionSession
  • {@jira: PIVOT-5413} Removed IActivePivotDescription.IDescriptionPostProcessor. Description post-processing does not need to be handled by the core product.
  • {@jira: PIVOT-5413} Removed the ability to define an Analysis aggregation procedures in a hierarchy description.
  • {@jira: PIVOT-5468} Removed the autoDetectOuterReferences parameter in Database service.
  • {@jira: PIVOT-5561} Removed internal attributes and methods to use when writing an aggregation binding for Objects. For example, it is not required nor possible to manually call #write(int, Object) and writeBoolean(int, boolean) when doing vector aggregation using AAggregationBindingCloneable, AVectorAggregationBinding or derivatives of SumVectorAggregationBinding. See [this migration note](./migration_notes#Aggregation module changes) for details.
  • {@jira: PIVOT-5561} Removed ABasicAggregationBindingCloneable, replaced by a refactored AAggregationBindingCloneable.
  • {@jira: PIVOT-5574} Removed Reporting and Scheduling Service.
  • {@jira: PIVOT-5605} Removed class SecurityFromCubeToDatabaseFilterHook.
  • {@jira: PIVOT-5668} Removed IStreamPublisher form IStreamSnapshotService. The snapshot service now uses the same publisher as the streaming service.
  • {@jira: PIVOT-5680} Removed KeepLastBranchEpochPolicy.
  • {@jira: PIVOT-5785} Removed getName method from ICursor, use getFieldName on IRecordFormat.
  • {@jira: PIVOT-5792} Removed the ability to give an index to a Dynamic condition. One should now give a name.
  • {@jira: PIVOT-5834} Removed BaseConditions.True() and BaseConditions.False(), use BaseConditions.TRUE and BaseConditions.FALSE instead.
  • {@jira: PIVOT-5840} AxisLevelDescription(String levelName) was removed. A selectionField (formerly propertyName) must now be specified to avoid unexpected behavior.

Fixed

  • {@jira: PIVOT-5416} Fix computeAggregationProcedureTiming for cached retrievals.
  • {@jira: PIVOT-5622} Correctly define constructors for generated Bean property accessors.
  • {@jira: PIVOT-5809} Fix ArrayIndexOutOfBounds exceptions in ActivePivotAggregatesRetriever.
  • {@jira: PIVOT-5774} Fix a DiscardedDataException potentially occurring in Vector aggregation operations
  • {@jira: PIVOT-5783} Fix the toString() method for CsvCharacterCodingError.
  • {@jira: PIVOT-5813} Fix NullPointerException that could occur with Copper's window.
  • {@jira: PIVOT-5873} Fix thread vector allocator un-consistency. Previously, a thread requesting a transient allocator could end-up with a direct memory allocator.
  • {@jira: PIVOT-5887} Arrange for a spare thread for continuous MDX updates. Previous implementation could cause live locks in case of work-stealing.