Changelog
For user-facing changes, refer to the What's New? page.
The format is based on Keep a Changelog and this project adheres to Romantic Versioning.
6.1.0-beta2
2024-06-05
Added
- PIVOT-8903 Added method
ICubeFilter.isHierarchyRestricted(HierarchyIdentifier)
. - PIVOT-9511 Added method
ICanStartBuildingHierarchy.withHierarchy(IAxisHierarchyDescription)
to add a hierarchy from its description.
Changed
- PIVOT-8185 Moved static
CopperLevel#at([...])
method toCopper#levelsAt([...])
andCopperLevel
class methodslevel.at([...])
andlevel.atValue([...])
to static methods, respectivelyCopper#levelAt(level,[...])
andCopper#levelAtValue(level,[...])
. - PIVOT-8186 The
ICubeFormatter
contract was modernized to promoteLevelIdentifier
andHierarchyIdentifier
and remove some ambiguity.ACubeFormatter
was removed. - PIVOT-9130 Stopped throwing an exception when an Mdx calculated member references an unknown member. This is intended to allow defining calculated members before loading the data.
- PIVOT-9293
ModifiedLocation
is now a private class. Modifying a location should only be performed usingLocationUtil#createModifiedLocation
. - PIVOT-9345 Removed the necessary injection of components in the Registry to have a working Distribution layer. This is now performed automatically by the starter
com.activeviam.tech:atoti-starter
. - PIVOT-9409 Replaced
IDatabaseSchema.findTable(String)
byIDatabaseSchema.hasTable(String)
to check whether a table exists. UseIDatabaseSchema.getTable(String)
to retrieve the table. - PIVOT-9410
IDatabaseSchema.getTables()
andIDatabaseSchema.getTableNames()
now return respectively aCollection<? extends IDataTable>
and aCollection<String>
instead of aMap<String, ? extends IDataTable>
and aSet<String>
.IDatastoreSchemaDescription.getTables()
andIDatastoreSchemaDescription.getTableNames()
return respectively aList<? extends IStoreDescription>
and aList<String>
where the order corresponds to the physical order inside the datastore. - PIVOT-9517 Renamed
ExtendedContentType
intoContentType
.
Deprecated
- PIVOT-8591 Deprecated use of
"hashN(fieldName)"
to describe a modulo N partitioning on a field inICanPartition.withPartitioning(String)
. Use"moduloN(fieldName)"
instead.
Removed
- PIVOT-9217 Moved internal methods of
IMultiVersionActivePivot
,IMultiVersionDistributedActivePivot
andIMultiVersionDataActivePivot
to their respective internal interface. - PIVOT-9218 Removed
IAggregateProviderDefinition.getNumaNodeSelectorPlugin()
. - PIVOT-9385 Removed
IDatastoreSchemaDescription.getStore(String)
, useIDatastoreSchemaDescription.getTable(String)
instead.
Fixed
- PIVOT-9177 Fixed error propagation from data cube to query cube when aggregates cache is enabled.
- PIVOT-9301 Context value
drillthrough.maxrows
is now taken into account in distributed: the merged result cannot exceedmaxrows
rows. - PIVOT-9317 Failing
HelloMessage
no more leaves the cube in invalid state causing cube discovery failures. - PIVOT-9320 Performance improvement for Mdx queries relying on a lot of calculated measures.
- PIVOT-9392 Fixed a JSON serialization issue impacting the large results cellsets.
- PIVOT-9466 Fix the desegregation of SumProductUdaf aggregation method.
Security
- PIVOT-9513 Upgraded
com.amazonaws:aws-sdk-redshift
,com.amazonaws:aws-sdk-s3
,com.amazonaws:aws-sdk-kms
andcom.amazonaws:aws-sdk-core
to version1.12.638
to fix CVE-2024-21634. - PIVOT-9513 Upgraded
org.springframework:spring-web
to version6.1.6
to fix CVE-2024-22262.
6.1.0-beta
2024-05-03
Added
- PIVOT-4994 Added new method
IDataClusterDefinition.setConcealBranches()
to hide the branches of the data cube from the query cubes. - 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. - PIVOT-7933 DirectQuery Aggregate Tables is now an official feature and is no longer experimental.
- PIVOT-8186 Added a new class
DimensionIdentifier
that uniquely identifies a dimension within a cube. This object is accessible fromIDimensionInfo
. - PIVOT-8402 Added a public test API in the form of the Maven module
com.activeviam:atoti-server-test
. - PIVOT-8408 The post processor output type can now be configured using
BuildablePostProcessorBuilder.withOutputType(String type)
. - PIVOT-8478 Added a new class
com.activeviam.pivot.server.spring.api.Services
to createIDatabaseService
. - PIVOT-8525 Added
.hideGrandTotals(int... axisOrdinals)
to the shared context mdx builder. - PIVOT-8655 The array readers of the Copper API now have a
size()
method. - PIVOT-8813 Added
IDatabase.getVersion(long)
to retrieve a past version. - PIVOT-8830 Added
Registry.parseAnnotatedClasses()
andRegistry.scanPackages()
to set the registry contribution provider. - PIVOT-8918 Added
FieldTypeBuilder
(created withFieldType.builder()
) to create aFieldType
. - PIVOT-8919 Added a warning message when using an old
ActiveViamProperty
that no longer exists. - PIVOT-8994 Added
MemoryUtil
to get info about direct memory consumption.
Changed
- PIVOT-5228 Renamed fields, methods and constants in
ALocationShiftPostProcessor
. See the migration notes. - PIVOT-5848 The property
IAnalysisHierarchy#LEVEL_TYPES_PROPERTY
has been moved toIAxisLevelDescription#LEVEL_TYPE_PROPERTY
and is to be used on a per-level basis (see migration notes). - PIVOT-7045 In the data source APIs, the
MapTuplizer
, used to transform a record written as a mapcolumnName
tovalue
, now has a single generic typeV
instead of two. This generic type is still the type of the values.MapTuplizer
's contract and implementation are otherwise unchanged. - PIVOT-7255 When parsing level descriptions, leading and trailing spaces are no longer trimmed.
- PIVOT-7541 Use Java 21 as the new baseline.
- PIVOT-7653 Aggregation function's
IHistory
no longer implementIClone
. Users are instead required to implement adeepCopy()
method instead. - PIVOT-7762 Renamed
Types#isDictionary(int)
toTypes#isDictionarized(int)
. - PIVOT-7762 Renamed
IFieldType#supportsEmptyString()
toIFieldType#supportEmptyString()
. - PIVOT-7762 Renamed
Types.TypeInformation#canBeEmptyString
toTypes.TypeInformation#supportEmptyString
. - PIVOT-7762 Renamed
StoreFieldMonitor#getIsDictionary()
toStoreFieldMonitor#getIsDictionarized()
. - PIVOT-7857
com.activeviam.database.api.query.IStreamListViewListener
methods has no more default do nothing implementation. User has to choose the default implementation. - PIVOT-7982 Change the signatures of several methods to configure the Mdx engine. They now use
DimensionIdentifier
,HierarchyIdentifier
orLevelIdentifier
instead of unique names. - PIVOT-7983
EpochFormatter
is now internal and is the default epoch level formatter forIEpochDimensionDescription
. - PIVOT-7983
IReferenceDescription.getFieldsMapping()
has been renamedIReferenceDescription.getFieldMappings()
. - PIVOT-8024 The column type
TIMESTAMPTZ
in Redshift is discovered asStandardTypes.TIMESTAMP
instead ofStandardTypes.ZONED_DATE_TIME
. - PIVOT-8063 The required configuration file tracing.properties was removed. The tracing configuration is now pulled from the standard Spring environment. Projects putting properties in this file shall consider migrating them to the standard configuration files like application.yml or application.properties.
- PIVOT-8167
new ParquetParserBuilder(datastore)
is now internal. UseIParquetParser.builder(datastore)
instead. - PIVOT-8186 The
Statistics - Queries - total count
MBean attribute has been renamedNb of running queries
. - PIVOT-8186 The constructor for
IDrillthroughExecutor
now only has one parameter:IDrillthroughSession
, theProperties
parameter was removed. It is now inIDrillthroughSession.getProperties()
. - PIVOT-8189 The
activeviam.mdx.result.aggresiveAxisPositionLimitCheck
property is now replaced withMdxContext.setAggressiveAxisPositionLimitCheck
and is enabled by default. - PIVOT-8192
IPluginValue#key()
now returns aString
instead of anObject
. - PIVOT-8199
ICatalog
is no longer aQuartetType
. - PIVOT-8244 Merged
IReadableDatastore
inIDatastore
. - PIVOT-8245 Replaced
ITransactionalWriter.getMetadata()
andIStoreMessageChannelFactory.getSchemaMetadata()
that returned anIDatastoreSchemaMetadata
by respectivelyITransactionalWriter.getSchemaDescription()
andIStoreMessageChannelFactory.getSchemaDescription()
that return anIDatastoreSchemaDescription
. - PIVOT-8246
JungSchemaPrinter
has been moved to its own maven moduledatastore-schema-printer
in the packagecom.activeviam.database.datastore.schemaprinter.api
. - PIVOT-8283 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). The old behavior can be obtained by using the
DISTRIBUTION_BEHAVIOR_OVERRIDE_PROPERTY
property (see the migration notes) - PIVOT-8284
IDataStreamer.registerListStreamView
uses nowRegistrationOptions
to wrap the options of the registration. - PIVOT-8285
QFSRegistry
,QfsRegistryCreator
andIRegistryCreator
have been renamed and are now internal. See migration notes - PIVOT-8304 The
CubeTesterBuilderExtension
is nowTesterBuilderExtension
. See the migration notes to properly register the new extension. - PIVOT-8333 Changed naming convention:
ExternalDatastoreRetrieval
is now calledDatabaseRetrieval
. This change prevents any confusion between database retrievals that access an external database, through the Direct Query feature, and retrievals that are associated with Copper joins, and were previously calledExternal
. - PIVOT-8333 Changed ActivePivot REST API version from
8
to9x1
due to breaking changes. - PIVOT-8377
ISelectionDescriptionBuilder.withField(String name)
has been de-deprecated. However, the name argument must now be a field name only, and not a field expression. - PIVOT-8396
JDBCColumnParser
has been renamedJdbcDefaultColumnCalculator
. - PIVOT-8404 Cloud sources: The generics parameters in the API interface have been modified (
ICloudEntity
,ICloudEntityPath
,ICloudDirectory
, ...) in order to be less tied to the cloud vendor sdk implementation. - PIVOT-8514
[Measures].[Measures]
has been renamedMeasures
in all CSV export files. - PIVOT-8590 In cube builder fluent API, method
.withFilter(...)
was renamed to.withFactFilter(...)
. - PIVOT-8621 The signature of
INumaNodeSelectorFactory.create
has been changed. - PIVOT-8647 The value of the
STREAM_MEASURE_PROPERTY
property name inNeighborValuePostProcessor
andATimeLinePostProcessor
has been changed toIPostProcessor.UNDERLYING_MEASURES
property name for consistency value. - PIVOT-8656
IReferenceDescription#getFieldMappings()
now returns aSet<FieldMapping>
. - PIVOT-8656 The constructors of
DatastoreSchemaDescription
now require a List ofIStoreDescription
instead of a Collection. - PIVOT-8658
ICursorConverter
can now be applied on a cursor by callingICursorConverter.convertCursor()
- PIVOT-8663 Methods of
QfsWebUtils
have been migrated tocom.activeviam.web.core.api.IUrlBuilder
. - PIVOT-8663 Constructor of
JwtAuthenticationProvider
has been replaced by a builder available usingJwtAuthenticationProvider#builder()
. - PIVOT-8663 Constructor of
JwtService
has been replaced by a builder available usingJwtService#builder()
. - PIVOT-8664
com.qfs.server.cfg.content.IActivePivotContentServiceConfig
does not defined anymore the beancontentService
from itsActivePivotContentService
. It must be defined manually beforehand. - PIVOT-8739 Renamed
QuartetExtendedPlugin
,QuartetExtendedPluginValue
,QuartetPlugin
,QuartetPluginValue
andQuartetType
intoAtotiExtendedPlugin
,AtotiExtendedPluginValue
,AtotiPlugin
,AtotiPluginValue
andAtotiType
. - PIVOT-8777
AAnalysisHierarchyV2
has been renamedAAnalysisHierarchy
. - PIVOT-8797 Renamed all JDBC source related classes from JDBC to Jdbc (e.g.
IJDBCSource
becomesIJdbcSource
) - PIVOT-8797 Renamed all CSV source related classes from CSV to Csv (e.g.
ICSVSource
becomesICsvSource
) - PIVOT-8798 Renamed
QfsResultSetRow
toResultSetRow
. - PIVOT-8798 Custom aggregation implementing
IGenericAggregation
no longer need to implementcreateChunkFactory
. The chunk creation is now automatically handled by Atoti. ThecreateChunkFactory
method has been replaced by the simpler methodAggregationChunksSetting getChunksSetting()
. See the custom aggregation documentation for more details on this. - PIVOT-8809
IIterableAggregatesRetrievalResult.transferValues
now takes aIWritableRecord
instead ofRecord
orObject[]
. - PIVOT-8830
Registry.getRegistry()
andRegistry.setContributionProvider()
methods have been moved to an internal class.Registry#initialize
is now the single point of entry to the registry. - PIVOT-8855
RangeProperty
is now final. - PIVOT-8860
AStoreStream
now returns records in plain (undictionarized) format. TheresultFormat
field now holds plain (undictionarized)IRecordFormat
of the query result. - PIVOT-8914 Static constants defined in
IDistributedMessenger
are now available incom.activeviam.activepivot.core.intf.api.description.IMessengerDefinition
. - PIVOT-8918
IFieldType
no more holds information about dictionarization. - PIVOT-8918 Renamed
IFieldType.getDataType()
toIFieldType.getUndictionarizedDataType()
. - PIVOT-8918 Renamed
FieldType.ofAny(Object)
toFieldType.ofObject(Object)
. - PIVOT-8950 Implemented conditional logging of property sources, ensuring logs are generated only at the debug level. Make sure to update logging configurations in analysis or monitoring systems accordingly.
- PIVOT-9027 Changed API of
LocationUtil
to includeexpandRangeLevels(ILocation, List)
andpartialExpand(ILocation, List, List)
methods, allowing to expand range locations on some or on all range levels. - PIVOT-9137 Changed
IDuplicateKeyHandler.selectDuplicateKeyInDatastore(IRecordReader, IRecordReader, IStoreMetadata, IDictionaryProvider, int[], int)
,IDuplicateKeyHandler.selectDuplicateKeyWithinTransaction(IRecordReader, IRecordReader, IStoreMetadata, IDictionaryProvider, int[], int)
andIStoreDescriptionBuilder.IRemoveUnknownKeyListener.onRemoveUnknownKey(int[], IStoreMetadata, IDictionaryProvider, int[], int)
signatures toIDuplicateKeyHandler.selectDuplicateKeyInDatastore(IRecordReader, IRecordReader, IKeyEventContext)
,IDuplicateKeyHandler.selectDuplicateKeyWithinTransaction(IRecordReader, IRecordReader, IKeyEventContext)
andIStoreDescriptionBuilder.IRemoveUnknownKeyListener.onRemoveUnknownKey(int[], IKeyEventContext)
. AnIKeyEventContext
provides equivalent information about the corresponding key event context. - PIVOT-9140 Change constructor
com.activeviam.activepivot.server.json.api.query.JsonMdxQueryPlan
to accept strings as time limit, as defined in its field. - PIVOT-9210 The
IDatabaseSchemaEntityResolver
interface has been removed and merged into theIDatabaseSchema
. There are no longer database entity resolvers, use the schema instead. - PIVOT-9231 Moved
ILevel.BRANCH_LEVEL_NAME
andILevel.EPOCH_LEVEL_NAME
intoIHierarchy
. - PIVOT-9231 Methods that received or returned
ILevel
objects now receive or returnILevelInfo
objects.
Deprecated
- PIVOT-7762 Deprecated
Types#TYPE_OBJECT_NOT_NULLABLE
, useTypes#TYPE_OBJECT_NON_NULLABLE
instead. - PIVOT-7762 Deprecated
Types#TYPE_DIC
, useTypes#TYPE_OBJECT_DIC
instead. - PIVOT-7762 Deprecated
Types#TYPE_DIC_NULLABLE
, useTypes#TYPE_OBJECT_DIC_NULLABLE
instead. - PIVOT-8408
AAdvancedPostProcessor.OUTPUT_TYPE
has been deprecated. UseIPostProcessor.OUTPUT_TYPE_PROPERTY
instead. - PIVOT-8656 Deprecated
getDataType()
,isNullable()
,supportEmptyString()
,getDefault()
,getContentClass()
inIFieldDescription
, useIFieldDescription#getType()
instead. - PIVOT-8656 Deprecated
IReferenceDescription#getOwnerStore()
andIReferenceDescription#getTargetStore()
, useIReferenceDescription#getSourceTableName()
andIReferenceDescription#getTargetTableName()
instead. - PIVOT-8656 Deprecated both constructors in
ReferenceDescription
, use the new constructors with theSet<FieldMapping>
argument instead. - PIVOT-8656 Deprecated
IStoreDescription#getKeyFields()
, useIStoreDescription#getKeyFieldNames()
instead. - PIVOT-8656 Deprecated
SimpleStoreDescriptionBuilder#keyFields()
, useSimpleStoreDescriptionBuilder#keyFieldNames()
instead. - PIVOT-8656 Deprecated
IDatastoreSchemaDescription#getStoreDescriptions()
, useIDatastoreSchemaDescription#getTables()
instead. - PIVOT-8656 Deprecated
IDatastoreSchemaDescription#getReferenceDescriptions()
, useIDatastoreSchemaDescription#getJoins()
instead. - PIVOT-8657 Properties in
IAggregateProviderBase
andIAggregateProviderHolderBase
are deprecated in favor of their counterparts inIAggregateProviderDefinition
, which is the public interface. Aggregate Provider fluent builder's javadoc now points toIAggregateProviderDefinition
, which has been heavily documented. - PIVOT-8918 Deprecated
IFieldType.getUndictionarizedDataType()
, you should not use type representation as integer anymore.
Removed
- PIVOT-6010 Removed IPointLocationReader.getMapping(). It can be retrieved from the ActivePivot object.
- PIVOT-7155 Removed deprecated method
IDatastore.getMemoryStatisticForStore(int)
. - PIVOT-7332 DirectQuery: remove deprecated method
IRefreshable.refreshAsync()
. - PIVOT-7466
CSVSource
is now private. UseCsvSourceFactory.create()
and other static factory methods to build instances. You must also migrate to the typeICSVSource
instead of the implementation type. - PIVOT-7769 Removed the experimental
CopperPostProcessor.executeInDataCube()
method. - PIVOT-7769 Removed the
IDistributedPostProcessor#EXECUTE_IN_DATA_CUBE_PROPERTY
andIClusterDefinition#EXECUTE_IN_DATA_CUBE_PROPERTY
properties. - PIVOT-7983 Removed deprecated method
IFieldDescription.canBeEmptyString()
, useIFieldDescription.supportEmptyString()
instead. - PIVOT-7983 Removed
DatastoreSchemaDescriptionUtil
. - PIVOT-7983 Removed
JDBCMessageChannelFactory.NO_ENTRY_VALUE
. - PIVOT-7983 Removed deprecated method
IDatastoreSchemaTransactionInformation.getLockedStores()
, useIDatastoreSchemaTransactionInformation.getLockedStoreIds()
instead. - PIVOT-7983 Removed deprecated interface
IDatastoreSchemaTransaction
, useIDatastoreSchemaTransactionInformation
andIDatastoreSchemaTransactionManager
instead. - PIVOT-7983 Removed deprecated method
ITransactionManager.getDatastoreQueryRunner()
, useITransactionManager.getQueryRunner()
instead. - PIVOT-7983 Removed
DatastoreQueryHelper.getAllFields(...)
, useDatabaseEntityResolverUtil.getAllReachableFields(...)
instead. - PIVOT-7983 Removed deprecated methods
StoreUtils.getSize(...)
, useIStatisticsQueryRunner.computeTableSize(String)
instead. - PIVOT-7983 Removed deprecated method
IReadableDatastore.getBranches()
, useIDatabase.getHeads().keySet()
instead. - PIVOT-7983 Removed deprecated method
IDatastoreVersion.execute(IQuery)
, useIDatabaseVersion.getQueryRunner().listQuery(ListQuery).run()
instead. - PIVOT-7984
activeviam.directquery.spring.enableLegacyInitialization
property andAActivePivotWithDirectQueryConfig.apManagerInitPrerequisitePluginInjections()
method are removed. You can useAActivePivotWithDirectQueryConfig.performRegistryInjection()
to regroup your plugin injection in your config. - PIVOT-7984 Removed deprecated method in DirectQuery
Database.getSchema()
. UseDatabase.getUserSchema()
instead. - PIVOT-7985 Deprecated methods
withFields(List<FieldPath>)
to build database list queries have been removed, usewithFieldsWithoutAlias(List<FieldPath>)
instead. - PIVOT-7985 Class
TableJoin
is no longer public; use the interfaceITableJoin
instead. - PIVOT-7985 Deprecated methods
createSession
with a single argument to build a DirectQuery session have been removed, usecreateSession
with 2 arguments instead. - PIVOT-7985 Deprecated constructors for
GetByKeyQuery
have been removed, use the builderGetByKeyQuery.builder()
instead. - PIVOT-7985 Removed deprecated method
ISelection#getFieldExpressions()
; useISelection#getFieldsByAlias()
instead. - PIVOT-7986 DirectQuery: removed
ActiveViamProperty.DIRECTQUERY_AUTO_ADAPTIVE_JIT
, as adaptive JIT and JIT have been merged. - PIVOT-7986 DirectQuery: Configuration parameters for DirectQuery that were passed via
ActiveViamProperty
have been removed of the associated POJO (BigqueryDirectQuerySettings
,ClickhouseDirectQuerySettings
,DatabricksDirectQuerySettings
,MsSqlDirectQuerySettings
,RedshiftDirectQuerySettings
,SnowflakeDirectQuerySettings
,SynapseDirectQuerySettings
):ActiveViamProperty.EXTERNAL_DATABASE_QUERY_TIMEOUT_LIMIT
ActiveViamProperty.ENABLE_DIRECTQUERY_AUTOVECTORIZER
ActiveViamProperty.DIRECTQUERY_AUTOVECTORIZER_DELIMITER
ActiveViamProperty.DIRECTQUERY_AUTOVECTORIZER_THRESHOLD
ActiveViamProperty.DIRECT_QUERY_SUB_QUERY_LIMIT
ActiveViamProperty.DIRECT_QUERY_GET_BY_KEY_BEHAVIOR
ActiveViamProperty.SNOWFLAKE_MAX_RESULTSET_SIZE
- PIVOT-7987 Removed deprecated method
IStopWatch.printTimings(...)
, useIStopWatch.appendTimings(StringBuilder)
instead. - PIVOT-7987 Removed
CustomComparator.type
, useCustomComparator.PLUGIN_TYPE
instead. - PIVOT-7987 Removed deprecated classes for aggregations
AGenericBaseAggregationFunction
,AGenericAggregationFunction
,AGenericVectorAggregationFunction
andAVectorAggregationFunction
. Implementers must now write their aggregation functions using the standard unique API. The Aggregation Function documentation provides an up-to-date guide for writing an aggregation function. - PIVOT-7987 Removed deprecated constants
QFSPools.ACTIVEVIAM_THREAD_PREFIX
andQfsConcurrency.ACTIVEVIAM_THREAD_PREFIX
. UseNamedThreadFactory.ACTIVEVIAM_THREAD_PREFIX
instead. - PIVOT-7987 Removed deprecated
IAggregateStore.getMeasureColumnIndex
, useIAggregateStore.getColumnIndex
instead. - PIVOT-7987 Removed deprecated constructor of
AggregateStore
taking an array of measures, use the one with a list instead. - PIVOT-7987 Removed deprecated method
VectorsAllocationSettings.create(int vectorBlockSize, int componentType)
. UseVectorsAllocationSettings.create(int vectorBlockSize, ExtendedContentType type)
instead. - PIVOT-8012 Removed ActiveMonitor's direct dependency to
org.apache.velocity.tools:velocity-tools-generic
. It is now a testing dependency. See the migration notes to customize message templating in ActiveMonitor. - PIVOT-8027 DirectQuery: Static method
com.activeviam.directquery.YOUR_DATABASE.api.Session#registerUdaf()
has been removed in favor ofcom.activeviam.directquery.YOUR_DATABASE.api.Session#registerSqlUdaf()
. - PIVOT-8086 Deprecated constructor
Selection(String, String...)
has been removed, useSelection(String, List)
instead. - PIVOT-8086 Deprecated constructor
RecordQuery(String, ICondition, String...)
has been removed, useRecordQuery(String, ICondition, List)
instead. - PIVOT-8125 Removed deprecated method
IActivePivot#getAggregateProvider
, which was often used to retrieve aIHierarchicalMapping
. The mapping is directly available from theIActivePivot
interface. - PIVOT-8125 Removed deprecated method
ICanHaveComparator#withComparatorOrder
, which was redundant. Specific comparator behaviors are still available throughwithFirst/LastObjects
. - PIVOT-8137 Removed deprecated methods
IDatastoreSchema#getPartitioningDescription(String)
andIDatastoreSchema#getNumaSelectorDescription(String)
. - PIVOT-8169 Removed deprecated classes
AJDBCSource
,ArrayJDBCSource
,MapJDBCSource
,NativeJDBCSource
, useIJDBCSource.builder()
instead. - PIVOT-8183 Removed deprecated methods involving unknown level resolution:
Copper.member(String)
Copper.hierarchy(String)
Copper.level(String)
Copper.newHierarchy(...).fromValues(...).withMembers(String, String)
Copper.newHierarchy(...).fromStore(...).withLevel(String)
Copper.newHierarchy(...).fromStore(...).withLevel(String, String)
Window.orderBy(String)
- PIVOT-8184 Removed the deprecated method returning the distributing fields in
IMultiVersionDistributedActivePivot
. UseIMultiVersionDistributedActivePivot.getDistributedApplicationInformation()
instead. - PIVOT-8185 Removed the deprecated
runXXX(IMultiVersionActivePivot)
methods inActivePivotQueryRunner
. These methods allowed users to run queries against an instance ofIMultiVersionActivePivot
. It is now required for users to select the version the query should run against. - PIVOT-8186 Removed various deprecated and unused methods from
com.activeviam.activepivot.core.impl.api.cube.hierarchy.HierarchiesUtil
. - PIVOT-8186 Promoted a different signature for deprecated
JoinMeasureDescription#setMapping
. It is expected that join measures are mostly created through the Copper API. - PIVOT-8189 Removed deprecated method
ICursor.rewind()
. - PIVOT-8192
IPluginValue#getPlugin
andIPluginValue#setPlugin
were removed. - PIVOT-8244 Removed
IReadableDatastore.getHead()
, useIDatastore.getMasterHead()
instead. - PIVOT-8244 Removed
IReadableDatastore.getVersion(String, long)
, useIDatastore.getVersion(long)
instead. - PIVOT-8280 Removed deprecated interface
IDatastoreSchemaDescriptionPostProcessor
and all its implementations. UseDatastoreSchemaDescriptionUtil
static methods instead to apply transformations to yourIDatastoreSchemaDescription
. - PIVOT-8347 Removed
JoinType
inSqlJoin
, replaced byRelationshipOptionality
. - PIVOT-8407 Remove the useless module
com.activeviam.tech:serialization-java
, only offering the standard Java process for serializing data in a method. The parent modulecom.activeviam.tech:serialization
has also been removed, the need for a parent being very limited. - PIVOT-8445 Removed the tracing rest service
activeviam/tracing/rest/v3
from the Atoti Server. - {@jira; PIVOT-8496} Removed
PeriodicActivePivotSchemaRebuilder
andScheduledActivePivotSchemaRebuilder
, useIActivePivotManager.rebuild(Strings... pivotIds)
instead. - PIVOT-8624 The method
IDataTableField.getTableName
has been removed. - PIVOT-8663
AJwtAuthenticationProvider
andASignedJwtAuthenticationProvider
have been removed. - PIVOT-8663
com.qfs.security.impl.DetachedFilterConfig
was removed, as it does not serve any use-case. - PIVOT-8656 Removed
StartBuilding#selection(IDatastoreSchemaDescription)
. UseStartBuilding#selection(IDatabaseSchema)
instead. - PIVOT-8664 Implementations of
IContentService
are not public anymore. They must be created through the builders ofcom.activeviam.tech.contentserver.storage.api.IContentService#builder()
. See this section in the migration notes for more information. - PIVOT-8664 The constructor for
RemoteContentService
is now internal and is replaced by the buildercom.activeviam.tech.contentserver.spring.api.RemoteContentServiceBuilder
. - PIVOT-8664 The constructor for
ContentServiceSnapshotter
is now internal and is replaced by the static factory methodcom.activeviam.tech.contentserver.storage.api.ContentServiceSnapshotter.create
. - PIVOT-8777 The old
AAnalysisHierarchy
has been removed. - PIVOT-8918 Removed
FieldType.dictionarize(IFieldType)
. - PIVOT-8918 Removed
FieldType.nullableBoolean()
,FieldType.nullableInt()
,FieldType.nullableLong()
,FieldType.nullableFloat()
,FieldType.nullableDouble()
,FieldType.nullableString()
,FieldType.nullableAny()
. UseStandardTypes.NULLABLE_BOOLEAN
,StandardTypes.NULLABLE_BOOLEAN
,StandardTypes.NULLABLE_INTEGER
,StandardTypes.NULLABLE_FLOAT
,StandardTypes.NULLABLE_DOUBLE
,StandardTypes.NULLABLE_STRING
,StandardTypes.NULLABLE_OBJECT
instead. - PIVOT-8918 Removed
FieldType.of(int, Class<?>, Object)
,FieldType.nullable(int, Class<?>)
,FieldType.unsafeType(int, Class<?>, Object)
,FieldType.getEquivalentFieldType(int)
,FieldType.getEquivalentFieldType(int, Object)
andFieldType.getEquivalentFieldType(int, Class<?>, Object)
. UseFieldType.builder()
orFieldType.from(IFieldType)
instead. - PIVOT-8927 The class
com.qfs.spring.websocket.impl.ContextValueWebSocketHandler
has been removed without alternative. This class was internally used to apply context values for some special services and is not needed anymore. - PIVOT-8927 The bean
ActivePivotWebSocketServicesConfig#contextValueWebSocketHandler()
has been removed. It was used internally to apply some security and is not needed anymore. - PIVOT-9037 The methods to build an Active Pivot Content Service in
ActivePivotContentServiceBuilder
have been removed, in favor of#with
. UseIContentService#builder()
to build the provided content service. See this section in the migration notes - PIVOT-9074 Methods in
IHierarchicalMapping
that deal with things else than hierarchies and locations are now internal. - PIVOT-9140 The class
JwtUtil
has been removed. - PIVOT-9140 The classes
FullAccessBranchPermissionsManagerConfig
andContentServiceBranchPermissionsManager
have been removed. Use theContentServiceBranchPermissionsManagerBuilder
instead to create aIBranchPermissionsManager
backed by a Content Service. This will allow to directly implement the configcom.activeviam.activepivot.server.spring.api.config.IActivePivotBranchPermissionsManagerConfig
. See this section in the migration notes for more information. - PIVOT-9222 Methods taking the store id in the datastore transaction API have been removed, use the methods taking the store name instead.
6.0.14
2024-06-05
Added
- PIVOT-9230 Added a default parser for
Instant
class and its correspondingILiteralType.TIMESTAMP
.
Fixed
- PIVOT-9299 Fixed
ZeroVector.cloneOnHeap()
method to return a new mutable array vector instead ofthis
. This issue was causingUnsupportedOperationException
when modifying vectors.
6.0.13
2024-04-11
Added
- PIVOT-8557 Log a message when a data node's contributions are removed from the distribution because
removalDelay
has been exceeded. - PIVOT-8994 Added
DirectMemoryTracker.getTotalUsedMemory()
to track reserved memory that is not in the cache.JvmMemoryReport.getUsedDirectMemory()
now returns used memory. UseJvmMemoryReport.getReservedDirectMemory()
to get reserved memory. - PIVOT-9151
activeviam.atoti.xmla.maxBufferSize
, anActiveViamProperty
has been added to set the maximum size in bytes of an XMLA result.
Changed
- 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".
- PIVOT-8927 Do not retrieve context values when a user pauses or un-registers MDX queries through the WebSocket service.
- PIVOT-8959 The experimental Maven module
generic-jdbc
has its groupId changed tocom.activeviam.database
.
Deprecated
- 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. - 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. - 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. - 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
- 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. - PIVOT-8762 Fixed ArrayIndexOutOfBounds exception when using UDAF.
- PIVOT-8820 Fixed serialization of Copper calculation chains defined in the Data cube.
- 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.
- PIVOT-8921 Fixed performance issues in MDX engine occurring when argument sets of NonEmpty MDX function have common hierarchies specified in its tuples.
- 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".
- 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. - PIVOT-9043 Fixed a memory leak that could happen when Atoti Server was not properly stopping scheduled tasks.
- PIVOT-9049 DirectQuery: correctly apply the cube
IFilterDescription
to the hierarchy feeding queries. - PIVOT-9054 Query Cube's Health Event associated with handling
GoodByeMessage
now properly logs which node has left the cluster. - 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.
- PIVOT-9143 Fix an issue where intersecting a
CubeFilterBuilder
with aCubeFilter
that was already previously intersected with a third filter would mutate the initialCubeFilter
.
6.0.12
2024-02-29
Added
- PIVOT-8761 Added a new Copper measure:
Copper.experimental().switchOn(...)
. - PIVOT-8787 DirectQuery: Support for inequality operators (>, >=, <, <=) in queries conditions.
Changed
- 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).
- PIVOT-8667 Improved partitioning algorithm of
PrimitiveAggregationNode
. This should result in a better performance of queries when large analysis hierarchies are involved.
Deprecated
- PIVOT-8660
com.activeviam.source.jdbc.api.calculator.JdbcCalculatorUtils
is deprecated. Usecom.activeviam.tech.jdbc.internal.read.JdbcReaderUtils
instead.
Fixed
- PIVOT-8132 POJOColumnCalculator is now thread safe.
- PIVOT-8228 Fixed performance issues with cell property initialization when executing MDX queries.
- PIVOT-8411 Fixed the deltas sent to update the values of continuous queries involving location shifting
post-processor measures (such as
CopperMeasure.parentValueOn
etc.). - PIVOT-8419 Fixed equal and in condition on insertion time update where trigger early registration.
- PIVOT-8750 Fixed
PartitionStatistics.getMaxRowId()
. - PIVOT-8782 Fixed issues when exporting Mdx query in Arrow files without COLUMNS.
Security
- 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
- PIVOT-4994 Added new property
IDataClusterDefinition.CONCEAL_BRANCHES
to hide the branches of the data cube from the query cubes. - 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. - PIVOT-8437 Add experimental API to access the database in Copper:
Copper.experimental().databaseMeasure(...)
. - PIVOT-8478 Added a new class
com.activeviam.pivot.server.spring.api.Services
to createIDatabaseService
.
Changed
- PIVOT-8515
MIN
andMAX
aggregation functions now support objects that implement theComparable
interface.
Deprecated
- PIVOT-8376
MdxDrillthroughToCsvConverter(MdxDrillthroughRowset, IJsonOutputConfiguration)
is deprecated in favor ofMdxDrillthroughToCsvConverter(MdxDrillthroughRowset, IJsonCsvOutputConfiguration)
. - PIVOT-8478 Deprecated internal methods in
com.qfs.server.cfg.impl.DatabaseRestServicesConfig
.
Fixed
- PIVOT-5110 Fixed
DrillthroughProperties
deep clone method. - PIVOT-5283 Fixed
QueryResultsProcessingTask
statistics on aggregation duration. - PIVOT-6475 Fixed a bug in aggregates cache which might lead to producing empty results on subsequent queries involving the same location.
- PIVOT-7838 Fixed class cast in
ShiftMeasure.LevelShift#equals
. - PIVOT-8316 Improved execution speed of queries with filters on partial providers.
- PIVOT-8343 Improved record query performance when run on current thread by not creating empty completion tasks for non-matching partitions.
- PIVOT-8427 Fixed null value handling in Copper UDAF
.outputFromBuffer()
. - PIVOT-8480 Fixed bug in
GetAggregatesResultCellsetTester
that caused an error while checking integer measures with.hasValues()
. - PIVOT-8517 Fixed thread starvation issue when the threads of each NUMA node wait for the threads from another NUMA nodes to finish.
6.0.10
2023-12-07
Added
- PIVOT-8128 Added specific calculators for vectors in JDBC Source:
DoubleArrayJdbcColumnCalculator
,IntegerArrayJdbcColumnCalculator
,FloatArrayJdbcColumnCalculator
andLongArrayJdbcColumnCalculator
. - PIVOT-8137
IReadableDatastore#getEntityResolver()
now returns anIDatastoreSchemaEntityResolver
to be able to get specific metadata about a Datastore. - PIVOT-8169 Added
IJdbcSourceBuilder
to create anIJDBCSource
. - PIVOT-8211 Added
KeyValueSourceFactory
to create anIKeyValueSource
. - PIVOT-8274 Added
CsvSourceFactory
to create anICSVSource
.
Changed
- PIVOT-8127 Jdbc source: convert automatically array column to datastore vector column.
Deprecated
- PIVOT-8027 DirectQuery: Static method
com.activeviam.directquery.YOUR_DATABASE.api.Session#registerUdaf()
has been deprecated in favor ofcom.activeviam.directquery.YOUR_DATABASE.api.Session#registerSqlUdaf()
. - PIVOT-8137 Deprecated methods
IDatastoreSchema#getPartitioningDescription(String)
andIDatastoreSchema#getNumaSelectorDescription(String)
. - PIVOT-8169 Deprecated
AJDBCSource
,ArrayJDBCSource
,MapJDBCSource
andNativeJDBCSource
, useIJDBCSource.builder()
instead. - PIVOT-8211 Deprecated
KeyValueSource
, useKeyValueSourceFactory
instead. - 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. - PIVOT-8274 Deprecated
CSVSource
, useCsvSourceFactory
instead.
Fixed
- PIVOT-7960 Fixed the deadlock in the
ConflationEventEngine
caused by the asynchronous processing of events of different types. - 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.
- PIVOT-8322 Fixed NotSerializableException when using
Copper.userDefinedAgg
on a query cube. - PIVOT-8318 Fixed NullPointerException when registering a stream for post-processed measure depending on a store lookup in a Query Cube.
- PIVOT-8359 Reduce memory footprint for hash code computation of datastore conditions.
- PIVOT-8359 Speed up hash code computation for cube conditions.
Security
- PIVOT-7805 Migrated the products to depend on Spring Boot 2.7.17, to address CVE-2023-44487.
- PIVOT-7805 Upgraded
com.google.cloud:google-cloud-bigquery
to 2.34.0 to fix CVE-2023-5072 - PIVOT-7805 Upgraded
com.google.cloud:google-cloud-bigquerystorage
to 2.44.1,com.google.cloud:google-cloud-bigquerystorage
to 2.29.0 andcom.google.guava:guava
to 32.1.3-jre for dependencies convergence. - PIVOT-8319 Migrated the products to depend on Spring Boot 2.7.18, to address CVE-2023-4586 and CVE-2023-34062.
- PIVOT-8319 Upgrade
ch.qos.logback:logback-core
,ch.qos.logback:logback-classic
andch.qos.logback:logback-access
to version 1.2.13 to fix CVE-2023-6378.
6.0.9
2023-10-27
Added
- PIVOT-5894 Experimental: Copper can now be used with distributed cubes. See documentation.
- PIVOT-7769 Added
CopperPostProcessor.executeInDataCube()
method. - PIVOT-7236 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 withexecution time
). This development impacts queries with a large query plan (several hundreds of nodes) - PIVOT-8008 Added readiness endpoint on atoti server
/actuator/health/readiness
Changed
- PIVOT-7246 DirectQuery: upgrade
com.amazon.redshift:redshift-jdbc42
to 2.1.0.19.
Fixed
- PIVOT-7580 Fix continuous MDX query initialization issue caused by uninitialized post-processor on a query cube.
- PIVOT-7111 Fix missing
maxLevelPerHierarchy
field oncube/query/mdx
endpoint.
6.0.8
2023-10-18
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
- PIVOT-5875 Added the
PercentileFunction
aggregation function. See the Percentile documentation page. - PIVOT-7176 The cube filter is now used in distributed cubes to limit the number of data nodes the query is sent to.
- PIVOT-7202 Add
withTableFields(String...fieldNames)
to simplify the creation of database queries. For instancewithFields(FieldPath.of("fieldName1"), FieldPath.of("fieldName2"))
can now be replaced bywithTableFields("fieldName1", "fieldName2")
. - PIVOT-7441 Support all signatures of InStr in MDX queries.
- PIVOT-7737 Support fields beginning by
$
in update-where procedures of the database service.
Changed
- PIVOT-7737 Do not require procedures to start by
$
in update-where of the database service. - PIVOT-7737 Make the database service update-where considered keys as procedures first and then as field names.
- PIVOT-7878
CopperLevel.isin(Collection<Object>)
was replaced byisin(Collection<?>)
to reduce ambiguities withCopperLevel.isin(Object...)
. - PIVOT-7931 Improved the performance of
LeafAggregateProvider
when the majority of members of the hierarchy are included in the level filter. - PIVOT-8031 Analysis hierarchies extending
AAnalysisHierarchyV2
no longer need to define anIAnalysisHierarchyDescriptionProvider
if their full description is given to the new method added to the description builder:withAnalysisHierarchy(IAnalysisHierarchyDescription)
.
Deprecated
- PIVOT-7807 DirectQuery: Method
com.activeviam.directquery.YOUR_DATABASE.api.Database#getSchema()
has been deprecated in favor ofcom.activeviam.directquery.YOUR_DATABASE.api.Database#getUserSchema()
. - PIVOT-7754 Methods
withFields(String...fieldNames)
have been deprecated in favor ofwithFieldsWithoutAlias(String...fieldNames)
.
Fixed
- 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.
- PIVOT-7640 Fix issue with
CurrentOrdinal
mdx function not being able to operate on aliased sets. - PIVOT-7682 Fix NPE when a file was not found in content service.
- PIVOT-7732
CopperPostProcessor.withType(...)
now returns aCopperPostProcessor
instead of aCopperMeasure
. - 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.
- PIVOT-7822 Fix issue with datastore aggregate queries when querying for duplicate field paths and some specific conditions.
- PIVOT-7910
NeighborValuePostProcessor
no longer throws anAssertionError
if queried on a non-existing member of the shifting hierarchy. - PIVOT-8031 Fix clone method of hierarchy description.
Security
- PIVOT-7805 Upgraded
org.springframework.security
to 5.8.17. - PIVOT-7805 Migrated the products to depend on Spring Boot 2.7.16, to address as many CVEs as possible.
- 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. - PIVOT-7805 Upgraded
org.apache.arrow:arrow-vector
andorg.apache.arrow:arrow-memory-unsafe
to 12.0.1 for dependency convergence with Google ecosystem. - PIVOT-7805 Upgraded
com.nimbusds:nimbus-jose-jwt
to 9.35 to mitigate CVE-2023-1370. - PIVOT-7805 Upgraded
org.xerial.snappy:snappy-java
to 1.1.10.5 to mitigate CVE-2023-43642. - PIVOT-7805 Upgraded
org.mybatis:mybatis
to 3.5.13 to mitigate XRAY-127508 and CVE-2020-26945. - PIVOT-7805 Upgraded
org.yaml:snakeyaml
to 2.0 to mitigate CVE-2022-1471. - PIVOT-7805 Upgraded
org.mozilla:rhino
to 1.7.14 to mitigate XRAY-178804. - PIVOT-7888 Upgraded libraries to connect to Microsoft Azure (
azure-sdk-bom
to 1.2.17,azure-resourcemanager
to 2.31.0). - PIVOT-7888 Replaced
org.apache.velocity:velocity-tools
withorg.apache.velocity.tools:velocity-tools-generic
3.1 and upgradedorg.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
- PIVOT-5714 Add a
DistinctCountHistoryFunction
function: a distinct count that properly supports removal. - PIVOT-7295 Add a CubeFilter translator to allow the cube filters to be added to the map of context values in REST queries.
- PIVOT-7563 Add support for emulated vectors (multi-row and multi-column) in DirectQuery Databricks connector.
Changed
- PIVOT-6776 Mapper functions in post-processors are no longer obliged to write
null
values int result cells explicitly. - PIVOT-7382 Packages can now be excluded from the
ClasspathContributionProvider
's scan. - PIVOT-7554 Copper measures that have name are now visible by default.
- PIVOT-7611 Default lifetime of session context values is increased from 10 minutes to 10 hours.
Removed
- PIVOT-7553 Maven module
composer-test
now imports its own test dependencies using<scope>test</test>
. Projects relying on this module to transitively importjunit-jupiter-params
,awaitility
andmockito-core
will need to add these dependencies to their own dependencies. - PIVOT-7553 Maven module
composer-test
no longer importsspring-cloud-starter-sleuth
.
Fixed
- PIVOT-5714 Changed the
DistinctCountFunction
to accept non-comparable types. - 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.
- PIVOT-7402 The
MdxBenchmark
class has been replaced by the now workingRestClientMDXBenchmark
. - PIVOT-7570 Fix issue in SQL generation for large multi row vectors in MsSql.
- PIVOT-7644 Fix issue with Aggregate Table not being used for some databases.
- PIVOT-7693 DirectQuery: Increase timeout for creating a connection on Redshift connection pool to avoid failure at initial loading.
Security
- PIVOT-7568 Upgrade spring-boot to 2.7.14 to patch CVE-2023-20883 and CVE-2023-33008.
- 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
- PIVOT-5860 In the
MemoryAnalysisService
MBean, added an operationDump full application memory statistics
exporting memory statistics for all versions. - PIVOT-6356 DirectQuery: add support for Databricks database.
- PIVOT-7429 DirectQuery: introduction of settings POJO for configuration purpose:
BigqueryDirectQuerySettings
,ClickhouseDirectQuerySettings
,DatabricksDirectQuerySettings
,MsSqlDirectQuerySettings
,RedshiftDirectQuerySettings
,SnowflakeDirectQuerySettings
,SynapseDirectQuerySettings
.
Changed
- PIVOT-5860 In the
MemoryAnalysisService
MBean, renamed the operationDump memory statistics
toDump memory statistics for most recent version
since this operation only exports the most recent version. - PIVOT-7349
RecordFormat#getFieldNames
no longer creates a new list at each method call, thus improving its footprint.
Deprecated
- PIVOT-7349
PropertiesRecordFormat
is no longer used internally and is now deprecated, for removal in 6.1.0. - 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
- PIVOT-7236 Fix performance issue in
CycleDetectingGraphVisitor
. - PIVOT-7269 Updated
IPostProcessor#IS_PARTITIONED_ON_RANGE_LEVELS_PROPERTY
javadoc to correctly link to its default value. - PIVOT-7308 Fix unnecessary cloning of swapped vector blocks.
- PIVOT-7315 Fix overriding epoch dimension visibility with the mdx context.
- 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.
- PIVOT-7321 When running
ListQueries
against a Datastore, the optionrunCurrentThread
no longer forks an additional task. - PIVOT-7336
Copper.storeLookup
could use a too recent Datastore version when a transaction would create a Datastore version but not an ActivePivot one. - PIVOT-7359 When asked to output the
K
top/bottom elements of the vector, theZeroVector
class no longer throwsIndexArrayOutOfBoundException
whenK = vector.size()
. - PIVOT-7367 Properly propagate context value dependencies when optimizing calculated measures with Copper.
- PIVOT-7398 Fix issue with slicing introspection analysis hierarchy and aggregate provider on DirectQuery.
- PIVOT-7413 Fix SQL for queries with Multi Row Vector tables and incomplete joins in DirectQuery.
- PIVOT-7419 Fix bug in DrilldownMember causing members to be missing in the result.
- PIVOT-7433 Filters on Member captions through XMLA were not properly taken into account.
6.0.5
2023-06-08
Added
- PIVOT-6176 Add a
WebSocketSnippet
to test the WebSocket server with a client call. - PIVOT-6804 Add possibility to enable aggressive check (using
ActiveVIamProperty#AGGRESSIVE_CELLSET_SIZE_CHECK_PROPERTY
) on MDX CellSet axis positions during axis materialization (see andIMdxContext#getAxisPositionLimit()
). - PIVOT-6953 Atoti Python API: Add configuration options for Hibernate
- PIVOT-6980 Allow python API to specify custom distribution protocol, include S3Ping JAR
in
atoti-aws
plugin. - PIVOT-7046 Added
getHierarchicalMapping()
onIActivePivot
. - PIVOT-7272 Allow python API to specify distributing fields.
Changed
- PIVOT-6957 All Basic authentication mechanisms are replaced by Login Form authentication. Atoti Standard Runtime users may now specify path to their own HTML login pages when using Ldap, Kerberos or Basic authentication mechanisms.
Deprecated
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.
- PIVOT-7046
IActivePivot.getAggregateProvider()
is deprecated in favor ofIActivePivot.getHierarchicalMapping()
Fixed
- PIVOT-5978
LimitedByteArrayOutputStream
now handles specific edge cases that could cause the XMLA Servlet to still generate Out of Memory Errors. - PIVOT-6593 Improved read/write and serialization/deserialization performances on snappy-compressed files in memory statistics exports.
- PIVOT-6923 Datastore implementation of
IQueryRunner#getByKeyQuery()
now accepts key fields in the order specified byIDataTable#getKeyFieldNames()
. - PIVOT-7020 Correctly propagate exception to partitions of a
JITPrimitiveAggregatesRetrieval
. - PIVOT-7044 Reduce the time needed to create Copper measures.
- PIVOT-7050 Inserting data into an initially empty joined store now correctly updates corresponding analysis hierarchies.
- PIVOT-7062 Fix data loading for JDBC drivers that do not support fetch size hints.
- PIVOT-7081 Fix implementation of
FastLogicalQFSBitmap#interruptibleNaiveOr(..)
. Previous implementation didn't account for the append-only constraint of theQFSBitmap
. - PIVOT-7078 Fix a performance regression for Vector-based Aggregations.
- PIVOT-7089 Fix data race on drop of empty results in ExecutionPlan.
- PIVOT-7145 DirectQuery: Supports a wider range of special characters in ClickHouse column names.
- PIVOT-7160 DirectQuery: Fix generated MAC dump when using an AdaptiveJit as full provider with DirectQuery.
- PIVOT-7188 DirectQuery: Fix issue during validation of DirectQuery when using distributed cube.
- PIVOT-7209 Fix NullPointerException in ActivePivot Monitoring when retrieving attributes of Query Cube MBean in distributed setup.
- PIVOT-7240 DirectQuery: Fix issue on streamed list queries which could lead to record loss.
- PIVOT-7260 Fix bug preventing java code being reused to define Copper level filtering measures.
Security
- PIVOT-7057 Upgrade snowflake-jdbc to 3.13.30 to patch a vulnerability to command injection via SSO URL authentication.
- PIVOT-7230 Upgrade spring-boot to 2.7.11 to patch CVE-2023-20873.
6.0.4
2023-04-17
Added
- 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. - PIVOT-5964 Added builder for
GetByKeyQuery
. - PIVOT-6840 Added query tags on
GetByKeyQuery
. - PIVOT-7072 Added
IDatabase.getMasterHead()
. It will replaceIDatastore.getHead()
.
Changed
- PIVOT-5446 Error messages that are printed when accessing the reserved position for
null
values in aNullableDictionary
are now clearer. - PIVOT-6984 DirectQuery for ClickHouse correctly reports unsupported table Engines. This was previously unchecked, causing to unknown behavior when used with incorrect engines.
Deprecated
- 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
- PIVOT-6175
com.activeviam.tech.partitioning.internal.IPartitioning#getMaxPartitionId()
is deprecated in favor ofPartitioningSnapshot#getMaxPartitionId()
. - PIVOT-6175
com.activeviam.tech.partitioning.internal.impl.PartitioningUtil#initializePartitioning(IPartitioning, IPartitioning, TIntIntMap)
is deprecated in favor ofPartitioningSnapshot#from(IPartitioning, TIntIntMap, PartitioningSnapshot)
.
Removed
- 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
- PIVOT-5288 Fix
TimeLineHandler
impact computation for distribution. - PIVOT-5316 Fix issue with not seeing all processor cores for Windows machines with 64+ CPUs.
- PIVOT-6213
DatastoreTransactionQueryRunner
no longer creates a transaction object on a partition when there is a transaction on the store. - PIVOT-6506 Now stopping the application will wait for the cache to be discarded.
- PIVOT-6640 Atoti Python API: Ignore non-JSON files when loading translations.
- PIVOT-6642 Improve thread synchronization in the MDX engine.
- PIVOT-6669 Speed up query using the Mdx range operator in subselects.
- PIVOT-6792 Fix race condition in distribution. The issue appeared intermittently on consecutive branch creation and deletion.
- PIVOT-6796 Fix performance regression when feeding copper defined analysis hierarchies.
- PIVOT-6817 DirectQuery: fix issue with count in some query using multi row vector tables.
- PIVOT-6834 Fix
ClassCastException
when collecting query plan retrieval timings. - PIVOT-6917 Distributed drillthrough queries properly function when one of the application's data nodes declares concealed hierarchies.
- PIVOT-6987 and PIVOT-7068 DirectQuery: fix issue with SQL generation when querying multi row vector tables while filtering on another table.
- PIVOT-7034 DirectQuery: fix possible deadlock when managing update-where triggers in the datastores bundled in DirectQuery applications.
- PIVOT-7053 Fix Unknown coordinate exception on Analysis hierarchy
- 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
- PIVOT-5565
IJoinMeasureDescription#setMapping(Collection)
is added to allow to use a level in a copper join more than once. Its corresponding getter isIJoinMeasureDescription#getMappingToCube()
. - PIVOT-6168 Add execution context compute time per retrieval to query plan, only available for bitmap retrievals.
- PIVOT-5875 Added the
MedianFunction
aggregation function. - 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. - PIVOT-6644 DirectQuery: Add validator on joins for external databases;
- PIVOT-6645 DirectQuery: Add validator on null values in multi-column primitive vectors.
- PIVOT-6646 DirectQuery: Add validator on null values in multi-rows primitive vectors.
Deprecated
- PIVOT-5565
IJoinMeasureDescription#getMapping()
is deprecated in favor ofIJoinMeasureDescription#getMappingToCube()
returning a collection of mapping between levels and fields. This allows to map the same levels multiple times to different fields. The setterIJoinMeasureDescription#setMapping(Map)
has been deprecated as well. - PIVOT-6672
com.qfs.distribution.impl.QueryCubeSync#view
in favor ofcom.qfs.distribution.impl.QueryCubeSync#getView()
. - PIVOT-6687
com.qfs.pivot.agg.IAggregateStore#getMeasureColumnIndex(String)
is deprecated, in favor ofcom.qfs.pivot.agg.IAggregateStore#getColumnIndex(String)
.
Fixed
- PIVOT-5744 Wait for result size task to be done before discarding retrieval's result.
- PIVOT-6581 Fix issue when using DirectQuery on Snowflake with a proxy.
- PIVOT-6596 Fix
NullPointerException
when querying a database with a non null condition and a null additional condition. - PIVOT-6730 MDX Calculated Members properly work again in polymorphic distributed applications.
- PIVOT-6745 Clustering fields are detected in join tables to trigger multi step queries.
6.0.2
2023-02-10
Added
- PIVOT-5874 Add the
Copper#argmax
andCopper#argmin
functions. - PIVOT-5981 Support Microsoft SQL Server (mssql) version 2017, 2019 & 2022
Changed
- PIVOT-5031 Restore
printNumaConfiguration()
for Aggregate Providers. - 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.
- PIVOT-5317 The property
ActiveviamProperty#DATA_CUBE_REST_ENDPOINT_PROPERTY
has now been split into two properties,ActiveviamProperty#DATA_CUBE_REST_ENDPOINT_PORT_PROPERTY
andActiveviamProperty#DATA_CUBE_REST_ENDPOINT_SUFFIX_PROPERTY
. - PIVOT-6036
IStatisticsQueryRunner.estimateColumnCardinality
now throwsCannotEstimateColumnCardinalityException
if the estimation is not possible (instead of various Exceptions). - 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.
- 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 propertyactiveviam.directquery.spring.enableLegacyInitialization
. Users should instead do their own initialization using tools likeCommandLineRunner
.
This applies toABigQueryConfig
,AClickhouseConfig
,ARedshiftConfig
,ASnowflakeConfig
andASynapseConfig
. - PIVOT-6210 internal
IActivePivotSession
have been removed from all distributed messengers and messages. - PIVOT-6210 internal the constructor parameter
Id
(referring to the session id) has been removed from all messenger constructors. - PIVOT-6210 Getting/Setting the range sharing limit using JMX is now located in the pivot MBean instead of the
QueryPlan
MBean. - PIVOT-6210 Distributed messages implementing the
IDatabaseAware
interface will be injected a database. - PIVOT-6211 Database queries correctly fail when having several fields with the same alias.
- PIVOT-6436 Change packages of internal Database query objects erroneously located in public packages.
- PIVOT-6521 internal
IActivePivotSession
and its subclasses have been removed. - PIVOT-6521 The class
MdxQueryUtil
provides utility classes to execute MDX queries.
Deprecated
- PIVOT-6204 The method
#apManagerInitPrerequisitePluginInjections
from DirectQuery base configuration classes has been deprecated. Users should instead do their own initialization using tools likeCommandLineRunner
.
This applies toABigQueryConfig
,AClickhouseConfig
,AMsSqlConfig
,ARedshiftConfig
,ASnowflakeConfig
andASynapseConfig
.
Removed
- PIVOT-5317 Remove the syntax allowing to define multiple endpoint within a single application.
Fixed
- PIVOT-4134 Fix
NullPointerException
in the query plan caused by invalid locations or measures in Prefetchers. - 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.
- PIVOT-5767 Wait for the datastore to close before stopping
QfsPools
. - PIVOT-5994 Children of range-sharing retrievals are correctly printed as dependency in the query plan.
- PIVOT-6009 Correctly name Spans after their creation.
- PIVOT-6015 Fix copper first objects comparator being ignored
- PIVOT-6133 Fix deadlock when allocating partition content.
- PIVOT-6196 Fix an issue where we couldn't restart a
DistributedMessenger
when it was already paused. - PIVOT-6203 Fix an issue with
StoreFieldMonitor#histogram()
in JMX console producingClassCastException
on dictionarized fields. - PIVOT-6633 Fix
NullPointerException
during continuous queries registration in distributed setup. - PIVOT-6500 Support KPIs in Data Export CSV tabular format.
- PIVOT-6577 Fix
ClassCastException
occurring when aggregating thecontributors.COUNT
measure.
6.0.1
2022-12-07
Added
- PIVOT-6113 Add a
dictionarize
method onField
in DirectQuery databases.
Changed
- PIVOT-5852 The
WatcherService
will now create itsWatcherThread
with the same tracing context as the parent task (for example a file listener). - PIVOT-5989 Performance improvement in DirectQuery's generated SQL queries by pushing some conditions in the join clause.
- PIVOT-6122 internal ClickHouse
DataValidator
is now package-private and final. - PIVOT-6122 internal
IStreamListenerRegistration
, returned byIDataStreamer#registerListStreamView
, is now correctly public. It migrated fromcom.activeviam.database.internal.view
intocom.activeviam.database.api.query
. - PIVOT-6122 internal The listener type
com.activeviam.database.internal.view.IListViewListener
, required byIDataStreamer#registerListStreamView
has been made public ascom.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. - PIVOT-6122 internal
DatabaseId
entities, returned by various methods likeIDatabaseSchema#getDatabaseId()
is now public, moving from the packagecom.activeviam.database.internal.schema
tocom.activeviam.database.api.schema
. - 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
- PIVOT-5877 The
ILocalityIdentifier#canBeLocalized
is deprecated. UseILocalityIdentifier#localMeasurePredicate
instead.
Removed
- PIVOT-6081 The
PartialProviderDefinition.NO_DIMENSION_DEFINED
flag for unspecified dimension names has been removed
Fixed
- PIVOT-5867
AHibernateContentService
's locking strategy is improved to lock smaller unit of works. This will prevent potential deadlocks. - PIVOT-5978 Prevent
OutOfMemoryError
crashes in the XMLA Servlet when attempting to send a message that does not fit in a byte array of sizeInteger.MAX_VALUE
.RuntimeException
will be thrown instead. - PIVOT-5997 Adaptive JIT is now always used instead of JIT with DirectQuery.
- PIVOT-6027 Fix APM Spring configuration.
- PIVOT-6053 Fix performance issue when reducing the number of allowed concurrent queries in the
MdxQueryBouncer
. - PIVOT-6112 Fix issue in DirectQuery filtering on the wrong dates when pushing queries to Snowflake.
6.0.0
2022-11-08
Added
- PIVOT-2930 Add
ICubeFormatter.getMeasureCaption(String)
that will replacegetMeasureCaptions()
. - PIVOT-4747 New API:
IDatabase
. TheIDatastore
is now a specialization ofIDatabase
. - PIVOT-4887 New Rest Bulk API for Content Server. See
RestBulkApiServerController
. - 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 statingasQueryCube()
. - PIVOT-5177
IPartialAggregateProvider
s can be filtered on certain levels (whether they are handled by the provider). - PIVOT-5180 Added
springdoc
dependency in the sandbox to showcase how to list all rest endpoints. - 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 classcom.activeviam.copper.api.Copper
. - PIVOT-5183 Add rebuild operations for indexes to the datastore API.
- PIVOT-5207 New endpoint in the Database Rest API to retrieve actual number of records in the store. See
IDatabaseRestService
. It replaces theIDatastoreRestService
. - PIVOT-5317 Data cube now can have a unique identifier using the fluent builder API
IDataClusterDescriptionBuilderWithIdAndMessengerDefinition#withUniqueIdentifierInCluster
. - PIVOT-5317 Expose remote data cube physical addresses in the query cube.
- PIVOT-5429 Introduced new interface
IAnalysisHierarchyDescriptionProvider
to describe the properties of the Java-based analysis hierarchies. - PIVOT-5561 Introduce a new API to write aggregation bindings on objects and vectors. See [this migration note](/products/atoti/server/6.1.0-beta2/docs/release/migration_notes#Aggregation module changes) for details.
- PIVOT-5609 Serialization of
null
values: introduce a new methodConditionToJsonNodeHelper.convertMapIncludeAll
that includes keys withnull
values in the JsonNode. It relies on a dedicatedObjectMapper
(seeJacksonSerializer#getObjectMapper(true)
) - PIVOT-5631
ActiveUIResourceServerConfig
andAdminUIResourceServerConfig
are now core classes. You no longer need to copy them from the Sandbox to your projects. - PIVOT-5734
Copper#constant
now supports Object Vectors. - PIVOT-5871 New aggregation functions were added to the core product. See the what's new page
- 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
- PIVOT-3121
IPostProcessedMeasure
no longer has a generic parameter. - 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.
- PIVOT-5116 In the
StoreDescriptionBuilder
all operations on fields should be done before defining the partitioning. For example, you cannot calladdField()
afterwithPartitioning()
. - PIVOT-5135 Creating a sub-second QueriesTimeLimit will now throw an
IllegalArgumentException
stating that a time limit must have a duration over 1 second. - PIVOT-5145
IPluginValue
andIExtendedPluginValue
are notSerializable
by default anymore. - PIVOT-5295
MDXCellSet
now always returns the list of default members, even if the cell set itself is empty. - PIVOT-5298 All ActivePivot named threads are now prefixed by
activeviam
and suffixed byworker-i
wherei
is the thread count number. - PIVOT-5333 Increase severity for full reset and pending initial discovery messages to
WARNING
in distributed clusters. - PIVOT-5349 The method
CSVSource#setFileIdentifierComparator
was moved toICSVSourceConfiguration
, which is now created through the builderCSVSourceConfigurationBuilder
. - PIVOT-5373
ICursor
is now auto-closeable. See migration notes. - PIVOT-5378 The
INumaNodeSelector
interface has been separated intoINumaNodeSelector
andIDatastoreNumaNodeSelector
, which live in different modules. - PIVOT-5383 Tracing has been removed from APM and is now part of the core product.
- PIVOT-5417 All rest endpoints have been migrated to Spring MVC and the
JsonResponse
wrapper removed. - PIVOT-5422
IDatastoreSchemaDescription.getDictionaryGroups
now uses sets ofStoreField
. - PIVOT-5429 Numerous
ActiveViamProperty
andJwtConfig
property values were renamed to uniformize their naming conventions (see the migration notes). - PIVOT-5429 Pivot hierarchy descriptions now use the
IHierarchyDescription
interface. - PIVOT-5429 Changed how the Analysis hierarchies are defined. See migration notes.
- PIVOT-5468 The Datastore REST API is now called Database REST API. Queries will behave like if the
autoDetectOuterReferences
parameter was set totrue
in 5.11. - PIVOT-5486 Sub-interfaces and classes of conditions are now internal.
- PIVOT-5486 The
IDictionaryCursor
interface was removed. By default,IListQueryRunner#run
and similar methods will return plain values. Use the optionIListQueryRunner#withDictionarizedValues()
to retrieve dictionarized values. - PIVOT-5486
DatastoreQueryHelper.selectDistinct(...)
was changed to only support querying distinct values of a field belonging to a given table. - PIVOT-5486 Renamed
PARTIAL_PROVIDER_SELECTOR_PLUGIN_KEY_PROPSERTY
toPARTIAL_PROVIDER_SELECTOR_PLUGIN_KEY_PROPERTY
(typo in PROPERTY). - PIVOT-5490 The methods in
HierarchiesUtil
no longer throw checked exceptions. - 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.
- PIVOT-5548 Aggregate provider's
ProviderCoordinate
now contains the provider's name instead of the index. RenamedMemoryStatisticConstants#ATTR_NAME_PROVIDER_INDEX
toATTR_NAME_PROVIDER_NAME
. - PIVOT-5556 Provided a clearer exception message when attempting to create a hierarchy misusing
MultiVersionAxisHierarchy#FIELD_PATH_PROPERTY
. This property replaces theFIELD_EXPRESSION_PROPERTY
. - PIVOT-5582 Namespace and version are by default deduced from namespace prefix in
ASpringVersionedRestServerConfig
. - PIVOT-5637 Partial providers can no longer be filtered on levels they do not handle.
- 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. - PIVOT-5723 All post-processor output types are now nullable by default.
- PIVOT-5732 Changed the implementation of the
or
operator on multiple bitmaps. - 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. - PIVOT-5820 Unify
IChunkSetCursor
andIArrayReaderWithCursor
into a single concept,ITableCursor
. - PIVOT-5834 Static methods in
BaseConditions
have been renamed. They are now all starting with a lower case.Lesser
andLessOrEqual
have been changed toless
andlessOrEqual
. - PIVOT-5839
Chunks#DEFAULT_CHUNK_SIZE
now cannot exceed 65536. - PIVOT-5839 ActiveViam Property
NATIVE_MEMORY_CACHE_RATIO_PROPERTY
(-Dactiveviam.nativeMemoryCacheRatio
) now defaults to 0.4, instead of 0.8. - PIVOT-5840
IAxisLevelDescription
'spropertyName
field is now namedselectionField
to clarify what it represents. ThegetPropertyName()
andsetPropertyName(String)
methods have been renamed accordingly. - PIVOT-5914 Sandbox applications use AdminUI version 5.0.7.
Deprecated
- PIVOT-4747 Deprecated
IDatastoreVersion
in favor orIDatabaseVersion
- PIVOT-4747 Deprecated
IReadableDatastore#getHead()
in favor ofgetHead(String)
andIReadableDatastore#getBranches()
in favor ofgetHeads()
. - PIVOT-4747 Deprecated several of the signatures of
DatastoreQueryHelper#createGetByKeyQuery
. - PIVOT-5429 Several methods from
AAnalysisHierarchy
have been deprecated, useIAnalysisHierarchyDescriptionProvider
instead (see migration notes). - PIVOT-5429 Deprecated the ability to have introspecting levels in
AAnalysisHierarchy
. - 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. - PIVOT-5536 The name of the ActivePivotManager's monitoring bean is now a constant:
ActivePivotManager
. - PIVOT-5561 The following abstract classes are deprecated:
AGenericBaseAggregationFunction
,AGenericAggregationFunction
,AGenericVectorAggregationFunction
,AVectorAggregationFunction
. - PIVOT-5905 The method
hasNext
inICursor
has been deprecated, usenext
directly. - PIVOT-5905 The method
rewind
ofICursor
will become an internal method.
Removed
- PIVOT-4437 Remove
ActivePivotDatastorePostProcessor
,NumaSelectorPostProcessor
andWeightMaximizingNumaSelectorPostProcessor
. - PIVOT-5175 Dropped SOAP services.
- PIVOT-5180 Dropped CXF.
- PIVOT-5320 Removed legacy post-processors. See the migration notes for details.
- PIVOT-5590 Removed realtime drillthrough feature from Excel add-in.
- PIVOT-5590 Removed native output type "Excel" from the list of supported drillthrough output types.
- PIVOT-5378 Removed
getDatastore
methods fromISchemaSelectionSession
andIActivePivotSchemaSelectionSession
- PIVOT-5413 Removed
IActivePivotDescription.IDescriptionPostProcessor
. Description post-processing does not need to be handled by the core product. - PIVOT-5413 Removed the ability to define an Analysis aggregation procedures in a hierarchy description.
- PIVOT-5468 Removed the
autoDetectOuterReferences
parameter in Database service. - 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)
andwriteBoolean(int, boolean)
when doing vector aggregation usingAAggregationBindingCloneable
,AVectorAggregationBinding
or derivatives ofSumVectorAggregationBinding
. See [this migration note](./migration_notes#Aggregation module changes) for details. - PIVOT-5561 Removed
ABasicAggregationBindingCloneable
, replaced by a refactoredAAggregationBindingCloneable
. - PIVOT-5574 Removed Reporting and Scheduling Service.
- PIVOT-5605 Removed class
SecurityFromCubeToDatabaseFilterHook
. - PIVOT-5668 Removed
IStreamPublisher
formIStreamSnapshotService
. The snapshot service now uses the same publisher as the streaming service. - PIVOT-5680 Removed
KeepLastBranchEpochPolicy
. - PIVOT-5785 Removed
getName
method fromICursor
, usegetFieldName
onIRecordFormat
. - PIVOT-5792 Removed the ability to give an index to a Dynamic condition. One should now give a name.
- PIVOT-5834 Removed
BaseConditions.True()
andBaseConditions.False()
, useBaseConditions.TRUE
andBaseConditions.FALSE
instead. - PIVOT-5840
AxisLevelDescription(String levelName)
was removed. AselectionField
(formerlypropertyName
) must now be specified to avoid unexpected behavior.
Fixed
- PIVOT-5416 Fix
computeAggregationProcedureTiming
for cached retrievals. - PIVOT-5622 Correctly define constructors for generated Bean property accessors.
- PIVOT-5809 Fix ArrayIndexOutOfBounds exceptions in
ActivePivotAggregatesRetriever
. - PIVOT-5774 Fix a
DiscardedDataException
potentially occurring in Vector aggregation operations - PIVOT-5783 Fix the toString() method for CsvCharacterCodingError.
- PIVOT-5813 Fix NullPointerException that could occur with Copper's window.
- PIVOT-5873 Fix thread vector allocator un-consistency. Previously, a thread requesting a transient allocator could end-up with a direct memory allocator.
- PIVOT-5887 Arrange for a spare thread for continuous MDX updates. Previous implementation could cause live locks in case of work-stealing.
5.11.4
2022-09-26
Added
- PIVOT-4365 Add an
MdxQueryBouncer
limiting the number of concurrently running mdx queries. See What's New? page for configuration details. - PIVOT-5027 Empty partitions are automatically dropped at the end of transactions.
- PIVOT-5077 Add
IDistributedActivePivotInstanceDescription.NO_REPLICATION_MEASURES
property to disable replication for certain measures on distributed cubes. - PIVOT-5631
ActiveUIResourceServerConfig
andAdminUIResourceServerConfig
are now core classes. You no more need to copy them from the Sandbox to your projects.
Changed
- PIVOT-4934 Adjust Logging levels for received statements on the MDX REST endpoint to INFO.
- PIVOT-5030 Disable RangeSharing for Post-Processors when an Analysis Hierarchy is expressed in the queried location.
- PIVOT-5304 Improve the performance of the code handling the generation of the locations when analysis hierarchies are expressed.
- PIVOT-5626 Skip initialization of previously failed post-processors
- PIVOT-5657 Switch outer reference policy to auto-detection mode for the queries executed from Datastore MBeans.
- PIVOT-5671 Log the complete APM monitor result's only when detailed logging is enabled.
- PIVOT-5677 Activiti dependencies upgraded from 5.22.0 to 5.23.0.
- PIVOT-5728 Improve JIT retrievals completion performance in some applications with a high partition count.
Fixed
- PIVOT-5041 Clarify the behavior and error message of
Licensing.reload()
and its underlying MBean. - PIVOT-5365 Fix
ActivePivotVersion
releasing its reference to the datastore too early. In some cases, a race condition could lead to wrong results when using aKeepLastEpochPolicy
and querying an old not markedActivePivotVersion
with a JustInTime provider. - PIVOT-5479 Fix
ClassCastException
when querying the drillthrough headers on a distributed cube. - PIVOT-5458 Correctly propagate exception in
ExternalDatastoreRetrieval
. - PIVOT-5502 Fix cached data mutated in DatastoreService.
- PIVOT-5508 Fix the creation of the
ColumnIntegerRowMapping
memory statistics for MAC. - PIVOT-5515 Fix
ArrayIndexOutOfBoundsException
inChunkedBitmap
when adding two bitmaps. - PIVOT-5539 Fix
NullPointerException
when discarding transient results from a distributed measure with no value. - PIVOT-5502 Fix cached data mutated in DatastoreService.
- PIVOT-5575 Fix a performance issue impacting queries on cubes having partial providers and a large amount of hierarchies.
- PIVOT-5639 Fix an issue with nested combine operations with context value dependencies in Copper.
- PIVOT-5640 Fix an issue where unrelated store partitions could generate unnecessary transient objects. This reduces the memory footprint of small transactions.
- PIVOT-5661 Fixed potential deadlock in JDBCTask when all JDBCAppendRunnable crashed.
- PIVOT-5671 Hide sensitive information in logs.
- PIVOT-5713 Fix
ClassCastException
during the recording of distributed messages statistics. - PIVOT-5759 Fix Deadlock when allocating partition content.
- PIVOT-5777 Fix wrong parameter order in
RemoteContentService
.
5.11.3
2022-05-06
Added
- PIVOT-5301
BottomCountFunction
andTopCountFunction
should accept a string expression as a comparator. - PIVOT-5297 Support all arrow
TimeStampVector
types:TimeStampNanoTZVector
,TimeStampMicroTZVector
,TimeStampMilliTZVector
,TimeStampSecTZVector
.
Added
- PIVOT-5301
BottomCountFunction
andTopCountFunction
should accept a string expression as a comparator.
Changed
- PIVOT-5202 Improve the Copper doc on map methods to specify that the cells must be written into at each iteration.
Fixed
- PIVOT-5318 Fix ClassCastException in the PlanningGraph
- PIVOT-5333 Increase severity for full reset and pending initial discovery messages to
WARNING
in distributed clusters. - PIVOT-5395 Fix the creation of the
HashMapRowMapping
memory statistics for MAC. - PIVOT-5407 Fix Frequent Value compression not properly handling null values.
- PIVOT-5428 Fix
ArrayIndexOutOfBoundsException
when usingwithBatchSize
in parquet source. - PIVOT-5443 Fix
SimpleCubeDescriptionBuilder
not properly setting shared context values. - PIVOT-5479 Fix
ClassCastException
when querying the drillthrough headers on a distributed cube.
5.11.2
2022-04-01
Added
- PIVOT-5232 A UI to browse the Datastore. See
AdminUIResourceServerConfig
in the Sandbox. - PIVOT-5246 Add
ChunkSingleBoolean
to compress Boolean chunks containing the same value for all positions.
Changed
- PIVOT-5232 Breaking Moved
JungSchemaPrinter
and associated classes to datastore test artifact.spring-boot
,netty
,google-guava
,azure-identity
,azure-security-keyvault-keys
andazure-storage-blob
are updated to the latest version. - PIVOT-5239 Improve
DirectedGraph.getEdgesTo
. - PIVOT-5275
Record
reading and writing operations now strictly follow the JVM's automatic type widening described in the JVM's spec. The previous behavior was to only allow the operations corresponding to the field type. - PIVOT-5322 Renaming of exposed properties related to consul service configuration within APM.
- PIVOT-5367 Renamed properties
intermediateSize
andtransientSize
inQueryResultLimit
tointermediateLimit
andtransientLimit
, respectively. - PIVOT-5411 Update Spring Boot to 2.6.6 which includes a vulnerability fix.
Removed
- PIVOT-5232 BREAKING
ContentServerResourceServerConfig
was removed. It is replaced byAdminUIResourceServerConfig
(See the Sandbox).
Fixed
- PIVOT-5098 Fixed an
IllegalStateException
when performing queries containing cached aggregates for primitive measures and primitive-aggregated measures. - PIVOT-5188 Fix potential bug in AnalyticFunctionPostProcessor where partitioning levels were not properly set.
- PIVOT-5218 Improve performance of the Mdx NonEmpty function
- PIVOT-5259 Correctly propagate custom aggregation function used for result reduction in distributed post-processors.
- PIVOT-5280 Using the flexible datastore no longer removes the insertion time and commit time update procedures.
- PIVOT-5291 Correctly group monitored JMX APM components and fix some variable visibility issues.
- PIVOT-5308 Clarify the javadoc of
Copper.StoreLookup
when the specified store has nullable key fields. - PIVOT-5309 Correctly set elapsed time in aggregate retrievals.
- PIVOT-5310 Fix retrieval result size figures when printing the query plan. In some cases, results were discarded before their result size computed.
- PIVOT-5311 Fix bug where hierarchy visibility was set to false but was still visible.
- PIVOT-5328 Fix an
NullPointerException
when having multiple threads discarding the same transient result at the same time. - PIVOT-5330 Fix issue with store size and cursor not being printed when using
SchemaPrinter
. - PIVOT-5335 Fix aggregates cache not being updated in Query Cubes after transactions without any impact on the pivot's structure.
- PIVOT-5342 Fix bug where we could not query joined store's lookup measure on grand total.
- PIVOT-5396 The reversed comparators did not return their plugin key.
5.11.1
2022-01-12
Added
- PIVOT-5170 Add result size reporting for distributed query plan print.
Changed
- PIVOT-5009 Prevent users from creating Copper join hierarchies based on a store field included in the mapping.
- PIVOT-5238 Parallelize
ActivePivotManagerBuilder
'spostProcess
to reduce cubes creation time.
Fixed
- PIVOT-5095 Fix real-time update on query with epoch hierarchy. Previously, real-time updates on such queries resulted in branch disappearing from the updated result. See Real-Time What-If Queries section.
- PIVOT-5189 Fix
IIterableAggregatesRetrievalResult#transferValues
that could copy the wrong aggregates. - PIVOT-5195 Fix bug in the revert to version. Some records were not reverted in some edge cases.
- PIVOT-5208 Enforce
PostProcessor
initialization when requesting the dataType of a post-processed measure. - PIVOT-5210 Fix a bug in lead, lag, first, last and window Copper functionalities when relying on a Context Value measure.
- PIVOT-5224 License is now redacted when logged.
5.11.0
2021-11-26
Added
- PIVOT-4449 Added a detailed reporting of CSV parsing errors. Use the
CSV_PARSING_REPORT_ENABLED
property to enable it, andCSV_PARSING_REPORT_MAX_ANOMALIES
to limit its size. - PIVOT-4639 Add parameter to auto-detect outer references in
DatastoreService
. - PIVOT-4642 Integrate APM (Application Performance Monitoring) library into ActivePivot.
- PIVOT-4653 ActivePivot's custom data structures following
com.qfs.chunk.IArray
andcom.qfs.chunk.IWritableArray
can now spawn a cursor. This cursor can be moved up and down the array and perform read/write operations at its current position. - PIVOT-4655 Add a data export service to download or export MDX queries.
- PIVOT-4676 The query plan now includes aggregation procedures time and external datastore retrievals for
PrimitiveAnalysisAggregationRetrieval
. It also includes the name of the used partial provider forPartialPrimitiveAggregatesRetrieval
. - PIVOT-4677 Integrate the Excel Add-in library into ActivePivot.
- PIVOT-4708 Added virtual hierarchies experimental feature. Those are hierarchies whose members are not materialized. A hierarchy can be defined as virtual using the hierarchy builder API
.virtual()
. - PIVOT-4715 Added an interface
ICanUseOtherReferenceOrBuild
in the selection fluent builders for ease of use with Spring Beans. - PIVOT-4733 Allow to override measure aggregator xmla property with
CopperMeasure#withXmlaAggregator(int)
. - PIVOT-4804 Throw an exception when creating measures names with commas.
- PIVOT-4806 License path is now printed in the log.
- PIVOT-4815 Ability to name (give a alias) when selecting field in a
RecordQuery
or aGetByKeyQuery
. Before the name was the path of the field. - PIVOT-4824 Include epochId of the max and latest continuous query statistics.
- PIVOT-4847 Add
mark()
andunmark()
onIDatastoreVersion
. - PIVOT-4913 The JDBC Source will now log the exceptions that make its workers exit the parallel processing of records.
- PIVOT-5037 The Copper tester now supports
hasValues()
in every case and a new methodwithDelta()
to set the allowed delta between the values given by the user inhasValues()
and the actual values returned by the measures. - PIVOT-5059 Partial providers can now have a name using the fluent builder API
PartialBuilder#withName(..)
. - PIVOT-5060 Support encoding and decoding
NaN
and+/-Infinity
in JSON. - PIVOT-5069 Add the currently written record in case of type error in
IRecordFormat#newRecord()
. - PIVOT-5118 Add a toString() to
CloudCsvDataProvider()
for better error message. - PIVOT-5170 Log query results size by default when printing the query plan. Note that
DistributedAggregatesRetrieval
doesn't support such feature yet.
Changed
- PIVOT-3978 Partitioning fields are now automatically dictionarized.
- PIVOT-4315 The Copper Typing API is now simpler, only allowing to call
withType
after operations likeplus
,minus
, etc. - PIVOT-4498 The
ActiveViamPropertyFromSpringConfig.resolve()
bean is now namedActiveViamPropertyFromSpringConfig.SPRING_PROPERTIES_RESOLVER
. - PIVOT-4484 Deprecate usage of
OutputStream
inTableBuilder
and add usage ofStringBuilder
- PIVOT-4653
IVector
andIBlock
no longer extendIWritableArray
. - PIVOT-4653
IPostProcessor
abstract implementations are given a version 2, such asABasicPostProcessorV2
,ADynamicAggregationPostProcessorV2
andAAdvancedPostProcessorV2
. See the migration notes for details. - PIVOT-4747
ReferencedField
was replaced byReachableField
. - PIVOT-4781
StreamSnapshotService#snapShotStreams(String)
is now compatible withStreamSnapshotService#loadStreams(String)
. Now, both operation ignoreSTOPPED
streams. UseStreamSnapshotService#snapShotAllStreams(String)
to snapshot all streams including the stopped ones. - PIVOT-4789 Provide possible solutions in error message when we failed to initialize the
SaferNative
class inLinuxPlatform
. - PIVOT-4802 Reduce the memory consumption of
ModifiedLocation
, primarily used in cumulated aggregates and in shifted measures. - PIVOT-4808 Report error if the ActivePivotSchema fails to attach.
- PIVOT-4813 Update ActiveMonitor REST API documentation to correctly illustrate how a new monitor can be added.
- PIVOT-4820 Change constructors of
KeepLastEpochPolicy
andFlexibleDatastoreEpochPolicy
to useDuration
instead oflong
. - PIVOT-4833
AVectorAggregationFunction.aggregate
method will now receive a vector allocator. - PIVOT-4834 Chunks reading and writing operations now strictly follow the JVM's automatic type widening described in the JVM's spec. The previous behavior was to only allow the operations corresponding to the chunk type.
- PIVOT-4893 Vectors reading and writing operations now strictly follow the JVM's automatic type widening described in the JVM's spec. The previous behavior was to only allow the operations corresponding to the vector type.
- PIVOT-4912 Add default implementation of
CancellableCountedCompleter#afterCompute(Throwable)
callingCancellableCountedCompleter#tryComplete()
. - PIVOT-4947 Return a lighter ActivePivot description in SOAP webservices called
SoapActivePivotDiscovery
. - PIVOT-4959 Reorganize the
IVectorBinding
API. Some methods have seen their twoIVector
parameters inverted, but they now all carry the less confusing names ofleft
andright
(rather than source and destination). Theleft
vector will always receive the result of the vector operation. - PIVOT-4973
IReadableDatastore
now implementsIBranchedMultiVersion
. - PIVOT-5003 Reorganize
AMultiVersionAnalysisHierarchy
andAAnalysisHierarchy
to clearly state the methods to implement. The notable changes is that now, users must overrideAMultiVersionAnalysisHierarchy#processIntrospectedMember
to complete paths of introspected members, instead of overriding#contributeMember
directly. This change removed a lot of internal methods from the interfaceIAnalysisHierarchy
. - PIVOT-5003 Introduce
AAnalysisHierarchyV2
. This class will replaceAAnalysisHierarchy
in ActivePivot 6.1. - PIVOT-5003 Correct typo by renaming
IAnalysisHierarchyInfo#getUseIntrospection
intoIAnalysisHierarchyInfo#getUseIntrospection
. - PIVOT-5032 Upgrade
org.apache.hadoop
to 3.3.1. - PIVOT-5021 Upgrade Spring Boot version to 2.5.4 and update dependencies.
- PIVOT-5024 Use
ChunkedIntegerArray
instead ofIntegerArray
inAMultiVersionUniqueRecordIndex
so that we can now put more than 300M records per partition. - PIVOT-5058 Implements the correct
equals()
andhashcode()
forStoreDescription
andVectorFieldDescription
. - PIVOT-5123 Partitioning modulo 1 now throws an exception.
- PIVOT-5129 Renamed
AnalysigAggregationProcedureFactory
toAnalysisAggregationProcedureFactory
. - PIVOT-5168 Bump Spring version to 2.6
- PIVOT-5168 Bump Jackson version to 2.13.0
- PIVOT-5168 Bump Apache Arrow version to 6.0.1
- PIVOT-5168 Bump Apache CXF version to 3.4.5
Removed
- APS-12776 Remove
IEpochManager.mark(...)
andIEpochManager.unmark(...)
. One should call them on the underlyingIEpochHistory
. - PIVOT-4244 Remove the XML descriptions of the cubes.
- PIVOT-4747
ISelectionField
was removed. UseSelectionField
instead. - PIVOT-4748
StreamUtil.negate
has been removed; we usePredicate.not
instead - PIVOT-4776
IMultiMap
was removed. Use aMap
whose values are collections instead. - PIVOT-4986 Release more resources after dropping a partition (dictionaries of indexes that are not used by a reference can now be released every time).
- PIVOT-5011 Remove the provided strings from exception messages in
RestContentServer
andJsonQueryService
. - PIVOT-5029
IAggregatedMeasureAware
was removed. - PIVOT-5084 Removed an invalid warning that was triggered when building Copper Hierarchies backed by a store. Said warning was stating these hierarchies shouldn't be factless.
- PIVOT-5094
IMultiVersionStorePartition#drop(IDroppedPartitionInformation)
does not take any argument anymore. - PIVOT-5117 Remove
TransactionWrapper
.
Fixed
- PIVOT-4487 Fix Copper post-processor bug where if the only underlying measures of a calculated measure were null or constant measures, the post-processor wouldn't be evaluated at all.
- PIVOT-4735 Fix continuous handler registration issue. The issue happened in distribution when some underlying measures have not yet appeared thus causing a duplication in handler key of the parent measure.
- PIVOT-4780 Fix unnecessary query plan logging when
queryPlanSummary
is enabled. - PIVOT-4800 Enhance query plan timing reports. This particularly fixes two man issues:
JITPrimitiveAggregatesRetrieval
Partitioned retrievals for non-existing partitions used to display the largest execution time of their siblings. Now, only partitioned retrievals that performed some work at least and whose result is empty will be reported in the timing section, along with the other retrievals with result- In some cases, for a group of related retrievals (siblings), timing were not printed if one of the sibling has no result. This edge case has been fixed
- PIVOT-4811 Fix
ClassCastException
inSingleValueFunction
when working with arrays. - PIVOT-4814 Fix an issue where exporting the memory statistic of a chunk containing non-direct vector blocks would throw a NPE.
- PIVOT-4816 Fix an issue occurring when merging two
AggregateStore
s. This caused the merged result to includenull
values instead of the correct value for some measures. - PIVOT-4818 Fix an issue leading to incorrect transitions between
IntegerArrayVersion
. - PIVOT-4819 Fix
UnsupportedOperationException
inActivePivotStatistics
. The issue happened when computing transaction fact statistics on an incompatible type of transaction. - PIVOT-4862 Fix an export error in the
IMemoryStatistic
generation for TombStone classes. - PIVOT-4866 Fix
NullPointerException
inFilterTranslator
. The issue could happen when translating a wildcard, e.g.null
, to the data cube. - PIVOT-4881 Fix an issue where the resizing of
IntegerArray
andLongArray
generated non-transient chunks regardless of itsisTransient
parameter. - PIVOT-4901 Prevent aggregates computation (i.e. GetAggregatesQuery) when mdx
CELL PROPERTIES
is equal toCELL_ORDINAL
. - PIVOT-4923 Fix hiding subtotals issue that could not hide all the measures.
- PIVOT-4935 Fix NPE when accessing an uninitialized datastore via MBean.
- PIVOT-4944 Fix the cleaning method of the prefetch scope location when executing more than one aggregation procedure in a single
PrimitiveAnalysisAggregationRetrieval
. - PIVOT-4946 Fix an issue with Copper
storeLookup
that could fail to find its underlying measures, in the case where these measures were previously re-optimized. - PIVOT-4949 Fix thread safety for
SharedDelegateDictionary#mapFromCell
. - PIVOT-4951 Fix an edge case issue with
IChunkInteger
sparse compression. - PIVOT-4956 Fix
GenericVectorBinding#applyAs..
operations for non-commutative operators. - PIVOT-4958 Fix the update of the ContentServer entries for branches containing characters that are illegal for FileSystem-specific paths.
- PIVOT-4964 Fix an
ArrayIndexOutOfBoundException
happening when compressing chunks with freed rows asFrequentValueChunk
. - PIVOT-4972 Fix branches not visible sometimes with continuous queries. The
ISecurityDetails
was not always propagated when registering queries. - PIVOT-4979 Fix missing fields issue in the analysis aggregation procedures when a cube filter is done on a Copper join.
- PIVOT-4992 Fix dependency issue in content-server-spring.
- PIVOT-4998 Reduce time spent at startup optimizing Copper measures
- PIVOT-5010 Properly set the level type of a slicing Copper hierarchy
- PIVOT-5016 Fix
ArrayIndexOutOfBoundsException
in theSetExpander
of the Mdx engine. - PIVOT-5038 Fixed errors in usage counting caused by decrementing the usage too many times.
- PIVOT-5050 Fix distributed post-processors initialization. This issue happened when chaining at least three post-processors where the bottom one in the chain is not initialized and caused missing dependencies propagation in some cases.
- PIVOT-5062 Fix
NullPointerException
inPointListRetrievalResult
in the case of a polymorphic distributed setup. - PIVOT-5068 Fix
NullPointerException
in the AggregatesResultCopier used by postprocessors. - PIVOT-5074 Fix
SubCubeProperties#removeRestriction(dimension, hierarchy)
. The issue happened in distributed polymorphic setup where the same dimension from two data nodes includes different hierarchies and one of the dimension hierarchies cardinality is greater than 1. - PIVOT-5078 The Parquet Source correctly parses boolean vectors.
- PIVOT-5097 Fix
NullPointerException
when registering aGetAggregatesQuery
build using a location Collections not supportingnull
elements. - PIVOT-5115 Fix
IllegalArgumentException
during query plan logging whenexecutionTimingPrint
is enabled . - PIVOT-5119 Fix rollback process of store transactions.
- PIVOT-5128 Fix a memory leak that could happen upon query failure/cancellation if an
AggregatesCache
was used. - PIVOT-5137 Fix
LevelIdentifier.fromDescription
andHierarchyIdentifier.fromDescription
. They did not handle correctly the escaping of@
. - PIVOT-5151 Fix
QfsStrings.escape
with$
as escape symbol. - PIVOT-5156 Fixed missing query plan retrievals. The issue happened when underlying retrievals with different partitioning were merged. Note that this does not affect query results nor the query plan export feature, but only the query plan printing.
- PIVOT-5162 Fix potential NPE in
PrimitiveAnalysisAggregationRetrieval
when joining results.