diff --git a/apps/dav/appinfo/info.xml b/apps/dav/appinfo/info.xml index 6f5a085ef0576..438cde89b47c9 100644 --- a/apps/dav/appinfo/info.xml +++ b/apps/dav/appinfo/info.xml @@ -10,7 +10,7 @@ WebDAV WebDAV endpoint WebDAV endpoint - 1.32.0 + 1.32.1 agpl owncloud.org DAV diff --git a/apps/dav/composer/composer/autoload_classmap.php b/apps/dav/composer/composer/autoload_classmap.php index 2e878decb3f96..bc33183347207 100644 --- a/apps/dav/composer/composer/autoload_classmap.php +++ b/apps/dav/composer/composer/autoload_classmap.php @@ -340,6 +340,11 @@ 'OCA\\DAV\\Migration\\Version1029Date20231004091403' => $baseDir . '/../lib/Migration/Version1029Date20231004091403.php', 'OCA\\DAV\\Migration\\Version1030Date20240205103243' => $baseDir . '/../lib/Migration/Version1030Date20240205103243.php', 'OCA\\DAV\\Migration\\Version1031Date20240610134258' => $baseDir . '/../lib/Migration/Version1031Date20240610134258.php', + 'OCA\\DAV\\Migration\\Version1032Date20230630084412' => $baseDir . '/../lib/Migration/Version1032Date20230630084412.php', + 'OCA\\DAV\\Migration\\Version1032Date20230630091518' => $baseDir . '/../lib/Migration/Version1032Date20230630091518.php', + 'OCA\\DAV\\Migration\\Version1032Date20230702074215' => $baseDir . '/../lib/Migration/Version1032Date20230702074215.php', + 'OCA\\DAV\\Migration\\Version1032Date20230702074341' => $baseDir . '/../lib/Migration/Version1032Date20230702074341.php', + 'OCA\\DAV\\Migration\\Version1032Date20230702074342' => $baseDir . '/../lib/Migration/Version1032Date20230702074342.php', 'OCA\\DAV\\Profiler\\ProfilerPlugin' => $baseDir . '/../lib/Profiler/ProfilerPlugin.php', 'OCA\\DAV\\Provisioning\\Apple\\AppleProvisioningNode' => $baseDir . '/../lib/Provisioning/Apple/AppleProvisioningNode.php', 'OCA\\DAV\\Provisioning\\Apple\\AppleProvisioningPlugin' => $baseDir . '/../lib/Provisioning/Apple/AppleProvisioningPlugin.php', diff --git a/apps/dav/composer/composer/autoload_static.php b/apps/dav/composer/composer/autoload_static.php index 5f43453cda6a7..3759d3d41a900 100644 --- a/apps/dav/composer/composer/autoload_static.php +++ b/apps/dav/composer/composer/autoload_static.php @@ -355,6 +355,11 @@ class ComposerStaticInitDAV 'OCA\\DAV\\Migration\\Version1029Date20231004091403' => __DIR__ . '/..' . '/../lib/Migration/Version1029Date20231004091403.php', 'OCA\\DAV\\Migration\\Version1030Date20240205103243' => __DIR__ . '/..' . '/../lib/Migration/Version1030Date20240205103243.php', 'OCA\\DAV\\Migration\\Version1031Date20240610134258' => __DIR__ . '/..' . '/../lib/Migration/Version1031Date20240610134258.php', + 'OCA\\DAV\\Migration\\Version1032Date20230630084412' => __DIR__ . '/..' . '/../lib/Migration/Version1032Date20230630084412.php', + 'OCA\\DAV\\Migration\\Version1032Date20230630091518' => __DIR__ . '/..' . '/../lib/Migration/Version1032Date20230630091518.php', + 'OCA\\DAV\\Migration\\Version1032Date20230702074215' => __DIR__ . '/..' . '/../lib/Migration/Version1032Date20230702074215.php', + 'OCA\\DAV\\Migration\\Version1032Date20230702074341' => __DIR__ . '/..' . '/../lib/Migration/Version1032Date20230702074341.php', + 'OCA\\DAV\\Migration\\Version1032Date20230702074342' => __DIR__ . '/..' . '/../lib/Migration/Version1032Date20230702074342.php', 'OCA\\DAV\\Profiler\\ProfilerPlugin' => __DIR__ . '/..' . '/../lib/Profiler/ProfilerPlugin.php', 'OCA\\DAV\\Provisioning\\Apple\\AppleProvisioningNode' => __DIR__ . '/..' . '/../lib/Provisioning/Apple/AppleProvisioningNode.php', 'OCA\\DAV\\Provisioning\\Apple\\AppleProvisioningPlugin' => __DIR__ . '/..' . '/../lib/Provisioning/Apple/AppleProvisioningPlugin.php', diff --git a/apps/dav/lib/Migration/Version1032Date20230630084412.php b/apps/dav/lib/Migration/Version1032Date20230630084412.php new file mode 100644 index 0000000000000..57b97e6489acf --- /dev/null +++ b/apps/dav/lib/Migration/Version1032Date20230630084412.php @@ -0,0 +1,75 @@ +connection->getQueryBuilder(); + $query->delete('properties') + ->where($query->expr()->eq('valuetype', $query->createNamedParameter(3))) + ->executeStatement(); + } + + /** + * @param IOutput $output + * @param Closure(): ISchemaWrapper $schemaClosure + * @param array $options + * @return null|ISchemaWrapper + */ + public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper { + /** @var ISchemaWrapper $schema */ + $schema = $schemaClosure(); + $propertiesTable = $schema->getTable('properties'); + if ($propertiesTable->hasColumn('propertyvaluenew')) { + return null; + } + $propertiesTable->addColumn('propertyvaluenew', Types::TEXT, [ + 'notnull' => false + ]); + + return $schema; + } + + /** + * @param IOutput $output + * @param Closure(): ISchemaWrapper $schemaClosure + * @param array $options + */ + public function postSchemaChange(IOutput $output, Closure $schemaClosure, array $options): void { + $query = $this->connection->getQueryBuilder(); + $query->update('properties') + ->set('propertyvaluenew', 'propertyvalue') + ->executeStatement(); + } +} diff --git a/apps/dav/lib/Migration/Version1032Date20230630091518.php b/apps/dav/lib/Migration/Version1032Date20230630091518.php new file mode 100644 index 0000000000000..176bf4e906f59 --- /dev/null +++ b/apps/dav/lib/Migration/Version1032Date20230630091518.php @@ -0,0 +1,54 @@ +getTable('properties'); + + $propertiesTable->dropColumn('propertyvalue'); + + return $schema; + } + + /** + * @param IOutput $output + * @param Closure(): ISchemaWrapper $schemaClosure + * @param array $options + */ + public function postSchemaChange(IOutput $output, Closure $schemaClosure, array $options): void { + } +} diff --git a/apps/dav/lib/Migration/Version1032Date20230702074215.php b/apps/dav/lib/Migration/Version1032Date20230702074215.php new file mode 100644 index 0000000000000..17d97c607d1a5 --- /dev/null +++ b/apps/dav/lib/Migration/Version1032Date20230702074215.php @@ -0,0 +1,67 @@ +getTable('properties'); + $propertiesTable->addColumn('propertyvalue', Types::BLOB, [ + 'notnull' => false + ]); + return $schema; + } + + /** + * @param IOutput $output + * @param Closure(): ISchemaWrapper $schemaClosure + * @param array $options + */ + public function postSchemaChange(IOutput $output, Closure $schemaClosure, array $options): void { + if ($this->connection->getDatabasePlatform() instanceof PostgreSQLPlatform) { + $this->connection->executeStatement('UPDATE `*prefix*properties` SET `propertyvalue` = propertyvaluenew::bytea'); + } else { + $query = $this->connection->getQueryBuilder(); + $query->update('properties') + ->set('propertyvalue', 'propertyvaluenew') + ->executeStatement(); + } + } +} diff --git a/apps/dav/lib/Migration/Version1032Date20230702074341.php b/apps/dav/lib/Migration/Version1032Date20230702074341.php new file mode 100644 index 0000000000000..778787fba49a6 --- /dev/null +++ b/apps/dav/lib/Migration/Version1032Date20230702074341.php @@ -0,0 +1,54 @@ +getTable('properties'); + $propertiesTable->changeColumn('propertyvalue', [ + 'notnull' => true + ]); + $propertiesTable->dropColumn('propertyvaluenew'); + return $schema; + } + + /** + * @param IOutput $output + * @param Closure(): ISchemaWrapper $schemaClosure + * @param array $options + */ + public function postSchemaChange(IOutput $output, Closure $schemaClosure, array $options): void { + } +} diff --git a/apps/dav/lib/Migration/Version1032Date20230702074342.php b/apps/dav/lib/Migration/Version1032Date20230702074342.php new file mode 100644 index 0000000000000..7ba84d1f80113 --- /dev/null +++ b/apps/dav/lib/Migration/Version1032Date20230702074342.php @@ -0,0 +1,61 @@ +getTable('properties'); + + // Indexes can't be added on columns with such length, so we drop them here before recreating them + $propertiesTable->dropIndex('properties_path_index'); + $propertiesTable->dropIndex('properties_pathonly_index'); + + $propertyValueColumn = $propertiesTable->getColumn('propertypath'); + $propertyValueColumn->setLength(4000); + + $propertiesTable->addIndex(['userid', 'propertypath'], 'properties_path_idx_prefix', [], ['lengths' => [null, 64]]); + $propertiesTable->addIndex(['propertypath'], 'properties_pathonly_idx_prefix', [], ['lengths' => [64]]); + + return $schema; + } + + /** + * @param IOutput $output + * @param Closure(): ISchemaWrapper $schemaClosure + * @param array $options + */ + public function postSchemaChange(IOutput $output, Closure $schemaClosure, array $options): void { + } +}