Skip to content

Commit 06c2c0c

Browse files
committed
Separated T4SQL.PUB_REF package for Oracle privilege convenience
1 parent e78df3a commit 06c2c0c

File tree

10 files changed

+82
-17
lines changed

10 files changed

+82
-17
lines changed

T4SQLTemplateLibrary/Databases/Oracle/T4SQLDB/Scripts/Privileges.sql renamed to T4SQLTemplateLibrary/Databases/Oracle/T4SQLDB/Scripts/0-Privileges.sql

File renamed without changes.

T4SQLTemplateLibrary/Databases/Oracle/T4SQLDB/Scripts/4-Packages/01-META.pck

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -314,15 +314,15 @@ PROCEDURE CREATE_WORKITEM_TRIGGER
314314
(
315315
inWorkitem_Table VARCHAR2
316316
) AS
317-
-- tSchema_Name VARCHAR2(22) := PARSENAME(inWorkitem_Table, 2);
317+
tSchema_Name VARCHAR2(22) := PARSENAME(inWorkitem_Table, 2);
318318
tTable_Name VARCHAR2(22) := PARSENAME(inWorkitem_Table, 1);
319319
BEGIN
320-
EXECUTE_AUTONOMOUS('CREATE OR REPLACE TRIGGER TRG_' || tTable_Name || '_IU
320+
EXECUTE_AUTONOMOUS('CREATE OR REPLACE TRIGGER '|| tSchema_Name || '.TRG_' || tTable_Name || '_IU
321321
AFTER INSERT OR UPDATE ON ' || inWorkitem_Table || '
322322
FOR EACH ROW
323323
BEGIN
324-
T4SQL.META.COPY_PROPERTY_DEFAULT(DBMS_UTILITY.FORMAT_CALL_STACK, :new.WORKITEM_NAME, :new.TEMPLATE_NAME);
325-
END');
324+
T4SQL.PUB_REF.COPY_PROPERTY_DEFAULT(DBMS_UTILITY.FORMAT_CALL_STACK, :new.WORKITEM_NAME, :new.TEMPLATE_NAME);
325+
END;');
326326
END CREATE_WORKITEM_TRIGGER;
327327

328328

@@ -382,7 +382,7 @@ PROCEDURE CREATE_WORKSPACE
382382
tQualified_Property VARCHAR2(45);
383383
BEGIN
384384
IF tWorkitem_Schema IS NULL OR tProperty_Schema IS NULL THEN
385-
RAISE_APPLICATION_ERROR(-21741, 'Schema must be specified in qualified table name');
385+
RAISE_APPLICATION_ERROR(-20741, 'Schema must be specified in qualified table name');
386386
END IF;
387387

388388
IF LENGTH(tWorkitem_Table) > 22 THEN
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
CREATE OR REPLACE PACKAGE T4SQL.PUB_REF IS
2+
3+
----------------------------------------------------------------------------------------------------
4+
--
5+
-- Copyright 2013 Abel Cheng
6+
-- This source code is subject to terms and conditions of the Apache License, Version 2.0.
7+
-- See http://www.apache.org/licenses/LICENSE-2.0.
8+
-- All other rights reserved.
9+
-- You must not remove this notice, or any other, from this software.
10+
--
11+
-- Original Author: Abel Cheng <[email protected]>
12+
-- Created Date: ‎November ‎12, 2013, 9:39:35 PM
13+
-- Primary Host: http://t4sql.codeplex.com
14+
-- Change Log:
15+
-- Author Date Comment
16+
--
17+
--
18+
--
19+
--
20+
-- (Keep code clean rather than complicated code plus long comments.)
21+
--
22+
----------------------------------------------------------------------------------------------------
23+
24+
PROCEDURE COPY_PROPERTY_DEFAULT
25+
(
26+
inCall_Stack VARCHAR2, -- DBMS_UTILITY.FORMAT_CALL_STACK
27+
inWorkitem_Name VARCHAR2,
28+
inTemplate_Name VARCHAR2
29+
);
30+
31+
END PUB_REF;
32+
/
33+
CREATE OR REPLACE PACKAGE BODY T4SQL.PUB_REF IS
34+
35+
36+
PROCEDURE COPY_PROPERTY_DEFAULT
37+
(
38+
inCall_Stack VARCHAR2, -- DBMS_UTILITY.FORMAT_CALL_STACK
39+
inWorkitem_Name VARCHAR2,
40+
inTemplate_Name VARCHAR2
41+
) AS
42+
BEGIN
43+
T4SQL.META.COPY_PROPERTY_DEFAULT(inCall_Stack, inWorkitem_Name, inTemplate_Name);
44+
END COPY_PROPERTY_DEFAULT;
45+
46+
47+
END PUB_REF;
48+
/

T4SQLTemplateLibrary/Databases/Oracle/T4SQLDB/Scripts/5-Triggers/02-TRG_WORKSPACE_ENTRY_DEL.trg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ BEFORE DELETE ON T4SQL.WORKSPACE_ENTRY
33
FOR EACH ROW
44
BEGIN
55
IF :old.WORKITEM_TABLE_NAME = 'T4SQL.SEED_WORKITEM' AND :old.PROPERTY_TABLE_NAME = 'T4SQL.SEED_PROPERTY' THEN
6-
RAISE_APPLICATION_ERROR(-21001, 'Built-in workspace T4SQL.SEED_... cannot be deleted!');
6+
RAISE_APPLICATION_ERROR(-20101, 'Built-in workspace T4SQL.SEED_... cannot be deleted!');
77
END IF;
88
END;
99

T4SQLTemplateLibrary/Databases/Oracle/T4SQLDB/Scripts/5-Triggers/03-TRG_WORKSPACE_ENTRY_INS.trg

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ DECLARE
88
tProperty_Table VARCHAR2(30) := T4SQL.META.PARSENAME(:new.PROPERTY_TABLE_NAME, 1);
99
BEGIN
1010
IF tWorkitem_Schema IS NULL OR tProperty_Schema IS NULL THEN
11-
RAISE_APPLICATION_ERROR(-21741, 'Schema must be specified in qualified table name');
11+
RAISE_APPLICATION_ERROR(-20741, 'Schema must be specified in qualified table name');
1212
END IF;
1313

1414
IF LENGTH(tWorkitem_Table) > 22 THEN
@@ -29,7 +29,7 @@ BEGIN
2929

3030
IF UPDATING AND :old.WORKITEM_TABLE_NAME = 'T4SQL.SEED_WORKITEM' AND :old.PROPERTY_TABLE_NAME = 'T4SQL.SEED_PROPERTY'
3131
AND (:new.WORKITEM_TABLE_NAME <> 'T4SQL.SEED_WORKITEM' OR :new.PROPERTY_TABLE_NAME <> 'T4SQL.SEED_PROPERTY') THEN
32-
RAISE_APPLICATION_ERROR(-21001, 'Built-in workspace T4SQL.SEED_... cannot be removed!');
32+
RAISE_APPLICATION_ERROR(-20101, 'Built-in workspace T4SQL.SEED_... cannot be removed!');
3333
END IF;
3434

3535
:new.WORKITEM_TABLE_NAME := tWorkitem_Schema || '.' || tWorkitem_Table;
@@ -38,7 +38,7 @@ BEGIN
3838
-- Compare new workspace with SEED workspace to check compatibility of table definitions.
3939
IF NOT T4SQL.META.MATCH_TABLE_DEFINITION('T4SQL', 'SEED_WORKITEM', tWorkitem_Schema, tWorkitem_Table) OR
4040
NOT T4SQL.META.MATCH_TABLE_DEFINITION('T4SQL', 'SEED_PROPERTY', tProperty_Schema, tProperty_Table) THEN
41-
RAISE_APPLICATION_ERROR(-21002, 'Tables definition of add-in workspace is not compatible with built-in workspace T4SQL.SEED_...!');
41+
RAISE_APPLICATION_ERROR(-20102, 'Tables definition of add-in workspace is not compatible with built-in workspace T4SQL.SEED_...!');
4242
END IF;
4343

4444
IF INSERTING THEN
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
GRANT SELECT ON T4SQL.UTL_ORDINAL_NUMBER TO PUBLIC;
2+
GRANT SELECT ON T4SQL.VW_ORDINAL_DATE TO PUBLIC;
3+
GRANT SELECT ON T4SQL.VW_ORDINAL_NUMBER_EXPANSION TO PUBLIC;
4+
GRANT SELECT ON T4SQL.TEMPLATE_CLASS TO PUBLIC;
5+
GRANT SELECT ON T4SQL.TEMPLATE_SPEC TO PUBLIC;
6+
7+
GRANT REFERENCES ON T4SQL.TEMPLATE_CLASS TO PUBLIC;
8+
GRANT EXECUTE ON T4SQL.PUB_REF TO PUBLIC;

T4SQLTemplateLibrary/Databases/Oracle/T4SQLDB/T4SQLDB.modelproj

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,9 @@
6969
<Content Include="Scripts\4-Packages\03-CMD.pck">
7070
<SubType>Content</SubType>
7171
</Content>
72+
<Content Include="Scripts\4-Packages\04-PUB_REF.pck">
73+
<SubType>Content</SubType>
74+
</Content>
7275
<Content Include="Scripts\5-Triggers\01-TRG_SEED_WORKITEM_IU.sql">
7376
<SubType>Content</SubType>
7477
</Content>
@@ -90,7 +93,10 @@
9093
<Content Include="Scripts\6-InitData\04-VW_SEED_PROPERTY.sql">
9194
<SubType>Content</SubType>
9295
</Content>
93-
<Content Include="Scripts\Privileges.sql">
96+
<Content Include="Scripts\0-Privileges.sql">
97+
<SubType>Content</SubType>
98+
</Content>
99+
<Content Include="Scripts\7-Privileges.sql">
94100
<SubType>Content</SubType>
95101
</Content>
96102
<Folder Include="ModelDefinition\" />

T4SQLTemplateLibrary/Databases/Oracle/Test/Scripts/Privileges.sql

Lines changed: 0 additions & 1 deletion
This file was deleted.

T4SQLTemplateLibrary/Databases/Oracle/Test/Test.modelproj

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,6 @@
2424
<Content Include="Scripts\2-InitData\1-CreateSampleWorkspace.sql">
2525
<SubType>Content</SubType>
2626
</Content>
27-
<Content Include="Scripts\Privileges.sql">
28-
<SubType>Content</SubType>
29-
</Content>
3027
<Folder Include="ModelDefinition\" />
3128
<Content Include="ModelDefinition\Test.uml">
3229
<SubType>Content</SubType>

T4SQLTemplateLibrary/Databases/SqlServer/Schema Objects/Schemas/T4SQL/Programmability/Stored Procedures/T4SQL.META_CREATE_WORKITEM_TRIGGER.proc.sql

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
)
55
AS
66
SET NOCOUNT ON;
7-
DECLARE @tDdlSql NVARCHAR(1024);
7+
DECLARE @tDdlSql NVARCHAR(1024), @tSchema NVARCHAR(64);
88

99
IF NOT EXISTS
1010
(
@@ -18,7 +18,14 @@ AS
1818
AND T.parent_class = 1
1919
)
2020
BEGIN
21-
SET @tDdlSql = N'CREATE TRIGGER TRG_' + PARSENAME(@inWorkitem_Table, 1) + N'_INS
21+
SET @tSchema = PARSENAME(@inWorkitem_Table, 2);
22+
23+
IF @tSchema IS NULL
24+
SET @tSchema = N''
25+
ELSE
26+
SET @tSchema = @tSchema + N'.';
27+
28+
SET @tDdlSql = N'CREATE TRIGGER ' + @tSchema + 'TRG_' + PARSENAME(@inWorkitem_Table, 1) + N'_IU
2229
ON ' + @inWorkitem_Table + N'
2330
AFTER INSERT, UPDATE
2431
AS
@@ -30,7 +37,7 @@ BEGIN
3037
SELECT I.WORKITEM_NAME, I.TEMPLATE_NAME FROM inserted I;
3138
3239
EXEC T4SQL.META_COPY_PROPERTY_DEFAULT @@PROCID, @tWorkitems;
33-
END';
40+
END;';
3441

3542
EXECUTE (@tDdlSql);
3643
END;

0 commit comments

Comments
 (0)