VirtualBox

source: vbox/trunk/src/VBox/ValidationKit/testmanager/core/globalresource.pgsql@ 84352

Last change on this file since 84352 was 82968, checked in by vboxsync, 5 years ago

Copyright year updates by scm.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 4.1 KB
Line 
1-- $Id: globalresource.pgsql 82968 2020-02-04 10:35:17Z vboxsync $
2--- @file
3-- VBox Test Manager Database Stored Procedures.
4--
5
6--
7-- Copyright (C) 2006-2020 Oracle Corporation
8--
9-- This file is part of VirtualBox Open Source Edition (OSE), as
10-- available from http://www.virtualbox.org. This file is free software;
11-- you can redistribute it and/or modify it under the terms of the GNU
12-- General Public License (GPL) as published by the Free Software
13-- Foundation, in version 2 as it comes in the "COPYING" file of the
14-- VirtualBox OSE distribution. VirtualBox OSE is distributed in the
15-- hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
16--
17-- The contents of this file may alternatively be used under the terms
18-- of the Common Development and Distribution License Version 1.0
19-- (CDDL) only, as it comes in the "COPYING.CDDL" file of the
20-- VirtualBox OSE distribution, in which case the provisions of the
21-- CDDL are applicable instead of those of the GPL.
22--
23-- You may elect to license modified versions of this file under the
24-- terms and conditions of either the GPL or the CDDL or both.
25--
26
27\set ON_ERROR_STOP 1
28\connect testmanager;
29
30-- Args: uidAuthor, sName, sDescription, fEnabled
31CREATE OR REPLACE function add_globalresource(integer, text, text, bool) RETURNS integer AS $$
32 DECLARE
33 _idGlobalRsrc integer;
34 _uidAuthor ALIAS FOR $1;
35 _sName ALIAS FOR $2;
36 _sDescription ALIAS FOR $3;
37 _fEnabled ALIAS FOR $4;
38 BEGIN
39 -- Check if Global Resource name is unique
40 IF EXISTS(SELECT * FROM GlobalResources
41 WHERE sName=_sName AND
42 tsExpire='infinity'::timestamp) THEN
43 RAISE EXCEPTION 'Duplicate Global Resource name';
44 END IF;
45 INSERT INTO GlobalResources (uidAuthor, sName, sDescription, fEnabled)
46 VALUES (_uidAuthor, _sName, _sDescription, _fEnabled) RETURNING idGlobalRsrc INTO _idGlobalRsrc;
47 RETURN _idGlobalRsrc;
48 END;
49$$ LANGUAGE plpgsql;
50
51-- Args: uidAuthor, idGlobalRsrc
52CREATE OR REPLACE function del_globalresource(integer, integer) RETURNS VOID AS $$
53 DECLARE
54 _uidAuthor ALIAS FOR $1;
55 _idGlobalRsrc ALIAS FOR $2;
56 BEGIN
57
58 -- Check if record exist
59 IF NOT EXISTS(SELECT * FROM GlobalResources WHERE idGlobalRsrc=_idGlobalRsrc AND tsExpire='infinity'::timestamp) THEN
60 RAISE EXCEPTION 'Global resource (%) does not exist', _idGlobalRsrc;
61 END IF;
62
63 -- Historize record: GlobalResources
64 UPDATE GlobalResources
65 SET tsExpire=CURRENT_TIMESTAMP,
66 uidAuthor=_uidAuthor
67 WHERE idGlobalRsrc=_idGlobalRsrc AND
68 tsExpire='infinity'::timestamp;
69
70
71 -- Delete record: GlobalResourceStatuses
72 DELETE FROM GlobalResourceStatuses WHERE idGlobalRsrc=_idGlobalRsrc;
73
74 -- Historize record: TestCaseGlobalRsrcDeps
75 UPDATE TestCaseGlobalRsrcDeps
76 SET tsExpire=CURRENT_TIMESTAMP,
77 uidAuthor=_uidAuthor
78 WHERE idGlobalRsrc=_idGlobalRsrc AND
79 tsExpire='infinity'::timestamp;
80
81 END;
82$$ LANGUAGE plpgsql;
83
84-- Args: uidAuthor, idGlobalRsrc, sName, sDescription, fEnabled
85CREATE OR REPLACE function update_globalresource(integer, integer, text, text, bool) RETURNS VOID AS $$
86 DECLARE
87 _uidAuthor ALIAS FOR $1;
88 _idGlobalRsrc ALIAS FOR $2;
89 _sName ALIAS FOR $3;
90 _sDescription ALIAS FOR $4;
91 _fEnabled ALIAS FOR $5;
92 BEGIN
93 -- Hostorize record
94 UPDATE GlobalResources
95 SET tsExpire=CURRENT_TIMESTAMP
96 WHERE idGlobalRsrc=_idGlobalRsrc AND
97 tsExpire='infinity'::timestamp;
98 -- Check if Global Resource name is unique
99 IF EXISTS(SELECT * FROM GlobalResources
100 WHERE sName=_sName AND
101 tsExpire='infinity'::timestamp) THEN
102 RAISE EXCEPTION 'Duplicate Global Resource name';
103 END IF;
104 -- Add new record
105 INSERT INTO GlobalResources(uidAuthor, idGlobalRsrc, sName, sDescription, fEnabled)
106 VALUES (_uidAuthor, _idGlobalRsrc, _sName, _sDescription, _fEnabled);
107 END;
108$$ LANGUAGE plpgsql;
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette