public static function deinitializeByColumn(CubeMetaData $cube, DatasetMetaData $dataset, $columnName) { $metamodel = data_controller_get_metamodel(); $column = $dataset->getColumn($columnName); $handler = DimensionLookupFactory::getInstance()->getHandler($column->type->getLogicalApplicationType()); $handler->unprepareDimension($metamodel, $dataset, $column->name); // removing dimension $dimension = $cube->unregisterDimension($columnName); // removing measure which counts unique values $attributeName = ParameterNameHelper::assemble($dimension->name); $measureName = StarSchemaNamingConvention::getAttributeRelatedMeasureName($attributeName, StarSchemaNamingConvention::$MEASURE_NAME_SUFFIX__DISTINCT_COUNT); $measure = $cube->findMeasure($measureName); if (isset($measure)) { $cube->unregisterMeasure($measureName); } self::deinitializeColumnMeasures($cube, $dataset, $columnName); }