public function updateColumn(DataControllerCallContext $callcontext, DatasetMetaData $dataset, $columnName) {
        parent::updateColumn($callcontext, $dataset, $columnName);

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

        $node = node_load($this->getColumn_NID($dataset, $columnName));

        $node->title = $newColumn->publicName;
        $node->field_column_desc[$node->language][0]['value'] = $newColumn->description;

        // 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);
        $node->field_column_persistence[$node->language][0]['value'] = $newColumn->persistence;

        $node->field_column_key[$node->language][0]['value'] = $newColumn->isKey() ? 1 : 0;
        $node->field_column_source[$node->language][0]['value'] = $newColumn->source;
        $node->status = $newColumn->isUsed() ? NODE_PUBLISHED : NODE_NOT_PUBLISHED;

        node_save($node);
    }
    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);
    }