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.
The 6.1 branch forked the 6.0 branch from version 6.0.14.
See the 6.0 changelog for changes before the fork.
6.1.1
to be released (changelog generated on 2024-10-08)
Added
- PIVOT-9968 Provide a way to pass an
IMemoryCollector
toIInternalMemoryMonitored#getMemoryStatistics(memoryCollector)
in order to prevent the count of duplicated blocks. - PIVOT-9978 Add the method
Registry#setType(Class, Class)
to programmatically register an Atoti Type. - PIVOT-10367 Cloud source API: Added a
CloudMultipleEntitiesCsvTopic
to read multiple CSV files explicitly defined from a cloud storage.
Changed
- PIVOT-4809 Copper:
Copper.storeLookup
no longer creates intermediate measures for constant values. - PIVOT-9724 Update the Content Service Name Generator to generated fixed prefix based of the
Property
activeviam.contentService.nameGenerator.size
. - PIVOT-10103 Loading invalid Calculated Members or KPIs from the Content Server log instead of throwing.
Deprecated
- PIVOT-9724 Content Service Property: Deprecated
activeviam.contentService.nameGenerator.defaultSize
, use insteadactiveviam.contentService.nameGenerator.size
. - PIVOT-10188 CSV Source API: Deprecated
ICsvParserConfiguration
,IFileParserConfiguration
,FileParserConfiguration
, use insteadCsvParserConfiguration
. - PIVOT-10188 CSV Source API: Deprecated all constructors and setters of
CsvParserConfiguration
, use insteadCsvParserConfiguration#builder
. - PIVOT-10142 Source API: Deprecated
ITranslator#setColumnCalculators()
and all the empty constructors of its implementation classes (ATranslator
,AColumnarTranslator
,AHeaderTranslator
,HeaderColumnarTranslator
,IdentityTranslator
,PojoTuplizer
,MapTranslator
,TupleTranslator
). Use instead the new constructors with the list of column calculators. - PIVOT-10142 Source API: Deprecated
ATranslator
, use insteadATranslatorWithColumnCalculators
. It is the same class with a more explicit name to underline the fact that it is a translator that uses column calculators. - PIVOT-10142 CSV Source API: Deprecated
IHeaderTranslator
and all its methods in the implementation classes (AHeaderTranslator
,HeaderColumnarTranslator
), those are made internal. - PIVOT-10142 CSV Source API: Deprecated
AHeaderTranslator#setTranslator()
andAHeaderTranslator#setMaxWaitHeaderTime()
, use instead the constructor with the corresponding parameters in the implementation classHeaderColumnarTranslator
. - PIVOT-10219 Misc: Deprecated
ZeroVector
. Please use the methods inSameValueVectorUtils
to create such a vector, e.g.SameValueVectorUtils#doubleVector(10, 0.0)
. - PIVOT-10231 DirectQuery: Deprecated
SnowflakeDialectSettings#arrayAggWrapperFunctionName()
. It's better not to set it, so the queries use the SQL built-in functionARRAY_AGG
(which has been improved by Snowflake). - PIVOT-10256 CSV Source API: Deprecated
CsvSourceFactory
and its associates methodsCsvSourceFactory#create
. Use insteadICsvSource#builder
orICsvSource#builderForLocalFiles
. - PIVOT-10258 Source API: Deprecated
IMapTranslator
. - PIVOT-10261 Source API: Mark objects
MapTranslator
,MapTuplizer
,PojoTuplizer
as internal. - PIVOT-10261 CSV Source API: deprecate
ActiveViamProperty.PARSING_REPORT_ENABLED
andActiveViamProperty.CSV_PARSING_REPORT_MAX_ANOMALIES
. You can define those properties in theCsvSourceConfiguration#builder()
. - PIVOT-10284 JDBC source API: Deprecated
IJdbcTopic
. Use instead the constructor of the concrete implementationJdbcTopic
. - PIVOT-10284 JDBC source API: Deprecated
JdbcTopic
constructors. Use instead the fluent builderJdbcTopic#builder()
. - PIVOT-10284 JDBC source API: Deprecated
JdbcSourceBuilder#withAppendBatchSize()
. This can now be configured at the topic level:JdbcTopic#builder()
. - PIVOT-10353 CSV Source API: Deprecate
IColumnarTranslator#setHeaderCheck
andIColumnarTranslator#getColumnPosition
. AsIColumnarTranslator
thus becomes a marker interface, it will also be removed from the public API. - PIVOT-10367 Cloud source API: Deprecated
ICloudCsvTopic
and its methodICloudCsvTopic#setPattern()
. Use instead the constructor of the concrete implementationCloudDirectoryCsvTopic
with the pattern as a parameter. - PIVOT-10369 Cloud source API: Deprecated
CloudFetchingConfig
setters and constructors. Use instead the builderCloudFetchingConfig.builder()
.
Removed
Fixed
- PIVOT-7536 Misc: Fixed issue
fill(-1.0)
method for chunks of double and floats. - PIVOT-10203 The queries time limit of the Drillthrough queries was not propagated to the database.
- PIVOT-10312 DirectQuery: Fixed issue with native time-travel on Snowflake and Databricks, which could not be enabled.
- PIVOT-10313 DirectQuery: Implementations of
IDatabaseSettings
are now fully immutable.
Dependencies
- PIVOT-10410 Bump
org.springframework.boot:spring-boot-dependencies
from3.2.9
to3.2.10
. - PIVOT-10410 Bump
com.google.cloud:libraries-bom
from26.45.0
to26.47.0
. - PIVOT-10410 Bump
software.amazon.awssdk:bom
from2.27.17
to2.28.10
. - PIVOT-10410 Bump
com.clickhouse:clickhouse-http-client
andcom.clickhouse:clickhouse-data
from0.6.4
to0.6.5
.
6.1.0
2024-09-06
Added
- PIVOT-4994 Added new method
IDataClusterDefinition.setConcealBranches()
to hide the branches of the data cube from the query cubes. - PIVOT-6117
SameValueVector
stores a vector, whose elements are all the same. Its usage is similar toZeroVector
. - PIVOT-6514 Added an array formatter for measures. See the associated documentation.
- PIVOT-6525 DirectQuery: introduce mechanism to incrementally refresh cube with data from external database. See
com.activeviam.directquery.application.api.Application#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-8903 Added method
ICubeFilter.isHierarchyRestricted(HierarchyIdentifier)
. - 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-8980 Add an error message to signal that, in one cluster, a hierarchy is slicing in some data nodes but non-slicing in other data nodes.
- PIVOT-8994 Added
MemoryUtil
to get info about direct memory consumption. - PIVOT-9505 Ability to use comparison operations (<, <=, > and >=) in Aggregate Tables.
- PIVOT-9511 Added method
ICanStartBuildingHierarchy.withHierarchy(IAxisHierarchyDescription)
to add a hierarchy from its description. - PIVOT-9653 The names of the Databricks UDAFs on vectors can be overridden (see Databricks documentation).
- PIVOT-9708 Information about aggregate providers can be retrieved via
IActivePivotVersion#getAggregateProviderStatistics
andIActivePivotVersion#getPartialAggregateProviderNames
. - PIVOT-9829 Added
getName
toIAggregateProviderDefinition
. - PIVOT-9875 Optimized creation of vector allocation settings.
- PIVOT-9929 The constructor
AxisLevelDescription(levelName)
was restored. - PIVOT-9999 Dedicated data structure to hold nullable boolean data. This reduces memory usage for such data, and also fixes a bug when frequent value compression was used on such data.
- PIVOT-10003 DirectQuery: emulated time-travel is available for all databases as an experimental feature. See the associated documentation.
- PIVOT-10132 The number of available processors on the current machine can be retrieved using
PlatformUtil.getProcessorCount()
. - PIVOT-10138 Added methods
IParser.create
,IParser.createPluginKey
,IParser.createPluginKeyForVector
,IFormatter.create
andIFormatter.createWithLocale
. - PIVOT-10171 Add a
copy
method onIRecordReader
. This is useful to keep a copy of the current record when iterating on aICursor
.
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-6743 Renamed
ActiveUIContentServiceUtil
toAtotiUiContentServiceUtil
. - 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-7285
IRefreshable#fullRefresh
is now calledIRefreshable#refresh
.IRefreshable#restart
restarts the cube. - PIVOT-7424 Description objects are no longer boxing primitive type attributes when it is not necessary.
- PIVOT-7541 Use Java 21 as the new baseline.
- PIVOT-7605 Renamed the license environment variable from
ACTIVEPIVOT_LICENSE
toATOTI_LICENSE
. Renamed the license system property fromactivepivot.license
toatoti.license
. - 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 Changed the signatures of several testing methods. They now use
LevelIdentifier
instead of level description. - PIVOT-7982 Change the signatures of several methods to configure the Mdx context. 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-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-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 DirectQuery 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 Migrated AWS cloud source to AWS Java SDK v2. In practice, that implies relying on
software.amazon.awssdk
instead ofcom.amazonaws
. - 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-8472
Condition#relative
is renamed toCondition#unknown
, the behavior stays the same. - 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-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-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-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. - 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.springboot:atoti-server-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-9422 Removed intermediate buffer when writing a XMLA response. This reduces transient memory usage and potential OOM errors for large responses. Consequently, the property
ActiveViamProperty.MAX_XMLA_BUFFER_SIZE_PROPERTY
becomes obsolete and is removed. - PIVOT-9446 The interface
IPostProcessorConstants
has been changed to the classPostProcessorConstants
. - PIVOT-9490
IEpoch
no longer implementsIClone
. Users are instead required to call/implement adeepCopy()
method instead. - PIVOT-9493
IRecordReader
no longer implementsIClone
. - PIVOT-9495
IPair
andPair
no longer implementIClone
. - PIVOT-9497
IComparatorDescription
andIComparatorOrderDescription
no longer implementsIClone
. Users are instead required to call/implement adeepCopy()
method instead. - PIVOT-9498
IProperty
no longer implementsIClone
. UseIProperty#copy()
instead. - PIVOT-9498
IMappedTuple
no longer implementsIClone
. UseIProperty#shallowCopy()
instead. - PIVOT-9500 DirectQuery now only supports Databricks Runtime version 15.4 (the latest LTS).
- PIVOT-9517 Renamed
ExtendedContentType
intoContentType
. - PIVOT-9535 Change the signature of
com.activeviam.activepivot.server.impl.api.database.IConditionFactory
andcom.activeviam.activepivot.server.impl.api.database.IUpdateWhereProcedureFactory
to receive clean public arguments. - PIVOT-9538 Renamed all Spring Boot starters to have the groupId set to
com.activeviam.springboot
.atoti-starter
changed toatoti-server-starter
.starter-ui
changed toatoti-ui-starter
.starter-apm
changed toatoti-server-apm-starter
.starter-excel-addin
changed toexcel-addin-starter
. - PIVOT-9541 The Mdx engine will now try to find better companions for calculated members than
contributors.COUNT
. This will improve calculated measure performance on polymorphic cubes. See our public documentation for details. - PIVOT-9632
IStreamedViewListenerRegistration#close()
is renamed toIStreamedViewListenerRegistration#unregister()
, the registration is no moreAutoCloseable
because there is no external resources to close. - PIVOT-9694 Remove
Serializable
fromcom.activeviam.database.datastore.api.transaction.ITransactionManager.IUpdateWhereProcedure
as this was not necessary anymore. - PIVOT-9736 Data cubes no longer expose their REST API to the query node through
ActiveViamProperties
. These properties have been moved to theIDataClusterDefinition
and its associated builders. - PIVOT-9772
*ArrayJdbcColumnCalculator
are removed and replaced by a static factoryVectorColumnCalculatorFactory
which now supports both the Native JDBC source and the Array JDBC source. - PIVOT-9829 The constant
GLOBAL_PROVIDER_NAME
has been moved toIAggregateProviderDefinition
.IPartialProviderDefinition.DEFAULT_NAME
has been removed, and the default partial provider name is now its plugin key. - PIVOT-9858 Changed
getCellsCount
ofICellTester
to count only the non-empty cells. - PIVOT-9843 IAxisRanges no longer implement IClone and now has a deepCopy method. IRangeProperty also has a new deepCopy method.
- PIVOT-9903 Key-value source: renamed
IKeyValueBufferPool
toIByteBufferPool
andKeyValueBufferPool
toDirectByteBufferPool
. - PIVOT-9910 Some methods have been moved from
com.activeviam.database.datastore.internal.impl.SchemaPrinter
tocom.activeviam.database.api.DatabasePrinter
, and renamed withtable
instead ofstore
. The printed types are slightly different. - PIVOT-9964 The memory statistics for swapped vectors have been corrected, and the reported memory is set to 0 instead of the vector capacity.
- PIVOT-10093 Creating a default message handler
IMessageHandler<IFileInfo<Path>>
if no bean with this type have been created. The default message handler will only log the progress of load operations. - PIVOT-10135 Moved
StorePartitionTransaction.BATCH_SIZE_PROPERTY
toIStoreDescription.BATCH_SIZE_PROPERTY
.
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-8591 Deprecated use of
"hashN(fieldName)"
to describe a modulo N partitioning on a field inICanPartition.withPartitioning(String)
. Use"moduloN(fieldName)"
instead. - PIVOT-8918 Deprecated
IFieldType.getUndictionarizedDataType()
, you should not use type representation as integer anymore. - PIVOT-9004 Utilities methods in
ICloudEntity
andICloudEntityPath
to modify content on the cloud storage are deprecated. Atoti Server is solely responsible for downloading from the cloud storage. - PIVOT-10179 Deprecate
com.activeviam.tech.core.api.tracking.Tracing
in favor of implementations in each project. This class only offers helper methods relevant inside Atoti Server, rooted on a Tracer configured with information bound to Atoti Server.
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.AAnalysisHierarchyV2
has been renamedAAnalysisHierarchy
. - 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 have been removed. - PIVOT-9140 The class
ActivePivotWithDatastoreConfig
has been removed. See this migration note to find how to create it in your project. - 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-9217 Internal methods were removed from
IMultiVersionActivePivot
,IMultiVersionDistributedActivePivot
andIMultiVersionDataActivePivot
. - PIVOT-9218 Removed
IAggregateProviderDefinition.getNumaNodeSelectorPlugin()
. - PIVOT-9222 Methods taking the store id in the datastore transaction API have been removed, use the methods taking the store name instead.
- PIVOT-9385 Removed
IDatastoreSchemaDescription.getStore(String)
, useIDatastoreSchemaDescription.getTable(String)
instead. - PIVOT-9475 Classes
AStoredMeasureHandler
,StoredMeasureHandler
andStoredPrimitiveMeasureHandler
have been renamed and are now internal. The plugin keyStoredMeasureHandler.PLUGIN_TYPE
is available inIAggregatesContinuousHandler.BASIC_HANDLER_PLUGIN_KEY
. - PIVOT-9478
MultiAnalysisHierarchyMeasureHandler
is now internal. Its plugin key is available inIAggregatesContinuousHandler
asMULTI_ANALYSIS_HIERARCHY_MEASURE_HANDLER
. - PIVOT-9519 Remove
MdxCube.NO_FAIL_WHEN_MEMBER_AMBIGUITY
. - PIVOT-9665 Remove the support of Consul for the discovery of the ActivePivot servers.
- PIVOT-9665 Remove Elasticsearch as storage for historical queries data.
- PIVOT-9829 Removed
PartialProviderDefinition.NO_DIMENSION_DEFINED
. - PIVOT-10040 Removed
IIterableAggregatesRetrievalResult.transferValues(int rowId, int[] measureIds, Object[] measureValues)
. UseIIterableAggregatesRetrievalResult.transferValues(int rowId, int[] measureIds, IWritableRecord record)
instead, created withIIterableAggregatesRetrievalResult#createRecordFormat(...).newRecord()
. - PIVOT-10093 Removing the property
activeviam.apm.feed.loading.message.handler.type
- PIVOT-10093 Removed
DataLoadingRestServiceController
- PIVOT-10114 Deprecated methods from
IActivePivotContentService
for storing and retrieving context values have been removed with alternatives.
The related method#withContentValues
inActivePivotContentServiceBuilder
has also been removed.
The related constantActivePivotContentService#DIRECTORY_CONTEXT_VALUES
has also been removed and this directory is not created anymore in the Content Service.
Fixed
- PIVOT-7540 Fixed issue with nullable chunks and the
fill
method (some elements could stay null instead changed to the value passed tofill
). - PIVOT-9804 Fixed
importSubtree
method in classIContentService
. It was causing an issue when importing bookmarks from the UI. - PIVOT-9035 Do not throw when the update of an MDX stream is cancelled by the user.
- PIVOT-9051 Fixed an issue where query cube hierarchy dictionary content was inconsistent with the cluster view after a remote transaction.
- PIVOT-9177 Fixed error propagation from data cube to query cube when aggregates cache is enabled.
- PIVOT-9204 DirectQuery: Validation of aggregate tables takes the CubeFilter into consideration.
- 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-9590 DirectQuery: When using clustering fields, the preliminary distinct query uses the aggregate table instead of the base table whenever possible.
- PIVOT-9607 Fixed revertToVersion issue where last partitions were not reverted.
- PIVOT-9648 Fixed the error handling and failure propagation when distributed messages fail to be created and/or broadcast.
- PIVOT-9712 Speed up Mdx queries having calculated members with NULL as expression.
- PIVOT-9780 Fixed resizing error in
AggregatesStoreBindingCompiler
that could occur in cases of high concurrency in that class. - PIVOT-9786 Fixed bug in DrilldownMember that could cause a stack overflow when performing a recursive drilldown.
- PIVOT-9808 Fixed an issue where a transaction listener failure could cause the other listeners to not be called which leaves the application in an unrecoverable state.
- PIVOT-9874 Fixed the ALinkedVersionHistory#getHeads method when there is no branch yet.
- PIVOT-9911 Fix the
DrillDownMember
function. The drilldown can now be performed on a member that is directly followed by a descendant that is not one of its children. - PIVOT-9912 Fix unknown measure error with Copper switch measure.
- PIVOT-9927 Fixed an issue where checks on result expansion were too slow when the expansion hierarchy was heavily filtered.
- PIVOT-9951 Improve reports to
IMessageHandler
when an error occurs in the JDBC source. - PIVOT-9980 The
toString
implementation ofIGetAggregateQuery
objects can be truncated to avoid Out of Memory Errors. Extremely large query objects can be generated when using the MDXCrossJoin
function. - PIVOT-10013 The bucketing hierarchies should handle all measures as nullable.
- PIVOT-10030
ATimeLinePostProcessor#compute
has been fixed to properly iterate over the lines that have values for the associated streaming measure. It could, in some cases, also iterate over values ofContributors.COUNT
. - PIVOT-10033 The default value of the property
DEFAULT_BLOCK_SIZE_PROPERTY
(activeviam.vectors.defaultBlockSize
) no longer depends onDEFAULT_CHUNK_SIZE_PROPERTY
. Both of these properties now default to a value between 16K and 64K depending on the JVM memory size.
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.