~ubuntu-branches/debian/sid/pgadmin3/sid

« back to all changes in this revision

Viewing changes to xtra/pgscript/file/test/source/records.sql.pgs

  • Committer: Bazaar Package Importer
  • Author(s): Gerfried Fuchs
  • Date: 2009-07-30 12:27:16 UTC
  • mfrom: (1.1.6 upstream)
  • Revision ID: james.westby@ubuntu.com-20090730122716-fddbh42on721bbs2
Tags: 1.10.0-1
* New upstream release.
* Adjusted watch file to match release candidates.
* Updated to Standards-Version 3.8.2:
  - Moved to Section: database.
  - Add DEB_BUILD_OPTIONS support for parallel building.
  - Move from findstring to filter suggestion for DEB_BUILD_OPTIONS parsing.
* pgagent got split into its own separate source package by upstream.
* Exclude Docs.vcproj from installation.
* Move doc-base.enus from pgadmin3 to pgadmin3-data package, the files are
  in there too.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
PRINT 'Testing records';
 
2
 
 
3
/* Fill in a first record with several lines */
 
4
DECLARE @r1 { @a, @b, @c, @d };
 
5
ASSERT columns(@r1) = 4 AND lines(@r1) = 0;
 
6
ASSERT NOT @r1;
 
7
SET @a = 0;
 
8
SET @b = 1;
 
9
SET @c = '@c';
 
10
SET @d = '@d';
 
11
SET @l = 0;
 
12
WHILE @l >= 0 AND @l < 10
 
13
BEGIN
 
14
        SET @r1[@l][@a] = @l * 1;
 
15
        SET @r1[@l][@b] = @l * 2;
 
16
        SET @r1[@l][@c] = @l * 3;
 
17
        SET @r1[@l][@d] = @l * 4;
 
18
        
 
19
        ASSERT @r1[@l][@a] = @l * 1;
 
20
        ASSERT -@r1[@l][@b] = @l * -2;
 
21
        ASSERT @r1[@l][@d] = @l * 4;
 
22
        ASSERT -(-@r1[@l][@c]) = @l * 3;
 
23
        
 
24
        SET @l = @l + 1;
 
25
END
 
26
ASSERT columns(@r1) = 4 AND lines(@r1) = 10;
 
27
ASSERT (@r1 AND NOT NOT @r1) = 1;
 
28
ASSERT @r1;
 
29
ASSERT @r1 AND NOT NOT @r1 AND NOT (NOT @r1);
 
30
 
 
31
/* Prepare a second record with no columns */
 
32
DECLARE @r2 { @a, @b, @c };
 
33
ASSERT columns(@r2) = 3 AND columns(@r1) <> columns(@r2);
 
34
ASSERT NOT @r2;
 
35
ASSERT @r1 <> @r2 AND NOT (@r1 = @r2); -- AND NOT (@r2 ~= @r3); @r3 does not exist
 
36
ASSERT NOT (@r1 < @r2) AND NOT (@r1 > @r2);
 
37
ASSERT NOT (@r1 <= @r2) AND NOT (@r1 >= @r2);
 
38
 
 
39
/* Third record equal with the second one */
 
40
DECLARE @r3 { @d, @e, @f }; -- Column names do not matter
 
41
ASSERT columns(@r3) = 3 AND columns(@r2) = columns(@r3);
 
42
ASSERT NOT @r3;
 
43
ASSERT @r2 = @r3 AND NOT (@r2 <> @r3) AND @r2 ~= @r3;
 
44
ASSERT NOT (@r2 < @r3) AND NOT (@r2 > @r3);
 
45
ASSERT @r2 <= @r3 AND @r2 >= @r3;
 
46
 
 
47
/* Add something to the third record */
 
48
SET @r3[0][0] = '@a';
 
49
ASSERT @r3;
 
50
SET @r3[0][1] = '@b';
 
51
ASSERT @r2 <> @r3 AND NOT (@r2 = @r3);
 
52
ASSERT @r2 < @r3 AND NOT (@r2 > @r3);
 
53
ASSERT @r2 <= @r3 AND NOT (@r2 >= @r3);
 
54
 
 
55
/* Add the same thing to the second but with different case */
 
56
SET @r2[0][0] = '@a';
 
57
SET @r2[0][1] = '@B';
 
58
ASSERT @r2 <> @r3 AND NOT (@r2 = @r3) AND @r2 ~= @r3;
 
59
ASSERT NOT (@r2 < @r3) AND NOT (@r2 > @r3);
 
60
ASSERT NOT (@r2 <= @r3) AND NOT (@r2 >= @r3);
 
61
 
 
62
/* Verify if spaces are relevant */
 
63
SET @r2[0][1] = ' b ';
 
64
ASSERT @r2 <> @r3 AND NOT (@r2 = @r3) AND NOT (@r2 ~= @r3);
 
65
ASSERT NOT (@r2 < @r3) AND NOT (@r2 > @r3);
 
66
ASSERT NOT (@r2 <= @r3) AND NOT (@r2 >= @r3);
 
