~vcs-imports/mammoth-replicator/trunk

« back to all changes in this revision

Viewing changes to src/test/regress/expected/join_1.out

  • Committer: alvherre
  • Date: 2005-12-16 21:24:52 UTC
  • Revision ID: svn-v4:db760fc0-0f08-0410-9d63-cc6633f64896:trunk:1
Initial import of the REL8_0_3 sources from the Pgsql CVS repository.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
--
 
2
-- JOIN
 
3
-- Test JOIN clauses
 
4
--
 
5
CREATE TABLE J1_TBL (
 
6
  i integer,
 
7
  j integer,
 
8
  t text
 
9
);
 
10
CREATE TABLE J2_TBL (
 
11
  i integer,
 
12
  k integer
 
13
);
 
14
INSERT INTO J1_TBL VALUES (1, 4, 'one');
 
15
INSERT INTO J1_TBL VALUES (2, 3, 'two');
 
16
INSERT INTO J1_TBL VALUES (3, 2, 'three');
 
17
INSERT INTO J1_TBL VALUES (4, 1, 'four');
 
18
INSERT INTO J1_TBL VALUES (5, 0, 'five');
 
19
INSERT INTO J1_TBL VALUES (6, 6, 'six');
 
20
INSERT INTO J1_TBL VALUES (7, 7, 'seven');
 
21
INSERT INTO J1_TBL VALUES (8, 8, 'eight');
 
22
INSERT INTO J1_TBL VALUES (0, NULL, 'zero');
 
23
INSERT INTO J1_TBL VALUES (NULL, NULL, 'null');
 
24
INSERT INTO J1_TBL VALUES (NULL, 0, 'zero');
 
25
INSERT INTO J2_TBL VALUES (1, -1);
 
26
INSERT INTO J2_TBL VALUES (2, 2);
 
27
INSERT INTO J2_TBL VALUES (3, -3);
 
28
INSERT INTO J2_TBL VALUES (2, 4);
 
29
INSERT INTO J2_TBL VALUES (5, -5);
 
30
INSERT INTO J2_TBL VALUES (5, -5);
 
31
INSERT INTO J2_TBL VALUES (0, NULL);
 
32
INSERT INTO J2_TBL VALUES (NULL, NULL);
 
33
INSERT INTO J2_TBL VALUES (NULL, 0);
 
34
--
 
35
-- CORRELATION NAMES
 
36
-- Make sure that table/column aliases are supported
 
37
-- before diving into more complex join syntax.
 
38
--
 
39
SELECT '' AS "xxx", *
 
40
  FROM J1_TBL AS tx;
 
41
 xxx | i | j |   t   
 
42
-----+---+---+-------
 
43
     | 1 | 4 | one
 
44
     | 2 | 3 | two
 
45
     | 3 | 2 | three
 
46
     | 4 | 1 | four
 
47
     | 5 | 0 | five
 
48
     | 6 | 6 | six
 
49
     | 7 | 7 | seven
 
50
     | 8 | 8 | eight
 
51
     | 0 |   | zero
 
52
     |   |   | null
 
53
     |   | 0 | zero
 
54
(11 rows)
 
55
 
 
56
SELECT '' AS "xxx", *
 
57
  FROM J1_TBL tx;
 
58
 xxx | i | j |   t   
 
59
-----+---+---+-------
 
60
     | 1 | 4 | one
 
61
     | 2 | 3 | two
 
62
     | 3 | 2 | three
 
63
     | 4 | 1 | four
 
64
     | 5 | 0 | five
 
65
     | 6 | 6 | six
 
66
     | 7 | 7 | seven
 
67
     | 8 | 8 | eight
 
68
     | 0 |   | zero
 
69
     |   |   | null
 
70
     |   | 0 | zero
 
71
(11 rows)
 
72
 
 
73
SELECT '' AS "xxx", *
 
74
  FROM J1_TBL AS t1 (a, b, c);
 
75
 xxx | a | b |   c   
 
76
-----+---+---+-------
 
77
     | 1 | 4 | one
 
78
     | 2 | 3 | two
 
79
     | 3 | 2 | three
 
80
     | 4 | 1 | four
 
81
     | 5 | 0 | five
 
82
     | 6 | 6 | six
 
83
     | 7 | 7 | seven
 
84
     | 8 | 8 | eight
 
85
     | 0 |   | zero
 
86
     |   |   | null
 
87
     |   | 0 | zero
 
88
(11 rows)
 
89
 
 
90
SELECT '' AS "xxx", *
 
91
  FROM J1_TBL t1 (a, b, c);
 
92
 xxx | a | b |   c   
 
93
-----+---+---+-------
 
94
     | 1 | 4 | one
 
95
     | 2 | 3 | two
 
96
     | 3 | 2 | three
 
97
     | 4 | 1 | four
 
98
     | 5 | 0 | five
 
99
     | 6 | 6 | six
 
100
     | 7 | 7 | seven
 
101
     | 8 | 8 | eight
 
102
     | 0 |   | zero
 
103
     |   |   | null
 
104
     |   | 0 | zero
 
105
(11 rows)
 
106
 
 
107
SELECT '' AS "xxx", *
 
108
  FROM J1_TBL t1 (a, b, c), J2_TBL t2 (d, e);
 
109
 xxx | a | b |   c   | d | e  
 
110
-----+---+---+-------+---+----
 
111
     | 1 | 4 | one   | 1 | -1
 
112
     | 2 | 3 | two   | 1 | -1
 
113
     | 3 | 2 | three | 1 | -1
 
114
     | 4 | 1 | four  | 1 | -1
 
115
     | 5 | 0 | five  | 1 | -1
 
116
     | 6 | 6 | six   | 1 | -1
 
117
     | 7 | 7 | seven | 1 | -1
 
118
     | 8 | 8 | eight | 1 | -1
 
119
     | 0 |   | zero  | 1 | -1
 
120
     |   |   | null  | 1 | -1
 
121
     |   | 0 | zero  | 1 | -1
 
122
     | 1 | 4 | one   | 2 |  2
 
123
     | 2 | 3 | two   | 2 |  2
 
124
     | 3 | 2 | three | 2 |  2
 
125
     | 4 | 1 | four  | 2 |  2
 
126
     | 5 | 0 | five  | 2 |  2
 
127
     | 6 | 6 | six   | 2 |  2
 
128
     | 7 | 7 | seven | 2 |  2
 
129
     | 8 | 8 | eight | 2 |  2
 
130
     | 0 |   | zero  | 2 |  2
 
131
     |   |   | null  | 2 |  2
 
132
     |   | 0 | zero  | 2 |  2
 
133
     | 1 | 4 | one   | 3 | -3
 
134
     | 2 | 3 | two   | 3 | -3
 
135
     | 3 | 2 | three | 3 | -3
 
136
     | 4 | 1 | four  | 3 | -3
 
137
     | 5 | 0 | five  | 3 | -3
 
138
     | 6 | 6 | six   | 3 | -3
 
139
     | 7 | 7 | seven | 3 | -3
 
140
     | 8 | 8 | eight | 3 | -3
 
141
     | 0 |   | zero  | 3 | -3
 
142
     |   |   | null  | 3 | -3
 
143
     |   | 0 | zero  | 3 | -3
 
144
     | 1 | 4 | one   | 2 |  4
 
145
     | 2 | 3 | two   | 2 |  4
 
146
     | 3 | 2 | three | 2 |  4
 
147
     | 4 | 1 | four  | 2 |  4
 
148
     | 5 | 0 | five  | 2 |  4
 
149
     | 6 | 6 | six   | 2 |  4
 
150
     | 7 | 7 | seven | 2 |  4
 
151
     | 8 | 8 | eight | 2 |  4
 
152
     | 0 |   | zero  | 2 |  4
 
153
     |   |   | null  | 2 |  4
 
154
     |   | 0 | zero  | 2 |  4
 
155
     | 1 | 4 | one   | 5 | -5
 
156
     | 2 | 3 | two   | 5 | -5
 
157
     | 3 | 2 | three | 5 | -5
 
158
     | 4 | 1 | four  | 5 | -5
 
159
     | 5 | 0 | five  | 5 | -5
 
160
     | 6 | 6 | six   | 5 | -5
 
161
     | 7 | 7 | seven | 5 | -5
 
162
     | 8 | 8 | eight | 5 | -5
 
163
     | 0 |   | zero  | 5 | -5
 
164
     |   |   | null  | 5 | -5
 
165
     |   | 0 | zero  | 5 | -5
 
166
     | 1 | 4 | one   | 5 | -5
 
167
     | 2 | 3 | two   | 5 | -5
 
168
     | 3 | 2 | three | 5 | -5
 
169
     | 4 | 1 | four  | 5 | -5
 
170
     | 5 | 0 | five  | 5 | -5
 
171
     | 6 | 6 | six   | 5 | -5
 
172
     | 7 | 7 | seven | 5 | -5
 
173
     | 8 | 8 | eight | 5 | -5
 
174
     | 0 |   | zero  | 5 | -5
 
175
     |   |   | null  | 5 | -5
 
176
     |   | 0 | zero  | 5 | -5
 
177
     | 1 | 4 | one   | 0 |   
 
178
     | 2 | 3 | two   | 0 |   
 
179
     | 3 | 2 | three | 0 |   
 
180
     | 4 | 1 | four  | 0 |   
 
181
     | 5 | 0 | five  | 0 |   
 
182
     | 6 | 6 | six   | 0 |   
 
183
     | 7 | 7 | seven | 0 |   
 
184
     | 8 | 8 | eight | 0 |   
 
185
     | 0 |   | zero  | 0 |   
 
186
     |   |   | null  | 0 |   
 
187
     |   | 0 | zero  | 0 |   
 
188
     | 1 | 4 | one   |   |   
 
189
     | 2 | 3 | two   |   |   
 
190
     | 3 | 2 | three |   |   
 
191
     | 4 | 1 | four  |   |   
 
192
     | 5 | 0 | five  |   |   
 
193
     | 6 | 6 | six   |   |   
 
194
     | 7 | 7 | seven |   |   
 
195
     | 8 | 8 | eight |   |   
 
196
     | 0 |   | zero  |   |   
 
197
     |   |   | null  |   |   
 
198
     |   | 0 | zero  |   |   
 
199
     | 1 | 4 | one   |   |  0
 
200
     | 2 | 3 | two   |   |  0
 
201
     | 3 | 2 | three |   |  0
 
202
     | 4 | 1 | four  |   |  0
 
203
     | 5 | 0 | five  |   |  0
 
204
     | 6 | 6 | six   |   |  0
 
205
     | 7 | 7 | seven |   |  0
 
206
     | 8 | 8 | eight |   |  0
 
207
     | 0 |   | zero  |   |  0
 
208
     |   |   | null  |   |  0
 
209
     |   | 0 | zero  |   |  0
 
210
(99 rows)
 
211
 
 
212
SELECT '' AS "xxx", t1.a, t2.e
 
213
  FROM J1_TBL t1 (a, b, c), J2_TBL t2 (d, e)
 
214
  WHERE t1.a = t2.d;
 
215
 xxx | a | e  
 
216
-----+---+----
 
217
     | 0 |   
 
218
     | 1 | -1
 
219
     | 2 |  4
 
220
     | 2 |  2
 
221
     | 3 | -3
 
222
     | 5 | -5
 
223
     | 5 | -5
 
224
(7 rows)
 
225
 
 
226
--
 
227
-- CROSS JOIN
 
228
-- Qualifications are not allowed on cross joins,
 
229
-- which degenerate into a standard unqualified inner join.
 
230
--
 
231
SELECT '' AS "xxx", *
 
232
  FROM J1_TBL CROSS JOIN J2_TBL;
 
233
 xxx | i | j |   t   | i | k  
 
234
-----+---+---+-------+---+----
 
235
     | 1 | 4 | one   | 1 | -1
 
236
     | 2 | 3 | two   | 1 | -1
 
237
     | 3 | 2 | three | 1 | -1
 
238
     | 4 | 1 | four  | 1 | -1
 
239
     | 5 | 0 | five  | 1 | -1
 
240
     | 6 | 6 | six   | 1 | -1
 
241
     | 7 | 7 | seven | 1 | -1
 
242
     | 8 | 8 | eight | 1 | -1
 
243
     | 0 |   | zero  | 1 | -1
 
244
     |   |   | null  | 1 | -1
 
245
     |   | 0 | zero  | 1 | -1
 
246
     | 1 | 4 | one   | 2 |  2
 
247
     | 2 | 3 | two   | 2 |  2
 
248
     | 3 | 2 | three | 2 |  2
 
249
     | 4 | 1 | four  | 2 |  2
 
250
     | 5 | 0 | five  | 2 |  2
 
251
     | 6 | 6 | six   | 2 |  2
 
252
     | 7 | 7 | seven | 2 |  2
 
253
     | 8 | 8 | eight | 2 |  2
 
254
     | 0 |   | zero  | 2 |  2
 
255
     |   |   | null  | 2 |  2
 
256
     |   | 0 | zero  | 2 |  2
 
257
     | 1 | 4 | one   | 3 | -3
 
258
     | 2 | 3 | two   | 3 | -3
 
259
     | 3 | 2 | three | 3 | -3
 
260
     | 4 | 1 | four  | 3 | -3
 
261
     | 5 | 0 | five  | 3 | -3
 
262
     | 6 | 6 | six   | 3 | -3
 
263
     | 7 | 7 | seven | 3 | -3
 
264
     | 8 | 8 | eight | 3 | -3
 
265
     | 0 |   | zero  | 3 | -3
 
266
     |   |   | null  | 3 | -3
 
267
     |   | 0 | zero  | 3 | -3
 
268
     | 1 | 4 | one   | 2 |  4
 
269
     | 2 | 3 | two   | 2 |  4
 
270
     | 3 | 2 | three | 2 |  4
 
271
     | 4 | 1 | four  | 2 |  4
 
272
     | 5 | 0 | five  | 2 |  4
 
273
     | 6 | 6 | six   | 2 |  4
 
274
     | 7 | 7 | seven | 2 |  4
 
275
     | 8 | 8 | eight | 2 |  4
 
276
     | 0 |   | zero  | 2 |  4
 
277
     |   |   | null  | 2 |  4
 
278
     |   | 0 | zero  | 2 |  4
 
279
     | 1 | 4 | one   | 5 | -5
 
280
     | 2 | 3 | two   | 5 | -5
 
281
     | 3 | 2 | three | 5 | -5
 
282
     | 4 | 1 | four  | 5 | -5
 
283
     | 5 | 0 | five  | 5 | -5
 
284
     | 6 | 6 | six   | 5 | -5
 
285
     | 7 | 7 | seven | 5 | -5
 
286
     | 8 | 8 | eight | 5 | -5
 
287
     | 0 |   | zero  | 5 | -5
 
288
     |   |   | null  | 5 | -5
 
289
     |   | 0 | zero  | 5 | -5
 
290
     | 1 | 4 | one   | 5 | -5
 
291
     | 2 | 3 | two   | 5 | -5
 
292
     | 3 | 2 | three | 5 | -5
 
293
     | 4 | 1 | four  | 5 | -5
 
294
     | 5 | 0 | five  | 5 | -5
 
295
     | 6 | 6 | six   | 5 | -5
 
296
     | 7 | 7 | seven | 5 | -5
 
297
     | 8 | 8 | eight | 5 | -5
 
298
     | 0 |   | zero  | 5 | -5
 
299
     |   |   | null  | 5 | -5
 
300
     |   | 0 | zero  | 5 | -5
 
301
     | 1 | 4 | one   | 0 |   
 
302
     | 2 | 3 | two   | 0 |   
 
303
     | 3 | 2 | three | 0 |   
 
