Select Git revision
insertFSODescriptor.sql
-
Timm Fitschen authoredTimm Fitschen authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
insertFSODescriptor.sql 2.17 KiB
/*
* 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 ;