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);
 }