304
     | 4 | 1 | four  | 0 |   
 
305
     | 5 | 0 | five  | 0 |   
 
306
     | 6 | 6 | six   | 0 |   
 
307
     | 7 | 7 | seven | 0 |   
 
308
     | 8 | 8 | eight | 0 |   
 
309
     | 0 |   | zero  | 0 |   
 
310
     |   |   | null  | 0 |   
 
311
     |   | 0 | zero  | 0 |   
 
312
     | 1 | 4 | one   |   |   
 
313
     | 2 | 3 | two   |   |   
 
314
     | 3 | 2 | three |   |   
 
315
     | 4 | 1 | four  |   |   
 
316
     | 5 | 0 | five  |   |   
 
317
     | 6 | 6 | six   |   |   
 
318
     | 7 | 7 | seven |   |   
 
319
     | 8 | 8 | eight |   |   
 
320
     | 0 |   | zero  |   |   
 
321
     |   |   | null  |   |   
 
322
     |   | 0 | zero  |   |   
 
323
     | 1 | 4 | one   |   |  0
 
324
     | 2 | 3 | two   |   |  0
 
325
     | 3 | 2 | three |   |  0
 
326
     | 4 | 1 | four  |   |  0
 
327
     | 5 | 0 | five  |   |  0
 
328
     | 6 | 6 | six   |   |  0
 
329
     | 7 | 7 | seven |   |  0
 
330
     | 8 | 8 | eight |   |  0
 
331
     | 0 |   | zero  |   |  0
 
332
     |   |   | null  |   |  0
 
333
     |   | 0 | zero  |   |  0
 
334
(99 rows)
 
335
 
 
336
-- ambiguous column
 
337
SELECT '' AS "xxx", i, k, t
 
338
  FROM J1_TBL CROSS JOIN J2_TBL;
 
339
ERROR:  column reference "i" is ambiguous
 
340
-- resolve previous ambiguity by specifying the table name
 
341
SELECT '' AS "xxx", t1.i, k, t
 
342
  FROM J1_TBL t1 CROSS JOIN J2_TBL t2;
 
343
 xxx | i | k  |   t   
 
344
-----+---+----+-------
 
345
     | 1 | -1 | one
 
346
     | 2 | -1 | two
 
347
     | 3 | -1 | three
 
348
     | 4 | -1 | four
 
349
     | 5 | -1 | five
 
350
     | 6 | -1 | six
 
351
     | 7 | -1 | seven
 
352
     | 8 | -1 | eight
 
353
     | 0 | -1 | zero
 
354
     |   | -1 | null
 
355
     |   | -1 | zero
 
356
     | 1 |  2 | one
 
357
     | 2 |  2 | two
 
358
     | 3 |  2 | three
 
359
     | 4 |  2 | four
 
360
     | 5 |  2 | five
 
361
     | 6 |  2 | six
 
362
     | 7 |  2 | seven
 
363
     | 8 |  2 | eight
 
364
     | 0 |  2 | zero
 
365
     |   |  2 | null
 
366
     |   |  2 | zero
 
367
     | 1 | -3 | one
 
368
     | 2 | -3 | two
 
369
     | 3 | -3 | three
 
370
     | 4 | -3 | four
 
371
     | 5 | -3 | five
 
372
     | 6 | -3 | six
 
373
     | 7 | -3 | seven
 
374
     | 8 | -3 | eight
 
375
     | 0 | -3 | zero
 
376
     |   | -3 | null
 
377
     |   | -3 | zero
 
378
     | 1 |  4 | one
 
379
     | 2 |  4 | two
 
380
     | 3 |  4 | three
 
381
     | 4 |  4 | four
 
382
     | 5 |  4 | five
 
383
     | 6 |  4 | six
 
384
     | 7 |  4 | seven
 
385
     | 8 |  4 | eight
 
386
     | 0 |  4 | zero
 
387
     |   |  4 | null
 
388
     |   |  4 | zero
 
389
     | 1 | -5 | one
 
390
     | 2 | -5 | two
 
391
     | 3 | -5 | three
 
392
     | 4 | -5 | four
 
393
     | 5 | -5 | five
 
394
     | 6 | -5 | six
 
395
     | 7 | -5 | seven
 
396
     | 8 | -5 | eight
 
397
     | 0 | -5 | zero
 
398
     |   | -5 | null
 
399
     |   | -5 | zero
 
400
     | 1 | -5 | one
 
401
     | 2 | -5 | two
 
402
     | 3 | -5 | three
 
403
     | 4 | -5 | four
 
404
     | 5 | -5 | five
 
405
     | 6 | -5 | six
 
406
     | 7 | -5 | seven
 
407
     | 8 | -5 | eight
 
408
     | 0 | -5 | zero
 
409
     |   | -5 | null
 
410
     |   | -5 | zero
 
411
     | 1 |    | one
 
412
     | 2 |    | two
 
413
     | 3 |    | three
 
414
     | 4 |    | four
 
415
     | 5 |    | five
 
416
     | 6 |    | six
 
417
     | 7 |    | seven
 
418
     | 8 |    | eight
 
419
     | 0 |    | zero
 
420
     |   |    | null
 
421
     |   |    | zero
 
422
     | 1 |    | one
 
423
     | 2 |    | two
 
424
     | 3 |    | three
 
425
     | 4 |    | four
 
426
     | 5 |    | five
 
427
     | 6 |    | six
 
428
     | 7 |    | seven
 
429
     | 8 |    | eight
 
430
     | 0 |    | zero
 
431
     |   |    | null
 
432
     |   |    | zero
 
433
     | 1 |  0 | one
 
434
     | 2 |  0 | two
 
435
     | 3 |  0 | three
 
436
     | 4 |  0 | four
 
437
     | 5 |  0 | five
 
438
     | 6 |  0 | six
 
439
     | 7 |  0 | seven
 
440
     | 8 |  0 | eight
 
441
     | 0 |  0 | zero
 
442
     |   |  0 | null
 
443
     |   |  0 | zero
 
444
(99 rows)
 
445
 
 
446
SELECT '' AS "xxx", ii, tt, kk
 
447
  FROM (J1_TBL CROSS JOIN J2_TBL)
 
448
    AS tx (ii, jj, tt, ii2, kk);
 
449
 xxx | ii |  tt   | kk 
 
450
-----+----+-------+----
 
451
     |  1 | one   | -1
 
452
     |  2 | two   | -1
 
453
     |  3 | three | -1
 
454
     |  4 | four  | -1
 
455
     |  5 | five  | -1
 
456
     |  6 | six   | -1
 
457
     |  7 | seven | -1
 
458
     |  8 | eight | -1
 
459
     |  0 | zero  | -1
 
460
     |    | null  | -1
 
461
     |    | zero  | -1
 
462
     |  1 | one   |  2
 
463
     |  2 | two   |  2
 
464
     |  3 | three |  2
 
465
     |  4 | four  |  2
 
466
     |  5 | five  |  2
 
467
     |  6 | six   |  2
 
468
     |  7 | seven |  2
 
469
     |  8 | eight |  2
 
470
     |  0 | zero  |  2
 
471
     |    | null  |  2
 
472
     |    | zero  |  2
 
473
     |  1 | one   | -3
 
474
     |  2 | two   | -3
 
475
     |  3 | three | -3
 
476
     |  4 | four  | -3
 
477
     |  5 | five  | -3
 
478
     |  6 | six   | -3
 
479
     |  7 | seven | -3
 
480
     |  8 | eight | -3
 
481
     |  0 | zero  | -3
 
482
     |    | null  | -3
 
483
     |    | zero  | -3
 
484
     |  1 | one   |  4
 
485
     |  2 | two   |  4
 
486
     |  3 | three |  4
 
487
     |  4 | four  |  4
 
488
     |  5 | five  |  4
 
489
     |  6 | six   |  4
 
490
     |  7 | seven |  4
 
491
     |  8 | eight |  4
 
492
     |  0 | zero  |  4
 
493
     |    | null  |  4
 
494
     |    | zero  |  4
 
495
     |  1 | one   | -5
 
496
     |  2 | two   | -5
 
497
     |  3 | three | -5
 
498
     |  4 | four  | -5
 
499
     |  5 | five  | -5
 
500
     |  6 | six   | -5
 
501
     |  7 | seven | -5
 
502
     |  8 | eight | -5
 
503
     |  0 | zero  | -5
 
504
     |    | null  | -5
 
505
     |    | zero  | -5
 
506
     |  1 | one   | -5
 
507
     |  2 | two   | -5
 
508
     |  3 | three | -5
 
509
     |  4 | four  | -5
 
510
     |  5 | five  | -5
 
511
     |  6 | six   | -5
 
512
     |  7 | seven | -5
 
513
     |  8 | eight | -5
 
514
     |  0 | zero  | -5
 
515
     |    | null  | -5
 
516
     |    | zero  | -5
 
517
     |  1 | one   |   
 
518
     |  2 | two   |   
 
519
     |  3 | three |   
 
520
     |  4 | four  |   
 
521
     |  5 | five  |   
 
522
     |  6 | six   |   
 
523
     |  7 | seven |   
 
524
     |  8 | eight |   
 
525
     |  0 | zero  |   
 
526
     |    | null  |   
 
527
     |    | zero  |   
 
528
     |  1 | one   |   
 
529
     |  2 | two   |   
 
530
     |  3 | three |   
 
531
     |  4 | four  |   
 
532
     |  5 | five  |   
 
533
     |  6 | six   |   
 
534
     |  7 | seven |   
 
535
     |  8 | eight |   
 
536
     |  0 | zero  |   
 
537
     |    | null  |   
 
538
     |    | zero  |   
 
539
     |  1 | one   |  0
 
540
     |  2 | two   |  0
 
541
     |  3 | three |  0
 
542
     |  4 | four  |  0
 
543
     |  5 | five  |  0
 
544
     |  6 | six   |  0
 
545
     |  7 | seven |  0
 
546
     |  8 | eight |  0
 
547
     |  0 | zero  |  0
 
548
     |    | null  |  0
 
549
     |    | zero  |  0
 
550
(99 rows)
 
551
 
 
552
SELECT '' AS "xxx", tx.ii, tx.jj, tx.kk
 
553
  FROM (J1_TBL t1 (a, b, c) CROSS JOIN J2_TBL t2 (d, e))
 
554
    AS tx (ii, jj, tt, ii2, kk);
 
555
 xxx | ii | jj | kk 
 
556
-----+----+----+----
 
557
     |  1 |  4 | -1
 
558
     |  2 |  3 | -1
 
559
     |  3 |  2 | -1
 
560
     |  4 |  1 | -1
 
561
     |  5 |  0 | -1
 
562
     |  6 |  6 | -1
 
563
     |  7 |  7 | -1
 
564
     |  8 |  8 | -1
 
565
     |  0 |    | -1
 
566
     |    |    | -1
 
567
     |    |  0 | -1
 
568
     |  1 |  4 |  2
 
569
     |  2 |  3 |  2
 
570
     |  3 |  2 |  2
 
571
     |  4 |  1 |  2
 
572
     |  5 |  0 |  2
 
573
     |  6 |  6 |  2
 
574
     |  7 |  7 |  2
 
575
     |  8 |  8 |  2
 
576
     |  0 |    |  2
 
577
     |    |    |  2
 
578
     |    |  0 |  2
 
579
     |  1 |  4 | -3
 
580
     |  2 |  3 | -3
 
581
     |  3 |  2 | -3
 
582
     |  4 |  1 | -3
 
583
     |  5 |  0 | -3
 
584
     |  6 |  6 | -3
 
585
     |  7 |  7 | -3
 
586
     |  8 |  8 | -3
 
587
     |  0 |    | -3
 
588
     |    |    | -3
 
589
     |    |  0 | -3
 
590
     |  1 |  4 |  4
 
591
     |  2 |  3 |  4
 
592
     |  3 |  2 |  4
 
593
     |  4 |  1 |  4
 
594
     |  5 |  0 |  4
 
595
     |  6 |  6 |  4
 
596
     |  7 |  7 |  4
 
597
     |  8 |  8 |  4
 
598
     |  0 |    |  4
 
599
     |    |    |  4
 
600
     |    |  0 |  4
 
601
     |  1 |  4 | -5
 
602
     |  2 |  3 | -5
 
603
     |  3 |  2 | -5
 
604
     |  4 |  1 | -5
 
605
     |  5 |  0 | -5
 
606
     |  6 |  6 | -5
 
607
     |  7 |  7 | -5
 
608
     |  8 |  8 | -5
 
609
     |  0 |    | -5
 
610
     |    |    | -5
 
611
     |    |  0 | -5
 
612
     |  1 |  4 | -5
 
613
     |  2 |  3 | -5
 
614
     |  3 |  2 | -5
 
615
     |  4 |  1 | -5
 
616
     |  5 |  0 | -5
 
617
     |  6 |  6 | -5
 
618
     |  7 |  7 | -5
 
619
     |  8 |  8 | -5
 
620
     |  0 |    | -5
 
621
     |    |    | -5
 
622
     |    |  0 | -5
 
623
     |  1 |  4 |   
 
624
     |  2 |  3 |   
 
625
     |  3 |  2 |   
 
626
     |  4 |  1 |   
 
627
     |  5 |  0 |   
 
628
     |  6 |  6 |   
 
629
     |  7 |  7 |   
 
630
     |  8 |  8 |   
 
631
     |  0 |    |   
 
632
     |    |    |   
 
633
     |    |  0 |   
 
634
     |  1 |  4 |   
 
635
     |  2 |  3 |   
 
636
     |  3 |  2 |   
 
637
     |  4 |  1 |   
 
638
     |  5 |  0 |   
 
639
     |  6 |  6 |   
 
640
     |  7 |  7 |   
 
641
     |  8 |  8 |   
 
642
     |  0 |    |   
 
643
     |    |    |   
 
644
     |    |  0 |   
 
645
     |  1 |  4 |  0
 
646
     |  2 |  3 |  0
 
647
     |  3 |  2 |  0
 
648
     |  4 |  1 |  0
 
649
     |  5 |  0 |  0
 
650
     |  6 |  6 |  0
 
651
     |  7 |  7 |  0
 
652
     |  8 |  8 |  0
 
653
     |  0 |    |  0
 
654
     |    |    |  0
 
655
     |    |  0 |  0
 
656
(99 rows)
 
657
 
 
658
SELECT '' AS "xxx", *
 
659
  FROM J1_TBL CROSS JOIN J2_TBL a CROSS JOIN J2_TBL b;
 
660
 xxx | i | j |   t   | i | k  | i | k  
 
661
-----+---+---+-------+---+----+---+----
 
662
     | 1 | 4 | one   | 1 | -1 | 1 | -1
 
663
     | 1 | 4 | one   | 1 | -1 | 2 |  2
 
664
     | 1 | 4 | one   | 1 | -1 | 3 | -3
 
665
     | 1 | 4 | one   | 1 | -1 | 2 |  4
 
666
     | 1 | 4 | one   | 1 | -1 | 5 | -5
 
667
     | 1 | 4 | one   | 1 | -1 | 5 | -5
 
668
     | 1 | 4 | one   | 1 | -1 | 0 |   
 
669
     | 1 | 4 | one   | 1 | -1 |   |   
 
670
     | 1 | 4 | one   | 1 | -1 |   |  0
 
671
     | 2 | 3 | two   | 1 | -1 | 1 | -1
 
672
     | 2 | 3 | two   | 1 | -1 | 2 |  2
 
673
     | 2 | 3 | two   | 1 | -1 | 3 | -3
 
674
     | 2 | 3 | two   | 1 | -1 | 2 |  4
 
675
     | 2 | 3 | two   | 1 | -1 | 5 | -5
 
676
     | 2 | 3 | two   | 1 | -1 | 5 | -5
 
677
     | 2 | 3 | two   | 1 | -1 | 0 |   
 
678
     | 2 | 3 | two   | 1 | -1 |   |   
 
679
     | 2 | 3 | two   | 1 | -1 |   |  0
 
680
     | 3 | 2 | three | 1 | -1 | 1 | -1
 
681
     | 3 | 2 | three | 1 | -1 | 2 |  2
 
682
     | 3 | 2 | three | 1 | -1 | 3 | -3
 
683
     | 3 | 2 | three | 1 | -1 | 2 |  4
 
684
     | 3 | 2 | three | 1 | -1 | 5 | -5
 
685
     | 3 | 2 | three | 1 | -1 | 5 | -5
 
686
     | 3 | 2 | three | 1 | -1 | 0 |   
 
687
     | 3 | 2 | three | 1 | -1 |   |   
 
688
     | 3 | 2 | three | 1 | -1 |   |  0
 
689
     | 4 | 1 | four  | 1 | -1 | 1 | -1
 
690
     | 4 | 1 | four  | 1 | -1 | 2 |  2
 
691
     | 4 | 1 | four  | 1 | -1 | 3 | -3
 
692
     | 4 | 1 | four  | 1 | -1 | 2 |  4
 
693
     | 4 | 1 | four  | 1 | -1 | 5 | -5
 
694
     | 4 | 1 | four  | 1 | -1 | 5 | -5
 
695
     | 4 | 1 | four  | 1 | -1 | 0 |   
 
696
     | 4 | 1 | four  | 1 | -1 |   |   
 
697
     | 4 | 1 | four  | 1 | -1 |   |  0
 
698
     | 5 | 0 | five  | 1 | -1 | 1 | -1
 
699
     | 5 | 0 | five  | 1 | -1 | 2 |  2
 
700
     | 5 | 0 | five  | 1 | -1 | 3 | -3
 
701
     | 5 | 0 | five  | 1 | -1 | 2 |  4
 
702
     | 5 | 0 | five  | 1 | -1 | 5 | -5
 
703
     | 5 | 0 | five  | 1 | -1 | 5 | -5
 
704
     | 5 | 0 | five  | 1 | -1 | 0 |   
 
705
     | 5 | 0 | five  | 1 | -1 |   |   
 
706
     | 5 | 0 | five  | 1 | -1 |   |  0
 
707
     | 6 | 6 | six   | 1 | -1 | 1 | -1
 
708
     | 6 | 6 | six   | 1 | -1 | 2 |  2
 
709
     | 6 | 6 | six   | 1 | -1 | 3 | -3
 
710
     | 6 | 6 | six   | 1 | -1 | 2 |  4
 
711
     | 6 | 6 | six   | 1 | -1 | 5 | -5
 
712
     | 6 | 6 | six   | 1 | -1 | 5 | -5
 
713
     | 6 | 6 | six   | 1 | -1 | 0 |   
 
714
     | 6 | 6 | six   | 1 | -1 |   |   
 
715
     | 6 | 6 | six   | 1 | -1 |   |  0
 
716
     | 7 | 7 | seven | 1 | -1 | 1 | -1
 
717
     | 7 | 7 | seven | 1 | -1 | 2 |  2
 
718
     | 7 | 7 | seven | 1 | -1 | 3 | -3
 
719
     | 7 | 7 | seven | 1 | -1 | 2 |  4
 
720
     | 7 | 7 | seven | 1 | -1 | 5 | -5
 
721
     | 7 | 7 | seven | 1 | -1 | 5 | -5
 
722
     | 7 | 7 | seven | 1 | -1 | 0 |   
 
723
     | 7 | 7 | seven | 1 | -1 |   |   
 
724
     | 7 | 7 | seven | 1 | -1 |   |  0
 
725
     | 8 | 8 | eight | 1 | -1 | 1 | -1
 
726
     | 8 | 8 | eight | 1 | -1 | 2 |  2
 
727
     | 8 | 8 | eight | 1 | -1 | 3 | -3
 
728
     | 8 | 8 | eight | 1 | -1 | 2 |  4
 
729
     | 8 | 8 | eight | 1 | -1 | 5 | -5
 
730
     | 8 | 8 | eight | 1 | -1 | 5 | -5
 
731
     | 8 | 8 | eight | 1 | -1 | 0 |   
 
732
     | 8 | 8 | eight | 1 | -1 |   |   
 
733
     | 8 | 8 | eight | 1 | -1 |   |  0
 
734
     | 0 |   | zero  | 1 | -1 | 1 | -1
 
735
     | 0 |   | zero  | 1 | -1 | 2 |  2
 
736
     | 0 |   | zero  | 1 | -1 | 3 | -3
 
737
     | 0 |   | zero  | 1 | -1 | 2 |  4
 
738
     | 0 |   | zero  | 1 | -1 | 5 | -5
 
739
     | 0 |   | zero  | 1 | -1 | 5 | -5
 
740
     | 0 |   | zero  | 1 | -1 | 0 |   
 
741
     | 0 |   | zero  | 1 | -1 |   |   
 
742
     | 0 |   | zero  | 1 | -1 |   |  0
 
743
     |   |   | null  | 1 | -1 | 1 | -1
 
744
     |   |   | null  | 1 | -1 | 2 |  2
 
745
     |   |   | null  | 1 | -1 | 3 | -3
 
746
     |   |   | null  | 1 | -1 | 2 |  4
 
747
     |   |   | null  | 1 | -1 | 5 | -5
 
748
     |   |   | null  | 1 | -1 | 5 | -5
 
749
     |   |   | null  | 1 | -1 | 0 |   
 
750
     |   |   | null  | 1 | -1 |   |   
 
751
     |   |   | null  | 1 | -1 |   |  0
 
752
     |   | 0 | zero  | 1 | -1 | 1 | -1
 
753
     |   | 0 | zero  | 1 | -1 | 2 |  2
 
754
     |   | 0 | zero  | 1 | -1 | 3 | -3
 
755
     |   | 0 | zero  | 1 | -1 | 2 |  4
 
756
     |   | 0 | zero  | 1 | -1 | 5 | -5
 
757
     |   | 0 | zero  | 1 | -1 | 5 | -5
 
758
     |   | 0 | zero  | 1 | -1 | 0 |   
 
759
     |   | 0 | zero  | 1 | -1 |   |   
 
760
     |   | 0 | zero  | 1 | -1 |   |  0
 
761
     | 1 | 4 | one   | 2 |  2 | 1 | -1
 
762
     | 1 | 4 | one   | 2 |  2 | 2 |  2
 
763
     | 1 | 4 | one   | 2 |  2 | 3 | -3
 
764
     | 1 | 4 | one   | 2 |  2 | 2 |  4
 
765
     | 1 | 4 | one   | 2 |  2 | 5 | -5
 
766
     | 1 | 4 | one   | 2 |  2 | 5 | -5
 
767
     | 1 | 4 | one   | 2 |  2 | 0 |   
 
768
     | 1 | 4 | one   | 2 |  2 |   |   
 
769
     | 1 | 4 | one   | 2 |  2 |   |  0
 
770
     | 2 | 3 | two   | 2 |  2 | 1 | -1
 
771
     | 2 | 3 | two   | 2 |  2 | 2 |  2
 
772
     | 2 | 3 | two   | 2 |  2 | 3 | -3
 
773
     | 2 | 3 | two   | 2 |  2 | 2 |  4
 
774
     | 2 | 3 | two   | 2 |  2 | 5 | -5
 
775
     | 2 | 3 | two   | 2 |  2 | 5 | -5
 
776
     | 2 | 3 | two   | 2 |  2 | 0 |   
 
777
     | 2 | 3 | two   | 2 |  2 |   |   
 
778
     | 2 | 3 | two   | 2 |  2 |   |  0
 
779
     | 3 | 2 | three | 2 |  2 | 1 | -1
 
780
     | 3 | 2 | three | 2 |  2 | 2 |  2
 
781
     | 3 | 2 | three | 2 |  2 | 3 | -3
 
782
     | 3 | 2 | three | 2 |  2 | 2 |  4
 
783
     | 3 | 2 | three | 2 |  2 | 5 | -5
 
784
     | 3 | 2 | three | 2 |  2 | 5 | -5
 
785
     | 3 | 2 | three | 2 |  2 | 0 |   
 
786
     | 3 | 2 | three | 2 |  2 |   |   
 
787
     | 3 | 2 | three | 2 |  2 |   |  0
 
788
     | 4 | 1 | four  | 2 |  2 | 1 | -1
 
789
     | 4 | 1 | four  | 2 |  2 | 2 |  2
 
790
     | 4 | 1 | four  | 2 |  2 | 3 | -3
 
791
     | 4 | 1 | four  | 2 |  2 | 2 |  4
 
792
     | 4 | 1 | four  | 2 |  2 | 5 | -5
 
793
     | 4 | 1 | four  | 2 |  2 | 5 | -5
 
794
     | 4 | 1 | four  | 2 |  2 | 0 |   
 
795
     | 4 | 1 | four  | 2 |  2 |   |   
 
796
     | 4 | 1 | four  | 2 |  2 |   |  0
 
797
     | 5 | 0 | five  | 2 |  2 | 1 | -1
 
798
     | 5 | 0 | five  | 2 |  2 | 2 |  2
 
799
     | 5 | 0 | five  | 2 |  2 | 3 | -3
 
800
     | 5 | 0 | five  | 2 |  2 | 2 |  4
 
801
     | 5 | 0 | five  | 2 |  2 | 5 | -5
 
802
     | 5 | 0 | five  | 2 |  2 | 5 | -5
 
803
     | 5 | 0 | five  | 2 |  2 | 0 |   
 
804
     | 5 | 0 | five  | 2 |  2 |   |   
 
805
     | 5 | 0 | five  | 2 |  2 |   |  0
 
806
     | 6 | 6 | six   | 2 |  2 | 1 | -1
 
807
     | 6 | 6 | six   | 2 |  2 | 2 |  2
 
808
     | 6 | 6 | six   | 2 |  2 | 3 | -3
 
809
     | 6 | 6 | six   | 2 |  2 | 2 |  4
 
810
     | 6 | 6 | six   | 2 |  2 | 5 | -5
 
811
     | 6 | 6 | six   | 2 |  2 | 5 | -5
 
812
     | 6 | 6 | six   | 2 |  2 | 0 |   
 
813
     | 6 | 6 | six   | 2 |  2 |   |   
 
814
     | 6 | 6 | six   | 2 |  2 |   |  0
 
815
     | 7 | 7 | seven | 2 |  2 | 1 | -1
 
816
     | 7 | 7 | seven | 2 |  2 | 2 |  2
 
817
     | 7 | 7 | seven | 2 |  2 | 3 | -3
 
818
     | 7 | 7 | seven | 2 |  2 | 2 |  4
 
819
     | 7 | 7 | seven | 2 |  2 | 5 | -5
 
820
     | 7 | 7 | seven | 2 |  2 | 5 | -5
 
821
     | 7 | 7 | seven | 2 |  2 | 0 |   
 
822
     | 7 | 7 | seven | 2 |  2 |   |   
 
823
     | 7 | 7 | seven | 2 |  2 |   |  0
 
824
     | 8 | 8 | eight | 2 |  2 | 1 | -1
 
825
     | 8 | 8 | eight | 2 |  2 | 2 |  2
 
826
     | 8 | 8 | eight | 2 |  2 | 3 | -3
 
827
     | 8 | 8 | eight | 2 |  2 | 2 |  4
 
828
     | 8 | 8 | eight | 2 |  2 | 5 | -5
 
829
     | 8 | 8 | eight | 2 |  2 | 5 | -5
 
830
     | 8 | 8 | eight | 2 |  2 | 0 |   
 
831
     | 8 | 8 | eight | 2 |  2 |   |   
 
832
     | 8 | 8 | eight | 2 |  2 |   |  0
 
833
     | 0 |   | zero  | 2 |  2 | 1 | -1
 
834
     | 0 |   | zero  | 2 |  2 | 2 |  2
 
835
     | 0 |   | zero  | 2 |  2 | 3 | -3
 
836
     | 0 |   | zero  | 2 |  2 | 2 |  4
 
837
     | 0 |   | zero  | 2 |  2 | 5 | -5
 
838
     | 0 |   | zero  | 2 |  2 | 5 | -5
 
839
     | 0 |   | zero  | 2 |  2 | 0 |   
 
840
     | 0 |   | zero  | 2 |  2 |   |   
 
841
     | 0 |   | zero  | 2 |  2 |   |  0
 
842
     |   |   | null  | 2 |  2 | 1 | -1
 
843
     |   |   | null  | 2 |  2 | 2 |  2
 
844
     |   |   | null  | 2 |  2 | 3 | -3
 
845
     |   |   | null  | 2 |  2 | 2 |  4
 
846
     |   |   | null  | 2 |  2 | 5 | -5
 
847
     |   |   | null  | 2 |  2 | 5 | -5
 
848
     |   |   | null  | 2 |  2 | 0 |   
 
849
     |   |   | null  | 2 |  2 |   |   
 
850
     |   |   | null  | 2 |  2 |   |  0
 
851
     |   | 0 | zero  | 2 |  2 | 1 | -1
 
852
     |   | 0 | zero  | 2 |  2 | 2 |  2
 
853
     |   | 0 | zero  | 2 |  2 | 3 | -3
 
854
     |   | 0 | zero  | 2 |  2 | 2 |  4
 
855
     |   | 0 | zero  | 2 |  2 | 5 | -5
 
856
     |   | 0 | zero  | 2 |  2 | 5 | -5
 
857
     |   | 0 | zero  | 2 |  2 | 0 |   
 
858
     |   | 0 | zero  | 2 |  2 |   |   
 
859
     |   | 0 | zero  | 2 |  2 |   |  0
 
860
     | 1 | 4 | one   | 3 | -3 | 1 | -1
 
861
     | 1 | 4 | one   | 3 | -3 | 2 |  2
 
862
     | 1 | 4 | one   | 3 | -3 | 3 | -3
 
863
     | 1 | 4 | one   | 3 | -3 | 2 |  4
 
864
     | 1 | 4 | one   | 3 | -3 | 5 | -5
 
865
     | 1 | 4 | one   | 3 | -3 | 5 | -5
 
866
     | 1 | 4 | one   | 3 | -3 | 0 |   
 
867
     | 1 | 4 | one   | 3 | -3 |   |   
 
868
     | 1 | 4 | one   | 3 | -3 |   |  0
 
869
     | 2 | 3 | two   | 3 | -3 | 1 | -1
 
870
     | 2 | 3 | two   | 3 | -3 | 2 |  2
 
871
     | 2 | 3 | two   | 3 | -3 | 3 | -3
 
872
     | 2 | 3 | two   | 3 | -3 | 2 |  4
 
873
     | 2 | 3 | two   | 3 | -3 | 5 | -5
 
874
     | 2 | 3 | two   | 3 | -3 | 5 | -5
 
875
     | 2 | 3 | two   | 3 | -3 | 0 |   
 
876
     | 2 | 3 | two   | 3 | -3 |   |   
 
877
     | 2 | 3 | two   | 3 | -3 |   |  0
 
878
     | 3 | 2 | three | 3 | -3 | 1 | -1
 
879
     | 3 | 2 | three | 3 | -3 | 2 |  2
 
880
     | 3 | 2 | three | 3 | -3 | 3 | -3
 
881
     | 3 | 2 | three | 3 | -3 | 2 |  4
 
882
     | 3 | 2 | three | 3 | -3 | 5 | -5
 
883
     | 3 | 2 | three | 3 | -3 | 5 | -5
 
884
     | 3 | 2 | three | 3 | -3 | 0 |   
 