67
SET @r2[0][1] = '@b';
 
68
 
 
69
/* Delete an irrelevant line in the second record */
 
70
/* Impossible */
 
71
 
 
72
/* Fourth record to compare to the first one */
 
73
DECLARE @r4 { @a, @b, @c, @d };
 
74
ASSERT columns(@r1) = columns(@r4) AND lines(@r4) = 0;
 
75
ASSERT NOT @r4;
 
76
SET @a = 0;
 
77
SET @b = 1;
 
78
SET @c = '@c';
 
79
SET @d = '@d';
 
80
ASSERT @r4 <> @r1 AND NOT (@r4 = @r1) AND NOT (@r4 ~= @r1);
 
81
ASSERT @r4 < @r1 AND NOT (@r4 > @r1);
 
82
ASSERT @r4 <= @r1 AND NOT (@r4 >= @r1);
 
83
 
 
84
/* The first lines are equal */
 
85
DECLARE @r4 { @a, @b, @c, @d };
 
86
SET @l = 0;
 
87
WHILE (@l >= 0 AND @l < 2)
 
88
BEGIN
 
89
        SET @r4[@l][@a] = @l * 1;
 
90
        SET @r4[@l][@b] = @l * 2;
 
91
        SET @r4[@l][@c] = @l * 3;
 
92
        SET @r4[@l][@d] = @l * 4;
 
93
        
 
94
        SET @l = @l + 1;
 
95
END
 
96
ASSERT @r4 <> @r1 AND NOT (@r4 = @r1) AND NOT (@r4 ~= @r1);
 
97
ASSERT @r4 < @r1 AND NOT (@r4 > @r1);
 
98
ASSERT @r4 <= @r1 AND NOT (@r4 >= @r1);
 
99
 
 
100
/* Only some lines are equal but the first lines are empty */
 
101
DECLARE @r4 { @a, @b, @c, @d };
 
102
SET @l = 4;
 
103
WHILE (((@l >= 0) AND (@l < 7)))
 
104
BEGIN
 
105
        SET @r4[@l][@a] = @l * 1;
 
106
        SET @r4[@l][@b] = @l * 2;
 
107
        SET @r4[@l][@c] = @l * 3;
 
108
        SET @r4[@l][@d] = @l * 4;
 
109
        
 
110
        SET @l = @l + 1;
 
111
END
 
112
ASSERT @r4 <> @r1 AND NOT (@r4 = @r1) AND NOT (@r4 ~= @r1);
 
113
ASSERT NOT (@r4 < @r1) AND NOT (@r4 > @r1);
 
114
ASSERT NOT (@r4 <= @r1) AND NOT (@r4 >= @r1);
 
115
 
 
116
/* Some lines are equal */
 
117
DECLARE @r4 { @a, @b, @c, @d };
 
118
SET @i = 0;
 
119
SET @l = 4;
 
120
WHILE @l >= 0 AND @l < 8
 
121
BEGIN
 
122
        SET @r4[@i][@a] = @l * 1;
 
123
        SET @r4[@i][@b] = @l * 2;
 
124
        SET @r4[@i][@c] = @l * 3;
 
125
        SET @r4[@i][@d] = @l * 4;
 
126
        SET @i = @i + 1;
 
127
        
 
128
        SET @l = @l + 1;
 
129
END
 
130
ASSERT @r4 <> @r1 AND NOT (@r4 = @r1) AND NOT (@r4 ~= @r1);
 
131
ASSERT @r4 < @r1 AND NOT (@r4 > @r1);
 
132
ASSERT @r4 <= @r1 AND NOT (@r4 >= @r1);
 
133
 
 
134
/* Some lines are equal and the order is random */
 
135
DECLARE @r4 { @a, @b, @c, @d };
 
136
SET @i = 0;     SET @l = 3;
 
137
SET @r4[@i][@a] = @l * 1;
 
138
SET @r4[@i][@b] = @l * 2;
 
139
SET @r4[@i][@c] = @l * 3;
 
140
SET @r4[@i][@d] = @l * 4;
 
141
SET @i = @i + 1; SET @l = 6;
 
142
SET @r4[@i][@a] = @l * 1;
 
143
SET @r4[@i][@b] = @l * 2;
 
144
SET @r4[@i][@c] = @l * 3;
 
145
SET @r4[@i][@d] = @l * 4;
 
146
SET @i = @i + 1; SET @l = 2;
 
147
SET @r4[@i][@a] = @l * 1;
 
148
SET @r4[@i][@b] = @l * 2;
 
149
SET @r4[@i][@c] = @l * 3;
 
150
SET @r4[@i][@d] = @l * 4;
 
151
ASSERT @r4 <> @r1 AND NOT (@r4 = @r1) AND NOT (@r4 ~= @r1);
 
152
ASSERT @r4 < @r1 AND NOT (@r4 > @r1);
 
153
ASSERT @r4 <= @r1 AND NOT (@r4 >= @r1);
 
