diff --git a/lib/SimpleSAML/Metadata/MetaDataStorageHandlerPdo.php b/lib/SimpleSAML/Metadata/MetaDataStorageHandlerPdo.php index f662f5138e5caa39054f7eae0e4f3ebee99f5057..bbd5d99e3a7b2c8d1dcd11b77d2cf7901659e1d4 100644 --- a/lib/SimpleSAML/Metadata/MetaDataStorageHandlerPdo.php +++ b/lib/SimpleSAML/Metadata/MetaDataStorageHandlerPdo.php @@ -279,18 +279,28 @@ class MetaDataStorageHandlerPdo extends MetaDataStorageSource { $stmt = 0; $fine = true; + $driver = $this->db->getDriver(); + + $text = 'TEXT'; + if ($driver === 'mysql') { + $text = 'MEDIUMTEXT'; + } + foreach ($this->supportedSets as $set) { $tableName = $this->getTableName($set); - $rows = $this->db->write( - "CREATE TABLE IF NOT EXISTS $tableName (entity_id VARCHAR(255) PRIMARY KEY NOT NULL, entity_data " . - "TEXT NOT NULL)" - ); + $rows = $this->db->write(sprintf( + "CREATE TABLE IF NOT EXISTS $tableName (entity_id VARCHAR(255) PRIMARY KEY NOT NULL, " + . "entity_data %s NOT NULL)", + $text + )); + if ($rows === false) { $fine = false; } else { $stmt += $rows; } } + if (!$fine) { return false; }