885
     | 3 | 2 | three | 3 | -3 |   |   
 
886
     | 3 | 2 | three | 3 | -3 |   |  0
 
887
     | 4 | 1 | four  | 3 | -3 | 1 | -1
 
888
     | 4 | 1 | four  | 3 | -3 | 2 |  2
 
889
     | 4 | 1 | four  | 3 | -3 | 3 | -3
 
890
     | 4 | 1 | four  | 3 | -3 | 2 |  4
 
891
     | 4 | 1 | four  | 3 | -3 | 5 | -5
 
892
     | 4 | 1 | four  | 3 | -3 | 5 | -5
 
893
     | 4 | 1 | four  | 3 | -3 | 0 |   
 
894
     | 4 | 1 | four  | 3 | -3 |   |   
 
895
     | 4 | 1 | four  | 3 | -3 |   |  0
 
896
     | 5 | 0 | five  | 3 | -3 | 1 | -1
 
897
     | 5 | 0 | five  | 3 | -3 | 2 |  2
 
898
     | 5 | 0 | five  | 3 | -3 | 3 | -3
 
899
     | 5 | 0 | five  | 3 | -3 | 2 |  4
 
900
     | 5 | 0 | five  | 3 | -3 | 5 | -5
 
901
     | 5 | 0 | five  | 3 | -3 | 5 | -5
 
902
     | 5 | 0 | five  | 3 | -3 | 0 |   
 
903
     | 5 | 0 | five  | 3 | -3 |   |   
 
904
     | 5 | 0 | five  | 3 | -3 |   |  0
 
905
     | 6 | 6 | six   | 3 | -3 | 1 | -1
 
906
     | 6 | 6 | six   | 3 | -3 | 2 |  2
 
907
     | 6 | 6 | six   | 3 | -3 | 3 | -3
 
908
     | 6 | 6 | six   | 3 | -3 | 2 |  4
 
909
     | 6 | 6 | six   | 3 | -3 | 5 | -5
 
910
     | 6 | 6 | six   | 3 | -3 | 5 | -5
 
911
     | 6 | 6 | six   | 3 | -3 | 0 |   
 
912
     | 6 | 6 | six   | 3 | -3 |   |   
 
913
     | 6 | 6 | six   | 3 | -3 |   |  0
 
914
     | 7 | 7 | seven | 3 | -3 | 1 | -1
 
915
     | 7 | 7 | seven | 3 | -3 | 2 |  2
 
916
     | 7 | 7 | seven | 3 | -3 | 3 | -3
 
917
     | 7 | 7 | seven | 3 | -3 | 2 |  4
 
918
     | 7 | 7 | seven | 3 | -3 | 5 | -5
 
919
     | 7 | 7 | seven | 3 | -3 | 5 | -5
 
920
     | 7 | 7 | seven | 3 | -3 | 0 |   
 
921
     | 7 | 7 | seven | 3 | -3 |   |   
 
922
     | 7 | 7 | seven | 3 | -3 |   |  0
 
923
     | 8 | 8 | eight | 3 | -3 | 1 | -1
 
924
     | 8 | 8 | eight | 3 | -3 | 2 |  2
 
925
     | 8 | 8 | eight | 3 | -3 | 3 | -3
 
926
     | 8 | 8 | eight | 3 | -3 | 2 |  4
 
927
     | 8 | 8 | eight | 3 | -3 | 5 | -5
 
928
     | 8 | 8 | eight | 3 | -3 | 5 | -5
 
929
     | 8 | 8 | eight | 3 | -3 | 0 |   
 
930
     | 8 | 8 | eight | 3 | -3 |   |   
 
931
     | 8 | 8 | eight | 3 | -3 |   |  0
 
932
     | 0 |   | zero  | 3 | -3 | 1 | -1
 
933
     | 0 |   | zero  | 3 | -3 | 2 |  2
 
934
     | 0 |   | zero  | 3 | -3 | 3 | -3
 
935
     | 0 |   | zero  | 3 | -3 | 2 |  4
 
936
     | 0 |   | zero  | 3 | -3 | 5 | -5
 
937
     | 0 |   | zero  | 3 | -3 | 5 | -5
 
938
     | 0 |   | zero  | 3 | -3 | 0 |   
 
939
     | 0 |   | zero  | 3 | -3 |   |   
 
940
     | 0 |   | zero  | 3 | -3 |   |  0
 
941
     |   |   | null  | 3 | -3 | 1 | -1
 
942
     |   |   | null  | 3 | -3 | 2 |  2
 
943
     |   |   | null  | 3 | -3 | 3 | -3
 
944
     |   |   | null  | 3 | -3 | 2 |  4
 
945
     |   |   | null  | 3 | -3 | 5 | -5
 
946
     |   |   | null  | 3 | -3 | 5 | -5
 
947
     |   |   | null  | 3 | -3 | 0 |   
 
948
     |   |   | null  | 3 | -3 |   |   
 
949
     |   |   | null  | 3 | -3 |   |  0
 
950
     |   | 0 | zero  | 3 | -3 | 1 | -1
 
951
     |   | 0 | zero  | 3 | -3 | 2 |  2
 
952
     |   | 0 | zero  | 3 | -3 | 3 | -3
 
953
     |   | 0 | zero  | 3 | -3 | 2 |  4
 
954
     |   | 0 | zero  | 3 | -3 | 5 | -5
 
955
     |   | 0 | zero  | 3 | -3 | 5 | -5
 
956
     |   | 0 | zero  | 3 | -3 | 0 |   
 
957
     |   | 0 | zero  | 3 | -3 |   |   
 
958
     |   | 0 | zero  | 3 | -3 |   |  0
 
959
     | 1 | 4 | one   | 2 |  4 | 1 | -1
 
960
     | 1 | 4 | one   | 2 |  4 | 2 |  2
 
961
     | 1 | 4 | one   | 2 |  4 | 3 | -3
 
962
     | 1 | 4 | one   | 2 |  4 | 2 |  4
 
963
     | 1 | 4 | one   | 2 |  4 | 5 | -5
 
964
     | 1 | 4 | one   | 2 |  4 | 5 | -5
 
965
     | 1 | 4 | one   | 2 |  4 | 0 |   
 
966
     | 1 | 4 | one   | 2 |  4 |   |   
 
967
     | 1 | 4 | one   | 2 |  4 |   |  0
 
968
     | 2 | 3 | two   | 2 |  4 | 1 | -1
 
969
     | 2 | 3 | two   | 2 |  4 | 2 |  2
 
970
     | 2 | 3 | two   | 2 |  4 | 3 | -3
 
971
     | 2 | 3 | two   | 2 |  4 | 2 |  4
 
972
     | 2 | 3 | two   | 2 |  4 | 5 | -5
 
973
     | 2 | 3 | two   | 2 |  4 | 5 | -5
 
974
     | 2 | 3 | two   | 2 |  4 | 0 |   
 
975
     | 2 | 3 | two   | 2 |  4 |   |   
 
976
     | 2 | 3 | two   | 2 |  4 |   |  0
 
977
     | 3 | 2 | three | 2 |  4 | 1 | -1
 
978
     | 3 | 2 | three | 2 |  4 | 2 |  2
 
979
     | 3 | 2 | three | 2 |  4 | 3 | -3
 
980
     | 3 | 2 | three | 2 |  4 | 2 |  4
 
981
     | 3 | 2 | three | 2 |  4 | 5 | -5
 
982
     | 3 | 2 | three | 2 |  4 | 5 | -5
 
983
     | 3 | 2 | three | 2 |  4 | 0 |   
 
984
     | 3 | 2 | three | 2 |  4 |   |   
 
985
     | 3 | 2 | three | 2 |  4 |   |  0
 
986
     | 4 | 1 | four  | 2 |  4 | 1 | -1
 
987
     | 4 | 1 | four  | 2 |  4 | 2 |  2
 
988
     | 4 | 1 | four  | 2 |  4 | 3 | -3
 
989
     | 4 | 1 | four  | 2 |  4 | 2 |  4
 
990
     | 4 | 1 | four  | 2 |  4 | 5 | -5
 
991
     | 4 | 1 | four  | 2 |  4 | 5 | -5
 
992
     | 4 | 1 | four  | 2 |  4 | 0 |   
 
993
     | 4 | 1 | four  | 2 |  4 |   |   
 
994
     | 4 | 1 | four  | 2 |  4 |   |  0
 
995
     | 5 | 0 | five  | 2 |  4 | 1 | -1
 
996
     | 5 | 0 | five  | 2 |  4 | 2 |  2
 
997
     | 5 | 0 | five  | 2 |  4 | 3 | -3
 
998
     | 5 | 0 | five  | 2 |  4 | 2 |  4
 
999
     | 5 | 0 | five  | 2 |  4 | 5 | -5
 
1000
     | 5 | 0 | five  | 2 |  4 | 5 | -5
 
1001
     | 5 | 0 | five  | 2 |  4 | 0 |   
 
1002
     | 5 | 0 | five  | 2 |  4 |   |   
 
1003
     | 5 | 0 | five  | 2 |  4 |   |  0
 
1004
     | 6 | 6 | six   | 2 |  4 | 1 | -1
 
1005
     | 6 | 6 | six   | 2 |  4 | 2 |  2
 
1006
     | 6 | 6 | six   | 2 |  4 | 3 | -3
 
1007
     | 6 | 6 | six   | 2 |  4 | 2 |  4
 
1008
     | 6 | 6 | six   | 2 |  4 | 5 | -5
 
1009
     | 6 | 6 | six   | 2 |  4 | 5 | -5
 
1010
     | 6 | 6 | six   | 2 |  4 | 0 |   
 
1011
     | 6 | 6 | six   | 2 |  4 |   |   
 
1012
     | 6 | 6 | six   | 2 |  4 |   |  0
 
1013
     | 7 | 7 | seven | 2 |  4 | 1 | -1
 
1014
     | 7 | 7 | seven | 2 |  4 | 2 |  2
 
1015
     | 7 | 7 | seven | 2 |  4 | 3 | -3
 
1016
     | 7 | 7 | seven | 2 |  4 | 2 |  4
 
1017
     | 7 | 7 | seven | 2 |  4 | 5 | -5
 
1018
     | 7 | 7 | seven | 2 |  4 | 5 | -5
 
1019
     | 7 | 7 | seven | 2 |  4 | 0 |   
 
1020
     | 7 | 7 | seven | 2 |  4 |   |   
 
1021
     | 7 | 7 | seven | 2 |  4 |   |  0
 
1022
     | 8 | 8 | eight | 2 |  4 | 1 | -1
 
1023
     | 8 | 8 | eight | 2 |  4 | 2 |  2
 
1024
     | 8 | 8 | eight | 2 |  4 | 3 | -3
 
1025
     | 8 | 8 | eight | 2 |  4 | 2 |  4
 
1026
     | 8 | 8 | eight | 2 |  4 | 5 | -5
 
1027
     | 8 | 8 | eight | 2 |  4 | 5 | -5
 
1028
     | 8 | 8 | eight | 2 |  4 | 0 |   
 
1029
     | 8 | 8 | eight | 2 |  4 |   |   
 
1030
     | 8 | 8 | eight | 2 |  4 |   |  0
 
1031
     | 0 |   | zero  | 2 |  4 | 1 | -1
 
1032
     | 0 |   | zero  | 2 |  4 | 2 |  2
 
1033
     | 0 |   | zero  | 2 |  4 | 3 | -3
 
1034
     | 0 |   | zero  | 2 |  4 | 2 |  4
 
1035
     | 0 |   | zero  | 2 |  4 | 5 | -5
 
1036
     | 0 |   | zero  | 2 |  4 | 5 | -5
 
1037
     | 0 |   | zero  | 2 |  4 | 0 |   
 
1038
     | 0 |   | zero  | 2 |  4 |   |   
 
1039
     | 0 |   | zero  | 2 |  4 |   |  0
 
1040
     |   |   | null  | 2 |  4 | 1 | -1
 
1041
     |   |   | null  | 2 |  4 | 2 |  2
 
1042
     |   |   | null  | 2 |  4 | 3 | -3
 
1043
     |   |   | null  | 2 |  4 | 2 |  4
 
1044
     |   |   | null  | 2 |  4 | 5 | -5
 
1045
     |   |   | null  | 2 |  4 | 5 | -5
 
1046
     |   |   | null  | 2 |  4 | 0 |   
 
1047
     |   |   | null  | 2 |  4 |   |   
 
1048
     |   |   | null  | 2 |  4 |   |  0
 
1049
     |   | 0 | zero  | 2 |  4 | 1 | -1
 
1050
     |   | 0 | zero  | 2 |  4 | 2 |  2
 
1051
     |   | 0 | zero  | 2 |  4 | 3 | -3
 
1052
     |   | 0 | zero  | 2 |  4 | 2 |  4
 
1053
     |   | 0 | zero  | 2 |  4 | 5 | -5
 
1054
     |   | 0 | zero  | 2 |  4 | 5 | -5
 
1055
     |   | 0 | zero  | 2 |  4 | 0 |   
 
1056
     |   | 0 | zero  | 2 |  4 |   |   
 
1057
     |   | 0 | zero  | 2 |  4 |   |  0
 
1058
     | 1 | 4 | one   | 5 | -5 | 1 | -1
 
1059
     | 1 | 4 | one   | 5 | -5 | 2 |  2
 
1060
     | 1 | 4 | one   | 5 | -5 | 3 | -3
 
1061
     | 1 | 4 | one   | 5 | -5 | 2 |  4
 
1062
     | 1 | 4 | one   | 5 | -5 | 5 | -5
 
1063
     | 1 | 4 | one   | 5 | -5 | 5 | -5
 
1064
     | 1 | 4 | one   | 5 | -5 | 0 |   
 
1065
     | 1 | 4 | one   | 5 | -5 |   |   
 
1066
     | 1 | 4 | one   | 5 | -5 |   |  0
 
1067
     | 2 | 3 | two   | 5 | -5 | 1 | -1
 
1068
     | 2 | 3 | two   | 5 | -5 | 2 |  2
 
1069
     | 2 | 3 | two   | 5 | -5 | 3 | -3
 
1070
     | 2 | 3 | two   | 5 | -5 | 2 |  4
 
1071
     | 2 | 3 | two   | 5 | -5 | 5 | -5
 
1072
     | 2 | 3 | two   | 5 | -5 | 5 | -5
 
1073
     | 2 | 3 | two   | 5 | -5 | 0 |   
 
1074
     | 2 | 3 | two   | 5 | -5 |   |   
 
1075
     | 2 | 3 | two   | 5 | -5 |   |  0
 
1076
     | 3 | 2 | three | 5 | -5 | 1 | -1
 
1077
     | 3 | 2 | three | 5 | -5 | 2 |  2
 
1078
     | 3 | 2 | three | 5 | -5 | 3 | -3
 
1079
     | 3 | 2 | three | 5 | -5 | 2 |  4
 
1080
     | 3 | 2 | three | 5 | -5 | 5 | -5
 
1081
     | 3 | 2 | three | 5 | -5 | 5 | -5
 
1082
     | 3 | 2 | three | 5 | -5 | 0 |   
 
1083
     | 3 | 2 | three | 5 | -5 |   |   
 
1084
     | 3 | 2 | three | 5 | -5 |   |  0
 
1085
     | 4 | 1 | four  | 5 | -5 | 1 | -1
 
1086
     | 4 | 1 | four  | 5 | -5 | 2 |  2
 
1087
     | 4 | 1 | four  | 5 | -5 | 3 | -3
 
1088
     | 4 | 1 | four  | 5 | -5 | 2 |  4
 
1089
     | 4 | 1 | four  | 5 | -5 | 5 | -5
 
