/* * This file is a part of the CaosDB Project. * * Copyright (C) 2021 IndiScale GmbH <info@indiscale.com> * Copyright (C) 2021 Timm Fitschen <t.fitschen@indiscale> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. */ DROP PROCEDURE IF EXISTS db_5_0.insertFSODescriptor; delimiter // /** * Insert a FSODescriptor * * Parameters * ---------- * FileID * The entity's id. * FileHash * The SHA512 Hash of the file (or NULL for directories). * FileCheckedTimestamp * The timestamp when the hash was last checked. * FileSize * The byte size (or NULL for directories). * FilePath * The path of the object. * FileMimetype * The mimetype (use "inode/directory" for directories, use NULL for unknown) * FileStorageID * The ID of the back-end file storage where this object is located. * FileKey * The file storage key of this object. * FileParentID * The entity id of the parent directory (or NULL). */ CREATE PROCEDURE db_5_0.insertFSODescriptor( in FileID INT UNSIGNED, in FileHash VARCHAR(255), in FileCheckedTimestamp BIGINT, in FileSize BIGINT UNSIGNED, in FilePath VARCHAR(5000), in FileMimetype VARBINARY(255), in FileStorageID VARBINARY(255), in FileKey VARBINARY(40000), in FileParentID INT UNSIGNED ) BEGIN INSERT INTO files (file_id, parent_directory, hash, checked_timestamp, size, path, mimetype, file_storage_id, file_key) VALUES (FileID, FileParentID, unhex(FileHash), FileCheckedTimestamp, FileSize, FilePath, FileMimetype, FileStorageID, FileKey); END; // delimiter ;