OSDN Git Service

50b42dd23395384972c99ce88884e49d6cfb960b
[pgdbmsstats/pg_dbms_stats.git] / sql / ut-9.2.sql
1 \pset null '(null)'
2 /*
3  * No.2-1 table definitions.
4  */
5 -- No.2-1-1
6 \d dbms_stats.backup_history
7 -- No.2-1-2
8 \d dbms_stats.column_stats_backup
9 -- No.2-1-3
10 \d dbms_stats._column_stats_locked
11 -- No.2-1-4
12 \d dbms_stats.relation_stats_backup
13 -- No.2-1-5
14 \d dbms_stats._relation_stats_locked
15
16 /*
17  * No.2-2 view definitions.
18  */
19 -- No.2-2-1
20 \dS+ dbms_stats.column_stats_effective
21 -- No.2-2-2
22 \dS+ dbms_stats.relation_stats_effective
23 -- No.2-2-3
24 \dS+ dbms_stats.stats
25 -- No.2-2-4
26 \dS+ dbms_stats.column_stats_locked
27 -- No.2-2-5
28 \dS+ dbms_stats.relation_stats_locked
29
30 /*
31  * No.2-4 dbms_stats.anyarray
32  */
33 -- No.2-4-1
34 SELECT n.nspname, t.typname, t.typlen, t.typbyval, t.typtype,
35        t.typcategory, t.typispreferred, t.typisdefined, t.typdelim,
36        t.typrelid, t.typelem, t.typinput, t.typoutput, t.typreceive,
37        t.typsend, t.typmodin, t.typmodout, t.typanalyze, t.typalign,
38        t.typstorage, t.typnotnull, t.typbasetype, t.typtypmod, t.typndims,
39        t.typcollation, t.typdefaultbin, t.typdefault, t.typacl
40   FROM pg_type t, pg_namespace n
41  WHERE t.typnamespace = n.oid
42    AND n.nspname = 'dbms_stats'
43    AND t.typname = 'anyarray';
44
45 /*
46  * No.5-1 dbms_stats.merge
47  */
48 UPDATE pg_statistic SET
49     stanullfrac = staattnum,
50     stawidth = staattnum,
51     stadistinct = staattnum,
52     stakind1 = 4,
53     stakind2 = 1,
54     stakind3 = 2,
55     stakind4 = 3,
56     stakind5 = 5,
57     staop1 = 14,
58     staop2 = 11,
59     staop3 = 12,
60     staop4 = 13,
61     staop5 = 15,
62     stanumbers1 = ARRAY[staattnum,4],
63     stanumbers2 = ARRAY[staattnum,1],
64     stanumbers3 = ARRAY[staattnum,2],
65     stanumbers4 = ARRAY[staattnum,3],
66     stanumbers5 = ARRAY[staattnum,5],
67     stavalues2 = array_cat(stavalues1,stavalues1),
68     stavalues3 = array_cat(array_cat(stavalues1,stavalues1),stavalues1),
69     stavalues4 = array_cat(array_cat(array_cat(stavalues1,stavalues1),stavalues1),stavalues1)
70    ,stavalues5 = array_cat(array_cat(array_cat(array_cat(stavalues1,stavalues1),stavalues1),stavalues1),stavalues1)
71  WHERE starelid = 'st0'::regclass;
72 SELECT dbms_stats.lock_table_stats('st0');
73 UPDATE dbms_stats._column_stats_locked SET
74     stainherit = 't',
75     stanullfrac = -staattnum,
76     stawidth = -staattnum,
77     stadistinct = -staattnum,
78     stakind1 = 2,
79     stakind2 = 3,
80     stakind3 = 4,
81     stakind4 = 1,
82     stakind5 = 5,
83     staop1 = 22,
84     staop2 = 23,
85     staop3 = 24,
86     staop4 = 21,
87     staop5 = 25,
88     stanumbers1 = ARRAY[-staattnum,22],
89     stanumbers2 = ARRAY[-staattnum,23],
90     stanumbers3 = ARRAY[-staattnum,24],
91     stanumbers4 = ARRAY[-staattnum,21],
92     stanumbers5 = ARRAY[-staattnum,25],
93     stavalues1 = stavalues3,
94     stavalues2 = stavalues2,
95     stavalues3 = stavalues1,
96     stavalues4 = stavalues4
97    ,stavalues5 = stavalues5
98 ;
99
100 /*
101  * Driver function dbms_stats.merge1
102  */
103 CREATE FUNCTION dbms_stats.merge1(
104     lhs dbms_stats._column_stats_locked,
105     rhs pg_catalog.pg_statistic
106 ) RETURNS integer AS
107 '$libdir/pg_dbms_stats', 'dbms_stats_merge'
108 LANGUAGE C STABLE;
109
110 SELECT * FROM columns_locked_v
111  WHERE starelid = 'st0'::regclass;
112 SELECT * FROM plain_columns_statistic_v
113  WHERE starelid = 'st0'::regclass;
114
115 SET client_min_messages TO LOG;
116
117 -- No.5-1-1
118 SELECT (m.merge).starelid::regclass,
119        (m.merge).staattnum,
120        (m.merge).stainherit,
121        (m.merge).stanullfrac,
122        (m.merge).stawidth,
123        (m.merge).stadistinct,
124        (m.merge).stakind1,
125        (m.merge).stakind2,
126        (m.merge).stakind3,
127        (m.merge).stakind4,
128        (m.merge).stakind5,
129        (m.merge).staop1,
130        (m.merge).staop2,
131        (m.merge).staop3,
132        (m.merge).staop4,
133        (m.merge).staop5,
134        (m.merge).stanumbers1,
135        (m.merge).stanumbers2,
136        (m.merge).stanumbers3,
137        (m.merge).stanumbers4,
138        (m.merge).stanumbers5,
139        (m.merge).stavalues1,
140        (m.merge).stavalues2,
141        (m.merge).stavalues3,
142        (m.merge).stavalues4
143       ,(m.merge).stavalues5
144  FROM (SELECT dbms_stats.merge(NULL, s)
145          FROM pg_statistic s
146         WHERE starelid = 'st0'::regclass
147           AND staattnum = '1'::int2) m;
148
149 -- No.5-1-2
150 SELECT (m.merge).starelid::regclass,
151        (m.merge).staattnum,
152        (m.merge).stainherit,
153        (m.merge).stanullfrac,
154        (m.merge).stawidth,
155        (m.merge).stadistinct,
156        (m.merge).stakind1,
157        (m.merge).stakind2,
158        (m.merge).stakind3,
159        (m.merge).stakind4,
160        (m.merge).stakind5,
161        (m.merge).staop1,
162        (m.merge).staop2,
163        (m.merge).staop3,
164        (m.merge).staop4,
165        (m.merge).staop5,
166        (m.merge).stanumbers1,
167        (m.merge).stanumbers2,
168        (m.merge).stanumbers3,
169        (m.merge).stanumbers4,
170        (m.merge).stanumbers5,
171        (m.merge).stavalues1,
172        (m.merge).stavalues2,
173        (m.merge).stavalues3,
174        (m.merge).stavalues4
175       ,(m.merge).stavalues5
176  FROM (SELECT dbms_stats.merge(v, NULL)
177          FROM dbms_stats._column_stats_locked v
178         WHERE starelid = 'st0'::regclass
179           AND staattnum = '2'::int2) m;
180
181 -- No.5-1-3
182 SELECT dbms_stats.merge(NULL, NULL);
183
184 -- No.5-1-4
185 SELECT (m.merge).starelid::regclass,
186        (m.merge).staattnum,
187        (m.merge).stainherit,
188        (m.merge).stanullfrac,
189        (m.merge).stawidth,
190        (m.merge).stadistinct,
191        (m.merge).stakind1,
192        (m.merge).stakind2,
193        (m.merge).stakind3,
194        (m.merge).stakind4,
195        (m.merge).stakind5,
196        (m.merge).staop1,
197        (m.merge).staop2,
198        (m.merge).staop3,
199        (m.merge).staop4,
200        (m.merge).staop5,
201        (m.merge).stanumbers1,
202        (m.merge).stanumbers2,
203        (m.merge).stanumbers3,
204        (m.merge).stanumbers4,
205        (m.merge).stanumbers5,
206        (m.merge).stavalues1,
207        (m.merge).stavalues2,
208        (m.merge).stavalues3,
209        (m.merge).stavalues4
210       ,(m.merge).stavalues5
211  FROM (SELECT dbms_stats.merge(v, s)
212          FROM dbms_stats._column_stats_locked v,
213               pg_statistic s
214         WHERE v.starelid = 'st0'::regclass
215           AND v.staattnum = '2'::int2
216           AND s.starelid = 'st0'::regclass
217           AND s.staattnum = '1'::int2) m;
218
219 -- No.5-1-5
220 SELECT (m.merge).starelid::regclass,
221        (m.merge).staattnum,
222        (m.merge).stainherit,
223        (m.merge).stanullfrac,
224        (m.merge).stawidth,
225        (m.merge).stadistinct,
226        (m.merge).stakind1,
227        (m.merge).stakind2,
228        (m.merge).stakind3,
229        (m.merge).stakind4,
230        (m.merge).stakind5,
231        (m.merge).staop1,
232        (m.merge).staop2,
233        (m.merge).staop3,
234        (m.merge).staop4,
235        (m.merge).staop5,
236        (m.merge).stanumbers1,
237        (m.merge).stanumbers2,
238        (m.merge).stanumbers3,
239        (m.merge).stanumbers4,
240        (m.merge).stanumbers5,
241        (m.merge).stavalues1,
242        (m.merge).stavalues2,
243        (m.merge).stavalues3,
244        (m.merge).stavalues4
245       ,(m.merge).stavalues5
246  FROM (SELECT dbms_stats.merge(v, s)
247          FROM dbms_stats._column_stats_locked v,
248               pg_statistic s
249         WHERE v.starelid = 'st0'::regclass
250           AND v.staattnum = '2'::int2
251           AND s.starelid = 'st0'::regclass
252           AND s.staattnum = '1'::int2) m;
253
254 -- No.5-1-6
255 SELECT dbms_stats.merge1(v, s)
256   FROM dbms_stats._column_stats_locked v,
257        pg_statistic s
258  WHERE v.starelid = 'st0'::regclass
259    AND v.staattnum = '2'::int2
260    AND s.starelid = 'st0'::regclass
261    AND s.staattnum = '1'::int2;
262
263 -- No.5-1-7
264 SELECT dbms_stats.merge(NULL, (
265        s.starelid::regclass, s.staattnum, s.stainherit,
266        s.stanullfrac, s.stawidth, s.stadistinct,
267        s.stakind1, s.stakind2, s.stakind3, s.stakind4,
268        s.stakind5,
269        s.staop1, s.staop2, s.staop3,
270        s.staop4,
271        NULL, s.stanumbers1, s.stanumbers2, s.stanumbers3, s.stanumbers4,
272        s.stanumbers5,
273        s.stavalues1, s.stavalues2, s.stavalues3, s.stavalues4
274       ,s.stavalues5
275        ))
276   FROM pg_statistic s
277  WHERE s.starelid = 'st0'::regclass
278    AND s.staattnum = '1'::int2;
279
280 -- No.5-1-8
281 SELECT (m.merge).starelid::regclass,
282        (m.merge).staattnum,
283        (m.merge).stainherit,
284        (m.merge).stanullfrac,
285        (m.merge).stawidth,
286        (m.merge).stadistinct,
287        (m.merge).stakind1,
288        (m.merge).stakind2,
289        (m.merge).stakind3,
290        (m.merge).stakind4,
291        (m.merge).stakind5,
292        (m.merge).staop1,
293        (m.merge).staop2,
294        (m.merge).staop3,
295        (m.merge).staop4,
296        (m.merge).staop5,
297        (m.merge).stanumbers1,
298        (m.merge).stanumbers2,
299        (m.merge).stanumbers3,
300        (m.merge).stanumbers4,
301        (m.merge).stanumbers5,
302        (m.merge).stavalues1,
303        (m.merge).stavalues2,
304        (m.merge).stavalues3,
305        (m.merge).stavalues4
306       ,(m.merge).stavalues5
307  FROM (SELECT dbms_stats.merge(NULL, (
308               s.starelid::regclass, s.staattnum, s.stainherit,
309               s.stanullfrac, s.stawidth, s.stadistinct,
310               s.stakind1, s.stakind2, s.stakind3, s.stakind4,
311               s.stakind5,
312               s.staop1, s.staop2, s.staop3, s.staop4,
313               s.staop5,
314               NULL, s.stanumbers2, s.stanumbers3, s.stanumbers4,
315               s.stanumbers5,
316               s.stavalues1, s.stavalues2, s.stavalues3, s.stavalues4
317              ,s.stavalues5
318               ))
319          FROM pg_statistic s
320         WHERE s.starelid = 'st0'::regclass
321           AND s.staattnum = '1'::int2) m;
322
323 -- No.5-1-9
324 SELECT dbms_stats.merge((
325        v.starelid::regclass, v.staattnum, v.stainherit,
326        v.stanullfrac, v.stawidth, v.stadistinct,
327        v.stakind1, v.stakind2, v.stakind3, v.stakind4,
328        v.stakind5,
329        v.staop1, v.staop2, v.staop3,
330        v.staop4,
331        NULL, v.stanumbers1, v.stanumbers2, v.stanumbers3, v.stanumbers4,
332        v.stanumbers5,
333        v.stavalues1, v.stavalues2, v.stavalues3, v.stavalues4
334       ,v.stavalues5
335        ), NULL)
336   FROM dbms_stats._column_stats_locked v
337  WHERE v.starelid = 'st0'::regclass
338    AND v.staattnum = '2'::int2;
339
340 -- No.5-1-10
341 SELECT (m.merge).starelid::regclass,
342        (m.merge).staattnum,
343        (m.merge).stainherit,
344        (m.merge).stanullfrac,
345        (m.merge).stawidth,
346        (m.merge).stadistinct,
347        (m.merge).stakind1,
348        (m.merge).stakind2,
349        (m.merge).stakind3,
350        (m.merge).stakind4,
351        (m.merge).stakind5,
352        (m.merge).staop1,
353        (m.merge).staop2,
354        (m.merge).staop3,
355        (m.merge).staop4,
356        (m.merge).staop5,
357        (m.merge).stanumbers1,
358        (m.merge).stanumbers2,
359        (m.merge).stanumbers3,
360        (m.merge).stanumbers4,
361        (m.merge).stanumbers5,
362        (m.merge).stavalues1,
363        (m.merge).stavalues2,
364        (m.merge).stavalues3,
365        (m.merge).stavalues4
366       ,(m.merge).stavalues5
367  FROM (SELECT dbms_stats.merge((
368               v.starelid::regclass, v.staattnum, v.stainherit,
369               v.stanullfrac, v.stawidth, v.stadistinct,
370               v.stakind1, v.stakind2, v.stakind3, v.stakind4,
371               v.stakind5,
372               v.staop1, v.staop2, v.staop3, v.staop4,
373               v.staop5,
374               NULL, v.stanumbers2, v.stanumbers3, v.stanumbers4,
375               v.stanumbers5,
376               v.stavalues1, v.stavalues2, v.stavalues3, v.stavalues4
377              ,v.stavalues5
378               ), NULL)
379          FROM dbms_stats._column_stats_locked v
380         WHERE v.starelid = 'st0'::regclass
381           AND v.staattnum = '2'::int2) m;
382
383 -- No.5-1-11
384 SELECT dbms_stats.merge((
385        v.starelid::regclass, v.staattnum, v.stainherit,
386        v.stanullfrac, v.stawidth, v.stadistinct,
387        v.stakind1, v.stakind2, v.stakind3, v.stakind4,
388        v.stakind5,
389        v.staop1, v.staop2, v.staop3,
390        v.staop4,
391        NULL, v.stanumbers1, v.stanumbers2, v.stanumbers3, v.stanumbers4,
392        v.stanumbers5,
393        v.stavalues1, v.stavalues2, v.stavalues3, v.stavalues4
394       ,v.stavalues5
395        ), (
396        s.starelid::regclass, s.staattnum, s.stainherit,
397        s.stanullfrac, s.stawidth, s.stadistinct,
398        s.stakind1, s.stakind2, s.stakind3, s.stakind4,
399        s.stakind5,
400        s.staop1, s.staop2, s.staop3,
401        s.staop4,
402        NULL, s.stanumbers1, s.stanumbers2, s.stanumbers3, s.stanumbers4,
403        s.stanumbers5,
404        s.stavalues1, s.stavalues2, s.stavalues3, s.stavalues4
405       ,s.stavalues5
406        ))
407   FROM dbms_stats._column_stats_locked v,
408        pg_statistic s
409  WHERE v.starelid = 'st0'::regclass
410    AND v.staattnum = '2'::int2
411    AND s.starelid = 'st0'::regclass
412    AND s.staattnum = '1'::int2;
413
414 -- No.5-1-12
415 SELECT (m.merge).starelid::regclass,
416        (m.merge).staattnum,
417        (m.merge).stainherit,
418        (m.merge).stanullfrac,
419        (m.merge).stawidth,
420        (m.merge).stadistinct,
421        (m.merge).stakind1,
422        (m.merge).stakind2,
423        (m.merge).stakind3,
424        (m.merge).stakind4,
425        (m.merge).stakind5,
426        (m.merge).staop1,
427        (m.merge).staop2,
428        (m.merge).staop3,
429        (m.merge).staop4,
430        (m.merge).staop5,
431        (m.merge).stanumbers1,
432        (m.merge).stanumbers2,
433        (m.merge).stanumbers3,
434        (m.merge).stanumbers4,
435        (m.merge).stanumbers5,
436        (m.merge).stavalues1,
437        (m.merge).stavalues2,
438        (m.merge).stavalues3,
439        (m.merge).stavalues4
440       ,(m.merge).stavalues5
441  FROM (SELECT dbms_stats.merge((
442               v.starelid::regclass, v.staattnum, v.stainherit,
443               v.stanullfrac, v.stawidth, v.stadistinct,
444               v.stakind1, v.stakind2, v.stakind3, v.stakind4,
445               v.stakind5,
446               v.staop1, v.staop2, v.staop3, v.staop4,
447               v.staop5,
448               NULL, v.stanumbers2, v.stanumbers3, v.stanumbers4,
449               v.stanumbers5,
450               v.stavalues1, v.stavalues2, v.stavalues3, v.stavalues4
451              ,v.stavalues5
452               ), (
453               s.starelid::regclass, s.staattnum, s.stainherit,
454               s.stanullfrac, s.stawidth, s.stadistinct,
455               s.stakind1, s.stakind2, s.stakind3, s.stakind4,
456               s.stakind5,
457               s.staop1, s.staop2, s.staop3, s.staop4,
458               s.staop5,
459               NULL, s.stanumbers2, s.stanumbers3, s.stanumbers4,
460               s.stanumbers5,
461               s.stavalues1, s.stavalues2, s.stavalues3, s.stavalues4
462              ,s.stavalues5
463               ))
464          FROM dbms_stats._column_stats_locked v,
465               pg_statistic s
466         WHERE v.starelid = 'st0'::regclass
467           AND v.staattnum = '2'::int2
468           AND s.starelid = 'st0'::regclass
469           AND s.staattnum = '1'::int2) m;
470
471 -- No.5-1-13
472 SELECT (m.merge).starelid::regclass,
473        (m.merge).staattnum,
474        (m.merge).stainherit,
475        (m.merge).stanullfrac,
476        (m.merge).stawidth,
477        (m.merge).stadistinct,
478        (m.merge).stakind1,
479        (m.merge).stakind2,
480        (m.merge).stakind3,
481        (m.merge).stakind4,
482        (m.merge).stakind5,
483        (m.merge).staop1,
484        (m.merge).staop2,
485        (m.merge).staop3,
486        (m.merge).staop4,
487        (m.merge).staop5,
488        (m.merge).stanumbers1,
489        (m.merge).stanumbers2,
490        (m.merge).stanumbers3,
491        (m.merge).stanumbers4,
492        (m.merge).stanumbers5,
493        (m.merge).stavalues1,
494        (m.merge).stavalues2,
495        (m.merge).stavalues3,
496        (m.merge).stavalues4
497       ,(m.merge).stavalues5
498  FROM (SELECT dbms_stats.merge((
499              NULL, NULL, NULL,
500              NULL, NULL, NULL,
501              NULL, NULL, NULL, NULL,
502              NULL, NULL, NULL, NULL,
503              NULL, NULL, NULL, NULL,
504              NULL, NULL, NULL, NULL
505             ,NULL, NULL, NULL, NULL
506              ), s)
507          FROM pg_statistic s
508         WHERE s.starelid = 'st0'::regclass
509           AND s.staattnum = '1'::int2) m;
510
511 -- No.5-1-14
512 SELECT (m.merge).starelid::regclass,
513        (m.merge).staattnum,
514        (m.merge).stainherit,
515        (m.merge).stanullfrac,
516        (m.merge).stawidth,
517        (m.merge).stadistinct,
518        (m.merge).stakind1,
519        (m.merge).stakind2,
520        (m.merge).stakind3,
521        (m.merge).stakind4,
522        (m.merge).stakind5,
523        (m.merge).staop1,
524        (m.merge).staop2,
525        (m.merge).staop3,
526        (m.merge).staop4,
527        (m.merge).staop5,
528        (m.merge).stanumbers1,
529        (m.merge).stanumbers2,
530        (m.merge).stanumbers3,
531        (m.merge).stanumbers4,
532        (m.merge).stanumbers5,
533        (m.merge).stavalues1,
534        (m.merge).stavalues2,
535        (m.merge).stavalues3,
536        (m.merge).stavalues4
537       ,(m.merge).stavalues5
538  FROM (SELECT dbms_stats.merge(v, (
539              NULL, NULL, NULL,
540              NULL, NULL, NULL,
541              NULL, NULL, NULL, NULL,
542              NULL, NULL, NULL, NULL,
543              NULL, NULL, NULL, NULL,
544              NULL, NULL, NULL, NULL,
545              NULL, NULL, NULL, NULL))
546          FROM dbms_stats._column_stats_locked v
547         WHERE v.starelid = 'st0'::regclass
548           AND v.staattnum = '2'::int2) m;
549
550 -- No.5-1-15
551 SELECT (m.merge).starelid::regclass,
552        (m.merge).staattnum,
553        (m.merge).stainherit,
554        (m.merge).stanullfrac,
555        (m.merge).stawidth,
556        (m.merge).stadistinct,
557        (m.merge).stakind1,
558        (m.merge).stakind2,
559        (m.merge).stakind3,
560        (m.merge).stakind4,
561        (m.merge).stakind5,
562        (m.merge).staop1,
563        (m.merge).staop2,
564        (m.merge).staop3,
565        (m.merge).staop4,
566        (m.merge).staop5,
567        (m.merge).stanumbers1,
568        (m.merge).stanumbers2,
569        (m.merge).stanumbers3,
570        (m.merge).stanumbers4,
571        (m.merge).stanumbers5,
572        (m.merge).stavalues1,
573        (m.merge).stavalues2,
574        (m.merge).stavalues3,
575        (m.merge).stavalues4
576       ,(m.merge).stavalues5
577  FROM (SELECT dbms_stats.merge(v, s)
578          FROM dbms_stats._column_stats_locked v,
579               pg_statistic s
580         WHERE v.starelid = 'st0'::regclass
581           AND v.staattnum = '2'::int2
582           AND s.starelid = 'st0'::regclass
583           AND s.staattnum = '1'::int2) m;
584
585 -- No.5-1-16
586 SELECT dbms_stats.merge((
587        v.starelid::regclass, v.staattnum, v.stainherit,
588        v.stanullfrac, v.stawidth, v.stadistinct,
589        NULL, NULL, NULL, NULL,
590        NULL, NULL, NULL, NULL,
591        NULL, NULL, NULL, NULL,
592        NULL, NULL, NULL, NULL
593       ,NULL, NULL, NULL, NULL
594        ), (
595        s.starelid::regclass, s.staattnum, s.stainherit,
596        s.stanullfrac, s.stawidth, s.stadistinct,
597        NULL, NULL, NULL, NULL,
598        NULL, NULL, NULL, NULL,
599        NULL, NULL, NULL, NULL,
600        NULL, NULL, NULL, NULL,
601        NULL, NULL, NULL, NULL))
602   FROM dbms_stats._column_stats_locked v,
603        pg_statistic s
604  WHERE v.starelid = 'st0'::regclass
605    AND v.staattnum = '2'::int2
606    AND s.starelid = 'st0'::regclass
607    AND s.staattnum = '1'::int2;
608
609 -- No.5-1-17
610 SELECT (m.merge).starelid::regclass,
611        (m.merge).staattnum,
612        (m.merge).stainherit,
613        (m.merge).stanullfrac,
614        (m.merge).stawidth,
615        (m.merge).stadistinct,
616        (m.merge).stakind1,
617        (m.merge).stakind2,
618        (m.merge).stakind3,
619        (m.merge).stakind4,
620        (m.merge).stakind5,
621        (m.merge).staop1,
622        (m.merge).staop2,
623        (m.merge).staop3,
624        (m.merge).staop4,
625        (m.merge).staop5,
626        (m.merge).stanumbers1,
627        (m.merge).stanumbers2,
628        (m.merge).stanumbers3,
629        (m.merge).stanumbers4,
630        (m.merge).stanumbers5,
631        (m.merge).stavalues1,
632        (m.merge).stavalues2,
633        (m.merge).stavalues3,
634        (m.merge).stavalues4
635       ,(m.merge).stavalues5
636  FROM (SELECT dbms_stats.merge((
637               v.starelid::regclass, v.staattnum, v.stainherit,
638               v.stanullfrac, v.stawidth, v.stadistinct,
639               v.stakind1, v.stakind2, v.stakind3, v.stakind4,
640               v.stakind5,
641               v.staop1, v.staop2, v.staop3,
642               v.staop4,
643               NULL, v.stanumbers1, v.stanumbers2, v.stanumbers3, v.stanumbers4,
644               v.stanumbers5,
645               v.stavalues1, v.stavalues2, v.stavalues3, v.stavalues4
646              ,v.stavalues5
647               ), (
648               s.starelid::regclass, s.staattnum, s.stainherit,
649               s.stanullfrac, s.stawidth, s.stadistinct,
650               s.stakind1, s.stakind2, s.stakind3, s.stakind4,
651               s.stakind5,
652               s.staop1, s.staop2, s.staop3, s.staop4,
653               s.staop5,
654               s.stanumbers1, s.stanumbers2, s.stanumbers3, s.stanumbers4,
655               s.stanumbers5,
656               s.stavalues1, s.stavalues2, s.stavalues3, s.stavalues4
657              ,s.stavalues5
658               ))
659          FROM dbms_stats._column_stats_locked v,
660               pg_statistic s
661         WHERE v.starelid = 'st0'::regclass
662           AND v.staattnum = '1'::int2
663           AND s.starelid = 'st0'::regclass
664           AND s.staattnum = '1'::int2) m;
665
666 -- No.5-1-18
667 SELECT dbms_stats.merge((
668        v.starelid::regclass, v.staattnum, v.stainherit,
669        v.stanullfrac, v.stawidth, v.stadistinct,
670        v.stakind1, v.stakind2, v.stakind3, v.stakind4,
671        v.stakind5,
672        v.staop1, v.staop2, v.staop3,
673        v.staop4,
674        NULL, v.stanumbers1, v.stanumbers2, v.stanumbers3, v.stanumbers4,
675        v.stanumbers5,
676        v.stavalues1, v.stavalues2, v.stavalues3, v.stavalues4
677       ,v.stavalues5
678        ), (
679        s.starelid::regclass, s.staattnum, s.stainherit,
680        s.stanullfrac, s.stawidth, s.stadistinct,
681        s.stakind1, s.stakind2, s.stakind3, s.stakind4,
682        s.stakind5,
683        s.staop1, s.staop2, s.staop3,
684        s.staop4,
685        NULL, s.stanumbers1, s.stanumbers2, s.stanumbers3, s.stanumbers4,
686        s.stanumbers5,
687        s.stavalues1, s.stavalues2, s.stavalues3, s.stavalues4
688       ,s.stavalues5
689        ))
690   FROM dbms_stats._column_stats_locked v,
691        pg_statistic s
692  WHERE v.starelid = 'st0'::regclass
693    AND v.staattnum = '1'::int2
694    AND s.starelid = 'st0'::regclass
695    AND s.staattnum = '1'::int2;
696
697 -- No.5-1-19
698 SELECT (m.merge).starelid::regclass,
699        (m.merge).staattnum,
700        (m.merge).stainherit,
701        (m.merge).stanullfrac,
702        (m.merge).stawidth,
703        (m.merge).stadistinct,
704        (m.merge).stakind1,
705        (m.merge).stakind2,
706        (m.merge).stakind3,
707        (m.merge).stakind4,
708        (m.merge).stakind5,
709        (m.merge).staop1,
710        (m.merge).staop2,
711        (m.merge).staop3,
712        (m.merge).staop4,
713        (m.merge).staop5,
714        (m.merge).stanumbers1,
715        (m.merge).stanumbers2,
716        (m.merge).stanumbers3,
717        (m.merge).stanumbers4,
718        (m.merge).stanumbers5,
719        (m.merge).stavalues1,
720        (m.merge).stavalues2,
721        (m.merge).stavalues3,
722        (m.merge).stavalues4
723       ,(m.merge).stavalues5
724  FROM (SELECT dbms_stats.merge((
725               v.starelid::regclass, v.staattnum, v.stainherit,
726               v.stanullfrac, v.stawidth, v.stadistinct,
727               '1', '1', '1', '1',
728               '1',
729               v.staop1, v.staop2, v.staop3, v.staop4,
730               v.staop5,
731               v.stanumbers1, v.stanumbers2, v.stanumbers3, v.stanumbers4,
732               v.stanumbers5,
733               v.stavalues1, v.stavalues2, v.stavalues3, v.stavalues4
734              ,v.stavalues5
735               ), (
736               s.starelid::regclass, s.staattnum, s.stainherit,
737               s.stanullfrac, s.stawidth, s.stadistinct,
738               '1', '1', '1', '1',
739               '1',
740               s.staop1, s.staop2, s.staop3, s.staop4,
741               s.staop5,
742               s.stanumbers1, s.stanumbers2, s.stanumbers3, s.stanumbers4,
743               s.stanumbers5,
744               s.stavalues1, s.stavalues2, s.stavalues3, s.stavalues4
745              ,s.stavalues5
746               ))
747          FROM dbms_stats._column_stats_locked v,
748               pg_statistic s
749         WHERE v.starelid = 'st0'::regclass
750           AND v.staattnum = '2'::int2
751           AND s.starelid = 'st0'::regclass
752           AND s.staattnum = '1'::int2) m;
753
754 -- No.5-1-20
755 SELECT (m.merge).starelid::regclass,
756        (m.merge).staattnum,
757        (m.merge).stainherit,
758        (m.merge).stanullfrac,
759        (m.merge).stawidth,
760        (m.merge).stadistinct,
761        (m.merge).stakind1,
762        (m.merge).stakind2,
763        (m.merge).stakind3,
764        (m.merge).stakind4,
765        (m.merge).stakind5,
766        (m.merge).staop1,
767        (m.merge).staop2,
768        (m.merge).staop3,
769        (m.merge).staop4,
770        (m.merge).staop5,
771        (m.merge).stanumbers1,
772        (m.merge).stanumbers2,
773        (m.merge).stanumbers3,
774        (m.merge).stanumbers4,
775        (m.merge).stanumbers5,
776        (m.merge).stavalues1,
777        (m.merge).stavalues2,
778        (m.merge).stavalues3,
779        (m.merge).stavalues4
780       ,(m.merge).stavalues5
781  FROM (SELECT dbms_stats.merge((v.starelid::regclass, v.staattnum, v.stainherit,
782               v.stanullfrac, v.stawidth, v.stadistinct,
783               '2', '2', '2', '2',
784               '2',
785               v.staop1, v.staop2, v.staop3, v.staop4,
786               v.staop5,
787               v.stanumbers1, v.stanumbers2, v.stanumbers3, v.stanumbers4,
788               v.stanumbers5,
789               v.stavalues1, v.stavalues2, v.stavalues3, v.stavalues4
790              ,v.stavalues5
791               ), (
792               s.starelid::regclass, s.staattnum, s.stainherit,
793               s.stanullfrac, s.stawidth, s.stadistinct,
794               '2', '2', '2', '2',
795               '2',
796               s.staop1, s.staop2, s.staop3, s.staop4,
797               s.staop5,
798               s.stanumbers1, s.stanumbers2, s.stanumbers3, s.stanumbers4,
799               s.stanumbers5,
800               s.stavalues1, s.stavalues2, s.stavalues3, s.stavalues4
801              ,s.stavalues5
802               ))
803          FROM dbms_stats._column_stats_locked v,
804               pg_statistic s
805         WHERE v.starelid = 'st0'::regclass
806           AND v.staattnum = '2'::int2
807           AND s.starelid = 'st0'::regclass
808           AND s.staattnum = '1'::int2) m;
809
810 -- No.5-1-21
811 SELECT dbms_stats.merge((v.starelid::regclass, '2', v.stainherit,
812               v.stanullfrac, v.stawidth, v.stadistinct,
813               '1', '1', '1', '1',
814               '1',
815               v.staop1, v.staop2, v.staop3, v.staop4,
816               v.staop5,
817               v.stanumbers1, v.stanumbers2, v.stanumbers3, v.stanumbers4,
818               v.stanumbers5,
819               v.stavalues1, v.stavalues2, v.stavalues3, v.stavalues4
820              ,v.stavalues5
821               ), (
822               s.starelid::regclass, s.staattnum, s.stainherit,
823               s.stanullfrac, s.stawidth, s.stadistinct,
824               '1', '1', '1', '1',
825               '1',
826               s.staop1, s.staop2, s.staop3, s.staop4,
827               s.staop5,
828               s.stanumbers1, s.stanumbers2, s.stanumbers3, s.stanumbers4,
829               s.stanumbers5,
830               s.stavalues1, s.stavalues2, s.stavalues3, s.stavalues4
831              ,s.stavalues5
832               ))
833          FROM dbms_stats._column_stats_locked v,
834               pg_statistic s
835         WHERE v.starelid = 'st0'::regclass
836           AND v.staattnum = '1'::int2
837           AND s.starelid = 'st0'::regclass
838           AND s.staattnum = '1'::int2;
839
840 -- No.5-1-22
841 SELECT dbms_stats.merge((v.starelid::regclass, '2', v.stainherit,
842               v.stanullfrac, v.stawidth, v.stadistinct,
843               '2', '2', '2', '2',
844               '2',
845               v.staop1, v.staop2, v.staop3, v.staop4,
846               v.staop5,
847               v.stanumbers1, v.stanumbers2, v.stanumbers3, v.stanumbers4,
848               v.stanumbers5,
849               v.stavalues1, v.stavalues2, v.stavalues3, v.stavalues4
850              ,v.stavalues5
851               ), (
852               s.starelid::regclass, s.staattnum, s.stainherit,
853               s.stanullfrac, s.stawidth, s.stadistinct,
854               '2', '2', '2', '2',
855               '2',
856               s.staop1, s.staop2, s.staop3, s.staop4,
857               s.staop5,
858               s.stanumbers1, s.stanumbers2, s.stanumbers3, s.stanumbers4,
859               s.stanumbers5,
860               s.stavalues1, s.stavalues2, s.stavalues3, s.stavalues4
861              ,s.stavalues5
862               ))
863          FROM dbms_stats._column_stats_locked v,
864               pg_statistic s
865         WHERE v.starelid = 'st0'::regclass
866           AND v.staattnum = '1'::int2
867           AND s.starelid = 'st0'::regclass
868           AND s.staattnum = '1'::int2;
869 RESET client_min_messages;
870 SELECT dbms_stats.unlock_database_stats();
871
872 /*
873  * No.6-4 dbms_stats.is_target_relkind
874  */
875 -- No.6-4-10
876 SELECT dbms_stats.is_target_relkind('f');
877
878 /*
879  * No.7-1 dbms_stats.backup
880  */
881 DELETE FROM dbms_stats.backup_history;
882 INSERT INTO dbms_stats.backup_history(id, time, unit) values(1, '2012-01-01', 'd');
883 -- No.7-1-9
884 SELECT dbms_stats.backup(1, 's0.sft0'::regclass, NULL);
885 SELECT count(*) FROM dbms_stats.relation_stats_backup;
886 SELECT count(*) FROM dbms_stats.column_stats_backup;
887
888 -- No.7-1-12
889 DELETE FROM dbms_stats.relation_stats_backup;
890 SELECT dbms_stats.backup(1, NULL, 1::int2);
891 SELECT relid::regclass FROM dbms_stats.relation_stats_backup
892  GROUP BY relid
893  ORDER BY relid;
894 SELECT starelid::regclass, staattnum FROM dbms_stats.column_stats_backup
895  GROUP BY starelid, staattnum
896  ORDER BY starelid, staattnum;
897
898 -- No.7-1-14
899 DELETE FROM dbms_stats.relation_stats_backup;
900 SELECT dbms_stats.backup(1, NULL::regclass, NULL);
901 SELECT relid::regclass FROM dbms_stats.relation_stats_backup
902  GROUP BY relid
903  ORDER BY relid;
904 SELECT starelid::regclass, staattnum FROM dbms_stats.column_stats_backup
905  GROUP BY starelid, staattnum
906  ORDER BY starelid, staattnum;
907
908 -- No.7-1-18
909 DELETE FROM dbms_stats.relation_stats_backup;
910 \! psql contrib_regression -c "SELECT dbms_stats.backup(NULL, 's0.st0'::regclass, NULL)" > results/ut_no2_1_17.out 2>&1
911 SELECT count(*) FROM dbms_stats.relation_stats_backup;
912 SELECT count(*) FROM dbms_stats.column_stats_backup;
913
914 /*
915  * No.8-1 dbms_stats.backup
916  */
917 SELECT setval('dbms_stats.backup_history_id_seq',1, false);
918 /*
919  * Stab function dbms_stats.backup
920  */
921 ALTER FUNCTION dbms_stats.backup(
922     backup_id int8,
923     relid regclass,
924     attnum int2)
925     RENAME TO truth_func_backup;
926
927 CREATE OR REPLACE FUNCTION dbms_stats.backup(
928     backup_id int8,
929     regclass,
930     attnum int2)
931 RETURNS int8 AS
932 $$
933 BEGIN
934     RAISE NOTICE 'arguments are %, %, %', $1, $2, $3;
935     RETURN 1;
936 END;
937 $$
938 LANGUAGE plpgsql;
939
940 -- No.8-1-1
941 DELETE FROM dbms_stats.backup_history;
942 SELECT dbms_stats.backup('s0.st0'::regclass, 'id', 'dummy comment');
943 SELECT id, unit, comment FROM dbms_stats.backup_history;
944
945 -- No.8-1-2
946 DELETE FROM dbms_stats.backup_history;
947 SELECT dbms_stats.backup('s0.st0'::regclass, NULL, 'dummy comment');
948 SELECT id, unit, comment FROM dbms_stats.backup_history;
949
950 -- No.8-1-3
951 DELETE FROM dbms_stats.backup_history;
952 SELECT dbms_stats.backup(NULL::regclass, 'id', 'dummy comment');
953 SELECT id, unit, comment FROM dbms_stats.backup_history;
954
955 -- No.8-1-4
956 DELETE FROM dbms_stats.backup_history;
957 SELECT dbms_stats.backup(NULL::regclass, NULL, 'dummy comment');
958 SELECT id, unit, comment FROM dbms_stats.backup_history;
959
960 -- No.8-1-5
961 DELETE FROM dbms_stats.backup_history;
962 SELECT dbms_stats.backup(0, NULL, 'dummy comment');
963 SELECT id, unit, comment FROM dbms_stats.backup_history;
964
965 -- No.8-1-6
966 DELETE FROM dbms_stats.backup_history;
967 SELECT dbms_stats.backup('s0.st0'::regclass, NULL, 'dummy comment');
968 SELECT id, unit, comment FROM dbms_stats.backup_history;
969
970 -- No.8-1-7
971 DELETE FROM dbms_stats.backup_history;
972 SELECT dbms_stats.backup(
973     'pg_toast.pg_toast_2618'::regclass,
974     NULL,
975     'dummy comment');
976 SELECT id, unit, comment FROM dbms_stats.backup_history;
977
978 -- No.8-1-8
979 DELETE FROM dbms_stats.backup_history;
980 SELECT dbms_stats.backup('s0.st0_idx'::regclass, NULL, 'dummy comment');
981 SELECT id, unit, comment FROM dbms_stats.backup_history;
982
983 -- No.8-1-9
984 DELETE FROM dbms_stats.backup_history;
985 SELECT dbms_stats.backup('s0.ss0'::regclass, NULL, 'dummy comment');
986 SELECT id, unit, comment FROM dbms_stats.backup_history;
987
988 -- No.8-1-10
989 DELETE FROM dbms_stats.backup_history;
990 SELECT dbms_stats.backup('s0.sc0'::regclass, NULL, 'dummy comment');
991 SELECT id, unit, comment FROM dbms_stats.backup_history;
992
993 -- No.8-1-11
994 DELETE FROM dbms_stats.backup_history;
995 SELECT dbms_stats.backup('s0.sft0'::regclass, NULL, 'dummy comment');
996 SELECT id, unit, comment FROM dbms_stats.backup_history;
997
998 -- No.8-1-13
999 DELETE FROM dbms_stats.backup_history;
1000 SELECT dbms_stats.backup('pg_catalog.pg_class'::regclass, NULL, 'dummy comment');
1001 SELECT id, unit, comment FROM dbms_stats.backup_history;
1002
1003 -- No.8-1-14
1004 DELETE FROM dbms_stats.backup_history;
1005 SELECT dbms_stats.backup('s0.st0'::regclass, 'dummy', 'dummy comment');
1006 SELECT id, unit, comment FROM dbms_stats.backup_history;
1007
1008 -- No.8-1-15
1009 DELETE FROM dbms_stats.backup_history;
1010 DELETE FROM pg_statistic
1011  WHERE starelid = 's0.st0'::regclass
1012    AND staattnum = 1::int2;
1013 SELECT count(*) FROM dbms_stats.column_stats_effective
1014  WHERE starelid = 's0.st0'::regclass
1015    AND staattnum = 1::int2;
1016 SELECT dbms_stats.backup('s0.st0'::regclass, 'id', 'dummy comment');
1017 SELECT id, unit, comment FROM dbms_stats.backup_history;
1018
1019 /*
1020  * Stab function dbms_stats.backup
1021  */
1022 ALTER FUNCTION dbms_stats.backup(
1023     relid regclass,
1024     attname text,
1025     comment text)
1026     RENAME TO truth_func_backup;
1027 CREATE OR REPLACE FUNCTION dbms_stats.backup(
1028     relid regclass DEFAULT NULL,
1029     attname text DEFAULT NULL,
1030     comment text DEFAULT NULL)
1031 RETURNS int8 AS
1032 $$
1033 BEGIN
1034     IF $3 = '<NULL>' THEN
1035         RAISE NOTICE 'third argument is not NULL but string "<NULL>"';
1036     END IF;
1037     RAISE NOTICE 'arguments are %, %, %', $1, $2, $3;
1038     RETURN 1;
1039 END;
1040 $$
1041 LANGUAGE plpgsql;
1042
1043 /*
1044  * No.8-3 dbms_stats.backup_schema_stats
1045  */
1046 SELECT setval('dbms_stats.backup_history_id_seq',9, false);
1047 -- No.8-3-1
1048 SELECT dbms_stats.backup_schema_stats('s0', 'comment');
1049 SELECT id, unit, comment FROM dbms_stats.backup_history
1050  ORDER BY id DESC
1051  LIMIT 1;
1052 -- No.8-3-2
1053 SELECT dbms_stats.backup_schema_stats('s00', 'comment');
1054 SELECT id, unit, comment FROM dbms_stats.backup_history
1055  ORDER BY id DESC
1056  LIMIT 1;
1057 -- No.8-3-3
1058 SELECT dbms_stats.backup_schema_stats('pg_catalog', 'comment');
1059 SELECT id, unit, comment FROM dbms_stats.backup_history
1060  ORDER BY id DESC
1061  LIMIT 1;
1062
1063 /*
1064  * Delete stab function dbms_stats.backup
1065  */
1066 DROP FUNCTION dbms_stats.backup(
1067     backup_id int8,
1068     regclass,
1069     attnum int2);
1070 ALTER FUNCTION dbms_stats.truth_func_backup(
1071     backup_id int8,
1072     regclass,
1073     attnum int2)
1074     RENAME TO backup;
1075 DROP FUNCTION dbms_stats.backup(
1076     regclass,
1077     attname text,
1078     comment text);
1079 ALTER FUNCTION dbms_stats.truth_func_backup(
1080     regclass,
1081     attname text,
1082     comment text)
1083     RENAME TO backup;
1084 VACUUM ANALYZE;
1085
1086 /*
1087  * create backup statistics state A
1088  */
1089 DELETE FROM dbms_stats.backup_history;
1090
1091 INSERT INTO dbms_stats.backup_history(id, time, unit)
1092     VALUES (1, '2012-02-29 23:59:56.999999', 'd');
1093
1094 SELECT setval('dbms_stats.backup_history_id_seq',1);
1095 SELECT dbms_stats.backup();
1096 UPDATE dbms_stats.backup_history
1097    SET time = '2012-02-29 23:59:57'
1098  WHERE id = 2;
1099 SELECT dbms_stats.backup('s0.st0');
1100 UPDATE dbms_stats.backup_history
1101    SET time = '2012-02-29 23:59:57.000001'
1102  WHERE id = 3;
1103 SELECT dbms_stats.backup();
1104 UPDATE dbms_stats.backup_history
1105    SET time = '2012-02-29 23:59:58'
1106  WHERE id = 4;
1107 DELETE FROM dbms_stats.relation_stats_backup
1108  WHERE id = 4;
1109 SELECT dbms_stats.backup('s0.st0', 'id');
1110 UPDATE dbms_stats.backup_history
1111    SET time = '2012-03-01 00:00:00'
1112  WHERE id = 5;
1113 SELECT dbms_stats.backup('s0.st0');
1114 UPDATE dbms_stats.backup_history
1115    SET time = '2012-03-01 00:00:02'
1116  WHERE id = 6;
1117 SELECT dbms_stats.backup('public.st0');
1118 UPDATE dbms_stats.backup_history
1119    SET time = '2012-03-01 00:00:04'
1120  WHERE id = 7;
1121 INSERT INTO dbms_stats.backup_history(time, unit)
1122     VALUES ('2012-03-01 00:00:06', 's');
1123 SELECT dbms_stats.backup(8, c.oid, NULL)
1124   FROM pg_catalog.pg_class c,
1125        pg_catalog.pg_namespace n
1126  WHERE n.nspname = 's0'
1127    AND c.relnamespace = n.oid
1128    AND c.relkind IN ('r', 'i');
1129
1130 SELECT * FROM dbms_stats.backup_history
1131  ORDER BY id;
1132 SELECT * FROM relations_backup_v;
1133 SELECT * FROM columns_backup_v;
1134
1135 VACUUM ANALYZE;
1136
1137 /*
1138  * No.9-1 dbms_stats.restore
1139  */
1140 -- No.9-1-1
1141 DELETE FROM dbms_stats._relation_stats_locked;
1142 BEGIN;
1143 SELECT relation::regclass, mode
1144  FROM pg_locks l join pg_class c on (l.relation = c.oid and c.relkind = 'r')
1145  WHERE mode LIKE '%ExclusiveLock%'
1146  ORDER BY relation::regclass::text, mode;
1147 SELECT dbms_stats.restore(2, 's0.st0', NULL);
1148 SELECT relation::regclass, mode
1149  FROM pg_locks l join pg_class c on (l.relation = c.oid and c.relkind = 'r')
1150  WHERE mode LIKE '%ExclusiveLock%'
1151  ORDER BY relation::regclass::text, mode;
1152 COMMIT;
1153 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
1154  GROUP BY relid
1155  ORDER BY relid;
1156 SELECT starelid, attname, stainherit FROM columns_locked_v c;
1157
1158 -- No.9-1-2
1159 DELETE FROM dbms_stats._relation_stats_locked;
1160 SELECT dbms_stats.restore(2, 'st0', NULL);
1161 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
1162  GROUP BY relid
1163  ORDER BY relid;
1164 SELECT starelid, attname, stainherit FROM columns_locked_v c;
1165
1166 -- No.9-1-3
1167 DELETE FROM dbms_stats._relation_stats_locked;
1168 SELECT dbms_stats.restore(2, 's00.s0', NULL);
1169 SELECT count(*) FROM dbms_stats.column_stats_locked;
1170 SELECT count(*) FROM dbms_stats.relation_stats_locked;
1171
1172 -- No.9-1-4
1173 DELETE FROM dbms_stats._relation_stats_locked;
1174 SELECT dbms_stats.restore(NULL, 's0.st0', NULL);
1175 SELECT count(*) FROM dbms_stats.column_stats_locked;
1176 SELECT count(*) FROM dbms_stats.relation_stats_locked;
1177
1178 -- No.9-1-5
1179 DELETE FROM dbms_stats._relation_stats_locked;
1180 SELECT dbms_stats.restore(2, 's0.st0', 'id');
1181 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
1182  GROUP BY relid
1183  ORDER BY relid;
1184 SELECT starelid, attname, stainherit FROM columns_locked_v c;
1185
1186 -- No.9-1-6
1187 DELETE FROM dbms_stats._relation_stats_locked;
1188 SELECT dbms_stats.restore(2, NULL, 'id');
1189 SELECT count(*) FROM dbms_stats.column_stats_locked;
1190 SELECT count(*) FROM dbms_stats.relation_stats_locked;
1191
1192 -- No.9-1-7
1193 DELETE FROM dbms_stats._relation_stats_locked;
1194 SELECT dbms_stats.restore(2, 's0.st0', NULL);
1195 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
1196  GROUP BY relid
1197  ORDER BY relid;
1198 SELECT starelid, attname, stainherit FROM columns_locked_v c;
1199
1200 -- No.9-1-8
1201 DELETE FROM dbms_stats._relation_stats_locked;
1202 SELECT dbms_stats.restore(2, NULL, NULL);
1203 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
1204  GROUP BY relid
1205  ORDER BY relid;
1206 SELECT starelid, attname, stainherit FROM columns_locked_v c;
1207
1208 -- No.9-1-9
1209 DELETE FROM dbms_stats._relation_stats_locked;
1210 SELECT dbms_stats.restore(0, 's0.st0', NULL);
1211 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
1212  GROUP BY relid
1213  ORDER BY relid;
1214 SELECT starelid, attname, stainherit FROM columns_locked_v c;
1215
1216 -- No.9-1-10
1217 DELETE FROM dbms_stats._relation_stats_locked;
1218 SELECT dbms_stats.restore(2, 0, 'id');
1219 SELECT count(*) FROM dbms_stats.column_stats_locked;
1220 SELECT count(*) FROM dbms_stats.relation_stats_locked;
1221
1222 -- No.9-1-11
1223 DELETE FROM dbms_stats._relation_stats_locked;
1224 SELECT dbms_stats.restore(1, 's0.st0', NULL);
1225 SELECT count(*) FROM dbms_stats.column_stats_locked;
1226 SELECT count(*) FROM dbms_stats.relation_stats_locked;
1227
1228 -- No.9-1-12
1229 DELETE FROM dbms_stats._relation_stats_locked;
1230 SELECT dbms_stats.restore(2, 's0.st0', 'dummy');
1231 SELECT count(*) FROM dbms_stats.column_stats_locked;
1232 SELECT count(*) FROM dbms_stats.relation_stats_locked;
1233
1234 -- No.9-1-13
1235 DELETE FROM dbms_stats._relation_stats_locked;
1236 SELECT dbms_stats.restore(1, 's0.st0', 'id');
1237 SELECT count(*) FROM dbms_stats.column_stats_locked;
1238 SELECT count(*) FROM dbms_stats.relation_stats_locked;
1239
1240 -- No.9-1-15
1241 DELETE FROM dbms_stats._relation_stats_locked;
1242 ALTER TABLE s1.st0 DROP COLUMN id;
1243 SELECT dbms_stats.restore(2, 's1.st0', 'id');
1244 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
1245  GROUP BY relid
1246  ORDER BY relid;
1247 SELECT starelid, attname, stainherit FROM columns_locked_v c;
1248
1249 -- No.9-1-14
1250 DELETE FROM dbms_stats._relation_stats_locked;
1251 \set s1_st0_oid `psql contrib_regression -tA -c "SELECT c.oid FROM pg_class c, pg_namespace n WHERE c.relnamespace = n.oid AND n.nspname = 's1' AND c.relname = 'st0';"`
1252 DROP TABLE s1.st0;
1253 SELECT dbms_stats.restore(2, :s1_st0_oid, NULL);
1254 SELECT count(*) FROM dbms_stats.relation_stats_locked;
1255 SELECT count(*) FROM dbms_stats.column_stats_locked;
1256 CREATE TABLE s1.st0(id integer, num integer);
1257 INSERT INTO s1.st0 VALUES (1, 15), (2, 25), (3, 35), (4, 45);
1258 VACUUM ANALYZE;
1259 -- No.9-1-16
1260 DELETE FROM dbms_stats._relation_stats_locked;
1261 SELECT dbms_stats.restore(2, 's0.st0', NULL);
1262 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
1263  GROUP BY relid
1264  ORDER BY relid;
1265 SELECT starelid, attname, stainherit FROM columns_locked_v c;
1266
1267 -- No.9-1-17
1268 DELETE FROM dbms_stats._relation_stats_locked;
1269 INSERT INTO dbms_stats.relation_stats_backup(
1270                id, relid, relname, relpages, reltuples,
1271                relallvisible,
1272                curpages)
1273      VALUES (2,
1274              'pg_toast.pg_toast_2618'::regclass,
1275              'pg_toast.pg_toast_2618', 1, 1,
1276              1,
1277              1);
1278 SELECT * FROM relations_backup_v
1279  WHERE id = 2
1280    AND relname = 'pg_toast.pg_toast_2618';
1281 SELECT dbms_stats.restore(2, 'pg_toast.pg_toast_2618', NULL);
1282 SELECT count(*) FROM dbms_stats.column_stats_locked;
1283 SELECT count(*) FROM dbms_stats.relation_stats_locked;
1284 DELETE FROM dbms_stats.relation_stats_backup
1285  WHERE id = 2
1286    AND relname = 'pg_toast.pg_toast_2618';
1287
1288 -- No.9-1-18
1289 DELETE FROM dbms_stats._relation_stats_locked;
1290 SELECT dbms_stats.restore(2, 's0.st0_idx', NULL);
1291 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
1292  GROUP BY relid
1293  ORDER BY relid;
1294 SELECT starelid, attname, stainherit FROM columns_locked_v c;
1295
1296 -- No.9-1-19
1297 DELETE FROM dbms_stats._relation_stats_locked;
1298 INSERT INTO dbms_stats.relation_stats_backup(
1299                id, relid, relname, relpages, reltuples,
1300                relallvisible,
1301                curpages)
1302      VALUES (2, 's0.ss0'::regclass, 's0.ss0', 1, 1,
1303              1,
1304              1);
1305 SELECT * FROM relations_backup_v
1306  WHERE id = 2
1307    AND relname = 's0.ss0';
1308 SELECT dbms_stats.restore(2, 's0.ss0', NULL);
1309 SELECT count(*) FROM dbms_stats.column_stats_locked;
1310 SELECT count(*) FROM dbms_stats.relation_stats_locked;
1311 DELETE FROM dbms_stats.relation_stats_backup
1312  WHERE id = 2
1313    AND relname = 's0.ss0';
1314
1315 -- No.9-1-20
1316 DELETE FROM dbms_stats._relation_stats_locked;
1317 INSERT INTO dbms_stats.relation_stats_backup(
1318                id, relid, relname, relpages, reltuples,
1319                relallvisible,
1320                curpages)
1321      VALUES (2, 's0.sc0'::regclass, 's0.sc0', 1, 1,
1322              1,
1323              1);
1324 SELECT * FROM relations_backup_v
1325  WHERE id = 2
1326    AND relname = 's0.sc0';
1327 SELECT dbms_stats.restore(2, 's0.sc0', NULL);
1328 SELECT count(*) FROM dbms_stats.column_stats_locked;
1329 SELECT count(*) FROM dbms_stats.relation_stats_locked;
1330 DELETE FROM dbms_stats.relation_stats_backup
1331  WHERE id = 2
1332    AND relname = 's0.sc0';
1333
1334 -- No.9-1-21
1335 DELETE FROM dbms_stats._relation_stats_locked;
1336 INSERT INTO dbms_stats.relation_stats_backup(
1337                id, relid, relname, relpages, reltuples,
1338                relallvisible,
1339                curpages)
1340      VALUES (3, 's0.sft0'::regclass, 's0.sft0', 1, 1,
1341              1,
1342              1);
1343 SELECT * FROM relations_backup_v
1344  WHERE id = 3
1345    AND relname = 's0.sft0';
1346 SELECT dbms_stats.restore(2, 's0.sft0', NULL);
1347 SELECT count(*) FROM dbms_stats.column_stats_locked;
1348 SELECT count(*) FROM dbms_stats.relation_stats_locked;
1349 DELETE FROM dbms_stats.relation_stats_backup
1350  WHERE id = 3
1351    AND relname = 's0.sft0';
1352
1353 -- No.9-1-23
1354 DELETE FROM dbms_stats._relation_stats_locked;
1355 INSERT INTO dbms_stats.relation_stats_backup(
1356                id, relid, relname, relpages, reltuples,
1357                relallvisible,
1358                curpages)
1359      VALUES (2, 'pg_catalog.pg_class'::regclass, 'pg_catalog.pg_class', 1, 1,
1360              1,
1361              1);
1362 SELECT * FROM relations_backup_v
1363  WHERE id = 2
1364    AND relname = 'pg_catalog.pg_class';
1365 SELECT dbms_stats.restore(2, 'pg_catalog.pg_class', NULL);
1366 SELECT count(*) FROM dbms_stats.column_stats_locked;
1367 SELECT count(*) FROM dbms_stats.relation_stats_locked;
1368 DELETE FROM dbms_stats.relation_stats_backup
1369  WHERE id = 2
1370    AND relname = 'pg_catalog.pg_class';
1371
1372 -- No.9-1-24
1373 DELETE FROM dbms_stats._relation_stats_locked;
1374 INSERT INTO dbms_stats._relation_stats_locked(relid, relname)
1375     VALUES ('s0.st0'::regclass, 's0.st0');
1376 INSERT INTO dbms_stats._column_stats_locked(starelid, staattnum, stainherit)
1377      SELECT starelid::regclass, staattnum, stainherit
1378        FROM dbms_stats.column_stats_effective
1379       WHERE starelid = 's0.st0'::regclass;
1380 SELECT id, unit, comment FROM dbms_stats.backup_history
1381  WHERE id = 2;
1382 SELECT * FROM columns_locked_v;
1383 SELECT * FROM relations_locked_v;
1384 SELECT dbms_stats.restore(2, 's0.st0', NULL);
1385 SELECT * FROM relations_locked_v;
1386 SELECT * FROM columns_locked_v;
1387
1388 -- No.9-1-25
1389 DELETE FROM dbms_stats._relation_stats_locked;
1390 SELECT id, unit, comment FROM dbms_stats.backup_history
1391  WHERE id = 2;
1392 SELECT dbms_stats.restore(2, 's0.st0', NULL);
1393 SELECT * FROM relations_locked_v;
1394 SELECT * FROM columns_locked_v;
1395
1396 /*
1397  * Stab function dbms_stats.restore
1398  */
1399 CREATE OR REPLACE FUNCTION dbms_stats.restore(
1400     backup_id int8,
1401     relid regclass DEFAULT NULL,
1402     attname text DEFAULT NULL)
1403 RETURNS SETOF regclass AS
1404 $$
1405 BEGIN
1406     RAISE NOTICE 'arguments are "%, %, %"', $1, $2, $3;
1407     RETURN QUERY
1408         SELECT c.oid::regclass
1409           FROM pg_class c, dbms_stats.relation_stats_backup b
1410          WHERE (c.oid = $2 OR $2 IS NULL)
1411            AND c.oid = b.relid
1412            AND c.relkind IN ('r', 'i')
1413            AND (b.id <= $1 OR $1 IS NOT NULL)
1414          GROUP BY c.oid
1415          ORDER BY c.oid::regclass::text;
1416 END;
1417 $$
1418 LANGUAGE plpgsql;
1419
1420 /*
1421  * No.10-1 dbms_stats.restore_database_stats
1422  */
1423 -- No.10-1-1
1424 SELECT dbms_stats.restore_database_stats('2012-02-29 23:59:57');
1425 -- No.10-1-2
1426 SELECT dbms_stats.restore_database_stats('2012-02-29 23:59:57.000002');
1427 -- No.10-1-3
1428 SELECT dbms_stats.restore_database_stats('2012-01-01 00:00:00');
1429 --#No.10-1-4 is skipped after lock tests
1430 --#No.10-1-5 is skipped after lock tests
1431 -- No.10-1-6
1432 SELECT dbms_stats.restore_database_stats('2012-02-29 23:59:57');
1433
1434 /*
1435  * No.10-2 dbms_stats.restore_schema_stats
1436  */
1437 -- No.10-2-1
1438 SELECT dbms_stats.restore_schema_stats('s0', '2012-02-29 23:59:57');
1439 -- No.10-2-2
1440 SELECT dbms_stats.restore_schema_stats('s0', '2012-02-29 23:59:57.000002');
1441 -- No.10-2-3
1442 SELECT dbms_stats.restore_schema_stats('s0', '2012-01-01 00:00:00');
1443 --#No.10-2-4 is skipped after lock tests
1444 --#No.10-2-5 is skipped after lock tests
1445 -- No.10-2-6
1446 SELECT dbms_stats.restore_schema_stats('s0', '2012-02-29 23:59:57');
1447 -- No.10-2-7
1448 SELECT dbms_stats.restore_schema_stats('s0', '2012-02-29 23:59:57');
1449 --#No.10-2-8 is skipped after lock tests
1450 -- No.10-2-9
1451 SELECT dbms_stats.restore_schema_stats('s00', '2012-02-29 23:59:57');
1452 -- No.10-2-10
1453 SELECT dbms_stats.restore_schema_stats('pg_catalog', '2012-02-29 23:59:57');
1454
1455 /*
1456  * No.10-7 dbms_stats.restore_stats
1457  */
1458 -- No.10-7-1
1459 DELETE FROM dbms_stats._relation_stats_locked;
1460 SELECT dbms_stats.restore_stats(NULL);
1461
1462 -- No.10-7-2
1463 DELETE FROM dbms_stats._relation_stats_locked;
1464 SELECT dbms_stats.restore_stats(0);
1465
1466 -- No.10-7-3
1467 DELETE FROM dbms_stats._relation_stats_locked;
1468 BEGIN;
1469 SELECT relation::regclass, mode
1470  FROM pg_locks l join pg_class c on (l.relation = c.oid and c.relkind = 'r')
1471  WHERE mode LIKE '%ExclusiveLock%'
1472  ORDER BY relation::regclass::text, mode;
1473 SELECT dbms_stats.restore_stats(2);
1474 SELECT relation::regclass, mode
1475  FROM pg_locks l join pg_class c on (l.relation = c.oid and c.relkind = 'r')
1476  WHERE mode LIKE '%ExclusiveLock%'
1477  ORDER BY relation::regclass::text, mode;
1478 COMMIT;
1479 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
1480  GROUP BY relid
1481  ORDER BY relid;
1482 SELECT starelid, attname, stainherit FROM columns_locked_v c;
1483
1484 -- No.10-7-4
1485 DELETE FROM dbms_stats._relation_stats_locked;
1486 INSERT INTO dbms_stats._relation_stats_locked(relid, relname)
1487      SELECT relid::regclass, relname
1488        FROM dbms_stats.relation_stats_effective;
1489 INSERT INTO dbms_stats._column_stats_locked(starelid, staattnum, stainherit)
1490      SELECT starelid::regclass, staattnum, stainherit
1491        FROM dbms_stats.column_stats_effective;
1492 SELECT id, unit, comment FROM dbms_stats.backup_history
1493  WHERE id = 8;
1494 SELECT * FROM columns_locked_v;
1495 SELECT * FROM relations_locked_v;
1496 SELECT dbms_stats.restore_stats(8);
1497 SELECT * FROM relations_locked_v;
1498 SELECT * FROM columns_locked_v;
1499
1500 -- No.10-7-5
1501 DELETE FROM dbms_stats._relation_stats_locked;
1502 SELECT id, unit, comment FROM dbms_stats.backup_history
1503  WHERE id = 8;
1504 SELECT dbms_stats.restore_stats(8);
1505 SELECT * FROM relations_locked_v;
1506 SELECT * FROM columns_locked_v;
1507
1508 /*
1509  * No.11-1 dbms_stats.lock(relid, attname)
1510  */
1511 -- No.11-1-1
1512 DELETE FROM dbms_stats._relation_stats_locked;
1513 SELECT dbms_stats.lock(NULL, NULL);
1514 -- No.11-1-2
1515 ALTER FUNCTION dbms_stats.lock(relid regclass)
1516     RENAME TO truth_lock;
1517 CREATE FUNCTION dbms_stats.lock(relid regclass)
1518 RETURNS regclass AS
1519 $$
1520 BEGIN
1521         RAISE NOTICE 'arguments are %', $1;
1522         RETURN $1;
1523 END
1524 $$
1525 LANGUAGE plpgsql;
1526 DELETE FROM dbms_stats._relation_stats_locked;
1527 SELECT dbms_stats.lock('s0.st0', NULL);
1528 DROP FUNCTION dbms_stats.lock(relid regclass);
1529 ALTER FUNCTION dbms_stats.truth_lock(relid regclass)
1530     RENAME TO lock;
1531 -- No.11-1-3
1532 DELETE FROM dbms_stats._relation_stats_locked;
1533 SELECT dbms_stats.lock(NULL, 'id');
1534 -- No.11-1-4
1535 DELETE FROM dbms_stats._relation_stats_locked;
1536 SELECT dbms_stats.lock('s0.st0', 'id');
1537 SELECT * FROM relations_locked_v;
1538 SELECT * FROM columns_locked_v c;
1539 -- No.11-1-5
1540 DELETE FROM dbms_stats._relation_stats_locked;
1541 SELECT dbms_stats.lock(0, 'id');
1542 -- No.11-1-6
1543 DELETE FROM dbms_stats._relation_stats_locked;
1544 SELECT dbms_stats.lock('s0.st0', 'id');
1545 SELECT * FROM relations_locked_v;
1546 SELECT * FROM columns_locked_v c;
1547 -- No.11-1-7
1548 DELETE FROM dbms_stats._relation_stats_locked;
1549 SELECT dbms_stats.lock('pg_toast.pg_toast_2618', 'id');
1550 -- No.11-1-8
1551 DELETE FROM dbms_stats._relation_stats_locked;
1552 SELECT dbms_stats.lock('s0.st0_idx', 'id');
1553 -- No.11-1-9
1554 DELETE FROM dbms_stats._relation_stats_locked;
1555 SELECT dbms_stats.lock('st1_exp', 'lower');
1556 SELECT * FROM relations_locked_v;
1557 SELECT * FROM columns_locked_v c;
1558 DELETE FROM dbms_stats._relation_stats_locked;
1559
1560 -- No.11-1-10
1561 DELETE FROM dbms_stats._relation_stats_locked;
1562 SELECT dbms_stats.lock('s0.ss0', 'id');
1563 -- No.11-1-11
1564 DELETE FROM dbms_stats._relation_stats_locked;
1565 SELECT dbms_stats.lock('s0.sc0', 'id');
1566 -- No.11-1-12
1567 DELETE FROM dbms_stats._relation_stats_locked;
1568 SELECT dbms_stats.lock('s0.sft0', 'id');
1569 SELECT * FROM relations_locked_v;
1570 SELECT * FROM columns_locked_v c;
1571 -- No.11-1-14
1572 DELETE FROM dbms_stats._relation_stats_locked;
1573 SELECT dbms_stats.lock('pg_catalog.pg_class', 'id');
1574 -- No.11-1-15
1575 DELETE FROM dbms_stats._relation_stats_locked;
1576 SELECT dbms_stats.lock('s0.st0', 'dummy');
1577 -- No.11-1-16
1578 DELETE FROM dbms_stats._relation_stats_locked;
1579 DELETE FROM pg_statistic
1580  WHERE starelid = 's0.st0'::regclass;
1581 SELECT dbms_stats.lock('s0.st0', 'id');
1582 VACUUM ANALYZE;
1583 -- No.11-1-17
1584 DELETE FROM dbms_stats._relation_stats_locked;
1585 INSERT INTO dbms_stats._relation_stats_locked(
1586     relid, relname, relpages, reltuples,
1587     relallvisible,
1588     curpages)
1589     VALUES('s0.st0'::regclass, 's0.st0', 1, 1640,
1590            1,
1591            1);
1592 SELECT dbms_stats.lock_column_stats('s0.st0','id');
1593 UPDATE dbms_stats._column_stats_locked
1594    SET (stanullfrac, stawidth, stadistinct,
1595         stakind1, stakind2, stakind3, stakind4,
1596         stakind5,
1597         staop1, staop2, staop3, staop4,
1598         staop5,
1599         stanumbers1, stanumbers2, stanumbers3, stanumbers4,
1600         stanumbers5,
1601         stavalues1, stavalues2, stavalues3, stavalues4
1602        ,stavalues5
1603        ) = (
1604         NULL, NULL, NULL,
1605         NULL, NULL, NULL, NULL,
1606         NULL, NULL, NULL, NULL,
1607         NULL, NULL, NULL, NULL,
1608         NULL, NULL, NULL, NULL,
1609         NULL, NULL, NULL, NULL)
1610  WHERE starelid = 's0.st0'::regclass;
1611 SELECT dbms_stats.lock('s0.st0', 'id');
1612 SELECT * FROM relations_locked_v;
1613 SELECT * FROM columns_locked_v c;
1614 -- No.11-1-18
1615 DELETE FROM dbms_stats._relation_stats_locked;
1616 SELECT dbms_stats.lock('s0.st0', 'id');
1617 SELECT * FROM relations_locked_v
1618  WHERE relid = 's0.st0'::regclass;
1619 SELECT starelid, attname, stainherit FROM columns_locked_v c;
1620
1621 /*
1622  * No.11-2 dbms_stats.lock(relid)
1623  */
1624 -- No.11-2-1
1625 DELETE FROM dbms_stats._relation_stats_locked;
1626 BEGIN;
1627 SELECT relation::regclass, mode
1628  FROM pg_locks l join pg_class c on (l.relation = c.oid and c.relkind = 'r')
1629  WHERE mode LIKE '%ExclusiveLock%'
1630  ORDER BY relation::regclass::text, mode;
1631 SELECT dbms_stats.lock('s0.st0');
1632 SELECT * FROM relations_locked_v;
1633 SELECT * FROM columns_locked_v c;
1634 SELECT relation::regclass, mode
1635  FROM pg_locks l join pg_class c on (l.relation = c.oid and c.relkind = 'r')
1636  WHERE mode LIKE '%ExclusiveLock%'
1637  ORDER BY relation::regclass::text, mode;
1638 COMMIT;
1639
1640 -- No.11-2-2
1641 DELETE FROM dbms_stats._relation_stats_locked;
1642 SELECT dbms_stats.lock(NULL);
1643 -- No.11-2-3
1644 DELETE FROM dbms_stats._relation_stats_locked;
1645 SELECT dbms_stats.lock('0');
1646 -- No.11-2-4
1647 DELETE FROM dbms_stats._relation_stats_locked;
1648 SELECT dbms_stats.lock('s0.st0');
1649 SELECT * FROM relations_locked_v;
1650 SELECT * FROM columns_locked_v c;
1651 -- No.11-2-5
1652 DELETE FROM dbms_stats._relation_stats_locked;
1653 SELECT dbms_stats.lock('pg_toast.pg_toast_2618');
1654 -- No.11-2-6
1655 DELETE FROM dbms_stats._relation_stats_locked;
1656 SELECT dbms_stats.lock('s0.st0_idx');
1657 SELECT * FROM relations_locked_v;
1658 SELECT * FROM columns_locked_v c;
1659 -- No.11-2-7
1660 DELETE FROM dbms_stats._relation_stats_locked;
1661 SELECT dbms_stats.lock('s0.ss0');
1662 -- No.11-2-8
1663 DELETE FROM dbms_stats._relation_stats_locked;
1664 SELECT dbms_stats.lock('s0.sc0');
1665 -- No.11-2-9
1666 DELETE FROM dbms_stats._relation_stats_locked;
1667 SELECT dbms_stats.lock('s0.sft0');
1668 SELECT * FROM relations_locked_v;
1669 SELECT * FROM columns_locked_v c;
1670 -- No.11-2-11
1671 DELETE FROM dbms_stats._relation_stats_locked;
1672 SELECT dbms_stats.lock('pg_catalog.pg_class');
1673 -- No.11-2-12
1674 DELETE FROM dbms_stats._relation_stats_locked;
1675 SELECT dbms_stats.lock_table_stats('s0.st0');
1676 UPDATE dbms_stats._relation_stats_locked
1677    SET (relpages, reltuples,
1678         relallvisible,
1679         curpages)
1680      = (NULL, NULL, NULL
1681        ,NULL
1682        )
1683  WHERE relid = 's0.st0'::regclass;
1684 SELECT dbms_stats.lock('s0.st0');
1685 SELECT * FROM relations_locked_v;
1686 SELECT * FROM columns_locked_v c;
1687 -- No.11-2-13
1688 DELETE FROM dbms_stats._relation_stats_locked;
1689 SELECT dbms_stats.lock('s0.st0');
1690 SELECT * FROM relations_locked_v;
1691 SELECT * FROM columns_locked_v c;
1692
1693 /*
1694  * Stab function dbms_stats.lock
1695  */
1696 ALTER FUNCTION dbms_stats.lock(relid regclass)
1697     RENAME TO truth_lock;
1698 CREATE FUNCTION dbms_stats.lock(relid regclass)
1699 RETURNS regclass AS
1700 $$
1701 BEGIN
1702     RAISE NOTICE 'arguments are %', $1;
1703     RETURN $1;
1704 END
1705 $$
1706 LANGUAGE plpgsql;
1707
1708 ALTER FUNCTION dbms_stats.lock(relid regclass, attname text)
1709     RENAME TO truth_lock;
1710 CREATE FUNCTION dbms_stats.lock(
1711     relid regclass,
1712     attname text)
1713 RETURNS regclass AS
1714 $$
1715 BEGIN
1716     RAISE NOTICE 'arguments are %, %', $1, $2;
1717     RETURN $1;
1718 END
1719 $$
1720 LANGUAGE plpgsql;
1721
1722 /*
1723  * No.12-1 dbms_stats.lock_database_stats
1724  */
1725 -- No.12-1-1
1726 SELECT dbms_stats.lock_database_stats();
1727
1728 /*
1729  * No.12-2 dbms_stats.lock_schema_stats
1730  */
1731 -- No.12-2-1
1732 SELECT dbms_stats.lock_schema_stats('s0');
1733 -- No.12-2-2
1734 SELECT dbms_stats.lock_schema_stats('s00');
1735 -- No.12-2-3
1736 SELECT dbms_stats.lock_schema_stats('pg_catalog');
1737
1738 /*
1739  * No.12-3 dbms_stats.lock_table_stats(regclass)
1740  */
1741 -- No.12-3-1
1742 SELECT dbms_stats.lock_table_stats('s0.st0');
1743 -- No.12-3-2
1744 SELECT dbms_stats.lock_table_stats('st0');
1745 -- No.12-3-3
1746 SELECT dbms_stats.lock_table_stats('s00.s0');
1747
1748 /*
1749  * No.12-4 dbms_stats.lock_table_stats(schemaname, tablename)
1750  */
1751 -- No.12-4-1
1752 SELECT dbms_stats.lock_table_stats('s0', 'st0');
1753
1754 /*
1755  * No.12-5 dbms_stats.lock_column_stats(regclass, attname)
1756  */
1757 -- No.12-5-1
1758 SELECT dbms_stats.lock_column_stats('s0.st0', 'id');
1759 -- No.12-5-2
1760 SELECT dbms_stats.lock_column_stats('st0', 'id');
1761 -- No.12-5-3
1762 SELECT dbms_stats.lock_column_stats('s00.s0', 'id');
1763
1764 /*
1765  * No.12-6 dbms_stats.lock_column_stats(schemaname, tablename, int2)
1766  */
1767 -- No.12-6-1
1768 SELECT dbms_stats.lock_column_stats('s0', 'st0', 'id');
1769
1770 /*
1771  * Delete Stab function lock
1772  */
1773 DROP FUNCTION dbms_stats.lock(relid regclass);
1774 ALTER FUNCTION dbms_stats.truth_lock(relid regclass)
1775     RENAME TO lock;
1776 DROP FUNCTION dbms_stats.lock(relid regclass, attname text);
1777 ALTER FUNCTION dbms_stats.truth_lock(relid regclass, attname text)
1778     RENAME TO lock;
1779
1780 /*
1781  * No.13-1 dbms_stats.unlock
1782  */
1783 -- No.13-1-1
1784 DELETE FROM dbms_stats._relation_stats_locked;
1785 SELECT dbms_stats.lock_database_stats();
1786 SELECT * FROM dbms_stats.backup_history
1787  ORDER BY id;
1788 SELECT count(*) FROM dbms_stats.relation_stats_backup;
1789 SELECT count(*) FROM dbms_stats.column_stats_backup;
1790 SELECT dbms_stats.unlock();
1791 SELECT count(*) FROM dbms_stats._relation_stats_locked;
1792 SELECT count(*) FROM dbms_stats._column_stats_locked;
1793 SELECT * FROM dbms_stats.backup_history
1794  ORDER BY id;
1795 SELECT count(*) FROM dbms_stats.relation_stats_backup;
1796 SELECT count(*) FROM dbms_stats.column_stats_backup;
1797
1798 -- No.13-1-2
1799 DELETE FROM dbms_stats._relation_stats_locked;
1800 SELECT dbms_stats.lock_database_stats();
1801 SELECT dbms_stats.unlock();
1802 SELECT count(*) FROM dbms_stats._relation_stats_locked;
1803 SELECT count(*) FROM dbms_stats._column_stats_locked;
1804
1805 -- No.13-1-3
1806 DELETE FROM dbms_stats._relation_stats_locked;
1807 SELECT dbms_stats.lock_database_stats();
1808 DELETE FROM dbms_stats._column_stats_locked;
1809 SELECT dbms_stats.unlock();
1810 SELECT count(*) FROM dbms_stats._relation_stats_locked;
1811 SELECT count(*) FROM dbms_stats._column_stats_locked;
1812
1813 -- No.13-1-4
1814 DELETE FROM dbms_stats._relation_stats_locked;
1815 SELECT dbms_stats.unlock();
1816 SELECT count(*) FROM dbms_stats._relation_stats_locked;
1817 SELECT count(*) FROM dbms_stats._column_stats_locked;
1818
1819 -- No.13-1-5
1820 DELETE FROM dbms_stats._relation_stats_locked;
1821 SELECT dbms_stats.lock_database_stats();
1822 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
1823  GROUP BY relid
1824  ORDER BY relid;
1825 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
1826  GROUP BY starelid
1827  ORDER BY starelid;
1828 SELECT dbms_stats.unlock('s0.st0');
1829 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
1830  GROUP BY relid
1831  ORDER BY relid;
1832 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
1833  GROUP BY starelid
1834  ORDER BY starelid;
1835
1836 -- No.13-1-6
1837 DELETE FROM dbms_stats._relation_stats_locked;
1838 SELECT dbms_stats.lock_database_stats();
1839 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
1840  GROUP BY relid
1841  ORDER BY relid;
1842 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
1843  GROUP BY starelid
1844  ORDER BY starelid;
1845 SELECT dbms_stats.unlock('st0');
1846 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
1847  GROUP BY relid
1848  ORDER BY relid;
1849 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
1850  GROUP BY starelid
1851  ORDER BY starelid;
1852
1853 -- No.13-1-7
1854 DELETE FROM dbms_stats._relation_stats_locked;
1855 SELECT dbms_stats.lock_database_stats();
1856 SELECT count(*) FROM dbms_stats._relation_stats_locked;
1857 SELECT count(*) FROM dbms_stats._column_stats_locked;
1858 SELECT dbms_stats.unlock('s00.s0');
1859 SELECT count(*) FROM dbms_stats._relation_stats_locked;
1860 SELECT count(*) FROM dbms_stats._column_stats_locked;
1861
1862 -- No.13-1-8
1863 DELETE FROM dbms_stats._relation_stats_locked;
1864 SELECT dbms_stats.lock_database_stats();
1865 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
1866  GROUP BY relid
1867  ORDER BY relid;
1868 SELECT starelid, attname, stainherit FROM columns_locked_v c;
1869 SELECT dbms_stats.unlock('s0.st0', 'id');
1870 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
1871  GROUP BY relid
1872  ORDER BY relid;
1873 SELECT starelid, attname, stainherit FROM columns_locked_v c;
1874
1875 -- No.13-1-9
1876 DELETE FROM dbms_stats._relation_stats_locked;
1877 SELECT dbms_stats.lock_database_stats();
1878 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
1879  GROUP BY relid
1880  ORDER BY relid;
1881 SELECT starelid, attname, stainherit FROM columns_locked_v c;
1882 SELECT dbms_stats.unlock('s0.st0', 'dummy');
1883 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
1884  GROUP BY relid
1885  ORDER BY relid;
1886 SELECT starelid, attname, stainherit FROM columns_locked_v c;
1887
1888 -- No.13-1-10
1889 DELETE FROM dbms_stats._relation_stats_locked;
1890 SELECT dbms_stats.lock_database_stats();
1891 DELETE FROM dbms_stats._column_stats_locked;
1892 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
1893  GROUP BY relid
1894  ORDER BY relid;
1895 SELECT dbms_stats.unlock('s0.st0', 'id');
1896 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
1897  GROUP BY relid
1898  ORDER BY relid;
1899 SELECT starelid::regclass, staattnum FROM dbms_stats._column_stats_locked
1900  GROUP BY starelid, staattnum
1901  ORDER BY starelid;
1902
1903 -- No.13-1-11
1904 DELETE FROM dbms_stats._relation_stats_locked;
1905 SELECT dbms_stats.lock_database_stats();
1906 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
1907  GROUP BY relid
1908  ORDER BY relid;
1909 SELECT starelid::regclass, staattnum FROM dbms_stats._column_stats_locked
1910  GROUP BY starelid, staattnum
1911  ORDER BY starelid;
1912 SELECT dbms_stats.unlock(NULL, 'id');
1913 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
1914  GROUP BY relid
1915  ORDER BY relid;
1916 SELECT starelid::regclass, staattnum FROM dbms_stats._column_stats_locked
1917  GROUP BY starelid, staattnum
1918  ORDER BY starelid;
1919
1920 -- No.13-1-12
1921 DELETE FROM dbms_stats._relation_stats_locked;
1922 SELECT dbms_stats.lock_database_stats();
1923 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
1924  GROUP BY relid
1925  ORDER BY relid;
1926 SELECT starelid::regclass, staattnum FROM dbms_stats._column_stats_locked
1927  GROUP BY starelid, staattnum
1928  ORDER BY starelid;
1929 SELECT dbms_stats.unlock('s0.st0', NULL);
1930 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
1931  GROUP BY relid
1932  ORDER BY relid;
1933 SELECT starelid::regclass, staattnum FROM dbms_stats._column_stats_locked
1934  GROUP BY starelid, staattnum
1935  ORDER BY starelid;
1936
1937 -- No.13-1-13
1938 DELETE FROM dbms_stats._relation_stats_locked;
1939 SELECT dbms_stats.lock_database_stats();
1940 SELECT count(*) FROM dbms_stats._relation_stats_locked;
1941 SELECT count(*) FROM dbms_stats._column_stats_locked;
1942 BEGIN;
1943 SELECT relation::regclass, mode
1944  FROM pg_locks l join pg_class c on (l.relation = c.oid and c.relkind = 'r')
1945  WHERE mode LIKE '%ExclusiveLock%'
1946  ORDER BY relation::regclass::text, mode;
1947 SELECT dbms_stats.unlock();
1948 SELECT relation::regclass, mode
1949  FROM pg_locks l join pg_class c on (l.relation = c.oid and c.relkind = 'r')
1950  WHERE mode LIKE '%ExclusiveLock%'
1951  ORDER BY relation::regclass::text, mode;
1952 COMMIT;
1953 SELECT count(*) FROM dbms_stats._relation_stats_locked;
1954 SELECT count(*) FROM dbms_stats._column_stats_locked;
1955
1956 /*
1957  * No.14-1 dbms_stats.unlock_database_stats
1958  */
1959 -- No.14-1-1
1960 DELETE FROM dbms_stats._relation_stats_locked;
1961 SELECT dbms_stats.lock_database_stats();
1962 SELECT * FROM dbms_stats.backup_history
1963  ORDER BY id;
1964 SELECT count(*) FROM dbms_stats.relation_stats_backup;
1965 SELECT count(*) FROM dbms_stats.column_stats_backup;
1966 SELECT count(*) FROM dbms_stats._relation_stats_locked;
1967 SELECT count(*) FROM dbms_stats._column_stats_locked;
1968 SELECT dbms_stats.unlock_database_stats();
1969 SELECT count(*) FROM dbms_stats._relation_stats_locked;
1970 SELECT count(*) FROM dbms_stats._column_stats_locked;
1971 SELECT * FROM dbms_stats.backup_history
1972  ORDER BY id;
1973 SELECT count(*) FROM dbms_stats.relation_stats_backup;
1974 SELECT count(*) FROM dbms_stats.column_stats_backup;
1975
1976 -- No.14-1-2
1977 DELETE FROM dbms_stats._relation_stats_locked;
1978 SELECT dbms_stats.lock_database_stats();
1979 DELETE FROM dbms_stats._column_stats_locked;
1980 SELECT count(*) FROM dbms_stats._relation_stats_locked;
1981 SELECT dbms_stats.unlock_database_stats();
1982 SELECT count(*) FROM dbms_stats._relation_stats_locked;
1983 SELECT count(*) FROM dbms_stats._column_stats_locked;
1984
1985 -- No.14-1-3
1986 DELETE FROM dbms_stats._relation_stats_locked;
1987 SELECT dbms_stats.unlock_database_stats();
1988 SELECT count(*) FROM dbms_stats._relation_stats_locked;
1989 SELECT count(*) FROM dbms_stats._column_stats_locked;
1990
1991 -- No.14-1-4
1992 DELETE FROM dbms_stats._relation_stats_locked;
1993 SELECT dbms_stats.lock_database_stats();
1994 SELECT count(*) FROM dbms_stats._relation_stats_locked;
1995 SELECT count(*) FROM dbms_stats._column_stats_locked;
1996 BEGIN;
1997 SELECT relation::regclass, mode
1998  FROM pg_locks l join pg_class c on (l.relation = c.oid and c.relkind = 'r')
1999  WHERE mode LIKE '%ExclusiveLock%'
2000  ORDER BY relation::regclass::text, mode;
2001 SELECT dbms_stats.unlock_database_stats();
2002 SELECT relation::regclass, mode
2003  FROM pg_locks l join pg_class c on (l.relation = c.oid and c.relkind = 'r')
2004  WHERE mode LIKE '%ExclusiveLock%'
2005  ORDER BY relation::regclass::text, mode;
2006 COMMIT;
2007 SELECT count(*) FROM dbms_stats._relation_stats_locked;
2008 SELECT count(*) FROM dbms_stats._column_stats_locked;
2009
2010 /*
2011  * No.14-2 dbms_stats.unlock_schema_stats
2012  */
2013 -- No.14-2-1
2014 DELETE FROM dbms_stats._relation_stats_locked;
2015 SELECT dbms_stats.lock_database_stats();
2016 SELECT * FROM dbms_stats.backup_history
2017  ORDER BY id;
2018 SELECT count(*) FROM dbms_stats.relation_stats_backup;
2019 SELECT count(*) FROM dbms_stats.column_stats_backup;
2020 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2021  GROUP BY relid
2022  ORDER BY relid;
2023 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2024  GROUP BY starelid
2025  ORDER BY starelid;
2026 SELECT dbms_stats.unlock_schema_stats('s0');
2027 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2028  GROUP BY relid
2029  ORDER BY relid;
2030 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2031  GROUP BY starelid
2032  ORDER BY starelid;
2033 SELECT * FROM dbms_stats.backup_history
2034  ORDER BY id;
2035 SELECT count(*) FROM dbms_stats.relation_stats_backup;
2036 SELECT count(*) FROM dbms_stats.column_stats_backup;
2037
2038 -- No.14-2-2
2039 DELETE FROM dbms_stats._relation_stats_locked;
2040 SELECT dbms_stats.lock_database_stats();
2041 DELETE FROM dbms_stats._column_stats_locked;
2042 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2043  GROUP BY relid
2044  ORDER BY relid;
2045 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2046  GROUP BY starelid
2047  ORDER BY starelid;
2048 SELECT dbms_stats.unlock_schema_stats('s0');
2049 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2050  GROUP BY relid
2051  ORDER BY relid;
2052 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2053  GROUP BY starelid
2054  ORDER BY starelid;
2055
2056 -- No.14-2-3
2057 DELETE FROM dbms_stats._relation_stats_locked;
2058 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2059  GROUP BY relid
2060  ORDER BY relid;
2061 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2062  GROUP BY starelid
2063  ORDER BY starelid;
2064 SELECT dbms_stats.unlock_schema_stats('s0');
2065 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2066  GROUP BY relid
2067  ORDER BY relid;
2068 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2069  GROUP BY starelid
2070  ORDER BY starelid;
2071
2072 -- No.14-2-4
2073 DELETE FROM dbms_stats._relation_stats_locked;
2074 SELECT dbms_stats.lock_database_stats();
2075 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2076  GROUP BY relid
2077  ORDER BY relid;
2078 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2079  GROUP BY starelid
2080  ORDER BY starelid;
2081 SELECT dbms_stats.unlock_schema_stats('s0');
2082 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2083  GROUP BY relid
2084  ORDER BY relid;
2085 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2086  GROUP BY starelid
2087  ORDER BY starelid;
2088
2089 -- No.14-2-5
2090 DELETE FROM dbms_stats._relation_stats_locked;
2091 SELECT dbms_stats.lock_database_stats();
2092 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2093  GROUP BY relid
2094  ORDER BY relid;
2095 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2096  GROUP BY starelid
2097  ORDER BY starelid;
2098 SELECT dbms_stats.unlock_schema_stats('s00');
2099 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2100  GROUP BY relid
2101  ORDER BY relid;
2102 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2103  GROUP BY starelid
2104  ORDER BY starelid;
2105
2106 -- No.14-2-6
2107 DELETE FROM dbms_stats._relation_stats_locked;
2108 SELECT dbms_stats.lock_database_stats();
2109 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2110  GROUP BY relid
2111  ORDER BY relid;
2112 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2113  GROUP BY starelid
2114  ORDER BY starelid;
2115 SELECT dbms_stats.unlock_schema_stats('pg_catalog');
2116 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2117  GROUP BY relid
2118  ORDER BY relid;
2119 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2120  GROUP BY starelid
2121  ORDER BY starelid;
2122
2123 -- No.14-2-7
2124 DELETE FROM dbms_stats._relation_stats_locked;
2125 SELECT dbms_stats.lock_database_stats();
2126 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2127  GROUP BY relid
2128  ORDER BY relid;
2129 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2130  GROUP BY starelid
2131  ORDER BY starelid;
2132 SELECT dbms_stats.unlock_schema_stats(NULL);
2133 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2134  GROUP BY relid
2135  ORDER BY relid;
2136 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2137  GROUP BY starelid
2138  ORDER BY starelid;
2139
2140 -- No.14-2-8
2141 DELETE FROM dbms_stats._relation_stats_locked;
2142 SELECT dbms_stats.lock_database_stats();
2143 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2144  GROUP BY relid
2145  ORDER BY relid;
2146 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2147  GROUP BY starelid
2148  ORDER BY starelid;
2149 BEGIN;
2150 SELECT relation::regclass, mode
2151  FROM pg_locks l join pg_class c on (l.relation = c.oid and c.relkind = 'r')
2152  WHERE mode LIKE '%ExclusiveLock%'
2153  ORDER BY relation::regclass::text, mode;
2154 SELECT dbms_stats.unlock_schema_stats('s0');
2155 SELECT relation::regclass, mode
2156  FROM pg_locks l join pg_class c on (l.relation = c.oid and c.relkind = 'r')
2157  WHERE mode LIKE '%ExclusiveLock%'
2158  ORDER BY relation::regclass::text, mode;
2159 COMMIT;
2160 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2161  GROUP BY relid
2162  ORDER BY relid;
2163 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2164  GROUP BY starelid
2165  ORDER BY starelid;
2166
2167 /*
2168  * No.14-3 dbms_stats.unlock_table_stats(regclass)
2169  */
2170 -- No.14-3-1
2171 DELETE FROM dbms_stats._relation_stats_locked;
2172 SELECT dbms_stats.lock_database_stats();
2173 SELECT * FROM dbms_stats.backup_history
2174  ORDER BY id;
2175 SELECT count(*) FROM dbms_stats.relation_stats_backup;
2176 SELECT count(*) FROM dbms_stats.column_stats_backup;
2177 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2178  GROUP BY relid
2179  ORDER BY relid;
2180 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2181  GROUP BY starelid
2182  ORDER BY starelid;
2183 SELECT dbms_stats.unlock_table_stats('s0.st0');
2184 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2185  GROUP BY relid
2186  ORDER BY relid;
2187 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2188  GROUP BY starelid
2189  ORDER BY starelid;
2190 SELECT * FROM dbms_stats.backup_history
2191  ORDER BY id;
2192 SELECT count(*) FROM dbms_stats.relation_stats_backup;
2193 SELECT count(*) FROM dbms_stats.column_stats_backup;
2194
2195 -- No.14-3-2
2196 DELETE FROM dbms_stats._relation_stats_locked;
2197 SELECT dbms_stats.lock_database_stats();
2198 DELETE FROM dbms_stats._column_stats_locked;
2199 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2200  GROUP BY relid
2201  ORDER BY relid;
2202 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2203  GROUP BY starelid
2204  ORDER BY starelid;
2205 SELECT dbms_stats.unlock_table_stats('s0.st0');
2206 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2207  GROUP BY relid
2208  ORDER BY relid;
2209 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2210  GROUP BY starelid
2211  ORDER BY starelid;
2212
2213 -- No.14-3-3
2214 DELETE FROM dbms_stats._relation_stats_locked;
2215 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2216  GROUP BY relid
2217  ORDER BY relid;
2218 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2219  GROUP BY starelid
2220  ORDER BY starelid;
2221 SELECT dbms_stats.unlock_table_stats('s0.st0');
2222 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2223  GROUP BY relid
2224  ORDER BY relid;
2225 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2226  GROUP BY starelid
2227  ORDER BY starelid;
2228
2229 -- No.14-3-4
2230 DELETE FROM dbms_stats._relation_stats_locked;
2231 SELECT dbms_stats.lock_database_stats();
2232 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2233  GROUP BY relid
2234  ORDER BY relid;
2235 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2236  GROUP BY starelid
2237  ORDER BY starelid;
2238 SELECT dbms_stats.unlock_table_stats('s0.st0');
2239 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2240  GROUP BY relid
2241  ORDER BY relid;
2242 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2243  GROUP BY starelid
2244  ORDER BY starelid;
2245
2246 -- No.14-3-5
2247 DELETE FROM dbms_stats._relation_stats_locked;
2248 SELECT dbms_stats.lock_database_stats();
2249 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2250  GROUP BY relid
2251  ORDER BY relid;
2252 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2253  GROUP BY starelid
2254  ORDER BY starelid;
2255 SELECT dbms_stats.unlock_table_stats('st0');
2256 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2257  GROUP BY relid
2258  ORDER BY relid;
2259 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2260  GROUP BY starelid
2261  ORDER BY starelid;
2262
2263 -- No.14-3-6
2264 DELETE FROM dbms_stats._relation_stats_locked;
2265 SELECT dbms_stats.lock_database_stats();
2266 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2267  GROUP BY relid
2268  ORDER BY relid;
2269 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2270  GROUP BY starelid
2271  ORDER BY starelid;
2272 SELECT dbms_stats.unlock_table_stats('s00.s0');
2273 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2274  GROUP BY relid
2275  ORDER BY relid;
2276 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2277  GROUP BY starelid
2278  ORDER BY starelid;
2279
2280 -- No.14-3-7
2281 DELETE FROM dbms_stats._relation_stats_locked;
2282 SELECT dbms_stats.lock_database_stats();
2283 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2284  GROUP BY relid
2285  ORDER BY relid;
2286 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2287  GROUP BY starelid
2288  ORDER BY starelid;
2289 SELECT dbms_stats.unlock_table_stats(NULL);
2290 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2291  GROUP BY relid
2292  ORDER BY relid;
2293 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2294  GROUP BY starelid
2295  ORDER BY starelid;
2296
2297 -- No.14-3-8
2298 DELETE FROM dbms_stats._relation_stats_locked;
2299 SELECT dbms_stats.lock_database_stats();
2300 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2301  GROUP BY relid
2302  ORDER BY relid;
2303 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2304  GROUP BY starelid
2305  ORDER BY starelid;
2306 BEGIN;
2307 SELECT relation::regclass, mode
2308  FROM pg_locks l join pg_class c on (l.relation = c.oid and c.relkind = 'r')
2309  WHERE mode LIKE '%ExclusiveLock%'
2310  ORDER BY relation::regclass::text, mode;
2311 SELECT dbms_stats.unlock_table_stats('s0.st0');
2312 SELECT relation::regclass, mode
2313  FROM pg_locks l join pg_class c on (l.relation = c.oid and c.relkind = 'r')
2314  WHERE mode LIKE '%ExclusiveLock%'
2315  ORDER BY relation::regclass::text, mode;
2316 COMMIT;
2317 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2318  GROUP BY relid
2319  ORDER BY relid;
2320 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2321  GROUP BY starelid
2322  ORDER BY starelid;
2323
2324 /*
2325  * No.14-4 dbms_stats.unlock_table_stats(schemaname, tablename)
2326  */
2327 -- No.14-4-1
2328 DELETE FROM dbms_stats._relation_stats_locked;
2329 SELECT dbms_stats.lock_database_stats();
2330 SELECT * FROM dbms_stats.backup_history
2331  ORDER BY id;
2332 SELECT count(*) FROM dbms_stats.relation_stats_backup;
2333 SELECT count(*) FROM dbms_stats.column_stats_backup;
2334 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2335  GROUP BY relid
2336  ORDER BY relid;
2337 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2338  GROUP BY starelid
2339  ORDER BY starelid;
2340 SELECT dbms_stats.unlock_table_stats('s0','st0');
2341 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2342  GROUP BY relid
2343  ORDER BY relid;
2344 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2345  GROUP BY starelid
2346  ORDER BY starelid;
2347 SELECT * FROM dbms_stats.backup_history
2348  ORDER BY id;
2349 SELECT count(*) FROM dbms_stats.relation_stats_backup;
2350 SELECT count(*) FROM dbms_stats.column_stats_backup;
2351
2352 -- No.14-4-2
2353 DELETE FROM dbms_stats._relation_stats_locked;
2354 SELECT dbms_stats.lock_database_stats();
2355 DELETE FROM dbms_stats._column_stats_locked;
2356 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2357  GROUP BY relid
2358  ORDER BY relid;
2359 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2360  GROUP BY starelid
2361  ORDER BY starelid;
2362 SELECT dbms_stats.unlock_table_stats('s0', 'st0');
2363 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2364  GROUP BY relid
2365  ORDER BY relid;
2366 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2367  GROUP BY starelid
2368  ORDER BY starelid;
2369
2370 -- No.14-4-3
2371 DELETE FROM dbms_stats._relation_stats_locked;
2372 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2373  GROUP BY relid
2374  ORDER BY relid;
2375 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2376  GROUP BY starelid
2377  ORDER BY starelid;
2378 SELECT dbms_stats.unlock_table_stats('s0', 'st0');
2379 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2380  GROUP BY relid
2381  ORDER BY relid;
2382 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2383  GROUP BY starelid
2384  ORDER BY starelid;
2385
2386 -- No.14-4-4
2387 DELETE FROM dbms_stats._relation_stats_locked;
2388 SELECT dbms_stats.lock_database_stats();
2389 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2390  GROUP BY relid
2391  ORDER BY relid;
2392 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2393  GROUP BY starelid
2394  ORDER BY starelid;
2395 SELECT dbms_stats.unlock_table_stats('s0', 'st0');
2396 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2397  GROUP BY relid
2398  ORDER BY relid;
2399 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2400  GROUP BY starelid
2401  ORDER BY starelid;
2402
2403 -- No.14-4-5
2404 DELETE FROM dbms_stats._relation_stats_locked;
2405 SELECT dbms_stats.lock_database_stats();
2406 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2407  GROUP BY relid
2408  ORDER BY relid;
2409 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2410  GROUP BY starelid
2411  ORDER BY starelid;
2412 SELECT dbms_stats.unlock_table_stats('s00', 's0');
2413 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2414  GROUP BY relid
2415  ORDER BY relid;
2416 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2417  GROUP BY starelid
2418  ORDER BY starelid;
2419
2420 -- No.14-4-6
2421 DELETE FROM dbms_stats._relation_stats_locked;
2422 SELECT dbms_stats.lock_database_stats();
2423 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2424  GROUP BY relid
2425  ORDER BY relid;
2426 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2427  GROUP BY starelid
2428  ORDER BY starelid;
2429 SELECT dbms_stats.unlock_table_stats(NULL, 'st0');
2430 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2431  GROUP BY relid
2432  ORDER BY relid;
2433 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2434  GROUP BY starelid
2435  ORDER BY starelid;
2436
2437 -- No.14-4-7
2438 DELETE FROM dbms_stats._relation_stats_locked;
2439 SELECT dbms_stats.lock_database_stats();
2440 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2441  GROUP BY relid
2442  ORDER BY relid;
2443 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2444  GROUP BY starelid
2445  ORDER BY starelid;
2446 SELECT dbms_stats.unlock_table_stats('s0', NULL);
2447 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2448  GROUP BY relid
2449  ORDER BY relid;
2450 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2451  GROUP BY starelid
2452  ORDER BY starelid;
2453
2454 -- No.14-4-8
2455 DELETE FROM dbms_stats._relation_stats_locked;
2456 SELECT dbms_stats.lock_database_stats();
2457 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2458  GROUP BY relid
2459  ORDER BY relid;
2460 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2461  GROUP BY starelid
2462  ORDER BY starelid;
2463 BEGIN;
2464 SELECT relation::regclass, mode
2465  FROM pg_locks l join pg_class c on (l.relation = c.oid and c.relkind = 'r')
2466  WHERE mode LIKE '%ExclusiveLock%'
2467  ORDER BY relation::regclass::text, mode;
2468 SELECT dbms_stats.unlock_table_stats('s0', 'st0');
2469 SELECT relation::regclass, mode
2470  FROM pg_locks l join pg_class c on (l.relation = c.oid and c.relkind = 'r')
2471  WHERE mode LIKE '%ExclusiveLock%'
2472  ORDER BY relation::regclass::text, mode;
2473 COMMIT;
2474 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2475  GROUP BY relid
2476  ORDER BY relid;
2477 SELECT starelid::regclass, count(*) FROM dbms_stats._column_stats_locked
2478  GROUP BY starelid
2479  ORDER BY starelid;
2480
2481 /*
2482  * No.14-5 dbms_stats.unlock_column_stats(regclass, attname)
2483  */
2484 -- No.14-5-1
2485 DELETE FROM dbms_stats._relation_stats_locked;
2486 SELECT dbms_stats.lock_database_stats();
2487 SELECT * FROM dbms_stats.backup_history
2488  ORDER BY id;
2489 SELECT count(*) FROM dbms_stats.relation_stats_backup;
2490 SELECT count(*) FROM dbms_stats.column_stats_backup;
2491 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2492  GROUP BY relid
2493  ORDER BY relid;
2494 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2495 SELECT dbms_stats.unlock_column_stats('s0.st0', 'id');
2496 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2497 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2498  GROUP BY relid
2499  ORDER BY relid;
2500 SELECT * FROM dbms_stats.backup_history
2501  ORDER BY id;
2502 SELECT count(*) FROM dbms_stats.relation_stats_backup;
2503 SELECT count(*) FROM dbms_stats.column_stats_backup;
2504
2505 -- No.14-5-2
2506 DELETE FROM dbms_stats._relation_stats_locked;
2507 SELECT dbms_stats.lock_database_stats();
2508 DELETE FROM dbms_stats._column_stats_locked;
2509 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2510  GROUP BY relid
2511  ORDER BY relid;
2512 SELECT dbms_stats.unlock_column_stats('s0.st0', 'id');
2513 SELECT count(*) FROM dbms_stats.column_stats_locked;
2514 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2515  GROUP BY relid
2516  ORDER BY relid;
2517
2518 -- No.14-5-3
2519 DELETE FROM dbms_stats._relation_stats_locked;
2520 SELECT dbms_stats.lock_database_stats();
2521 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2522  GROUP BY relid
2523  ORDER BY relid;
2524 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2525 SELECT dbms_stats.unlock_column_stats('s0.st0', 'id');
2526 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2527 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2528  GROUP BY relid
2529  ORDER BY relid;
2530
2531 -- No.14-5-4
2532 DELETE FROM dbms_stats._relation_stats_locked;
2533 SELECT dbms_stats.lock_database_stats();
2534 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2535  GROUP BY relid
2536  ORDER BY relid;
2537 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2538 SELECT dbms_stats.unlock_column_stats('st0', 'id');
2539 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2540 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2541  GROUP BY relid
2542  ORDER BY relid;
2543
2544 -- No.14-5-5
2545 DELETE FROM dbms_stats._relation_stats_locked;
2546 SELECT dbms_stats.lock_database_stats();
2547 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2548  GROUP BY relid
2549  ORDER BY relid;
2550 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2551 SELECT dbms_stats.unlock_column_stats('s0.st0', 'dummy');
2552 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2553 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2554  GROUP BY relid
2555  ORDER BY relid;
2556
2557 -- No.14-5-6
2558 DELETE FROM dbms_stats._relation_stats_locked;
2559 SELECT dbms_stats.lock_database_stats();
2560 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2561  GROUP BY relid
2562  ORDER BY relid;
2563 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2564 SELECT dbms_stats.unlock_column_stats('s00.s0', 'id');
2565 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2566 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2567  GROUP BY relid
2568  ORDER BY relid;
2569
2570 -- No.14-5-7
2571 DELETE FROM dbms_stats._relation_stats_locked;
2572 SELECT dbms_stats.lock_database_stats();
2573 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2574  GROUP BY relid
2575  ORDER BY relid;
2576 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2577 SELECT dbms_stats.unlock_column_stats(NULL, 'id');
2578 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2579 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2580  GROUP BY relid
2581  ORDER BY relid;
2582
2583 -- No.14-5-8
2584 DELETE FROM dbms_stats._relation_stats_locked;
2585 SELECT dbms_stats.lock_database_stats();
2586 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2587  GROUP BY relid
2588  ORDER BY relid;
2589 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2590 SELECT dbms_stats.unlock_column_stats('s0.st0', NULL);
2591 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2592 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2593  GROUP BY relid
2594  ORDER BY relid;
2595
2596 -- No.14-5-9
2597 DELETE FROM dbms_stats._relation_stats_locked;
2598 SELECT dbms_stats.lock_database_stats();
2599 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2600  GROUP BY relid
2601  ORDER BY relid;
2602 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2603 BEGIN;
2604 SELECT relation::regclass, mode
2605  FROM pg_locks l join pg_class c on (l.relation = c.oid and c.relkind = 'r')
2606  WHERE mode LIKE '%ExclusiveLock%'
2607  ORDER BY relation::regclass::text, mode;
2608 SELECT dbms_stats.unlock_column_stats('s0.st0', 'id');
2609 SELECT relation::regclass, mode
2610  FROM pg_locks l join pg_class c on (l.relation = c.oid and c.relkind = 'r')
2611  WHERE mode LIKE '%ExclusiveLock%'
2612  ORDER BY relation::regclass::text, mode;
2613 COMMIT;
2614 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2615 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2616  GROUP BY relid
2617  ORDER BY relid;
2618
2619 /*
2620  * No.14-6 dbms_stats.unlock_column_stats(schemaname, tablename, attname)
2621  */
2622 -- No.14-6-1
2623 DELETE FROM dbms_stats._relation_stats_locked;
2624 SELECT dbms_stats.lock_database_stats();
2625 SELECT * FROM dbms_stats.backup_history
2626  ORDER BY id;
2627 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2628  GROUP BY relid
2629  ORDER BY relid;
2630 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2631 SELECT dbms_stats.unlock_column_stats('s0', 'st0', 'id');
2632 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2633 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2634  GROUP BY relid
2635  ORDER BY relid;
2636 SELECT * FROM dbms_stats.backup_history
2637  ORDER BY id;
2638 SELECT count(*) FROM dbms_stats.relation_stats_backup;
2639 SELECT count(*) FROM dbms_stats.column_stats_backup;
2640
2641 -- No.14-6-2
2642 DELETE FROM dbms_stats._relation_stats_locked;
2643 SELECT dbms_stats.lock_database_stats();
2644 DELETE FROM dbms_stats._column_stats_locked;
2645 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2646  GROUP BY relid
2647  ORDER BY relid;
2648 SELECT dbms_stats.unlock_column_stats('s0', 'st0', 'id');
2649 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2650 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2651  GROUP BY relid
2652  ORDER BY relid;
2653
2654 -- No.14-6-3
2655 DELETE FROM dbms_stats._relation_stats_locked;
2656 SELECT dbms_stats.lock_database_stats();
2657 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2658  GROUP BY relid
2659  ORDER BY relid;
2660 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2661 SELECT dbms_stats.unlock_column_stats('s0', 'st0', 'id');
2662 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2663 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2664  GROUP BY relid
2665  ORDER BY relid;
2666
2667 -- No.14-6-4
2668 DELETE FROM dbms_stats._relation_stats_locked;
2669 SELECT dbms_stats.lock_database_stats();
2670 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2671  GROUP BY relid
2672  ORDER BY relid;
2673 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2674 SELECT dbms_stats.unlock_column_stats('s0', 'st0', 'dummy');
2675 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2676 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2677  GROUP BY relid
2678  ORDER BY relid;
2679
2680 -- No.14-6-5
2681 DELETE FROM dbms_stats._relation_stats_locked;
2682 SELECT dbms_stats.lock_database_stats();
2683 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2684  GROUP BY relid
2685  ORDER BY relid;
2686 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2687 SELECT dbms_stats.unlock_column_stats(NULL, 'st0', 'id');
2688 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2689 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2690  GROUP BY relid
2691  ORDER BY relid;
2692
2693 -- No.14-6-6
2694 DELETE FROM dbms_stats._relation_stats_locked;
2695 SELECT dbms_stats.lock_database_stats();
2696 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2697  GROUP BY relid
2698  ORDER BY relid;
2699 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2700 SELECT dbms_stats.unlock_column_stats('s0', NULL, 'id');
2701 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2702 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2703  GROUP BY relid
2704  ORDER BY relid;
2705
2706 -- No.14-6-7
2707 DELETE FROM dbms_stats._relation_stats_locked;
2708 SELECT dbms_stats.lock_database_stats();
2709 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2710  GROUP BY relid
2711  ORDER BY relid;
2712 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2713 SELECT dbms_stats.unlock_column_stats('s0', 'st0', NULL);
2714 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2715 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2716  GROUP BY relid
2717  ORDER BY relid;
2718
2719 -- No.14-6-8
2720 DELETE FROM dbms_stats._relation_stats_locked;
2721 SELECT dbms_stats.lock_database_stats();
2722 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2723  GROUP BY relid
2724  ORDER BY relid;
2725 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2726 BEGIN;
2727 SELECT relation::regclass, mode
2728  FROM pg_locks l join pg_class c on (l.relation = c.oid and c.relkind = 'r')
2729  WHERE mode LIKE '%ExclusiveLock%'
2730  ORDER BY relation::regclass::text, mode;
2731 SELECT dbms_stats.unlock_column_stats('s0', 'st0', 'id');
2732 SELECT relation::regclass, mode
2733  FROM pg_locks l join pg_class c on (l.relation = c.oid and c.relkind = 'r')
2734  WHERE mode LIKE '%ExclusiveLock%'
2735  ORDER BY relation::regclass::text, mode;
2736 COMMIT;
2737 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2738 SELECT relid::regclass FROM dbms_stats._relation_stats_locked
2739  GROUP BY relid
2740  ORDER BY relid;