public function getName()
    {
        if ($this->indexName === null) {
            try {
                // generate an index name if we don't have a supplied one
                $this->createName();
            } catch (EngineException $e) {
                // still no name
            }
        }
        if ($database = $this->getTable()->getDatabase()) {
            return substr($this->indexName, 0, $database->getPlatform()->getMaxColumnNameLength());
        } else {
            return $this->indexName;
        }
    }