public function createColumnStorage(DataControllerCallContext $callcontext, DataSourceStructureHandler $datasourceStructureHandler, DatasetMetaData $dataset, $columnName, $stage) {
        parent::createColumnStorage($callcontext, $datasourceStructureHandler, $dataset, $columnName, $stage);

        if ($stage == DatasetStorageObserver::STAGE__AFTER) {
            $newLogicalColumn = $this->newLogicalDataset->getColumn($columnName);
            $newColumn = $dataset->getColumn($columnName);

            $newLogicalColumn->persistence = $newColumn->persistence;

            $handler = DimensionFactory::getInstance()->getHandler($newLogicalColumn->type->getLogicalApplicationType());
            $handler->createDimensionStorage($callcontext, $datasourceStructureHandler, $this->newLogicalDataset, $columnName);
        }
    }
    public function createColumnStorage(DataControllerCallContext $callcontext, DataSourceStructureHandler $datasourceStructureHandler, DatasetMetaData $dataset, $columnName, $stage) {
        parent::createColumnStorage($callcontext, $datasourceStructureHandler, $dataset, $columnName, $stage);

        if ($stage == DatasetStorageObserver::STAGE__AFTER) {
            $environment_metamodel = data_controller_get_environment_metamodel();

            $newLogicalColumn = $this->newLogicalDataset->getColumn($columnName);
            $newColumn = $dataset->getColumn($columnName);

            $datasource = $environment_metamodel->getDataSource($dataset->datasourceName);
            $datasourceQueryHandler = DataSourceQueryFactory::getInstance()->getHandler($datasource->type);

            $generator = new FunctionDateDimensionMetaDataGenerator($datasourceQueryHandler);
            $generator->generate($newLogicalColumn);
            $generator->generate($newColumn);
        }
    }
    public function createColumnStorage(DataControllerCallContext $callcontext, DataSourceStructureHandler $datasourceStructureHandler, DatasetMetaData $dataset, $columnName, $stage) {
        parent::createColumnStorage($callcontext, $datasourceStructureHandler, $dataset, $columnName, $stage);

        $newLogicalColumn = $this->newLogicalDataset->getColumn($columnName);

        $node = node_load($this->getColumn_NID($dataset, $columnName));
        switch ($stage) {
            case DatasetStorageObserver::STAGE__BEFORE:
                // Note: storing logical data type for the column
                $node->field_column_datatype[$node->language][0]['value'] = $newLogicalColumn->type->applicationType;
                $node->field_column_format[$node->language][0]['value'] = gd_column_prepare_column_format($newLogicalColumn->type);
                break;
            case DatasetStorageObserver::STAGE__AFTER:
                $newColumn = $dataset->getColumn($columnName);

                $node->field_column_persistence[$node->language][0]['value'] = $newColumn->persistence;
                $node->status = $newColumn->isUsed() ? NODE_PUBLISHED : NODE_NOT_PUBLISHED;
                break;
        }
        node_save($node);
    }