154
 
 
155
/* Everything is equal */
 
156
DECLARE @r4 { @a, @b, @c, @d };
 
157
SET @l = 0;
 
158
WHILE @l >= 0 AND @l < 10
 
159
BEGIN
 
160
        SET @r4[@l][@a] = @l * 1;
 
161
        SET @r4[@l][@b] = @l * 2;
 
162
        SET @r4[@l][@c] = @l * 3;
 
163
        SET @r4[@l][@d] = @l * 4;
 
164
        
 
165
        SET @l = @l + 1;
 
166
END
 
167
ASSERT @r4 = @r1 AND @r4 ~= @r1 AND NOT (@r4 <> @r1);
 
168
ASSERT NOT (@r4 < @r1) AND NOT (@r4 > @r1);
 
169
ASSERT @r4 <= @r1 AND @r4 >= @r1;
 
170
 
 
171
/* Modify a field from a number to a string */
 
172
SET @r4[0][0] = '0';
 
173
ASSERT @r4 = @r1 AND @r4 ~= @r1 AND NOT (@r4 <> @r1);
 
174
ASSERT NOT (@r4 < @r1) AND NOT (@r4 > @r1);
 
175
ASSERT @r4 <= @r1 AND @r4 >= @r1;
 
176
 
 
177
/* Modify a field */
 
178
SET @r4[0][0] = '@x';
 
179
ASSERT @r4 <> @r1 AND NOT (@r4 = @r1) AND NOT (@r4 ~= @r1);
 
180
ASSERT NOT (@r4 < @r1) AND NOT (@r4 > @r1);
 
181
ASSERT NOT (@r4 <= @r1) AND NOT (@r4 >= @r1);
 
182
 
 
183
/* Make a case insensitive comparison */
 
184
SET @r1 [0] [0] = '@X';
 
185
ASSERT @r4 <> @r1 AND NOT (@r4 = @r1) AND @r4 ~= @r1;
 
186
ASSERT NOT (@r4 < @r1) AND NOT (@r4 > @r1);
 
187
ASSERT NOT (@r4 <= @r1) AND NOT (@r4 >= @r1);
 
188
SET @r1[0][0] = '@x';
 
189
 
 
190
/* Delete a line in the middle */
 
191
RMLINE(@r4[5]);
 
192
ASSERT @r4 AND lines(@r4) = 9;
 
193
ASSERT @r4 <> @r1 AND NOT (@r4 = @r1) AND NOT (@r4 ~= @r1);
 
194
ASSERT @r4 < @r1 AND NOT (@r4 > @r1);
 
195
ASSERT @r4 <= @r1 AND NOT (@r4 >= @r1);
 
196
 
 
197
/* Delete the first line */
 
198
RMLINE(@r4[0]);
 
199
ASSERT @r4 AND lines(@r4) = 8;
 
200
ASSERT @r4 <> @r1 AND NOT (@r4 = @r1) AND NOT (@r4 ~= @r1);
 
201
ASSERT @r4 < @r1 AND NOT (@r4 > @r1);
 
202
ASSERT @r4 <= @r1 AND NOT (@r4 >= @r1);
 
203
 
 
204
/* Delete the last line */
 
205
RMLINE(@r4[lines(@r4) - 1]);
 
206
ASSERT @r4 AND lines(@r4) = 7;
 
207
ASSERT @r4 <> @r1 AND NOT (@r4 = @r1) AND NOT (@r4 ~= @r1);
 
208
ASSERT @r4 < @r1 AND NOT (@r4 > @r1);
 
209
ASSERT @r4 <= @r1 AND NOT (@r4 >= @r1);
 
210
 
 
211
/* Delete everything */
 
212
WHILE (lines(@r4))
 
213
BEGIN
 
214
        RMLINE(@r4[0]);
 
215
        ASSERT @r4 <> @r1 AND NOT (@r4 = @r1) AND NOT (@r4 ~= @r1);
 
216
        ASSERT @r4 < @r1 AND NOT (@r4 > @r1);
 
217
        ASSERT @r4 <= @r1 AND NOT (@r4 >= @r1);
 
218
END
 
219
 
 
220
/* Test a record that does not exist */
 
221
/* SET @r5[0][0] = 1; */
 
222
 
 
223
/* Take a line the first record */
 
224
SET @r4 = @r1[0];
 
225
ASSERT @r4 <> @r1 AND NOT (@r4 = @r1) AND NOT (@r4 ~= @r1);
 
226
ASSERT @r4 < @r1 AND NOT (@r4 > @r1);
 
227
ASSERT @r4 <= @r1 AND NOT (@r4 >= @r1);
 
228
 
 
229
/* Take a line the first record */
 
230
SET @r4 = @r1 [5];
 
231
ASSERT @r4 <> @r1 AND NOT (@r4 = @r1) AND NOT (@r4 ~= @r1);
 
232
ASSERT @r4 < @r1 AND NOT (@r4 > @r1);
 
233
ASSERT @r4 <= @r1 AND NOT (@r4 >= @r1);