Skip to content
Snippets Groups Projects
Select Git revision
  • d3d5c099728f5683bebffd43290d2f09e6bf861a
  • main default protected
  • dev protected
  • f-linkahead-rename
  • f-real-id
  • f-filesystem-import
  • f-filesystem-link
  • f-filesystem-directory
  • f-filesystem-core
  • f-filesystem-cleanup
  • f-filesystem-main
  • f-name
  • keep_changes
  • f-permission-checks-2
  • f-mysql8-tests
  • f-retrieve-history
  • t-distinct-parents
  • v8.1.0
  • v8.0.0
  • v7.0.2
  • v7.0.1
  • v7.0.0
  • v6.0.1
  • v6.0.0
  • v5.0.0
  • v4.1.0
  • v4.0.0
  • v3.0
  • v2.0.30
29 results

versioning.sql

Blame
  • 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 ;