github.com/voedger/voedger@v0.0.0-20240520144910-273e84102129/pkg/appdefcompat/sql/sys.new.vsql (about) 1 -- noinspection SqlNoDataSourceInspectionForFile 2 3 -- Copyright (c) 2020-present unTill Pro, Ltd. 4 5 -- note: this schema is for tests only. Voedger sys package uses copy of this schema 6 IMPORT SCHEMA 'pkg1' AS pkg2; 7 IMPORT SCHEMA 'pkg2' AS pkg1; 8 9 APPLICATION TEST( 10 USE pkg1; 11 USE pkg2; 12 ); 13 14 ABSTRACT TABLE CRecord(); 15 ABSTRACT TABLE WRecord(); 16 ABSTRACT TABLE ORecord(); 17 18 ABSTRACT TABLE CDoc INHERITS CRecord(); 19 ABSTRACT TABLE ODoc INHERITS ORecord(); 20 ABSTRACT TABLE WDoc INHERITS WRecord(); 21 22 ABSTRACT TABLE Singleton INHERITS CDoc(); 23 24 WORKSPACE Workspace ( -- ValueChanged: Abstract flag must not be changed 25 ); 26 27 WORKSPACE SomeWorkspace( 28 USE TABLE pkg1.*; 29 USE TABLE pkg2.*; 30 TYPE CreateLoginUnloggedParams( 31 Password varchar, -- OrderChanged 32 Email varchar --OrderChanged 33 ); 34 TYPE CreateLoginParams( 35 --Login varchar, -- NodeRemoved 36 AppName varchar, 37 SubjectKind int32, 38 WSKindInitializationData varchar(1024), 39 ProfileCluster int64, -- ValueChanged: int32 in old version, int64 in new version 40 ProfileToken int64, -- ValueChanged: int32 in old version, int64 in new version 41 myfield1 ref(pkg1.MyTable1), 42 myfield2 ref(pkg2.MyTable1), 43 NewField varchar -- appending field is allowed 44 ); 45 TABLE OneMoreTable INHERITS CDoc( 46 A varchar, 47 B varchar, 48 C int32, 49 UNIQUE (A, B) -- allowed to reorder fields in unique constraint 50 ); 51 TABLE AnotherOneTable INHERITS CDoc( 52 A varchar, 53 B varchar, 54 D varchar, -- NodeInserted 55 C int32, -- OrderChanged, ValueChanged: varchar in old version, int32 in new version, field's index is changed 56 UNIQUE (A, B, D) -- NodeModified: added field D to UniqueFields 57 ); 58 TYPE SomeType( 59 A varchar, 60 B int 61 ); 62 TYPE SomeType2( 63 A varchar, 64 B int, 65 C int, 66 D int 67 ); 68 VIEW SomeView( 69 A int, 70 B varchar, -- ValueChanged: field B was changed as a part of ClustColsFields 71 C int, -- actual error raises in primary key 72 D int, -- order of this field is not changed because it is value field 73 E varchar, -- ValueChanged: field E was changed as a part of value fields 74 F int, -- appending field is allowed to value fields 75 PRIMARY KEY ((A, C), B) -- NodeModified: added field C to PartKeyFields 76 ) AS RESULT OF Proj1; 77 TABLE NewTable INHERITS CDoc( 78 A varchar 79 ); 80 TYPE NewType( -- new type is allowed 81 A varchar 82 ); 83 TYPE NewType2( -- new type is allowed 84 A varchar, 85 B int32 86 ); 87 VIEW NewView( -- new view is allowed 88 A int, 89 B int, 90 PRIMARY KEY ((A), B) 91 ) AS RESULT OF Proj1; 92 TABLE O_Doc INHERITS ODoc ( 93 Fld1 int32, 94 Fld2 int64 -- field added, the doc is an arg of c.sys.CmdODoc -> no problem becuase the field is not required 95 ); 96 EXTENSION ENGINE BUILTIN ( 97 PROJECTOR Proj1 AFTER EXECUTE ON (Orders) INTENTS (View(SomeView), View(NewView)); 98 COMMAND Orders(); 99 COMMAND CreateLogin(CreateLoginParams, UNLOGGED CreateLoginUnloggedParams) RETURNS void; 100 COMMAND SomeCommand(SomeType2, UNLOGGED SomeType2) RETURNS SomeType2; -- args, unloggedArgs and result are changed -> deny, clietn will fail to call the cmd he just called 101 COMMAND NewCommand(NewType, UNLOGGED NewType2) RETURNS NewType; 102 QUERY NewQuery(NewType) RETURNS NewType; -- new query is allowed 103 QUERY SomeQuery(SomeType2) RETURNS SomeType2; -- changing args and return type is allowed 104 COMMAND CmdODoc(O_Doc); 105 ) 106 ); 107 108 ALTERABLE WORKSPACE Profile( 109 110 ); 111 112 EXTENSION ENGINE BUILTIN ( 113 114 STORAGE Record( 115 GET SCOPE(COMMANDS, QUERIES, PROJECTORS), 116 GETBATCH SCOPE(COMMANDS, QUERIES, PROJECTORS), 117 INSERT SCOPE(COMMANDS), 118 UPDATE SCOPE(COMMANDS) 119 ) ENTITY RECORD; -- used to validate projector state/intents declaration 120 121 122 STORAGE View( 123 GET SCOPE(COMMANDS, QUERIES, PROJECTORS), 124 GETBATCH SCOPE(COMMANDS, QUERIES, PROJECTORS), 125 READ SCOPE(QUERIES, PROJECTORS), 126 INSERT SCOPE(PROJECTORS), 127 UPDATE SCOPE(PROJECTORS) 128 ) ENTITY VIEW; 129 130 STORAGE WLog( 131 GET SCOPE(COMMANDS, QUERIES, PROJECTORS), 132 READ SCOPE(QUERIES, PROJECTORS) 133 ); 134 135 STORAGE PLog( 136 GET SCOPE(COMMANDS, QUERIES, PROJECTORS), 137 READ SCOPE(QUERIES, PROJECTORS) 138 ); 139 140 STORAGE AppSecret( 141 GET SCOPE(COMMANDS, QUERIES, PROJECTORS) 142 ); 143 144 STORAGE Subject( 145 GET SCOPE(COMMANDS, QUERIES) 146 ); 147 148 STORAGE Http ( 149 READ SCOPE(QUERIES, PROJECTORS) 150 ); 151 152 STORAGE SendMail( 153 INSERT SCOPE(PROJECTORS) 154 ); 155 156 STORAGE CmdResult( 157 INSERT SCOPE(COMMANDS) 158 ); 159 160 )