From 8e7f88592810b9b382f712246507920fcd85ab37 Mon Sep 17 00:00:00 2001 From: Tim van Dijen <tvdijen@gmail.com> Date: Tue, 7 Sep 2021 13:25:00 +0200 Subject: [PATCH] Use new method to collect driver-name and use it to optimize query --- .../Metadata/MetaDataStorageHandlerPdo.php | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/lib/SimpleSAML/Metadata/MetaDataStorageHandlerPdo.php b/lib/SimpleSAML/Metadata/MetaDataStorageHandlerPdo.php index f662f5138..bbd5d99e3 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; } -- GitLab