1090
     | 4 | 1 | four  | 5 | -5 | 5 | -5
 
1091
     | 4 | 1 | four  | 5 | -5 | 0 |   
 
1092
     | 4 | 1 | four  | 5 | -5 |   |   
 
1093
     | 4 | 1 | four  | 5 | -5 |   |  0
 
1094
     | 5 | 0 | five  | 5 | -5 | 1 | -1
 
1095
     | 5 | 0 | five  | 5 | -5 | 2 |  2
 
1096
     | 5 | 0 | five  | 5 | -5 | 3 | -3
 
1097
     | 5 | 0 | five  | 5 | -5 | 2 |  4
 
1098
     | 5 | 0 | five  | 5 | -5 | 5 | -5
 
1099
     | 5 | 0 | five  | 5 | -5 | 5 | -5
 
1100
     | 5 | 0 | five  | 5 | -5 | 0 |   
 
1101
     | 5 | 0 | five  | 5 | -5 |   |   
 
1102
     | 5 | 0 | five  | 5 | -5 |   |  0
 
1103
     | 6 | 6 | six   | 5 | -5 | 1 | -1
 
1104
     | 6 | 6 | six   | 5 | -5 | 2 |  2
 
1105
     | 6 | 6 | six   | 5 | -5 | 3 | -3
 
1106
     | 6 | 6 | six   | 5 | -5 | 2 |  4
 
1107
     | 6 | 6 | six   | 5 | -5 | 5 | -5
 
1108
     | 6 | 6 | six   | 5 | -5 | 5 | -5
 
1109
     | 6 | 6 | six   | 5 | -5 | 0 |   
 
1110
     | 6 | 6 | six   | 5 | -5 |   |   
 
1111
     | 6 | 6 | six   | 5 | -5 |   |  0
 
1112
     | 7 | 7 | seven | 5 | -5 | 1 | -1
 
1113
     | 7 | 7 | seven | 5 | -5 | 2 |  2
 
1114
     | 7 | 7 | seven | 5 | -5 | 3 | -3
 
1115
     | 7 | 7 | seven | 5 | -5 | 2 |  4
 
1116
     | 7 | 7 | seven | 5 | -5 | 5 | -5
 
1117
     | 7 | 7 | seven | 5 | -5 | 5 | -5
 
1118
     | 7 | 7 | seven | 5 | -5 | 0 |   
 
1119
     | 7 | 7 | seven | 5 | -5 |   |   
 
1120
     | 7 | 7 | seven | 5 | -5 |   |  0
 
1121
     | 8 | 8 | eight | 5 | -5 | 1 | -1
 
1122
     | 8 | 8 | eight | 5 | -5 | 2 |  2
 
1123
     | 8 | 8 | eight | 5 | -5 | 3 | -3
 
1124
     | 8 | 8 | eight | 5 | -5 | 2 |  4
 
1125
     | 8 | 8 | eight | 5 | -5 | 5 | -5
 
1126
     | 8 | 8 | eight | 5 | -5 | 5 | -5
 
1127
     | 8 | 8 | eight | 5 | -5 | 0 |   
 
1128
     | 8 | 8 | eight | 5 | -5 |   |   
 
1129
     | 8 | 8 | eight | 5 | -5 |   |  0
 
1130
     | 0 |   | zero  | 5 | -5 | 1 | -1
 
1131
     | 0 |   | zero  | 5 | -5 | 2 |  2
 
1132
     | 0 |   | zero  | 5 | -5 | 3 | -3
 
1133
     | 0 |   | zero  | 5 | -5 | 2 |  4
 
1134
     | 0 |   | zero  | 5 | -5 | 5 | -5
 
1135
     | 0 |   | zero  | 5 | -5 | 5 | -5
 
1136
     | 0 |   | zero  | 5 | -5 | 0 |   
 
1137
     | 0 |   | zero  | 5 | -5 |   |   
 
1138
     | 0 |   | zero  | 5 | -5 |   |  0
 
1139
     |   |   | null  | 5 | -5 | 1 | -1
 
1140
     |   |   | null  | 5 | -5 | 2 |  2
 
1141
     |   |   | null  | 5 | -5 | 3 | -3
 
1142
     |   |   | null  | 5 | -5 | 2 |  4
 
1143
     |   |   | null  | 5 | -5 | 5 | -5
 
1144
     |   |   | null  | 5 | -5 | 5 | -5
 
1145
     |   |   | null  | 5 | -5 | 0 |   
 
1146
     |   |   | null  | 5 | -5 |   |   
 
1147
     |   |   | null  | 5 | -5 |   |  0
 
1148
     |   | 0 | zero  | 5 | -5 | 1 | -1
 
1149
     |   | 0 | zero  | 5 | -5 | 2 |  2
 
1150
     |   | 0 | zero  | 5 | -5 | 3 | -3
 
1151
     |   | 0 | zero  | 5 | -5 | 2 |  4
 
1152
     |   | 0 | zero  | 5 | -5 | 5 | -5
 
1153
     |   | 0 | zero  | 5 | -5 | 5 | -5
 
1154
     |   | 0 | zero  | 5 | -5 | 0 |   
 
1155
     |   | 0 | zero  | 5 | -5 |   |   
 
1156
     |   | 0 | zero  | 5 | -5 |   |  0
 
1157
     | 1 | 4 | one   | 5 | -5 | 1 | -1
 
1158
     | 1 | 4 | one   | 5 | -5 | 2 |  2
 
1159
     | 1 | 4 | one   | 5 | -5 | 3 | -3
 
1160
     | 1 | 4 | one   | 5 | -5 | 2 |  4
 
1161
     | 1 | 4 | one   | 5 | -5 | 5 | -5
 
1162
     | 1 | 4 | one   | 5 | -5 | 5 | -5
 
1163
     | 1 | 4 | one   | 5 | -5 | 0 |   
 
1164
     | 1 | 4 | one   | 5 | -5 |   |   
 
1165
     | 1 | 4 | one   | 5 | -5 |   |  0
 
1166
     | 2 | 3 | two   | 5 | -5 | 1 | -1
 
1167
     | 2 | 3 | two   | 5 | -5 | 2 |  2
 
1168
     | 2 | 3 | two   | 5 | -5 | 3 | -3
 
1169
     | 2 | 3 | two   | 5 | -5 | 2 |  4
 
1170
     | 2 | 3 | two   | 5 | -5 | 5 | -5
 
1171
     | 2 | 3 | two   | 5 | -5 | 5 | -5
 
1172
     | 2 | 3 | two   | 5 | -5 | 0 |   
 
1173
     | 2 | 3 | two   | 5 | -5 |   |   
 
1174
     | 2 | 3 | two   | 5 | -5 |   |  0
 
1175
     | 3 | 2 | three | 5 | -5 | 1 | -1
 
1176
     | 3 | 2 | three | 5 | -5 | 2 |  2
 
1177
     | 3 | 2 | three | 5 | -5 | 3 | -3
 
1178
     | 3 | 2 | three | 5 | -5 | 2 |  4
 
1179
     | 3 | 2 | three | 5 | -5 | 5 | -5
 
1180
     | 3 | 2 | three | 5 | -5 | 5 | -5
 
1181
     | 3 | 2 | three | 5 | -5 | 0 |   
 
1182
     | 3 | 2 | three | 5 | -5 |   |   
 
1183
     | 3 | 2 | three | 5 | -5 |   |  0
 
1184
     | 4 | 1 | four  | 5 | -5 | 1 | -1
 
1185
     | 4 | 1 | four  | 5 | -5 | 2 |  2
 
1186
     | 4 | 1 | four  | 5 | -5 | 3 | -3
 
1187
     | 4 | 1 | four  | 5 | -5 | 2 |  4
 
1188
     | 4 | 1 | four  | 5 | -5 | 5 | -5
 
1189
     | 4 | 1 | four  | 5 | -5 | 5 | -5
 
1190
     | 4 | 1 | four  | 5 | -5 | 0 |   
 
1191
     | 4 | 1 | four  | 5 | -5 |   |   
 
1192
     | 4 | 1 | four  | 5 | -5 |   |  0
 
1193
     | 5 | 0 | five  | 5 | -5 | 1 | -1
 
1194
     | 5 | 0 | five  | 5 | -5 | 2 |  2
 
1195
     | 5 | 0 | five  | 5 | -5 | 3 | -3
 
1196
     | 5 | 0 | five  | 5 | -5 | 2 |  4
 
1197
     | 5 | 0 | five  | 5 | -5 | 5 | -5
 
1198
     | 5 | 0 | five  | 5 | -5 | 5 | -5
 
1199
     | 5 | 0 | five  | 5 | -5 | 0 |   
 
1200
     | 5 | 0 | five  | 5 | -5 |   |   
 
1201
     | 5 | 0 | five  | 5 | -5 |   |  0
 
1202
     | 6 | 6 | six   | 5 | -5 | 1 | -1
 
1203
     | 6 | 6 | six   | 5 | -5 | 2 |  2
 
1204
     | 6 | 6 | six   | 5 | -5 | 3 | -3
 
1205
     | 6 | 6 | six   | 5 | -5 | 2 |  4
 
1206
     | 6 | 6 | six   | 5 | -5 | 5 | -5
 
1207
     | 6 | 6 | six   | 5 | -5 | 5 | -5
 
1208
     | 6 | 6 | six   | 5 | -5 | 0 |   
 
1209
     | 6 | 6 | six   | 5 | -5 |   |   
 
1210
     | 6 | 6 | six   | 5 | -5 |   |  0
 
1211
     | 7 | 7 | seven | 5 | -5 | 1 | -1
 
1212
     | 7 | 7 | seven | 5 | -5 | 2 |  2
 
1213
     | 7 | 7 | seven | 5 | -5 | 3 | -3
 
1214
     | 7 | 7 | seven | 5 | -5 | 2 |  4
 
1215
     | 7 | 7 | seven | 5 | -5 | 5 | -5
 
1216
     | 7 | 7 | seven | 5 | -5 | 5 | -5
 
1217
     | 7 | 7 | seven | 5 | -5 | 0 |   
 
1218
     | 7 | 7 | seven | 5 | -5 |   |   
 
1219
     | 7 | 7 | seven | 5 | -5 |   |  0
 
1220
     | 8 | 8 | eight | 5 | -5 | 1 | -1
 
1221
     | 8 | 8 | eight | 5 | -5 | 2 |  2
 
1222
     | 8 | 8 | eight | 5 | -5 | 3 | -3
 
1223
     | 8 | 8 | eight | 5 | -5 | 2 |  4
 
1224
     | 8 | 8 | eight | 5 | -5 | 5 | -5
 
1225
     | 8 | 8 | eight | 5 | -5 | 5 | -5
 
1226
     | 8 | 8 | eight | 5 | -5 | 0 |   
 
1227
     | 8 | 8 | eight | 5 | -5 |   |   
 
1228
     | 8 | 8 | eight | 5 | -5 |   |  0
 
1229
     | 0 |   | zero  | 5 | -5 | 1 | -1
 
1230
     | 0 |   | zero  | 5 | -5 | 2 |  2
 
1231
     | 0 |   | zero  | 5 | -5 | 3 | -3
 
1232
     | 0 |   | zero  | 5 | -5 | 2 |  4
 
1233
     | 0 |   | zero  | 5 | -5 | 5 | -5
 
1234
     | 0 |   | zero  | 5 | -5 | 5 | -5
 
1235
     | 0 |   | zero  | 5 | -5 | 0 |   
 
1236
     | 0 |   | zero  | 5 | -5 |   |   
 
1237
     | 0 |   | zero  | 5 | -5 |   |  0
 
1238
     |   |   | null  | 5 | -5 | 1 | -1
 
1239
     |   |   | null  | 5 | -5 | 2 |  2
 
1240
     |   |   | null  | 5 | -5 | 3 | -3
 
1241
     |   |   | null  | 5 | -5 | 2 |  4
 
1242
     |   |   | null  | 5 | -5 | 5 | -5
 
1243
     |   |   | null  | 5 | -5 | 5 | -5
 
1244
     |   |   | null  | 5 | -5 | 0 |   
 
1245
     |   |   | null  | 5 | -5 |   |   
 
1246
     |   |   | null  | 5 | -5 |   |  0
 
1247
     |   | 0 | zero  | 5 | -5 | 1 | -1
 
1248
     |   | 0 | zero  | 5 | -5 | 2 |  2
 
1249
     |   | 0 | zero  | 5 | -5 | 3 | -3
 
1250
     |   | 0 | zero  | 5 | -5 | 2 |  4
 
1251
     |   | 0 | zero  | 5 | -5 | 5 | -5
 
1252
     |   | 0 | zero  | 5 | -5 | 5 | -5
 
1253
     |   | 0 | zero  | 5 | -5 | 0 |   
 
1254
     |   | 0 | zero  | 5 | -5 |   |   
 
1255
     |   | 0 | zero  | 5 | -5 |   |  0
 
1256
     | 1 | 4 | one   | 0 |    | 1 | -1
 
1257
     | 1 | 4 | one   | 0 |    | 2 |  2
 
1258
     | 1 | 4 | one   | 0 |    | 3 | -3
 
1259
     | 1 | 4 | one   | 0 |    | 2 |  4
 
1260
     | 1 | 4 | one   | 0 |    | 5 | -5
 
1261
     | 1 | 4 | one   | 0 |    | 5 | -5
 
1262
     | 1 | 4 | one   | 0 |    | 0 |   
 
1263
     | 1 | 4 | one   | 0 |    |   |   
 
1264
     | 1 | 4 | one   | 0 |    |   |  0
 
1265
     | 2 | 3 | two   | 0 |    | 1 | -1
 
1266
     | 2 | 3 | two   | 0 |    | 2 |  2
 
1267
     | 2 | 3 | two   | 0 |    | 3 | -3
 
1268
     | 2 | 3 | two   | 0 |    | 2 |  4
 
1269
     | 2 | 3 | two   | 0 |    | 5 | -5
 
1270
     | 2 | 3 | two   | 0 |    | 5 | -5
 
1271
     | 2 | 3 | two   | 0 |    | 0 |   
 
1272
     | 2 | 3 | two   | 0 |    |   |   
 
1273
     | 2 | 3 | two   | 0 |    |   |  0
 
1274
     | 3 | 2 | three | 0 |    | 1 | -1
 
1275
     | 3 | 2 | three | 0 |    | 2 |  2
 
1276
     | 3 | 2 | three | 0 |    | 3 | -3
 
1277
     | 3 | 2 | three | 0 |    | 2 |  4
 
1278
     | 3 | 2 | three | 0 |    | 5 | -5
 
1279
     | 3 | 2 | three | 0 |    | 5 | -5
 
1280
     | 3 | 2 | three | 0 |    | 0 |   
 
1281
     | 3 | 2 | three | 0 |    |   |   
 
1282
     | 3 | 2 | three | 0 |    |   |  0
 
1283
     | 4 | 1 | four  | 0 |    | 1 | -1
 
1284
     | 4 | 1 | four  | 0 |    | 2 |  2
 
1285
     | 4 | 1 | four  | 0 |    | 3 | -3
 
1286
     | 4 | 1 | four  | 0 |    | 2 |  4
 
1287
     | 4 | 1 | four  | 0 |    | 5 | -5
 
1288
     | 4 | 1 | four  | 0 |    | 5 | -5
 
1289
     | 4 | 1 | four  | 0 |    | 0 |   
 
1290
     | 4 | 1 | four  | 0 |    |   |   
 
1291
     | 4 | 1 | four  | 0 |    |   |  0
 
1292
     | 5 | 0 | five  | 0 |    | 1 | -1
 
1293
     | 5 | 0 | five  | 0 |    | 2 |  2
 
1294
     | 5 | 0 | five  | 0 |    | 3 | -3
 
1295
     | 5 | 0 | five  | 0 |    | 2 |  4
 
1296
     | 5 | 0 | five  | 0 |    | 5 | -5
 
1297
     | 5 | 0 | five  | 0 |    | 5 | -5
 
1298
     | 5 | 0 | five  | 0 |    | 0 |   
 
1299
     | 5 | 0 | five  | 0 |    |   |   
 
1300
     | 5 | 0 | five  | 0 |    |   |  0
 
1301
     | 6 | 6 | six   | 0 |    | 1 | -1
 
1302
     | 6 | 6 | six   | 0 |    | 2 |  2
 
1303
     | 6 | 6 | six   | 0 |    | 3 | -3
 
1304
     | 6 | 6 | six   | 0 |    | 2 |  4
 
1305
     | 6 | 6 | six   | 0 |    | 5 | -5
 
1306
     | 6 | 6 | six   | 0 |    | 5 | -5
 
1307
     | 6 | 6 | six   | 0 |    | 0 |   
 
1308
     | 6 | 6 | six   | 0 |    |   |   
 
1309
     | 6 | 6 | six   | 0 |    |   |  0
 
1310
     | 7 | 7 | seven | 0 |    | 1 | -1
 
1311
     | 7 | 7 | seven | 0 |    | 2 |  2
 
1312
     | 7 | 7 | seven | 0 |    | 3 | -3
 
1313
     | 7 | 7 | seven | 0 |    | 2 |  4
 
1314
     | 7 | 7 | seven | 0 |    | 5 | -5
 
1315
     | 7 | 7 | seven | 0 |    | 5 | -5
 
1316
     | 7 | 7 | seven | 0 |    | 0 |   
 
1317
     | 7 | 7 | seven | 0 |    |   |   
 
1318
     | 7 | 7 | seven | 0 |    |   |  0
 
1319
     | 8 | 8 | eight | 0 |    | 1 | -1
 
1320
     | 8 | 8 | eight | 0 |    | 2 |  2
 
1321
     | 8 | 8 | eight | 0 |    | 3 | -3
 
1322
     | 8 | 8 | eight | 0 |    | 2 |  4
 
1323
     | 8 | 8 | eight | 0 |    | 5 | -5
 
1324
     | 8 | 8 | eight | 0 |    | 5 | -5
 
1325
     | 8 | 8 | eight | 0 |    | 0 |   
 
1326
     | 8 | 8 | eight | 0 |    |   |   
 
1327
     | 8 | 8 | eight | 0 |    |   |  0
 
1328
     | 0 |   | zero  | 0 |    | 1 | -1
 
1329
     | 0 |   | zero  | 0 |    | 2 |  2
 
1330
     | 0 |   | zero  | 0 |    | 3 | -3
 
1331
     | 0 |   | zero  | 0 |    | 2 |  4
 
1332
     | 0 |   | zero  | 0 |    | 5 | -5
 
1333
     | 0 |   | zero  | 0 |    | 5 | -5
 
1334
     | 0 |   | zero  | 0 |    | 0 |   
 
1335
     | 0 |   | zero  | 0 |    |   |   
 
1336
     | 0 |   | zero  | 0 |    |   |  0
 
1337
     |   |   | null  | 0 |    | 1 | -1
 
1338
     |   |   | null  | 0 |    | 2 |  2
 
1339
     |   |   | null  | 0 |    | 3 | -3
 
1340
     |   |   | null  | 0 |    | 2 |  4
 
1341
     |   |   | null  | 0 |    | 5 | -5
 
1342
     |   |   | null  | 0 |    | 5 | -5
 
1343
     |   |   | null  | 0 |    | 0 |   
 
1344
     |   |   | null  | 0 |    |   |   
 
1345
     |   |   | null  | 0 |    |   |  0
 
1346
     |   | 0 | zero  | 0 |    | 1 | -1
 
1347
     |   | 0 | zero  | 0 |    | 2 |  2
 
1348
     |   | 0 | zero  | 0 |    | 3 | -3
 
1349
     |   | 0 | zero  | 0 |    | 2 |  4
 
1350
     |   | 0 | zero  | 0 |    | 5 | -5
 
1351
     |   | 0 | zero  | 0 |    | 5 | -5
 
1352
     |   | 0 | zero  | 0 |    | 0 |   
 
1353
     |   | 0 | zero  | 0 |    |   |   
 
1354
     |   | 0 | zero  | 0 |    |   |  0
 
1355
     | 1 | 4 | one   |   |    | 1 | -1
 
1356
     | 1 | 4 | one   |   |    | 2 |  2
 
1357
     | 1 | 4 | one   |   |    | 3 | -3
 
1358
     | 1 | 4 | one   |   |    | 2 |  4
 
1359
     | 1 | 4 | one   |   |    | 5 | -5
 
1360
     | 1 | 4 | one   |   |    | 5 | -5
 
1361
     | 1 | 4 | one   |   |    | 0 |   
 
1362
     | 1 | 4 | one   |   |    |   |   
 
1363
     | 1 | 4 | one   |   |    |   |  0
 
1364
     | 2 | 3 | two   |   |    | 1 | -1
 
1365
     | 2 | 3 | two   |   |    | 2 |  2
 
1366
     | 2 | 3 | two   |   |    | 3 | -3
 
1367
     | 2 | 3 | two   |   |    | 2 |  4
 
1368
     | 2 | 3 | two   |   |    | 5 | -5
 
1369
     | 2 | 3 | two   |   |    | 5 | -5
 
1370
     | 2 | 3 | two   |   |    | 0 |   
 
1371
     | 2 | 3 | two   |   |    |   |   
 
1372
     | 2 | 3 | two   |   |    |   |  0
 
1373
     | 3 | 2 | three |   |    | 1 | -1
 
1374
     | 3 | 2 | three |   |    | 2 |  2
 
1375
     | 3 | 2 | three |   |    | 3 | -3
 
1376
     | 3 | 2 | three |   |    | 2 |  4
 
1377
     | 3 | 2 | three |   |    | 5 | -5
 
1378
     | 3 | 2 | three |   |    | 5 | -5
 
1379
     | 3 | 2 | three |   |    | 0 |   
 
1380
     | 3 | 2 | three |   |    |   |   
 
1381
     | 3 | 2 | three |   |    |   |  0
 
1382
     | 4 | 1 | four  |   |    | 1 | -1
 
1383
     | 4 | 1 | four  |   |    | 2 |  2
 
1384
     | 4 | 1 | four  |   |    | 3 | -3
 
1385
     | 4 | 1 | four  |   |    | 2 |  4
 
1386
     | 4 | 1 | four  |   |    | 5 | -5
 
1387
     | 4 | 1 | four  |   |    | 5 | -5
 
1388
     | 4 | 1 | four  |   |    | 0 |   
 
1389
     | 4 | 1 | four  |   |    |   |   
 
1390
     | 4 | 1 | four  |   |    |   |  0
 
1391
     | 5 | 0 | five  |   |    | 1 | -1
 
1392
     | 5 | 0 | five  |   |    | 2 |  2
 
1393
     | 5 | 0 | five  |   |    | 3 | -3
 
1394
     | 5 | 0 | five  |   |    | 2 |  4
 
1395
     | 5 | 0 | five  |   |    | 5 | -5
 
1396
     | 5 | 0 | five  |   |    | 5 | -5
 
1397
     | 5 | 0 | five  |   |    | 0 |   
 
1398
     | 5 | 0 | five  |   |    |   |   
 
1399
     | 5 | 0 | five  |   |    |   |  0
 
1400
     | 6 | 6 | six   |   |    | 1 | -1
 
1401
     | 6 | 6 | six   |   |    | 2 |  2
 
1402
     | 6 | 6 | six   |   |    | 3 | -3
 
1403
     | 6 | 6 | six   |   |    | 2 |  4
 
1404
     | 6 | 6 | six   |   |    | 5 | -5
 
1405
     | 6 | 6 | six   |   |    | 5 | -5
 
1406
     | 6 | 6 | six   |   |    | 0 |   
 
1407
     | 6 | 6 | six   |   |    |   |   
 
1408
     | 6 | 6 | six   |   |    |   |  0
 
1409
     | 7 | 7 | seven |   |    | 1 | -1
 
1410
     | 7 | 7 | seven |   |    | 2 |  2
 
1411
     | 7 | 7 | seven |   |    | 3 | -3
 
1412
     | 7 | 7 | seven |   |    | 2 |  4
 
1413
     | 7 | 7 | seven |   |    | 5 | -5
 
1414
     | 7 | 7 | seven |   |    | 5 | -5
 
1415
     | 7 | 7 | seven |   |    | 0 |   
 
1416
     | 7 | 7 | seven |   |    |   |   
 
1417
     | 7 | 7 | seven |   |    |   |  0
 
1418
     | 8 | 8 | eight |   |    | 1 | -1
 
1419
     | 8 | 8 | eight |   |    | 2 |  2
 
1420
     | 8 | 8 | eight |   |    | 3 | -3
 
1421
     | 8 | 8 | eight |   |    | 2 |  4
 
1422
     | 8 | 8 | eight |   |    | 5 | -5
 
1423
     | 8 | 8 | eight |   |    | 5 | -5
 
1424
     | 8 | 8 | eight |   |    | 0 |   
 
1425
     | 8 | 8 | eight |   |    |   |   
 
1426
     | 8 | 8 | eight |   |    |   |  0
 
1427
     | 0 |   | zero  |   |    | 1 | -1
 
1428
     | 0 |   | zero  |   |    | 2 |  2
 
1429
     | 0 |   | zero  |   |    | 3 | -3
 
1430
     | 0 |   | zero  |   |    | 2 |  4
 
1431
     | 0 |   | zero  |   |    | 5 | -5
 
1432
     | 0 |   | zero  |   |    | 5 | -5
 
1433
     | 0 |   | zero  |   |    | 0 |   
 
1434
     | 0 |   | zero  |   |    |   |   
 
1435
     | 0 |   | zero  |   |    |   |  0
 
1436
     |   |   | null  |   |    | 1 | -1
 
1437
     |   |   | null  |   |    | 2 |  2
 
1438
     |   |   | null  |   |    | 3 | -3
 
1439
     |   |   | null  |   |    | 2 |  4
 
1440
     |   |   | null  |   |    | 5 | -5
 
1441
     |   |   | null  |   |    | 5 | -5
 
1442
     |   |   | null  |   |    | 0 |   
 
1443
     |   |   | null  |   |    |   |   
 
1444
     |   |   | null  |   |    |   |  0
 
1445
     |   | 0 | zero  |   |    | 1 | -1
 
1446
     |   | 0 | zero  |   |    | 2 |  2
 
1447
     |   | 0 | zero  |   |    | 3 | -3
 
1448
     |   | 0 | zero  |   |    | 2 |  4
 
1449
     |   | 0 | zero  |   |    | 5 | -5
 
1450
     |   | 0 | zero  |   |    | 5 | -5
 
1451
     |   | 0 | zero  |   |    | 0 |   
 
1452
     |   | 0 | zero  |   |    |   |   
 
1453
     |   | 0 | zero  |   |    |   |  0
 
1454
     | 1 | 4 | one   |   |  0 | 1 | -1
 
1455
     | 1 | 4 | one   |   |  0 | 2 |  2
 
1456
     | 1 | 4 | one   |   |  0 | 3 | -3
 
1457
     | 1 | 4 | one   |   |  0 | 2 |  4
 
1458
     | 1 | 4 | one   |   |  0 | 5 | -5
 
1459
     | 1 | 4 | one   |   |  0 | 5 | -5
 
1460
     | 1 | 4 | one   |   |  0 | 0 |   
 
1461
     | 1 | 4 | one   |   |  0 |   |   
 
1462
     | 1 | 4 | one   |   |  0 |   |  0
 
1463
     | 2 | 3 | two   |   |  0 | 1 | -1
 
1464
     | 2 | 3 | two   |   |  0 | 2 |  2
 
1465
     | 2 | 3 | two   |   |  0 | 3 | -3
 
1466
     | 2 | 3 | two   |   |  0 | 2 |  4
 
1467
     | 2 | 3 | two   |   |  0 | 5 | -5
 
1468
     | 2 | 3 | two   |   |  0 | 5 | -5
 
1469
     | 2 | 3 | two   |   |  0 | 0 |   
 
1470
     | 2 | 3 | two   |   |  0 |   |   
 
1471
     | 2 | 3 | two   |   |  0 |   |  0
 
1472
     | 3 | 2 | three |   |  0 | 1 | -1
 
1473
     | 3 | 2 | three |   |  0 | 2 |  2
 
1474
     | 3 | 2 | three |   |  0 | 3 | -3
 
1475
     | 3 | 2 | three |   |  0 | 2 |  4
 
1476
     | 3 | 2 | three |   |  0 | 5 | -5
 
1477
     | 3 | 2 | three |   |  0 | 5 | -5
 
1478
     | 3 | 2 | three |   |  0 | 0 |   
 
1479
     | 3 | 2 | three |   |  0 |   |   
 
1480
     | 3 | 2 | three |   |  0 |   |  0
 
1481
     | 4 | 1 | four  |   |  0 | 1 | -1
 
1482
     | 4 | 1 | four  |   |  0 | 2 |  2
 
1483
     | 4 | 1 | four  |   |  0 | 3 | -3
 
1484
     | 4 | 1 | four  |   |  0 | 2 |  4
 
1485
     | 4 | 1 | four  |   |  0 | 5 | -5
 
1486
     | 4 | 1 | four  |   |  0 | 5 | -5
 
1487
     | 4 | 1 | four  |   |  0 | 0 |   
 
1488
     | 4 | 1 | four  |   |  0 |   |   
 
1489
     | 4 | 1 | four  |   |  0 |   |  0
 
1490
     | 5 | 0 | five  |   |  0 | 1 | -1
 
1491
     | 5 | 0 | five  |   |  0 | 2 |  2
 
1492
     | 5 | 0 | five  |   |  0 | 3 | -3
 
1493
     | 5 | 0 | five  |   |  0 | 2 |  4
 
1494
     | 5 | 0 | five  |   |  0 | 5 | -5
 
1495
     | 5 | 0 | five  |   |  0 | 5 | -5
 
1496
     | 5 | 0 | five  |   |  0 | 0 |   
 
1497
     | 5 | 0 | five  |   |  0 |   |   
 
1498
     | 5 | 0 | five  |   |  0 |   |  0
 
1499
     | 6 | 6 | six   |   |  0 | 1 | -1
 
1500
     | 6 | 6 | six   |   |  0 | 2 |  2
 
1501
     | 6 | 6 | six   |   |  0 | 3 | -3
 
1502
     | 6 | 6 | six   |   |  0 | 2 |  4
 
1503
     | 6 | 6 | six   |   |  0 | 5 | -5
 
1504
     | 6 | 6 | six   |   |  0 | 5 | -5
 
1505
     | 6 | 6 | six   |   |  0 | 0 |   
 
1506
     | 6 | 6 | six   |   |  0 |   |   
 
1507
     | 6 | 6 | six   |   |  0 |   |  0
 
1508
     | 7 | 7 | seven |   |  0 | 1 | -1
 
1509
     | 7 | 7 | seven |   |  0 | 2 |  2
 
1510
     | 7 | 7 | seven |   |  0 | 3 | -3
 
1511
     | 7 | 7 | seven |   |  0 | 2 |  4
 
1512
     | 7 | 7 | seven |   |  0 | 5 | -5
 
1513
     | 7 | 7 | seven |   |  0 | 5 | -5
 
1514
     | 7 | 7 | seven |   |  0 | 0 |   
 
1515
     | 7 | 7 | seven |   |  0 |   |   
 
1516
     | 7 | 7 | seven |   |  0 |   |  0
 
1517
     | 8 | 8 | eight |   |  0 | 1 | -1
 
1518
     | 8 | 8 | eight |   |  0 | 2 |  2
 
1519
     | 8 | 8 | eight |   |  0 | 3 | -3
 
1520
     | 8 | 8 | eight |   |  0 | 2 |  4
 
1521
     | 8 | 8 | eight |   |  0 | 5 | -5
 
1522
     | 8 | 8 | eight |   |  0 | 5 | -5
 
1523
     | 8 | 8 | eight |   |  0 | 0 |   
 
1524
     | 8 | 8 | eight |   |  0 |   |   
 
1525
     | 8 | 8 | eight |   |  0 |   |  0
 
1526
     | 0 |   | zero  |   |  0 | 1 | -1
 
1527
     | 0 |   | zero  |   |  0 | 2 |  2
 
1528
     | 0 |   | zero  |   |  0 | 3 | -3
 
1529
     | 0 |   | zero  |   |  0 | 2 |  4
 
1530
     | 0 |   | zero  |   |  0 | 5 | -5
 
1531
     | 0 |   | zero  |   |  0 | 5 | -5
 
1532
     | 0 |   | zero  |   |  0 | 0 |   
 
1533
     | 0 |   | zero  |   |  0 |   |   
 
1534
     | 0 |   | zero  |   |  0 |   |  0
 
1535
     |   |   | null  |   |  0 | 1 | -1
 
1536
     |   |   | null  |   |  0 | 2 |  2
 
1537
     |   |   | null  |   |  0 | 3 | -3
 
1538
     |   |   | null  |   |  0 | 2 |  4
 
1539
     |   |   | null  |   |  0 | 5 | -5
 
1540
     |   |   | null  |   |  0 | 5 | -5
 
1541
     |   |   | null  |   |  0 | 0 |   
 
1542
     |   |   | null  |   |  0 |   |   
 
1543
     |   |   | null  |   |  0 |   |  0
 
1544
     |   | 0 | zero  |   |  0 | 1 | -1
 
1545
     |   | 0 | zero  |   |  0 | 2 |  2
 
1546
     |   | 0 | zero  |   |  0 | 3 | -3
 
1547
     |   | 0 | zero  |   |  0 | 2 |  4
 
1548
     |   | 0 | zero  |   |  0 | 5 | -5
 
1549
     |   | 0 | zero  |   |  0 | 5 | -5
 
1550
     |   | 0 | zero  |   |  0 | 0 |   
 
1551
     |   | 0 | zero  |   |  0 |   |   
 
1552
     |   | 0 | zero  |   |  0 |   |  0
 
1553
(891 rows)
 
1554
 
 
1555
--
 
1556
--
 
1557
-- Inner joins (equi-joins)
 
1558
--
 
1559
--
 
1560
--
 
1561
-- Inner joins (equi-joins) with USING clause
 
1562
-- The USING syntax changes the shape of the resulting table
 
1563
-- by including a column in the USING clause only once in the result.
 
1564
--
 
1565
-- Inner equi-join on specified column
 
1566
SELECT '' AS "xxx", *
 
1567
  FROM J1_TBL INNER JOIN J2_TBL USING (i);
 
1568
 xxx | i | j |   t   | k  
 
1569
-----+---+---+-------+----
 
1570
     | 0 |   | zero  |   
 
1571
     | 1 | 4 | one   | -1
 
1572
     | 2 | 3 | two   |  4
 
1573
     | 2 | 3 | two   |  2
 
1574
     | 3 | 2 | three | -3
 
1575
     | 5 | 0 | five  | -5
 
1576
     | 5 | 0 | five  | -5
 
1577
(7 rows)
 
1578
 
 
1579
-- Same as above, slightly different syntax
 
1580
SELECT '' AS "xxx", *
 
1581
  FROM J1_TBL JOIN J2_TBL USING (i);
 
1582
 xxx | i | j |   t   | k  
 
1583
-----+---+---+-------+----
 
1584
     | 0 |   | zero  |   
 
1585
     | 1 | 4 | one   | -1
 
1586
     | 2 | 3 | two   |  4
 
1587
     | 2 | 3 | two   |  2
 
1588
     | 3 | 2 | three | -3
 
1589
     | 5 | 0 | five  | -5
 
1590
     | 5 | 0 | five  | -5
 
1591
(7 rows)
 
1592
 
 
1593
SELECT '' AS "xxx", *
 
1594
  FROM J1_TBL t1 (a, b, c) JOIN J2_TBL t2 (a, d) USING (a)
 
1595
  ORDER BY a, d;
 
1596
 xxx | a | b |   c   | d  
 
1597
-----+---+---+-------+----
 
1598
     | 0 |   | zero  |   
 
1599
     | 1 | 4 | one   | -1
 
1600
     | 2 | 3 | two   |  2
 
1601
     | 2 | 3 | two   |  4
 
1602
     | 3 | 2 | three | -3
 
1603
     | 5 | 0 | five  | -5
 
1604
     | 5 | 0 | five  | -5
 
1605
(7 rows)
 
1606
 
 
1607
SELECT '' AS "xxx", *
 
1608
  FROM J1_TBL t1 (a, b, c) JOIN J2_TBL t2 (a, b) USING (b)
 
1609
  ORDER BY b, t1.a;
 
1610
 xxx | b | a |   c   | a 
 
1611
-----+---+---+-------+---
 
1612
     | 0 | 5 | five  |  
 
1613
     | 0 |   | zero  |  
 
1614
     | 2 | 3 | three | 2
 
1615
     | 4 | 1 | one   | 2
 
1616
(4 rows)
 
1617
 
 
1618
--
 
1619
-- NATURAL JOIN
 
1620
-- Inner equi-join on all columns with the same name
 
1621
--
 
1622
SELECT '' AS "xxx", *
 
1623
  FROM J1_TBL NATURAL JOIN J2_TBL;
 
1624
 xxx | i | j |   t   | k  
 
1625
-----+---+---+-------+----
 
1626
     | 0 |   | zero  |   
 
1627
     | 1 | 4 | one   | -1
 
1628
     | 2 | 3 | two   |  4
 
1629
     | 2 | 3 | two   |  2
 
1630
     | 3 | 2 | three | -3
 
1631
     | 5 | 0 | five  | -5
 
1632
     | 5 | 0 | five  | -5
 
1633
(7 rows)
 
1634
 
 
1635
SELECT '' AS "xxx", *
 
1636
  FROM J1_TBL t1 (a, b, c) NATURAL JOIN J2_TBL t2 (a, d);
 
1637
 xxx | a | b |   c   | d  
 
1638
-----+---+---+-------+----
 
1639
     | 0 |   | zero  |   
 
1640
     | 1 | 4 | one   | -1
 
1641
     | 2 | 3 | two   |  4
 
1642
     | 2 | 3 | two   |  2
 
1643
     | 3 | 2 | three | -3
 
1644
     | 5 | 0 | five  | -5
 
1645
     | 5 | 0 | five  | -5
 
1646
(7 rows)
 
1647
 
 
1648
SELECT '' AS "xxx", *
 
1649
  FROM J1_TBL t1 (a, b, c) NATURAL JOIN J2_TBL t2 (d, a);
 
1650
 xxx | a | b |  c   | d 
 
1651
-----+---+---+------+---
 
1652
     | 0 |   | zero |  
 
1653
     | 2 | 3 | two  | 2
 
1654
     | 4 | 1 | four | 2
 
1655
(3 rows)
 
1656
 
 
1657
-- mismatch number of columns
 
1658
-- currently, Postgres will fill in with underlying names
 
1659
SELECT '' AS "xxx", *
 
1660
  FROM J1_TBL t1 (a, b) NATURAL JOIN J2_TBL t2 (a);
 
1661
 xxx | a | b |   t   | k  
 
1662
-----+---+---+-------+----
 
1663
     | 0 |   | zero  |   
 
1664
     | 1 | 4 | one   | -1
 
1665
     | 2 | 3 | two   |  4
 
1666
     | 2 | 3 | two   |  2
 
1667
     | 3 | 2 | three | -3
 
1668
     | 5 | 0 | five  | -5
 
1669
     | 5 | 0 | five  | -5
 
1670
(7 rows)
 
1671
 
 
1672
--
 
1673
-- Inner joins (equi-joins)
 
1674
--
 
1675
SELECT '' AS "xxx", *
 
1676
  FROM J1_TBL JOIN J2_TBL ON (J1_TBL.i = J2_TBL.i);
 
1677
 xxx | i | j |   t   | i | k  
 
1678
-----+---+---+-------+---+----
 
1679
     | 0 |   | zero  | 0 |   
 
1680
     | 1 | 4 | one   | 1 | -1
 
1681
     | 2 | 3 | two   | 2 |  4
 
1682
     | 2 | 3 | two   | 2 |  2
 
1683
     | 3 | 2 | three | 3 | -3
 
1684
     | 5 | 0 | five  | 5 | -5
 
1685
     | 5 | 0 | five  | 5 | -5
 
1686
(7 rows)
 
1687
 
 
1688
SELECT '' AS "xxx", *
 
1689
  FROM J1_TBL JOIN J2_TBL ON (J1_TBL.i = J2_TBL.k);
 
1690
 xxx | i | j |  t   | i | k 
 
1691
-----+---+---+------+---+---
 
1692
     | 0 |   | zero |   | 0
 
1693
     | 2 | 3 | two  | 2 | 2
 
1694
     | 4 | 1 | four | 2 | 4
 
1695
(3 rows)
 
1696
 
 
1697
--
 
1698
-- Non-equi-joins
 
1699
--
 
1700
SELECT '' AS "xxx", *
 
1701
  FROM J1_TBL JOIN J2_TBL ON (J1_TBL.i <= J2_TBL.k);
 
1702
 xxx | i | j |   t   | i | k 
 
1703
-----+---+---+-------+---+---
 
1704
     | 1 | 4 | one   | 2 | 2
 
1705
     | 2 | 3 | two   | 2 | 2
 
1706
     | 0 |   | zero  | 2 | 2
 
1707
     | 1 | 4 | one   | 2 | 4
 
1708
     | 2 | 3 | two   | 2 | 4
 
1709
     | 3 | 2 | three | 2 | 4
 
1710
     | 4 | 1 | four  | 2 | 4
 
1711
     | 0 |   | zero  | 2 | 4
 
1712
     | 0 |   | zero  |   | 0
 
1713
(9 rows)
 
1714
 
 
1715
--
 
1716
-- Outer joins
 
1717
-- Note that OUTER is a noise word
 
1718
--
 
1719
SELECT '' AS "xxx", *
 
1720
  FROM J1_TBL LEFT OUTER JOIN J2_TBL USING (i)
 
1721
  ORDER BY i, k, t;
 
1722
 xxx | i | j |   t   | k  
 
1723
-----+---+---+-------+----
 
1724
     | 0 |   | zero  |   
 
1725
     | 1 | 4 | one   | -1
 
1726
     | 2 | 3 | two   |  2
 
1727
     | 2 | 3 | two   |  4
 
1728
     | 3 | 2 | three | -3
 
1729
     | 4 | 1 | four  |   
 
1730
     | 5 | 0 | five  | -5
 
1731
     | 5 | 0 | five  | -5
 
1732
     | 6 | 6 | six   |   
 
1733
     | 7 | 7 | seven |   
 
1734
     | 8 | 8 | eight |   
 
1735
     |   |   | null  |   
 
1736
     |   | 0 | zero  |   
 
1737
(13 rows)
 
1738
 
 
1739
SELECT '' AS "xxx", *
 
1740
  FROM J1_TBL LEFT JOIN J2_TBL USING (i)
 
1741
  ORDER BY i, k, t;
 
1742
 xxx | i | j |   t   | k  
 
1743
-----+---+---+-------+----
 
1744
     | 0 |   | zero  |   
 
1745
     | 1 | 4 | one   | -1
 
1746
     | 2 | 3 | two   |  2
 
1747
     | 2 | 3 | two   |  4
 
1748
     | 3 | 2 | three | -3
 
1749
     | 4 | 1 | four  |   
 
1750
     | 5 | 0 | five  | -5
 
1751
     | 5 | 0 | five  | -5
 
1752
     | 6 | 6 | six   |   
 
1753
     | 7 | 7 | seven |   
 
1754
     | 8 | 8 | eight |   
 
1755
     |   |   | null  |   
 
1756
     |   | 0 | zero  |   
 
1757
(13 rows)
 
1758
 
 
1759
SELECT '' AS "xxx", *
 
1760
  FROM J1_TBL RIGHT OUTER JOIN J2_TBL USING (i);
 
1761
 xxx | i | j |   t   | k  
 
1762
-----+---+---+-------+----
 
1763
     | 0 |   | zero  |   
 
1764
     | 1 | 4 | one   | -1
 
1765
     | 2 | 3 | two   |  4
 
1766
     | 2 | 3 | two   |  2
 
1767
     | 3 | 2 | three | -3
 
1768
     | 5 | 0 | five  | -5
 
1769
     | 5 | 0 | five  | -5
 
1770
     |   |   |       |  0
 
1771
     |   |   |       |   
 
1772
(9 rows)
 
1773
 
 
1774
SELECT '' AS "xxx", *
 
1775
  FROM J1_TBL RIGHT JOIN J2_TBL USING (i);
 
1776
 xxx | i | j |   t   | k  
 
1777
-----+---+---+-------+----
 
1778
     | 0 |   | zero  |   
 
1779
     | 1 | 4 | one   | -1
 
1780
     | 2 | 3 | two   |  4
 
1781
     | 2 | 3 | two   |  2
 
1782
     | 3 | 2 | three | -3
 
1783
     | 5 | 0 | five  | -5
 
1784
     | 5 | 0 | five  | -5
 
1785
     |   |   |       |  0
 
1786
     |   |   |       |   
 
1787
(9 rows)
 
1788
 
 
1789
SELECT '' AS "xxx", *
 
1790
  FROM J1_TBL FULL OUTER JOIN J2_TBL USING (i)
 
1791
  ORDER BY i, k, t;
 
1792
 xxx | i | j |   t   | k  
 
1793
-----+---+---+-------+----
 
1794
     | 0 |   | zero  |   
 
1795
     | 1 | 4 | one   | -1
 
1796
     | 2 | 3 | two   |  2
 
1797
     | 2 | 3 | two   |  4
 
1798
     | 3 | 2 | three | -3
 
1799
     | 4 | 1 | four  |   
 
1800
     | 5 | 0 | five  | -5
 
1801
     | 5 | 0 | five  | -5
 
1802
     | 6 | 6 | six   |   
 
1803
     | 7 | 7 | seven |   
 
1804
     | 8 | 8 | eight |   
 
1805
     |   |   |       |  0
 
1806
     |   |   | null  |   
 
1807
     |   | 0 | zero  |   
 
1808
     |   |   |       |   
 
1809
(15 rows)
 
1810
 
 
1811
SELECT '' AS "xxx", *
 
1812
  FROM J1_TBL FULL JOIN J2_TBL USING (i)
 
1813
  ORDER BY i, k, t;
 
1814
 xxx | i | j |   t   | k  
 
1815
-----+---+---+-------+----
 
1816
     | 0 |   | zero  |   
 
1817
     | 1 | 4 | one   | -1
 
1818
     | 2 | 3 | two   |  2
 
1819
     | 2 | 3 | two   |  4
 
1820
     | 3 | 2 | three | -3
 
1821
     | 4 | 1 | four  |   
 
1822
     | 5 | 0 | five  | -5
 
1823
     | 5 | 0 | five  | -5
 
1824
     | 6 | 6 | six   |   
 
1825
     | 7 | 7 | seven |   
 
1826
     | 8 | 8 | eight |   
 
1827
     |   |   |       |  0
 
1828
     |   |   | null  |   
 
1829
     |   | 0 | zero  |   
 
1830
     |   |   |       |   
 
1831
(15 rows)
 
1832
 
 
1833
SELECT '' AS "xxx", *
 
1834
  FROM J1_TBL LEFT JOIN J2_TBL USING (i) WHERE (k = 1);
 
1835
 xxx | i | j | t | k 
 
1836
-----+---+---+---+---
 
1837
(0 rows)
 
1838
 
 
1839
SELECT '' AS "xxx", *
 
1840
  FROM J1_TBL LEFT JOIN J2_TBL USING (i) WHERE (i = 1);
 
1841
 xxx | i | j |  t  | k  
 
1842
-----+---+---+-----+----
 
1843
     | 1 | 4 | one | -1
 
1844
(1 row)
 
1845
 
 
1846
--
 
1847
-- More complicated constructs
 
1848
--
 
1849
-- UNION JOIN isn't implemented yet
 
1850
SELECT '' AS "xxx", *
 
1851
  FROM J1_TBL UNION JOIN J2_TBL;
 
1852
ERROR:  UNION JOIN is not implemented
 
1853
--
 
1854
-- Multiway full join
 
1855
--
 
1856
CREATE TABLE t1 (name TEXT, n INTEGER);
 
1857
CREATE TABLE t2 (name TEXT, n INTEGER);
 
1858
CREATE TABLE t3 (name TEXT, n INTEGER);
 
1859
INSERT INTO t1 VALUES ( 'aa', 11 );
 
1860
INSERT INTO t2 VALUES ( 'aa', 12 );
 
1861
INSERT INTO t2 VALUES ( 'bb', 22 );
 
1862
INSERT INTO t2 VALUES ( 'dd', 42 );
 
1863
INSERT INTO t3 VALUES ( 'aa', 13 );
 
1864
INSERT INTO t3 VALUES ( 'bb', 23 );
 
1865
INSERT INTO t3 VALUES ( 'cc', 33 );
 
1866
SELECT * FROM t1 FULL JOIN t2 USING (name) FULL JOIN t3 USING (name);
 
1867
 name | n  | n  | n  
 
1868
------+----+----+----
 
1869
 aa   | 11 | 12 | 13
 
1870
 bb   |    | 22 | 23
 
1871
 cc   |    |    | 33
 
1872
 dd   |    | 42 |   
 
1873
(4 rows)
 
1874
 
 
1875
--
 
1876
-- Test interactions of join syntax and subqueries
 
1877
--
 
1878
-- Basic cases (we expect planner to pull up the subquery here)
 
1879
SELECT * FROM
 
1880
(SELECT * FROM t2) as s2
 
1881
INNER JOIN
 
1882
(SELECT * FROM t3) s3
 
1883
USING (name);
 
1884
 name | n  | n  
 
1885
------+----+----
 
1886
 aa   | 12 | 13
 
1887
 bb   | 22 | 23
 
1888
(2 rows)
 
1889
 
 
1890
SELECT * FROM
 
1891
(SELECT * FROM t2) as s2
 
1892
LEFT JOIN
 
1893
(SELECT * FROM t3) s3
 
1894
USING (name);
 
1895
 name | n  | n  
 
1896
------+----+----
 
1897
 aa   | 12 | 13
 
1898
 bb   | 22 | 23
 
1899
 dd   | 42 |   
 
1900
(3 rows)
 
1901
 
 
1902
SELECT * FROM
 
1903
(SELECT * FROM t2) as s2
 
1904
FULL JOIN
 
1905
(SELECT * FROM t3) s3
 
1906
USING (name);
 
1907
 name | n  | n  
 
1908
------+----+----
 
1909
 aa   | 12 | 13
 
1910
 bb   | 22 | 23
 
1911
 cc   |    | 33
 
1912
 dd   | 42 |   
 
1913
(4 rows)
 
1914
 
 
1915
-- Cases with non-nullable expressions in subquery results;
 
1916
-- make sure these go to null as expected
 
1917
SELECT * FROM
 
1918
(SELECT name, n as s2_n, 2 as s2_2 FROM t2) as s2
 
1919
NATURAL INNER JOIN
 
1920
(SELECT name, n as s3_n, 3 as s3_2 FROM t3) s3;
 
1921
 name | s2_n | s2_2 | s3_n | s3_2 
 
1922
------+------+------+------+------
 
1923
 aa   |   12 |    2 |   13 |    3
 
1924
 bb   |   22 |    2 |   23 |    3
 
1925
(2 rows)
 
1926
 
 
1927
SELECT * FROM
 
1928
(SELECT name, n as s2_n, 2 as s2_2 FROM t2) as s2
 
1929
NATURAL LEFT JOIN
 
1930
(SELECT name, n as s3_n, 3 as s3_2 FROM t3) s3;
 
1931
 name | s2_n | s2_2 | s3_n | s3_2 
 
1932
------+------+------+------+------
 
1933
 aa   |   12 |    2 |   13 |    3
 
1934
 bb   |   22 |    2 |   23 |    3
 
1935
 dd   |   42 |    2 |      |     
 
1936
(3 rows)
 
1937
 
 
1938
SELECT * FROM
 
1939
(SELECT name, n as s2_n, 2 as s2_2 FROM t2) as s2
 
1940
NATURAL FULL JOIN
 
1941
(SELECT name, n as s3_n, 3 as s3_2 FROM t3) s3;
 
1942
 name | s2_n | s2_2 | s3_n | s3_2 
 
1943
------+------+------+------+------
 
1944
 aa   |   12 |    2 |   13 |    3
 
1945
 bb   |   22 |    2 |   23 |    3
 
1946
 cc   |      |      |   33 |    3
 
1947
 dd   |   42 |    2 |      |     
 
1948
(4 rows)
 
1949
 
 
1950
SELECT * FROM
 
1951
(SELECT name, n as s1_n, 1 as s1_1 FROM t1) as s1
 
1952
NATURAL INNER JOIN
 
1953
(SELECT name, n as s2_n, 2 as s2_2 FROM t2) as s2
 
1954
NATURAL INNER JOIN
 
1955
(SELECT name, n as s3_n, 3 as s3_2 FROM t3) s3;
 
1956
 name | s1_n | s1_1 | s2_n | s2_2 | s3_n | s3_2 
 
1957
------+------+------+------+------+------+------
 
1958
 aa   |   11 |    1 |   12 |    2 |   13 |    3
 
1959
(1 row)
 
1960
 
 
1961
SELECT * FROM
 
1962
(SELECT name, n as s1_n, 1 as s1_1 FROM t1) as s1
 
1963
NATURAL FULL JOIN
 
1964
(SELECT name, n as s2_n, 2 as s2_2 FROM t2) as s2
 
1965
NATURAL FULL JOIN
 
1966
(SELECT name, n as s3_n, 3 as s3_2 FROM t3) s3;
 
1967
 name | s1_n | s1_1 | s2_n | s2_2 | s3_n | s3_2 
 
1968
------+------+------+------+------+------+------
 
1969
 aa   |   11 |    1 |   12 |    2 |   13 |    3
 
1970
 bb   |      |      |   22 |    2 |   23 |    3
 
1971
 cc   |      |      |      |      |   33 |    3
 
1972
 dd   |      |      |   42 |    2 |      |     
 
1973
(4 rows)
 
1974
 
 
1975
SELECT * FROM
 
1976
(SELECT name, n as s1_n FROM t1) as s1
 
1977
NATURAL FULL JOIN
 
1978
  (SELECT * FROM
 
1979
    (SELECT name, n as s2_n FROM t2) as s2
 
1980
    NATURAL FULL JOIN
 
1981
    (SELECT name, n as s3_n FROM t3) as s3
 
1982
  ) ss2;
 
1983
 name | s1_n | s2_n | s3_n 
 
1984
------+------+------+------
 
1985
 aa   |   11 |   12 |   13
 
1986
 bb   |      |   22 |   23
 
1987
 cc   |      |      |   33
 
1988
 dd   |      |   42 |     
 
1989
(4 rows)
 
1990
 
 
1991
SELECT * FROM
 
1992
(SELECT name, n as s1_n FROM t1) as s1
 
1993
NATURAL FULL JOIN
 
1994
  (SELECT * FROM
 
1995
    (SELECT name, n as s2_n, 2 as s2_2 FROM t2) as s2
 
1996
    NATURAL FULL JOIN
 
1997
    (SELECT name, n as s3_n FROM t3) as s3
 
1998
  ) ss2;
 
1999
 name | s1_n | s2_n | s2_2 | s3_n 
 
2000
------+------+------+------+------
 
2001
 aa   |   11 |   12 |    2 |   13
 
2002
 bb   |      |   22 |    2 |   23
 
2003
 cc   |      |      |      |   33
 
2004
 dd   |      |   42 |    2 |     
 
2005
(4 rows)
 
2006
 
 
2007
-- Test for propagation of nullability constraints into sub-joins
 
2008
create temp table x (x1 int, x2 int);
 
2009
insert into x values (1,11);
 
2010
insert into x values (2,22);
 
2011
insert into x values (3,null);
 
2012
insert into x values (4,44);
 
2013
insert into x values (5,null);
 
2014
create temp table y (y1 int, y2 int);
 
2015
insert into y values (1,111);
 
2016
insert into y values (2,222);
 
2017
insert into y values (3,333);
 
2018
insert into y values (4,null);
 
2019
select * from x;
 
2020
 x1 | x2 
 
2021
----+----
 
2022
  1 | 11
 
2023
  2 | 22
 
2024
  3 |   
 
2025
  4 | 44
 
2026
  5 |   
 
2027
(5 rows)
 
2028
 
 
2029
select * from y;
 
2030
 y1 | y2  
 
2031
----+-----
 
2032
  1 | 111
 
2033
  2 | 222
 
2034
  3 | 333
 
2035
  4 |    
 
2036
(4 rows)
 
2037
 
 
2038
select * from x left join y on (x1 = y1 and x2 is not null);
 
2039
 x1 | x2 | y1 | y2  
 
2040
----+----+----+-----
 
2041
  1 | 11 |  1 | 111
 
2042
  2 | 22 |  2 | 222
 
2043
  3 |    |    |    
 
2044
  4 | 44 |  4 |    
 
2045
  5 |    |    |    
 
2046
(5 rows)
 
2047
 
 
2048
select * from x left join y on (x1 = y1 and y2 is not null);
 
2049
 x1 | x2 | y1 | y2  
 
2050
----+----+----+-----
 
2051
  1 | 11 |  1 | 111
 
2052
  2 | 22 |  2 | 222
 
2053
  3 |    |  3 | 333
 
2054
  4 | 44 |    |    
 
2055
  5 |    |    |    
 
2056
(5 rows)
 
2057
 
 
2058
select * from (x left join y on (x1 = y1)) left join x xx(xx1,xx2)
 
2059
on (x1 = xx1);
 
2060
 x1 | x2 | y1 | y2  | xx1 | xx2 
 
2061
----+----+----+-----+-----+-----
 
2062
  1 | 11 |  1 | 111 |   1 |  11
 
2063
  2 | 22 |  2 | 222 |   2 |  22
 
2064
  3 |    |  3 | 333 |   3 |    
 
2065
  4 | 44 |  4 |     |   4 |  44
 
2066
  5 |    |    |     |   5 |    
 
2067
(5 rows)
 
2068
 
 
2069
select * from (x left join y on (x1 = y1)) left join x xx(xx1,xx2)
 
2070
on (x1 = xx1 and x2 is not null);
 
2071
 x1 | x2 | y1 | y2  | xx1 | xx2 
 
2072
----+----+----+-----+-----+-----
 
2073
  1 | 11 |  1 | 111 |   1 |  11
 
2074
  2 | 22 |  2 | 222 |   2 |  22
 
2075
  3 |    |  3 | 333 |     |    
 
2076
  4 | 44 |  4 |     |   4 |  44
 
2077
  5 |    |    |     |     |    
 
2078
(5 rows)
 
2079
 
 
2080
select * from (x left join y on (x1 = y1)) left join x xx(xx1,xx2)
 
2081
on (x1 = xx1 and y2 is not null);
 
2082
 x1 | x2 | y1 | y2  | xx1 | xx2 
 
2083
----+----+----+-----+-----+-----
 
2084
  1 | 11 |  1 | 111 |   1 |  11
 
2085
  2 | 22 |  2 | 222 |   2 |  22
 
2086
  3 |    |  3 | 333 |   3 |    
 
2087
  4 | 44 |  4 |     |     |    
 
2088
  5 |    |    |     |     |    
 
2089
(5 rows)
 
2090
 
 
2091
select * from (x left join y on (x1 = y1)) left join x xx(xx1,xx2)
 
2092
on (x1 = xx1 and xx2 is not null);
 
2093
 x1 | x2 | y1 | y2  | xx1 | xx2 
 
2094
----+----+----+-----+-----+-----
 
2095
  1 | 11 |  1 | 111 |   1 |  11
 
2096
  2 | 22 |  2 | 222 |   2 |  22
 
2097
  3 |    |  3 | 333 |     |    
 
2098
  4 | 44 |  4 |     |   4 |  44
 
2099
  5 |    |    |     |     |    
 
2100
(5 rows)
 
2101
 
 
2102
-- these should NOT give the same answers as above
 
2103
select * from (x left join y on (x1 = y1)) left join x xx(xx1,xx2)
 
2104
on (x1 = xx1) where (x2 is not null);
 
2105
 x1 | x2 | y1 | y2  | xx1 | xx2 
 
2106
----+----+----+-----+-----+-----
 
2107
  1 | 11 |  1 | 111 |   1 |  11
 
2108
  2 | 22 |  2 | 222 |   2 |  22
 
2109
  4 | 44 |  4 |     |   4 |  44
 
2110
(3 rows)
 
2111
 
 
2112
select * from (x left join y on (x1 = y1)) left join x xx(xx1,xx2)
 
2113
on (x1 = xx1) where (y2 is not null);
 
2114
 x1 | x2 | y1 | y2  | xx1 | xx2 
 
2115
----+----+----+-----+-----+-----
 
2116
  1 | 11 |  1 | 111 |   1 |  11
 
2117
  2 | 22 |  2 | 222 |   2 |  22
 
2118
  3 |    |  3 | 333 |   3 |    
 
2119
(3 rows)
 
2120
 
 
2121
select * from (x left join y on (x1 = y1)) left join x xx(xx1,xx2)
 
2122
on (x1 = xx1) where (xx2 is not null);
 
2123
 x1 | x2 | y1 | y2  | xx1 | xx2 
 
2124
----+----+----+-----+-----+-----
 
2125
  1 | 11 |  1 | 111 |   1 |  11
 
2126
  2 | 22 |  2 | 222 |   2 |  22
 
2127
  4 | 44 |  4 |     |   4 |  44
 
2128
(3 rows)
 
2129
 
 
2130
--
 
2131
-- regression test: check for bug with propagation of implied equality
 
2132
-- to outside an IN
 
2133
--
 
2134
select count(*) from tenk1 a where unique1 in
 
2135
  (select unique1 from tenk1 b join tenk1 c using (unique1)
 
2136
   where b.unique2 = 42);
 
2137
 count 
 
2138
-------
 
2139
     1
 
2140
(1 row)
 
2141
 
 
2142
--
 
2143
-- Clean up
 
2144
--
 
2145
DROP TABLE t1;
 
2146
DROP TABLE t2;
 
2147
DROP TABLE t3;
 
2148
DROP TABLE J1_TBL;
 
2149
DROP TABLE J2_TBL;