OSDN Git Service

7eb8b135c7aacbfe3a8aeadebe075eaece9bb35a
[pgdbmsstats/pg_dbms_stats.git] / sql / ut-9.4.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-11
876 SELECT dbms_stats.is_target_relkind(k::"char")
877  FROM (VALUES ('r'), ('i'), ('f'), ('m'),
878                           ('S'), ('t'), ('v'), ('c')) t(k);
879
880 /*
881  * No.7-1 dbms_stats.backup
882  */
883 DELETE FROM dbms_stats.backup_history;
884 INSERT INTO dbms_stats.backup_history(id, time, unit) values(1, '2012-01-01', 'd');
885 -- No.7-1-9
886 SELECT dbms_stats.backup(1, 's0.sft0'::regclass, NULL);
887 SELECT count(*) FROM dbms_stats.relation_stats_backup;
888 SELECT count(*) FROM dbms_stats.column_stats_backup;
889
890 -- No.7-1-10
891 DELETE FROM dbms_stats.relation_stats_backup;
892 SELECT dbms_stats.backup(1, 's0.smv0'::regclass, NULL);
893 SELECT count(*) FROM dbms_stats.relation_stats_backup;
894 SELECT count(*) FROM dbms_stats.column_stats_backup;
895
896 -- No.7-1-12
897 DELETE FROM dbms_stats.relation_stats_backup;
898 SELECT dbms_stats.backup(1, NULL, 1::int2);
899 SELECT relid::regclass FROM dbms_stats.relation_stats_backup
900  GROUP BY relid
901  ORDER BY relid;
902 SELECT starelid::regclass, staattnum FROM dbms_stats.column_stats_backup
903  GROUP BY starelid, staattnum
904  ORDER BY starelid, staattnum;
905
906 -- No.7-1-14
907 DELETE FROM dbms_stats.relation_stats_backup;
908 SELECT dbms_stats.backup(1, NULL::regclass, NULL);
909 SELECT relid::regclass FROM dbms_stats.relation_stats_backup
910  GROUP BY relid
911  ORDER BY relid;
912 SELECT starelid::regclass, staattnum FROM dbms_stats.column_stats_backup
913  GROUP BY starelid, staattnum
914  ORDER BY starelid, staattnum;
915
916 -- No.7-1-18
917 DELETE FROM dbms_stats.relation_stats_backup;
918 \! psql contrib_regression -c "SELECT dbms_stats.backup(NULL, 's0.st0'::regclass, NULL)" > results/ut_no2_1_17.out 2>&1
919 SELECT count(*) FROM dbms_stats.relation_stats_backup;
920 SELECT count(*) FROM dbms_stats.column_stats_backup;
921
922 /*
923  * No.8-1 dbms_stats.backup
924  */
925 SELECT setval('dbms_stats.backup_history_id_seq',1, false);
926 /*
927  * Stab function dbms_stats.backup
928  */
929 ALTER FUNCTION dbms_stats.backup(
930     backup_id int8,
931     relid regclass,
932     attnum int2)
933     RENAME TO truth_func_backup;
934
935 CREATE OR REPLACE FUNCTION dbms_stats.backup(
936     backup_id int8,
937     regclass,
938     attnum int2)
939 RETURNS int8 AS
940 $$
941 BEGIN
942     RAISE NOTICE 'arguments are %, %, %', $1, $2, $3;
943     RETURN 1;
944 END;
945 $$
946 LANGUAGE plpgsql;
947
948 -- No.8-1-1
949 DELETE FROM dbms_stats.backup_history;
950 SELECT dbms_stats.backup('s0.st0'::regclass, 'id', 'dummy comment');
951 SELECT id, unit, comment FROM dbms_stats.backup_history;
952
953 -- No.8-1-2
954 DELETE FROM dbms_stats.backup_history;
955 SELECT dbms_stats.backup('s0.st0'::regclass, NULL, 'dummy comment');
956 SELECT id, unit, comment FROM dbms_stats.backup_history;
957
958 -- No.8-1-3
959 DELETE FROM dbms_stats.backup_history;
960 SELECT dbms_stats.backup(NULL::regclass, 'id', 'dummy comment');
961 SELECT id, unit, comment FROM dbms_stats.backup_history;
962
963 -- No.8-1-4
964 DELETE FROM dbms_stats.backup_history;
965 SELECT dbms_stats.backup(NULL::regclass, NULL, 'dummy comment');
966 SELECT id, unit, comment FROM dbms_stats.backup_history;
967
968 -- No.8-1-5
969 DELETE FROM dbms_stats.backup_history;
970 SELECT dbms_stats.backup(0, NULL, 'dummy comment');
971 SELECT id, unit, comment FROM dbms_stats.backup_history;
972
973 -- No.8-1-6
974 DELETE FROM dbms_stats.backup_history;
975 SELECT dbms_stats.backup('s0.st0'::regclass, NULL, 'dummy comment');
976 SELECT id, unit, comment FROM dbms_stats.backup_history;
977
978 -- No.8-1-7
979 DELETE FROM dbms_stats.backup_history;
980 SELECT dbms_stats.backup(
981     'pg_toast.pg_toast_2618'::regclass,
982     NULL,
983     'dummy comment');
984 SELECT id, unit, comment FROM dbms_stats.backup_history;
985
986 -- No.8-1-8
987 DELETE FROM dbms_stats.backup_history;
988 SELECT dbms_stats.backup('s0.st0_idx'::regclass, NULL, 'dummy comment');
989 SELECT id, unit, comment FROM dbms_stats.backup_history;
990
991 -- No.8-1-9
992 DELETE FROM dbms_stats.backup_history;
993 SELECT dbms_stats.backup('s0.ss0'::regclass, NULL, 'dummy comment');
994 SELECT id, unit, comment FROM dbms_stats.backup_history;
995
996 -- No.8-1-10
997 DELETE FROM dbms_stats.backup_history;
998 SELECT dbms_stats.backup('s0.sc0'::regclass, NULL, 'dummy comment');
999 SELECT id, unit, comment FROM dbms_stats.backup_history;
1000
1001 -- No.8-1-11
1002 DELETE FROM dbms_stats.backup_history;
1003 SELECT dbms_stats.backup('s0.sft0'::regclass, NULL, 'dummy comment');
1004 SELECT id, unit, comment FROM dbms_stats.backup_history;
1005
1006 -- No.8-1-12
1007 DELETE FROM dbms_stats.backup_history;
1008 SELECT dbms_stats.backup('s0.smv0'::regclass, NULL, 'dummy comment');
1009 SELECT id, unit, comment FROM dbms_stats.backup_history;
1010
1011 -- No.8-1-13
1012 DELETE FROM dbms_stats.backup_history;
1013 SELECT dbms_stats.backup('pg_catalog.pg_class'::regclass, NULL, 'dummy comment');
1014 SELECT id, unit, comment FROM dbms_stats.backup_history;
1015
1016 -- No.8-1-14
1017 DELETE FROM dbms_stats.backup_history;
1018 SELECT dbms_stats.backup('s0.st0'::regclass, 'dummy', 'dummy comment');
1019 SELECT id, unit, comment FROM dbms_stats.backup_history;
1020
1021 -- No.8-1-15
1022 DELETE FROM dbms_stats.backup_history;
1023 DELETE FROM pg_statistic
1024  WHERE starelid = 's0.st0'::regclass
1025    AND staattnum = 1::int2;
1026 SELECT count(*) FROM dbms_stats.column_stats_effective
1027  WHERE starelid = 's0.st0'::regclass
1028    AND staattnum = 1::int2;
1029 SELECT dbms_stats.backup('s0.st0'::regclass, 'id', 'dummy comment');
1030 SELECT id, unit, comment FROM dbms_stats.backup_history;
1031
1032 /*
1033  * Stab function dbms_stats.backup
1034  */
1035 ALTER FUNCTION dbms_stats.backup(
1036     relid regclass,
1037     attname text,
1038     comment text)
1039     RENAME TO truth_func_backup;
1040 CREATE OR REPLACE FUNCTION dbms_stats.backup(
1041     relid regclass DEFAULT NULL,
1042     attname text DEFAULT NULL,
1043     comment text DEFAULT NULL)
1044 RETURNS int8 AS
1045 $$
1046 BEGIN
1047     IF $3 = '<NULL>' THEN
1048         RAISE NOTICE 'third argument is not NULL but string "<NULL>"';
1049     END IF;
1050     RAISE NOTICE 'arguments are %, %, %', $1, $2, $3;
1051     RETURN 1;
1052 END;
1053 $$
1054 LANGUAGE plpgsql;
1055
1056 /*
1057  * No.8-3 dbms_stats.backup_schema_stats
1058  */
1059 SELECT setval('dbms_stats.backup_history_id_seq',9, false);
1060 -- No.8-3-1
1061 SELECT dbms_stats.backup_schema_stats('s0', 'comment');
1062 SELECT id, unit, comment FROM dbms_stats.backup_history
1063  ORDER BY id DESC
1064  LIMIT 1;
1065 -- No.8-3-2
1066 SELECT dbms_stats.backup_schema_stats('s00', 'comment');
1067 SELECT id, unit, comment FROM dbms_stats.backup_history
1068  ORDER BY id DESC
1069  LIMIT 1;
1070 -- No.8-3-3
1071 SELECT dbms_stats.backup_schema_stats('pg_catalog', 'comment');
1072 SELECT id, unit, comment FROM dbms_stats.backup_history
1073  ORDER BY id DESC
1074  LIMIT 1;
1075
1076 /*
1077  * Delete stab function dbms_stats.backup
1078  */
1079 DROP FUNCTION dbms_stats.backup(
1080     backup_id int8,
1081     regclass,
1082     attnum int2);
1083 ALTER FUNCTION dbms_stats.truth_func_backup(
1084     backup_id int8,
1085     regclass,
1086     attnum int2)
1087     RENAME TO backup;
1088 DROP FUNCTION dbms_stats.backup(
1089     regclass,
1090     attname text,
1091     comment text);
1092 ALTER FUNCTION dbms_stats.truth_func_backup(
1093     regclass,
1094     attname text,
1095     comment text)
1096     RENAME TO backup;
1097 VACUUM ANALYZE;
1098
1099 /*
1100  * create backup statistics state A
1101  */
1102 DELETE FROM dbms_stats.backup_history;
1103
1104 INSERT INTO dbms_stats.backup_history(id, time, unit)
1105     VALUES (1, '2012-02-29 23:59:56.999999', 'd');
1106
1107 SELECT setval('dbms_stats.backup_history_id_seq',1);
1108 SELECT dbms_stats.backup();
1109 UPDATE dbms_stats.backup_history
1110    SET time = '2012-02-29 23:59:57'
1111  WHERE id = 2;
1112 SELECT dbms_stats.backup('s0.st0');
1113 UPDATE dbms_stats.backup_history
1114    SET time = '2012-02-29 23:59:57.000001'
1115  WHERE id = 3;
1116 SELECT dbms_stats.backup();
1117 UPDATE dbms_stats.backup_history
1118    SET time = '2012-02-29 23:59:58'
1119  WHERE id = 4;
1120 DELETE FROM dbms_stats.relation_stats_backup
1121  WHERE id = 4;
1122 SELECT dbms_stats.backup('s0.st0', 'id');
1123 UPDATE dbms_stats.backup_history
1124    SET time = '2012-03-01 00:00:00'
1125  WHERE id = 5;
1126 SELECT dbms_stats.backup('s0.st0');
1127 UPDATE dbms_stats.backup_history
1128    SET time = '2012-03-01 00:00:02'
1129  WHERE id = 6;
1130 SELECT dbms_stats.backup('public.st0');
1131 UPDATE dbms_stats.backup_history
1132    SET time = '2012-03-01 00:00:04'
1133  WHERE id = 7;
1134 INSERT INTO dbms_stats.backup_history(time, unit)
1135     VALUES ('2012-03-01 00:00:06', 's');
1136 SELECT dbms_stats.backup(8, c.oid, NULL)
1137   FROM pg_catalog.pg_class c,
1138        pg_catalog.pg_namespace n
1139  WHERE n.nspname = 's0'
1140    AND c.relnamespace = n.oid
1141    AND c.relkind IN ('r', 'i');
1142
1143 SELECT * FROM dbms_stats.backup_history
1144  ORDER BY id;
1145 SELECT * FROM relations_backup_v;
1146 SELECT * FROM columns_backup_v;
1147
1148 VACUUM ANALYZE;
1149
1150 /*
1151  * No.9-1 dbms_stats.restore
1152  */
1153 -- No.9-1-1
1154 DELETE FROM dbms_stats.relation_stats_locked;
1155 VACUUM dbms_stats.relation_stats_locked;  -- in order to avoid auto vacuum
1156 BEGIN;
1157 SELECT * FROM internal_locks;
1158 SELECT dbms_stats.restore(2, 's0.st0', NULL);
1159 SELECT * FROM internal_locks;
1160 COMMIT;
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-2
1167 DELETE FROM dbms_stats.relation_stats_locked;
1168 SELECT dbms_stats.restore(2, 'st0', NULL);
1169 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
1170  GROUP BY relid
1171  ORDER BY relid;
1172 SELECT starelid, attname, stainherit FROM columns_locked_v c;
1173
1174 -- No.9-1-3
1175 DELETE FROM dbms_stats.relation_stats_locked;
1176 SELECT dbms_stats.restore(2, 's00.s0', NULL);
1177 SELECT count(*) FROM dbms_stats.column_stats_locked;
1178 SELECT count(*) FROM dbms_stats.relation_stats_locked;
1179
1180 -- No.9-1-4
1181 DELETE FROM dbms_stats.relation_stats_locked;
1182 SELECT dbms_stats.restore(NULL, 's0.st0', NULL);
1183 SELECT count(*) FROM dbms_stats.column_stats_locked;
1184 SELECT count(*) FROM dbms_stats.relation_stats_locked;
1185
1186 -- No.9-1-5
1187 DELETE FROM dbms_stats.relation_stats_locked;
1188 SELECT dbms_stats.restore(2, 's0.st0', 'id');
1189 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
1190  GROUP BY relid
1191  ORDER BY relid;
1192 SELECT starelid, attname, stainherit FROM columns_locked_v c;
1193
1194 -- No.9-1-6
1195 DELETE FROM dbms_stats.relation_stats_locked;
1196 SELECT dbms_stats.restore(2, NULL, 'id');
1197 SELECT count(*) FROM dbms_stats.column_stats_locked;
1198 SELECT count(*) FROM dbms_stats.relation_stats_locked;
1199
1200 -- No.9-1-7
1201 DELETE FROM dbms_stats.relation_stats_locked;
1202 SELECT dbms_stats.restore(2, 's0.st0', 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-8
1209 DELETE FROM dbms_stats.relation_stats_locked;
1210 SELECT dbms_stats.restore(2, NULL, 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-9
1217 DELETE FROM dbms_stats.relation_stats_locked;
1218 SELECT dbms_stats.restore(0, 's0.st0', NULL);
1219 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
1220  GROUP BY relid
1221  ORDER BY relid;
1222 SELECT starelid, attname, stainherit FROM columns_locked_v c;
1223
1224 -- No.9-1-10
1225 DELETE FROM dbms_stats.relation_stats_locked;
1226 SELECT dbms_stats.restore(2, 0, 'id');
1227 SELECT count(*) FROM dbms_stats.column_stats_locked;
1228 SELECT count(*) FROM dbms_stats.relation_stats_locked;
1229
1230 -- No.9-1-11
1231 DELETE FROM dbms_stats.relation_stats_locked;
1232 SELECT dbms_stats.restore(1, 's0.st0', NULL);
1233 SELECT count(*) FROM dbms_stats.column_stats_locked;
1234 SELECT count(*) FROM dbms_stats.relation_stats_locked;
1235
1236 -- No.9-1-12
1237 DELETE FROM dbms_stats.relation_stats_locked;
1238 SELECT dbms_stats.restore(2, 's0.st0', 'dummy');
1239 SELECT count(*) FROM dbms_stats.column_stats_locked;
1240 SELECT count(*) FROM dbms_stats.relation_stats_locked;
1241
1242 -- No.9-1-13
1243 DELETE FROM dbms_stats.relation_stats_locked;
1244 SELECT dbms_stats.restore(1, 's0.st0', 'id');
1245 SELECT count(*) FROM dbms_stats.column_stats_locked;
1246 SELECT count(*) FROM dbms_stats.relation_stats_locked;
1247
1248 -- No.9-1-15
1249 DELETE FROM dbms_stats.relation_stats_locked;
1250 ALTER TABLE s1.st0 DROP COLUMN id;
1251 SELECT dbms_stats.restore(2, 's1.st0', 'id');
1252 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
1253  GROUP BY relid
1254  ORDER BY relid;
1255 SELECT starelid, attname, stainherit FROM columns_locked_v c;
1256
1257 -- No.9-1-14
1258 DELETE FROM dbms_stats.relation_stats_locked;
1259 \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';"`
1260 DROP TABLE s1.st0;
1261 -- SELECT dbms_stats.restore(2, :s1_st0_oid, NULL);
1262 -- To avoid test unstability caused by relation id alloction, the test
1263 -- above is omitted.
1264
1265 SELECT count(*) FROM dbms_stats.relation_stats_locked;
1266 SELECT count(*) FROM dbms_stats.column_stats_locked;
1267 CREATE TABLE s1.st0(id integer, num integer);
1268 INSERT INTO s1.st0 VALUES (1, 15), (2, 25), (3, 35), (4, 45);
1269 VACUUM ANALYZE;
1270 -- No.9-1-16
1271 DELETE FROM dbms_stats.relation_stats_locked;
1272 SELECT dbms_stats.restore(2, 's0.st0', NULL);
1273 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
1274  GROUP BY relid
1275  ORDER BY relid;
1276 SELECT starelid, attname, stainherit FROM columns_locked_v c;
1277
1278 -- No.9-1-17
1279 DELETE FROM dbms_stats.relation_stats_locked;
1280 INSERT INTO dbms_stats.relation_stats_backup(
1281                id, relid, relname, relpages, reltuples,
1282                relallvisible,
1283                curpages)
1284      VALUES (2,
1285              'pg_toast.pg_toast_2618'::regclass,
1286              'pg_toast.pg_toast_2618', 1, 1,
1287              1,
1288              1);
1289 SELECT * FROM relations_backup_v
1290  WHERE id = 2
1291    AND relname = 'pg_toast.pg_toast_2618';
1292 SELECT dbms_stats.restore(2, 'pg_toast.pg_toast_2618', NULL);
1293 SELECT count(*) FROM dbms_stats.column_stats_locked;
1294 SELECT count(*) FROM dbms_stats.relation_stats_locked;
1295 DELETE FROM dbms_stats.relation_stats_backup
1296  WHERE id = 2
1297    AND relname = 'pg_toast.pg_toast_2618';
1298
1299 -- No.9-1-18
1300 DELETE FROM dbms_stats.relation_stats_locked;
1301 SELECT dbms_stats.restore(2, 's0.st0_idx', NULL);
1302 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
1303  GROUP BY relid
1304  ORDER BY relid;
1305 SELECT starelid, attname, stainherit FROM columns_locked_v c;
1306
1307 -- No.9-1-19
1308 DELETE FROM dbms_stats.relation_stats_locked;
1309 INSERT INTO dbms_stats.relation_stats_backup(
1310                id, relid, relname, relpages, reltuples,
1311                relallvisible,
1312                curpages)
1313      VALUES (2, 's0.ss0'::regclass, 's0.ss0', 1, 1,
1314              1,
1315              1);
1316 SELECT * FROM relations_backup_v
1317  WHERE id = 2
1318    AND relname = 's0.ss0';
1319 SELECT dbms_stats.restore(2, 's0.ss0', NULL);
1320 SELECT count(*) FROM dbms_stats.column_stats_locked;
1321 SELECT count(*) FROM dbms_stats.relation_stats_locked;
1322 DELETE FROM dbms_stats.relation_stats_backup
1323  WHERE id = 2
1324    AND relname = 's0.ss0';
1325
1326 -- No.9-1-20
1327 DELETE FROM dbms_stats.relation_stats_locked;
1328 INSERT INTO dbms_stats.relation_stats_backup(
1329                id, relid, relname, relpages, reltuples,
1330                relallvisible,
1331                curpages)
1332      VALUES (2, 's0.sc0'::regclass, 's0.sc0', 1, 1,
1333              1,
1334              1);
1335 SELECT * FROM relations_backup_v
1336  WHERE id = 2
1337    AND relname = 's0.sc0';
1338 SELECT dbms_stats.restore(2, 's0.sc0', NULL);
1339 SELECT count(*) FROM dbms_stats.column_stats_locked;
1340 SELECT count(*) FROM dbms_stats.relation_stats_locked;
1341 DELETE FROM dbms_stats.relation_stats_backup
1342  WHERE id = 2
1343    AND relname = 's0.sc0';
1344
1345 -- No.9-1-21
1346 DELETE FROM dbms_stats.relation_stats_locked;
1347 INSERT INTO dbms_stats.relation_stats_backup(
1348                id, relid, relname, relpages, reltuples,
1349                relallvisible,
1350                curpages)
1351      VALUES (3, 's0.sft0'::regclass, 's0.sft0', 1, 1,
1352              1,
1353              1);
1354 SELECT * FROM relations_backup_v
1355  WHERE id = 3
1356    AND relname = 's0.sft0';
1357 SELECT dbms_stats.restore(2, 's0.sft0', NULL);
1358 SELECT count(*) FROM dbms_stats.column_stats_locked;
1359 SELECT count(*) FROM dbms_stats.relation_stats_locked;
1360 DELETE FROM dbms_stats.relation_stats_backup
1361  WHERE id = 3
1362    AND relname = 's0.sft0';
1363
1364 -- No.9-1-22
1365 DELETE FROM dbms_stats.relation_stats_locked;
1366 INSERT INTO dbms_stats.relation_stats_backup(
1367                id, relid, relname, relpages, reltuples,
1368                relallvisible,
1369                curpages)
1370      VALUES (3, 's0.smv0'::regclass, 's0.smv0', 1, 1,
1371              1,
1372              1);
1373 SELECT * FROM relations_backup_v
1374  WHERE id = 3
1375    AND relname = 's0.smv0';
1376 SELECT dbms_stats.restore(2, 's0.smv0', NULL);
1377 SELECT count(*) FROM dbms_stats.column_stats_locked;
1378 SELECT count(*) FROM dbms_stats.relation_stats_locked;
1379 DELETE FROM dbms_stats.relation_stats_backup
1380  WHERE id = 3
1381    AND relname = 's0.smv0';
1382
1383 -- No.9-1-23
1384 DELETE FROM dbms_stats.relation_stats_locked;
1385 INSERT INTO dbms_stats.relation_stats_backup(
1386                id, relid, relname, relpages, reltuples,
1387                relallvisible,
1388                curpages)
1389      VALUES (2, 'pg_catalog.pg_class'::regclass, 'pg_catalog.pg_class', 1, 1,
1390              1,
1391              1);
1392 SELECT * FROM relations_backup_v
1393  WHERE id = 2
1394    AND relname = 'pg_catalog.pg_class';
1395 SELECT dbms_stats.restore(2, 'pg_catalog.pg_class', NULL);
1396 SELECT count(*) FROM dbms_stats.column_stats_locked;
1397 SELECT count(*) FROM dbms_stats.relation_stats_locked;
1398 DELETE FROM dbms_stats.relation_stats_backup
1399  WHERE id = 2
1400    AND relname = 'pg_catalog.pg_class';
1401
1402 -- No.9-1-24
1403 DELETE FROM dbms_stats.relation_stats_locked;
1404 INSERT INTO dbms_stats.relation_stats_locked(relid, relname)
1405     VALUES ('s0.st0'::regclass, 's0.st0');
1406 INSERT INTO dbms_stats.column_stats_locked(starelid, staattnum, stainherit)
1407      SELECT starelid::regclass, staattnum, stainherit
1408        FROM dbms_stats.column_stats_effective
1409       WHERE starelid = 's0.st0'::regclass;
1410 SELECT id, unit, comment FROM dbms_stats.backup_history
1411  WHERE id = 2;
1412 SELECT * FROM columns_locked_v;
1413 SELECT * FROM relations_locked_v;
1414 SELECT dbms_stats.restore(2, 's0.st0', NULL);
1415 SELECT * FROM relations_locked_v;
1416 SELECT * FROM columns_locked_v;
1417
1418 -- No.9-1-25
1419 DELETE FROM dbms_stats.relation_stats_locked;
1420 SELECT id, unit, comment FROM dbms_stats.backup_history
1421  WHERE id = 2;
1422 SELECT dbms_stats.restore(2, 's0.st0', NULL);
1423 SELECT * FROM relations_locked_v;
1424 SELECT * FROM columns_locked_v;
1425
1426 /*
1427  * Stab function dbms_stats.restore
1428  */
1429 CREATE OR REPLACE FUNCTION dbms_stats.restore(
1430     backup_id int8,
1431     relid regclass DEFAULT NULL,
1432     attname text DEFAULT NULL)
1433 RETURNS SETOF regclass AS
1434 $$
1435 BEGIN
1436     RAISE NOTICE 'arguments are "%, %, %"', $1, $2, $3;
1437     RETURN QUERY
1438         SELECT c.oid::regclass
1439           FROM pg_class c, dbms_stats.relation_stats_backup b
1440          WHERE (c.oid = $2 OR $2 IS NULL)
1441            AND c.oid = b.relid
1442            AND c.relkind IN ('r', 'i')
1443            AND (b.id <= $1 OR $1 IS NOT NULL)
1444          GROUP BY c.oid
1445          ORDER BY c.oid::regclass::text;
1446 END;
1447 $$
1448 LANGUAGE plpgsql;
1449
1450 /*
1451  * No.10-1 dbms_stats.restore_database_stats
1452  */
1453 -- No.10-1-1
1454 SELECT dbms_stats.restore_database_stats('2012-02-29 23:59:57');
1455 -- No.10-1-2
1456 SELECT dbms_stats.restore_database_stats('2012-02-29 23:59:57.000002');
1457 -- No.10-1-3
1458 SELECT dbms_stats.restore_database_stats('2012-01-01 00:00:00');
1459 --#No.10-1-4 is skipped after lock tests
1460 --#No.10-1-5 is skipped after lock tests
1461 -- No.10-1-6
1462 SELECT dbms_stats.restore_database_stats('2012-02-29 23:59:57');
1463
1464 /*
1465  * No.10-2 dbms_stats.restore_schema_stats
1466  */
1467 -- No.10-2-1
1468 SELECT dbms_stats.restore_schema_stats('s0', '2012-02-29 23:59:57');
1469 -- No.10-2-2
1470 SELECT dbms_stats.restore_schema_stats('s0', '2012-02-29 23:59:57.000002');
1471 -- No.10-2-3
1472 SELECT dbms_stats.restore_schema_stats('s0', '2012-01-01 00:00:00');
1473 --#No.10-2-4 is skipped after lock tests
1474 --#No.10-2-5 is skipped after lock tests
1475 -- No.10-2-6
1476 SELECT dbms_stats.restore_schema_stats('s0', '2012-02-29 23:59:57');
1477 -- No.10-2-7
1478 SELECT dbms_stats.restore_schema_stats('s0', '2012-02-29 23:59:57');
1479 --#No.10-2-8 is skipped after lock tests
1480 -- No.10-2-9
1481 SELECT dbms_stats.restore_schema_stats('s00', '2012-02-29 23:59:57');
1482 -- No.10-2-10
1483 SELECT dbms_stats.restore_schema_stats('pg_catalog', '2012-02-29 23:59:57');
1484
1485 /*
1486  * No.10-7 dbms_stats.restore_stats
1487  */
1488 -- No.10-7-1
1489 DELETE FROM dbms_stats.relation_stats_locked;
1490 SELECT dbms_stats.restore_stats(NULL);
1491
1492 -- No.10-7-2
1493 DELETE FROM dbms_stats.relation_stats_locked;
1494 SELECT dbms_stats.restore_stats(0);
1495
1496 -- No.10-7-3
1497 DELETE FROM dbms_stats.relation_stats_locked;
1498 VACUUM dbms_stats.relation_stats_locked;  -- in order to avoid auto vacuum
1499 BEGIN;
1500 SELECT * FROM internal_locks;
1501 SELECT dbms_stats.restore_stats(2);
1502 SELECT * FROM internal_locks;
1503 COMMIT;
1504 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
1505  GROUP BY relid
1506  ORDER BY relid;
1507 SELECT starelid, attname, stainherit FROM columns_locked_v c;
1508
1509 -- No.10-7-4
1510 DELETE FROM dbms_stats.relation_stats_locked;
1511 INSERT INTO dbms_stats.relation_stats_locked(relid, relname)
1512      SELECT relid::regclass, relname
1513        FROM dbms_stats.relation_stats_effective;
1514 INSERT INTO dbms_stats.column_stats_locked(starelid, staattnum, stainherit)
1515      SELECT starelid::regclass, staattnum, stainherit
1516        FROM dbms_stats.column_stats_effective;
1517 SELECT id, unit, comment FROM dbms_stats.backup_history
1518  WHERE id = 8;
1519 SELECT * FROM columns_locked_v;
1520 SELECT * FROM relations_locked_v;
1521 SELECT dbms_stats.restore_stats(8);
1522 SELECT * FROM relations_locked_v;
1523 SELECT * FROM columns_locked_v;
1524
1525 -- No.10-7-5
1526 DELETE FROM dbms_stats.relation_stats_locked;
1527 SELECT id, unit, comment FROM dbms_stats.backup_history
1528  WHERE id = 8;
1529 SELECT dbms_stats.restore_stats(8);
1530 SELECT * FROM relations_locked_v;
1531 SELECT * FROM columns_locked_v;
1532
1533 /*
1534  * No.11-1 dbms_stats.lock(relid, attname)
1535  */
1536 -- No.11-1-1
1537 DELETE FROM dbms_stats.relation_stats_locked;
1538 SELECT dbms_stats.lock(NULL, NULL);
1539 -- No.11-1-2
1540 ALTER FUNCTION dbms_stats.lock(relid regclass)
1541     RENAME TO truth_lock;
1542 CREATE FUNCTION dbms_stats.lock(relid regclass)
1543 RETURNS regclass AS
1544 $$
1545 BEGIN
1546         RAISE NOTICE 'arguments are %', $1;
1547         RETURN $1;
1548 END
1549 $$
1550 LANGUAGE plpgsql;
1551 DELETE FROM dbms_stats.relation_stats_locked;
1552 SELECT dbms_stats.lock('s0.st0', NULL);
1553 DROP FUNCTION dbms_stats.lock(relid regclass);
1554 ALTER FUNCTION dbms_stats.truth_lock(relid regclass)
1555     RENAME TO lock;
1556 -- No.11-1-3
1557 DELETE FROM dbms_stats.relation_stats_locked;
1558 SELECT dbms_stats.lock(NULL, 'id');
1559 -- No.11-1-4
1560 DELETE FROM dbms_stats.relation_stats_locked;
1561 SELECT dbms_stats.lock('s0.st0', 'id');
1562 SELECT * FROM relations_locked_v;
1563 SELECT * FROM columns_locked_v c;
1564 -- No.11-1-5
1565 DELETE FROM dbms_stats.relation_stats_locked;
1566 SELECT dbms_stats.lock(0, 'id');
1567 -- No.11-1-6
1568 DELETE FROM dbms_stats.relation_stats_locked;
1569 SELECT dbms_stats.lock('s0.st0', 'id');
1570 SELECT * FROM relations_locked_v;
1571 SELECT * FROM columns_locked_v c;
1572 -- No.11-1-7
1573 DELETE FROM dbms_stats.relation_stats_locked;
1574 SELECT dbms_stats.lock('pg_toast.pg_toast_2618', 'id');
1575 -- No.11-1-8
1576 DELETE FROM dbms_stats.relation_stats_locked;
1577 SELECT dbms_stats.lock('s0.st0_idx', 'id');
1578 -- No.11-1-9
1579 DELETE FROM dbms_stats.relation_stats_locked;
1580 SELECT dbms_stats.lock('st1_exp', 'lower');
1581 SELECT * FROM relations_locked_v;
1582 SELECT * FROM columns_locked_v c;
1583 DELETE FROM dbms_stats.relation_stats_locked;
1584
1585 -- No.11-1-10
1586 DELETE FROM dbms_stats.relation_stats_locked;
1587 SELECT dbms_stats.lock('s0.ss0', 'id');
1588 -- No.11-1-11
1589 DELETE FROM dbms_stats.relation_stats_locked;
1590 SELECT dbms_stats.lock('s0.sc0', 'id');
1591 -- No.11-1-12
1592 DELETE FROM dbms_stats.relation_stats_locked;
1593 SELECT dbms_stats.lock('s0.sft0', 'id');
1594 SELECT * FROM relations_locked_v;
1595 SELECT * FROM columns_locked_v c;
1596 -- No.11-1-13
1597 DELETE FROM dbms_stats.relation_stats_locked;
1598 SELECT dbms_stats.lock('s0.smv0', 'id');
1599 SELECT * FROM relations_locked_v;
1600 SELECT * FROM columns_locked_v c;
1601 -- No.11-1-14
1602 DELETE FROM dbms_stats.relation_stats_locked;
1603 SELECT dbms_stats.lock('pg_catalog.pg_class', 'id');
1604 -- No.11-1-15
1605 DELETE FROM dbms_stats.relation_stats_locked;
1606 SELECT dbms_stats.lock('s0.st0', 'dummy');
1607 -- No.11-1-16
1608 DELETE FROM dbms_stats.relation_stats_locked;
1609 DELETE FROM pg_statistic
1610  WHERE starelid = 's0.st0'::regclass;
1611 SELECT dbms_stats.lock('s0.st0', 'id');
1612 VACUUM ANALYZE;
1613 -- No.11-1-17
1614 DELETE FROM dbms_stats.relation_stats_locked;
1615 INSERT INTO dbms_stats.relation_stats_locked(
1616     relid, relname, relpages, reltuples,
1617     relallvisible,
1618     curpages)
1619     VALUES('s0.st0'::regclass, 's0.st0', 1, 1640,
1620            1,
1621            1);
1622 SELECT dbms_stats.lock_column_stats('s0.st0','id');
1623 UPDATE dbms_stats.column_stats_locked
1624    SET (stanullfrac, stawidth, stadistinct,
1625         stakind1, stakind2, stakind3, stakind4,
1626         stakind5,
1627         staop1, staop2, staop3, staop4,
1628         staop5,
1629         stanumbers1, stanumbers2, stanumbers3, stanumbers4,
1630         stanumbers5,
1631         stavalues1, stavalues2, stavalues3, stavalues4
1632        ,stavalues5
1633        ) = (
1634         NULL, NULL, NULL,
1635         NULL, NULL, NULL, NULL,
1636         NULL, NULL, NULL, NULL,
1637         NULL, NULL, NULL, NULL,
1638         NULL, NULL, NULL, NULL,
1639         NULL, NULL, NULL, NULL)
1640  WHERE starelid = 's0.st0'::regclass;
1641 SELECT dbms_stats.lock('s0.st0', 'id');
1642 SELECT * FROM relations_locked_v;
1643 SELECT * FROM columns_locked_v c;
1644 -- No.11-1-18
1645 DELETE FROM dbms_stats.relation_stats_locked;
1646 SELECT dbms_stats.lock('s0.st0', 'id');
1647 SELECT * FROM relations_locked_v
1648  WHERE relid = 's0.st0'::regclass;
1649 SELECT starelid, attname, stainherit FROM columns_locked_v c;
1650
1651 /*
1652  * No.11-2 dbms_stats.lock(relid)
1653  */
1654 -- No.11-2-1
1655 DELETE FROM dbms_stats.relation_stats_locked;
1656 VACUUM dbms_stats.relation_stats_locked;  -- in order to avoid auto vacuum
1657 BEGIN;
1658 SELECT * FROM internal_locks;
1659 SELECT dbms_stats.lock('s0.st0');
1660 SELECT * FROM relations_locked_v;
1661 SELECT * FROM columns_locked_v c;
1662 SELECT * FROM internal_locks;
1663 COMMIT;
1664
1665 -- No.11-2-2
1666 DELETE FROM dbms_stats.relation_stats_locked;
1667 SELECT dbms_stats.lock(NULL);
1668 -- No.11-2-3
1669 DELETE FROM dbms_stats.relation_stats_locked;
1670 SELECT dbms_stats.lock('0');
1671 -- No.11-2-4
1672 DELETE FROM dbms_stats.relation_stats_locked;
1673 SELECT dbms_stats.lock('s0.st0');
1674 SELECT * FROM relations_locked_v;
1675 SELECT * FROM columns_locked_v c;
1676 -- No.11-2-5
1677 DELETE FROM dbms_stats.relation_stats_locked;
1678 SELECT dbms_stats.lock('pg_toast.pg_toast_2618');
1679 -- No.11-2-6
1680 DELETE FROM dbms_stats.relation_stats_locked;
1681 SELECT dbms_stats.lock('s0.st0_idx');
1682 SELECT * FROM relations_locked_v;
1683 SELECT * FROM columns_locked_v c;
1684 -- No.11-2-7
1685 DELETE FROM dbms_stats.relation_stats_locked;
1686 SELECT dbms_stats.lock('s0.ss0');
1687 -- No.11-2-8
1688 DELETE FROM dbms_stats.relation_stats_locked;
1689 SELECT dbms_stats.lock('s0.sc0');
1690 -- No.11-2-9
1691 DELETE FROM dbms_stats.relation_stats_locked;
1692 SELECT dbms_stats.lock('s0.sft0');
1693 SELECT * FROM relations_locked_v;
1694 SELECT * FROM columns_locked_v c;
1695 -- No.11-2-10
1696 DELETE FROM dbms_stats.relation_stats_locked;
1697 SELECT dbms_stats.lock('s0.smv0');
1698 SELECT * FROM relations_locked_v;
1699 SELECT * FROM columns_locked_v c;
1700 -- No.11-2-11
1701 DELETE FROM dbms_stats.relation_stats_locked;
1702 SELECT dbms_stats.lock('pg_catalog.pg_class');
1703 -- No.11-2-12
1704 DELETE FROM dbms_stats.relation_stats_locked;
1705 SELECT dbms_stats.lock_table_stats('s0.st0');
1706 UPDATE dbms_stats.relation_stats_locked
1707    SET (relpages, reltuples,
1708         relallvisible,
1709         curpages)
1710      = (NULL, NULL, NULL
1711        ,NULL
1712        )
1713  WHERE relid = 's0.st0'::regclass;
1714 SELECT dbms_stats.lock('s0.st0');
1715 SELECT * FROM relations_locked_v;
1716 SELECT * FROM columns_locked_v c;
1717 -- No.11-2-13
1718 DELETE FROM dbms_stats.relation_stats_locked;
1719 SELECT dbms_stats.lock('s0.st0');
1720 SELECT * FROM relations_locked_v;
1721 SELECT * FROM columns_locked_v c;
1722
1723 /*
1724  * Stab function dbms_stats.lock
1725  */
1726 ALTER FUNCTION dbms_stats.lock(relid regclass)
1727     RENAME TO truth_lock;
1728 CREATE FUNCTION dbms_stats.lock(relid regclass)
1729 RETURNS regclass AS
1730 $$
1731 BEGIN
1732     RAISE NOTICE 'arguments are %', $1;
1733     RETURN $1;
1734 END
1735 $$
1736 LANGUAGE plpgsql;
1737
1738 ALTER FUNCTION dbms_stats.lock(relid regclass, attname text)
1739     RENAME TO truth_lock;
1740 CREATE FUNCTION dbms_stats.lock(
1741     relid regclass,
1742     attname text)
1743 RETURNS regclass AS
1744 $$
1745 BEGIN
1746     RAISE NOTICE 'arguments are %, %', $1, $2;
1747     RETURN $1;
1748 END
1749 $$
1750 LANGUAGE plpgsql;
1751
1752 /*
1753  * No.12-1 dbms_stats.lock_database_stats
1754  */
1755 -- No.12-1-1
1756 SELECT dbms_stats.lock_database_stats();
1757
1758 /*
1759  * No.12-2 dbms_stats.lock_schema_stats
1760  */
1761 -- No.12-2-1
1762 SELECT dbms_stats.lock_schema_stats('s0');
1763 -- No.12-2-2
1764 SELECT dbms_stats.lock_schema_stats('s00');
1765 -- No.12-2-3
1766 SELECT dbms_stats.lock_schema_stats('pg_catalog');
1767
1768 /*
1769  * No.12-3 dbms_stats.lock_table_stats(regclass)
1770  */
1771 -- No.12-3-1
1772 SELECT dbms_stats.lock_table_stats('s0.st0');
1773 -- No.12-3-2
1774 SELECT dbms_stats.lock_table_stats('st0');
1775 -- No.12-3-3
1776 SELECT dbms_stats.lock_table_stats('s00.s0');
1777
1778 /*
1779  * No.12-4 dbms_stats.lock_table_stats(schemaname, tablename)
1780  */
1781 -- No.12-4-1
1782 SELECT dbms_stats.lock_table_stats('s0', 'st0');
1783
1784 /*
1785  * No.12-5 dbms_stats.lock_column_stats(regclass, attname)
1786  */
1787 -- No.12-5-1
1788 SELECT dbms_stats.lock_column_stats('s0.st0', 'id');
1789 -- No.12-5-2
1790 SELECT dbms_stats.lock_column_stats('st0', 'id');
1791 -- No.12-5-3
1792 SELECT dbms_stats.lock_column_stats('s00.s0', 'id');
1793
1794 /*
1795  * No.12-6 dbms_stats.lock_column_stats(schemaname, tablename, int2)
1796  */
1797 -- No.12-6-1
1798 SELECT dbms_stats.lock_column_stats('s0', 'st0', 'id');
1799
1800 /*
1801  * Delete Stab function lock
1802  */
1803 DROP FUNCTION dbms_stats.lock(relid regclass);
1804 ALTER FUNCTION dbms_stats.truth_lock(relid regclass)
1805     RENAME TO lock;
1806 DROP FUNCTION dbms_stats.lock(relid regclass, attname text);
1807 ALTER FUNCTION dbms_stats.truth_lock(relid regclass, attname text)
1808     RENAME TO lock;
1809
1810 /*
1811  * No.13-1 dbms_stats.unlock
1812  */
1813 -- No.13-1-1
1814 DELETE FROM dbms_stats.relation_stats_locked;
1815 SELECT dbms_stats.lock_database_stats();
1816 SELECT * FROM dbms_stats.backup_history
1817  ORDER BY id;
1818 SELECT count(*) FROM dbms_stats.relation_stats_backup;
1819 SELECT count(*) FROM dbms_stats.column_stats_backup;
1820 SELECT dbms_stats.unlock();
1821 SELECT count(*) FROM dbms_stats.relation_stats_locked;
1822 SELECT count(*) FROM dbms_stats.column_stats_locked;
1823 SELECT * FROM dbms_stats.backup_history
1824  ORDER BY id;
1825 SELECT count(*) FROM dbms_stats.relation_stats_backup;
1826 SELECT count(*) FROM dbms_stats.column_stats_backup;
1827
1828 -- No.13-1-2
1829 DELETE FROM dbms_stats.relation_stats_locked;
1830 SELECT dbms_stats.lock_database_stats();
1831 SELECT dbms_stats.unlock();
1832 SELECT count(*) FROM dbms_stats.relation_stats_locked;
1833 SELECT count(*) FROM dbms_stats.column_stats_locked;
1834
1835 -- No.13-1-3
1836 DELETE FROM dbms_stats.relation_stats_locked;
1837 SELECT dbms_stats.lock_database_stats();
1838 DELETE FROM dbms_stats.column_stats_locked;
1839 SELECT dbms_stats.unlock();
1840 SELECT count(*) FROM dbms_stats.relation_stats_locked;
1841 SELECT count(*) FROM dbms_stats.column_stats_locked;
1842
1843 -- No.13-1-4
1844 DELETE FROM dbms_stats.relation_stats_locked;
1845 SELECT dbms_stats.unlock();
1846 SELECT count(*) FROM dbms_stats.relation_stats_locked;
1847 SELECT count(*) FROM dbms_stats.column_stats_locked;
1848
1849 -- No.13-1-5
1850 DELETE FROM dbms_stats.relation_stats_locked;
1851 SELECT dbms_stats.lock_database_stats();
1852 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
1853  GROUP BY relid
1854  ORDER BY relid;
1855 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
1856  GROUP BY starelid
1857  ORDER BY starelid;
1858 SELECT dbms_stats.unlock('s0.st0');
1859 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
1860  GROUP BY relid
1861  ORDER BY relid;
1862 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
1863  GROUP BY starelid
1864  ORDER BY starelid;
1865
1866 -- No.13-1-6
1867 DELETE FROM dbms_stats.relation_stats_locked;
1868 SELECT dbms_stats.lock_database_stats();
1869 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
1870  GROUP BY relid
1871  ORDER BY relid;
1872 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
1873  GROUP BY starelid
1874  ORDER BY starelid;
1875 SELECT dbms_stats.unlock('st0');
1876 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
1877  GROUP BY relid
1878  ORDER BY relid;
1879 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
1880  GROUP BY starelid
1881  ORDER BY starelid;
1882
1883 -- No.13-1-7
1884 DELETE FROM dbms_stats.relation_stats_locked;
1885 SELECT dbms_stats.lock_database_stats();
1886 SELECT count(*) FROM dbms_stats.relation_stats_locked;
1887 SELECT count(*) FROM dbms_stats.column_stats_locked;
1888 SELECT dbms_stats.unlock('s00.s0');
1889 SELECT count(*) FROM dbms_stats.relation_stats_locked;
1890 SELECT count(*) FROM dbms_stats.column_stats_locked;
1891
1892 -- No.13-1-8
1893 DELETE FROM dbms_stats.relation_stats_locked;
1894 SELECT dbms_stats.lock_database_stats();
1895 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
1896  GROUP BY relid
1897  ORDER BY relid;
1898 SELECT starelid, attname, stainherit FROM columns_locked_v c;
1899 SELECT dbms_stats.unlock('s0.st0', 'id');
1900 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
1901  GROUP BY relid
1902  ORDER BY relid;
1903 SELECT starelid, attname, stainherit FROM columns_locked_v c;
1904
1905 -- No.13-1-9
1906 DELETE FROM dbms_stats.relation_stats_locked;
1907 SELECT dbms_stats.lock_database_stats();
1908 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
1909  GROUP BY relid
1910  ORDER BY relid;
1911 SELECT starelid, attname, stainherit FROM columns_locked_v c;
1912 SELECT dbms_stats.unlock('s0.st0', 'dummy');
1913 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
1914  GROUP BY relid
1915  ORDER BY relid;
1916 SELECT starelid, attname, stainherit FROM columns_locked_v c;
1917
1918 -- No.13-1-10
1919 DELETE FROM dbms_stats.relation_stats_locked;
1920 SELECT dbms_stats.lock_database_stats();
1921 DELETE FROM dbms_stats.column_stats_locked;
1922 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
1923  GROUP BY relid
1924  ORDER BY relid;
1925 SELECT dbms_stats.unlock('s0.st0', 'id');
1926 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
1927  GROUP BY relid
1928  ORDER BY relid;
1929 SELECT starelid::regclass, staattnum FROM dbms_stats.column_stats_locked
1930  GROUP BY starelid, staattnum
1931  ORDER BY starelid, staattnum;
1932
1933 -- No.13-1-11
1934 DELETE FROM dbms_stats.relation_stats_locked;
1935 SELECT dbms_stats.lock_database_stats();
1936 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
1937  GROUP BY relid
1938  ORDER BY relid;
1939 SELECT starelid::regclass, staattnum FROM dbms_stats.column_stats_locked
1940  GROUP BY starelid, staattnum
1941  ORDER BY starelid, staattnum;
1942 SELECT dbms_stats.unlock(NULL, 'id');
1943 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
1944  GROUP BY relid
1945  ORDER BY relid;
1946 SELECT starelid::regclass, staattnum FROM dbms_stats.column_stats_locked
1947  GROUP BY starelid, staattnum
1948  ORDER BY starelid, staattnum;
1949
1950 -- No.13-1-12
1951 DELETE FROM dbms_stats.relation_stats_locked;
1952 SELECT dbms_stats.lock_database_stats();
1953 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
1954  GROUP BY relid
1955  ORDER BY relid;
1956 SELECT starelid::regclass, staattnum FROM dbms_stats.column_stats_locked
1957  GROUP BY starelid, staattnum
1958  ORDER BY starelid, staattnum;
1959 SELECT dbms_stats.unlock('s0.st0', NULL);
1960 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
1961  GROUP BY relid
1962  ORDER BY relid;
1963 SELECT starelid::regclass, staattnum FROM dbms_stats.column_stats_locked
1964  GROUP BY starelid, staattnum
1965  ORDER BY starelid, staattnum;
1966
1967 -- No.13-1-13
1968 DELETE FROM dbms_stats.relation_stats_locked;
1969 VACUUM dbms_stats.relation_stats_locked;  -- in order to avoid auto vacuum
1970 SELECT dbms_stats.lock_database_stats();
1971 SELECT count(*) FROM dbms_stats.relation_stats_locked;
1972 SELECT count(*) FROM dbms_stats.column_stats_locked;
1973 BEGIN;
1974 SELECT * FROM internal_locks;
1975 SELECT dbms_stats.unlock();
1976 SELECT * FROM internal_locks;
1977 COMMIT;
1978 SELECT count(*) FROM dbms_stats.relation_stats_locked;
1979 SELECT count(*) FROM dbms_stats.column_stats_locked;
1980
1981 /*
1982  * No.14-1 dbms_stats.unlock_database_stats
1983  */
1984 -- No.14-1-1
1985 DELETE FROM dbms_stats.relation_stats_locked;
1986 SELECT dbms_stats.lock_database_stats();
1987 SELECT * FROM dbms_stats.backup_history
1988  ORDER BY id;
1989 SELECT count(*) FROM dbms_stats.relation_stats_backup;
1990 SELECT count(*) FROM dbms_stats.column_stats_backup;
1991 SELECT count(*) FROM dbms_stats.relation_stats_locked;
1992 SELECT count(*) FROM dbms_stats.column_stats_locked;
1993 SELECT dbms_stats.unlock_database_stats();
1994 SELECT count(*) FROM dbms_stats.relation_stats_locked;
1995 SELECT count(*) FROM dbms_stats.column_stats_locked;
1996 SELECT * FROM dbms_stats.backup_history
1997  ORDER BY id;
1998 SELECT count(*) FROM dbms_stats.relation_stats_backup;
1999 SELECT count(*) FROM dbms_stats.column_stats_backup;
2000
2001 -- No.14-1-2
2002 DELETE FROM dbms_stats.relation_stats_locked;
2003 SELECT dbms_stats.lock_database_stats();
2004 DELETE FROM dbms_stats.column_stats_locked;
2005 SELECT count(*) FROM dbms_stats.relation_stats_locked;
2006 SELECT dbms_stats.unlock_database_stats();
2007 SELECT count(*) FROM dbms_stats.relation_stats_locked;
2008 SELECT count(*) FROM dbms_stats.column_stats_locked;
2009
2010 -- No.14-1-3
2011 DELETE FROM dbms_stats.relation_stats_locked;
2012 SELECT dbms_stats.unlock_database_stats();
2013 SELECT count(*) FROM dbms_stats.relation_stats_locked;
2014 SELECT count(*) FROM dbms_stats.column_stats_locked;
2015
2016 -- No.14-1-4
2017 DELETE FROM dbms_stats.relation_stats_locked;
2018 VACUUM dbms_stats.relation_stats_locked;  -- in order to avoid auto vacuum
2019 SELECT dbms_stats.lock_database_stats();
2020 SELECT count(*) FROM dbms_stats.relation_stats_locked;
2021 SELECT count(*) FROM dbms_stats.column_stats_locked;
2022 BEGIN;
2023 SELECT * FROM internal_locks;
2024 SELECT dbms_stats.unlock_database_stats();
2025 SELECT * FROM internal_locks;
2026 COMMIT;
2027 SELECT count(*) FROM dbms_stats.relation_stats_locked;
2028 SELECT count(*) FROM dbms_stats.column_stats_locked;
2029
2030 /*
2031  * No.14-2 dbms_stats.unlock_schema_stats
2032  */
2033 -- No.14-2-1
2034 DELETE FROM dbms_stats.relation_stats_locked;
2035 SELECT dbms_stats.lock_database_stats();
2036 SELECT * FROM dbms_stats.backup_history
2037  ORDER BY id;
2038 SELECT count(*) FROM dbms_stats.relation_stats_backup;
2039 SELECT count(*) FROM dbms_stats.column_stats_backup;
2040 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2041  GROUP BY relid
2042  ORDER BY relid;
2043 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
2044  GROUP BY starelid
2045  ORDER BY starelid;
2046 SELECT dbms_stats.unlock_schema_stats('s0');
2047 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2048  GROUP BY relid
2049  ORDER BY relid;
2050 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
2051  GROUP BY starelid
2052  ORDER BY starelid;
2053 SELECT * FROM dbms_stats.backup_history
2054  ORDER BY id;
2055 SELECT count(*) FROM dbms_stats.relation_stats_backup;
2056 SELECT count(*) FROM dbms_stats.column_stats_backup;
2057
2058 -- No.14-2-2
2059 DELETE FROM dbms_stats.relation_stats_locked;
2060 SELECT dbms_stats.lock_database_stats();
2061 DELETE FROM dbms_stats.column_stats_locked;
2062 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2063  GROUP BY relid
2064  ORDER BY relid;
2065 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
2066  GROUP BY starelid
2067  ORDER BY starelid;
2068 SELECT dbms_stats.unlock_schema_stats('s0');
2069 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2070  GROUP BY relid
2071  ORDER BY relid;
2072 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
2073  GROUP BY starelid
2074  ORDER BY starelid;
2075
2076 -- No.14-2-3
2077 DELETE FROM dbms_stats.relation_stats_locked;
2078 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2079  GROUP BY relid
2080  ORDER BY relid;
2081 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
2082  GROUP BY starelid
2083  ORDER BY starelid;
2084 SELECT dbms_stats.unlock_schema_stats('s0');
2085 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2086  GROUP BY relid
2087  ORDER BY relid;
2088 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
2089  GROUP BY starelid
2090  ORDER BY starelid;
2091
2092 -- No.14-2-4
2093 DELETE FROM dbms_stats.relation_stats_locked;
2094 SELECT dbms_stats.lock_database_stats();
2095 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2096  GROUP BY relid
2097  ORDER BY relid;
2098 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
2099  GROUP BY starelid
2100  ORDER BY starelid;
2101 SELECT dbms_stats.unlock_schema_stats('s0');
2102 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2103  GROUP BY relid
2104  ORDER BY relid;
2105 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
2106  GROUP BY starelid
2107  ORDER BY starelid;
2108
2109 -- No.14-2-5
2110 DELETE FROM dbms_stats.relation_stats_locked;
2111 SELECT dbms_stats.lock_database_stats();
2112 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2113  GROUP BY relid
2114  ORDER BY relid;
2115 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
2116  GROUP BY starelid
2117  ORDER BY starelid;
2118 SELECT dbms_stats.unlock_schema_stats('s00');
2119 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2120  GROUP BY relid
2121  ORDER BY relid;
2122 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
2123  GROUP BY starelid
2124  ORDER BY starelid;
2125
2126 -- No.14-2-6
2127 DELETE FROM dbms_stats.relation_stats_locked;
2128 SELECT dbms_stats.lock_database_stats();
2129 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2130  GROUP BY relid
2131  ORDER BY relid;
2132 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
2133  GROUP BY starelid
2134  ORDER BY starelid;
2135 SELECT dbms_stats.unlock_schema_stats('pg_catalog');
2136 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2137  GROUP BY relid
2138  ORDER BY relid;
2139 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
2140  GROUP BY starelid
2141  ORDER BY starelid;
2142
2143 -- No.14-2-7
2144 DELETE FROM dbms_stats.relation_stats_locked;
2145 SELECT dbms_stats.lock_database_stats();
2146 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2147  GROUP BY relid
2148  ORDER BY relid;
2149 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
2150  GROUP BY starelid
2151  ORDER BY starelid;
2152 SELECT dbms_stats.unlock_schema_stats(NULL);
2153 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2154  GROUP BY relid
2155  ORDER BY relid;
2156 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
2157  GROUP BY starelid
2158  ORDER BY starelid;
2159
2160 -- No.14-2-8
2161 DELETE FROM dbms_stats.relation_stats_locked;
2162 VACUUM dbms_stats.relation_stats_locked;  -- in order to avoid auto vacuum
2163 SELECT dbms_stats.lock_database_stats();
2164 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2165  GROUP BY relid
2166  ORDER BY relid;
2167 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
2168  GROUP BY starelid
2169  ORDER BY starelid;
2170 BEGIN;
2171 SELECT * FROM internal_locks;
2172 SELECT dbms_stats.unlock_schema_stats('s0');
2173 SELECT * FROM internal_locks;
2174 COMMIT;
2175 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2176  GROUP BY relid
2177  ORDER BY relid;
2178 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
2179  GROUP BY starelid
2180  ORDER BY starelid;
2181
2182 /*
2183  * No.14-3 dbms_stats.unlock_table_stats(regclass)
2184  */
2185 -- No.14-3-1
2186 DELETE FROM dbms_stats.relation_stats_locked;
2187 SELECT dbms_stats.lock_database_stats();
2188 SELECT * FROM dbms_stats.backup_history
2189  ORDER BY id;
2190 SELECT count(*) FROM dbms_stats.relation_stats_backup;
2191 SELECT count(*) FROM dbms_stats.column_stats_backup;
2192 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2193  GROUP BY relid
2194  ORDER BY relid;
2195 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
2196  GROUP BY starelid
2197  ORDER BY starelid;
2198 SELECT dbms_stats.unlock_table_stats('s0.st0');
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 * FROM dbms_stats.backup_history
2206  ORDER BY id;
2207 SELECT count(*) FROM dbms_stats.relation_stats_backup;
2208 SELECT count(*) FROM dbms_stats.column_stats_backup;
2209
2210 -- No.14-3-2
2211 DELETE FROM dbms_stats.relation_stats_locked;
2212 SELECT dbms_stats.lock_database_stats();
2213 DELETE FROM dbms_stats.column_stats_locked;
2214 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2215  GROUP BY relid
2216  ORDER BY relid;
2217 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
2218  GROUP BY starelid
2219  ORDER BY starelid;
2220 SELECT dbms_stats.unlock_table_stats('s0.st0');
2221 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2222  GROUP BY relid
2223  ORDER BY relid;
2224 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
2225  GROUP BY starelid
2226  ORDER BY starelid;
2227
2228 -- No.14-3-3
2229 DELETE FROM dbms_stats.relation_stats_locked;
2230 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2231  GROUP BY relid
2232  ORDER BY relid;
2233 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
2234  GROUP BY starelid
2235  ORDER BY starelid;
2236 SELECT dbms_stats.unlock_table_stats('s0.st0');
2237 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2238  GROUP BY relid
2239  ORDER BY relid;
2240 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
2241  GROUP BY starelid
2242  ORDER BY starelid;
2243
2244 -- No.14-3-4
2245 DELETE FROM dbms_stats.relation_stats_locked;
2246 SELECT dbms_stats.lock_database_stats();
2247 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2248  GROUP BY relid
2249  ORDER BY relid;
2250 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
2251  GROUP BY starelid
2252  ORDER BY starelid;
2253 SELECT dbms_stats.unlock_table_stats('s0.st0');
2254 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2255  GROUP BY relid
2256  ORDER BY relid;
2257 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
2258  GROUP BY starelid
2259  ORDER BY starelid;
2260
2261 -- No.14-3-5
2262 DELETE FROM dbms_stats.relation_stats_locked;
2263 SELECT dbms_stats.lock_database_stats();
2264 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2265  GROUP BY relid
2266  ORDER BY relid;
2267 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
2268  GROUP BY starelid
2269  ORDER BY starelid;
2270 SELECT dbms_stats.unlock_table_stats('st0');
2271 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2272  GROUP BY relid
2273  ORDER BY relid;
2274 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
2275  GROUP BY starelid
2276  ORDER BY starelid;
2277
2278 -- No.14-3-6
2279 DELETE FROM dbms_stats.relation_stats_locked;
2280 SELECT dbms_stats.lock_database_stats();
2281 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2282  GROUP BY relid
2283  ORDER BY relid;
2284 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
2285  GROUP BY starelid
2286  ORDER BY starelid;
2287 SELECT dbms_stats.unlock_table_stats('s00.s0');
2288 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2289  GROUP BY relid
2290  ORDER BY relid;
2291 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
2292  GROUP BY starelid
2293  ORDER BY starelid;
2294
2295 -- No.14-3-7
2296 DELETE FROM dbms_stats.relation_stats_locked;
2297 SELECT dbms_stats.lock_database_stats();
2298 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2299  GROUP BY relid
2300  ORDER BY relid;
2301 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
2302  GROUP BY starelid
2303  ORDER BY starelid;
2304 SELECT dbms_stats.unlock_table_stats(NULL);
2305 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2306  GROUP BY relid
2307  ORDER BY relid;
2308 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
2309  GROUP BY starelid
2310  ORDER BY starelid;
2311
2312 -- No.14-3-8
2313 DELETE FROM dbms_stats.relation_stats_locked;
2314 VACUUM dbms_stats.relation_stats_locked;  -- in order to avoid auto vacuum
2315 SELECT dbms_stats.lock_database_stats();
2316 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2317  GROUP BY relid
2318  ORDER BY relid;
2319 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
2320  GROUP BY starelid
2321  ORDER BY starelid;
2322 BEGIN;
2323 SELECT * FROM internal_locks;
2324 SELECT dbms_stats.unlock_table_stats('s0.st0');
2325 SELECT * FROM internal_locks;
2326 COMMIT;
2327 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2328  GROUP BY relid
2329  ORDER BY relid;
2330 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
2331  GROUP BY starelid
2332  ORDER BY starelid;
2333
2334 /*
2335  * No.14-4 dbms_stats.unlock_table_stats(schemaname, tablename)
2336  */
2337 -- No.14-4-1
2338 DELETE FROM dbms_stats.relation_stats_locked;
2339 SELECT dbms_stats.lock_database_stats();
2340 SELECT * FROM dbms_stats.backup_history
2341  ORDER BY id;
2342 SELECT count(*) FROM dbms_stats.relation_stats_backup;
2343 SELECT count(*) FROM dbms_stats.column_stats_backup;
2344 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2345  GROUP BY relid
2346  ORDER BY relid;
2347 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
2348  GROUP BY starelid
2349  ORDER BY starelid;
2350 SELECT dbms_stats.unlock_table_stats('s0','st0');
2351 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2352  GROUP BY relid
2353  ORDER BY relid;
2354 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
2355  GROUP BY starelid
2356  ORDER BY starelid;
2357 SELECT * FROM dbms_stats.backup_history
2358  ORDER BY id;
2359 SELECT count(*) FROM dbms_stats.relation_stats_backup;
2360 SELECT count(*) FROM dbms_stats.column_stats_backup;
2361
2362 -- No.14-4-2
2363 DELETE FROM dbms_stats.relation_stats_locked;
2364 SELECT dbms_stats.lock_database_stats();
2365 DELETE FROM dbms_stats.column_stats_locked;
2366 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2367  GROUP BY relid
2368  ORDER BY relid;
2369 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
2370  GROUP BY starelid
2371  ORDER BY starelid;
2372 SELECT dbms_stats.unlock_table_stats('s0', 'st0');
2373 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2374  GROUP BY relid
2375  ORDER BY relid;
2376 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
2377  GROUP BY starelid
2378  ORDER BY starelid;
2379
2380 -- No.14-4-3
2381 DELETE FROM dbms_stats.relation_stats_locked;
2382 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2383  GROUP BY relid
2384  ORDER BY relid;
2385 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
2386  GROUP BY starelid
2387  ORDER BY starelid;
2388 SELECT dbms_stats.unlock_table_stats('s0', 'st0');
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
2396 -- No.14-4-4
2397 DELETE FROM dbms_stats.relation_stats_locked;
2398 SELECT dbms_stats.lock_database_stats();
2399 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2400  GROUP BY relid
2401  ORDER BY relid;
2402 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
2403  GROUP BY starelid
2404  ORDER BY starelid;
2405 SELECT dbms_stats.unlock_table_stats('s0', 'st0');
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
2413 -- No.14-4-5
2414 DELETE FROM dbms_stats.relation_stats_locked;
2415 SELECT dbms_stats.lock_database_stats();
2416 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2417  GROUP BY relid
2418  ORDER BY relid;
2419 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
2420  GROUP BY starelid
2421  ORDER BY starelid;
2422 SELECT dbms_stats.unlock_table_stats('s00', 's0');
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
2430 -- No.14-4-6
2431 DELETE FROM dbms_stats.relation_stats_locked;
2432 SELECT dbms_stats.lock_database_stats();
2433 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2434  GROUP BY relid
2435  ORDER BY relid;
2436 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
2437  GROUP BY starelid
2438  ORDER BY starelid;
2439 SELECT dbms_stats.unlock_table_stats(NULL, 'st0');
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
2447 -- No.14-4-7
2448 DELETE FROM dbms_stats.relation_stats_locked;
2449 SELECT dbms_stats.lock_database_stats();
2450 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2451  GROUP BY relid
2452  ORDER BY relid;
2453 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
2454  GROUP BY starelid
2455  ORDER BY starelid;
2456 SELECT dbms_stats.unlock_table_stats('s0', NULL);
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
2464 -- No.14-4-8
2465 DELETE FROM dbms_stats.relation_stats_locked;
2466 VACUUM dbms_stats.relation_stats_locked;  -- in order to avoid auto vacuum
2467 SELECT dbms_stats.lock_database_stats();
2468 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2469  GROUP BY relid
2470  ORDER BY relid;
2471 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
2472  GROUP BY starelid
2473  ORDER BY starelid;
2474 BEGIN;
2475 SELECT * FROM internal_locks;
2476 SELECT dbms_stats.unlock_table_stats('s0', 'st0');
2477 SELECT * FROM internal_locks;
2478 COMMIT;
2479 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2480  GROUP BY relid
2481  ORDER BY relid;
2482 SELECT starelid::regclass, count(*) FROM dbms_stats.column_stats_locked
2483  GROUP BY starelid
2484  ORDER BY starelid;
2485
2486 /*
2487  * No.14-5 dbms_stats.unlock_column_stats(regclass, attname)
2488  */
2489 -- No.14-5-1
2490 DELETE FROM dbms_stats.relation_stats_locked;
2491 SELECT dbms_stats.lock_database_stats();
2492 SELECT * FROM dbms_stats.backup_history
2493  ORDER BY id;
2494 SELECT count(*) FROM dbms_stats.relation_stats_backup;
2495 SELECT count(*) FROM dbms_stats.column_stats_backup;
2496 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2497  GROUP BY relid
2498  ORDER BY relid;
2499 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2500 SELECT dbms_stats.unlock_column_stats('s0.st0', 'id');
2501 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2502 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2503  GROUP BY relid
2504  ORDER BY relid;
2505 SELECT * FROM dbms_stats.backup_history
2506  ORDER BY id;
2507 SELECT count(*) FROM dbms_stats.relation_stats_backup;
2508 SELECT count(*) FROM dbms_stats.column_stats_backup;
2509
2510 -- No.14-5-2
2511 DELETE FROM dbms_stats.relation_stats_locked;
2512 SELECT dbms_stats.lock_database_stats();
2513 DELETE 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 SELECT dbms_stats.unlock_column_stats('s0.st0', 'id');
2518 SELECT count(*) FROM dbms_stats.column_stats_locked;
2519 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2520  GROUP BY relid
2521  ORDER BY relid;
2522
2523 -- No.14-5-3
2524 DELETE FROM dbms_stats.relation_stats_locked;
2525 SELECT dbms_stats.lock_database_stats();
2526 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2527  GROUP BY relid
2528  ORDER BY relid;
2529 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2530 SELECT dbms_stats.unlock_column_stats('s0.st0', 'id');
2531 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2532 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2533  GROUP BY relid
2534  ORDER BY relid;
2535
2536 -- No.14-5-4
2537 DELETE FROM dbms_stats.relation_stats_locked;
2538 SELECT dbms_stats.lock_database_stats();
2539 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2540  GROUP BY relid
2541  ORDER BY relid;
2542 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2543 SELECT dbms_stats.unlock_column_stats('st0', 'id');
2544 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2545 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2546  GROUP BY relid
2547  ORDER BY relid;
2548
2549 -- No.14-5-5
2550 DELETE FROM dbms_stats.relation_stats_locked;
2551 SELECT dbms_stats.lock_database_stats();
2552 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2553  GROUP BY relid
2554  ORDER BY relid;
2555 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2556 SELECT dbms_stats.unlock_column_stats('s0.st0', 'dummy');
2557 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2558 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2559  GROUP BY relid
2560  ORDER BY relid;
2561
2562 -- No.14-5-6
2563 DELETE FROM dbms_stats.relation_stats_locked;
2564 SELECT dbms_stats.lock_database_stats();
2565 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2566  GROUP BY relid
2567  ORDER BY relid;
2568 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2569 SELECT dbms_stats.unlock_column_stats('s00.s0', 'id');
2570 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2571 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2572  GROUP BY relid
2573  ORDER BY relid;
2574
2575 -- No.14-5-7
2576 DELETE FROM dbms_stats.relation_stats_locked;
2577 SELECT dbms_stats.lock_database_stats();
2578 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2579  GROUP BY relid
2580  ORDER BY relid;
2581 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2582 SELECT dbms_stats.unlock_column_stats(NULL, 'id');
2583 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2584 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2585  GROUP BY relid
2586  ORDER BY relid;
2587
2588 -- No.14-5-8
2589 DELETE FROM dbms_stats.relation_stats_locked;
2590 SELECT dbms_stats.lock_database_stats();
2591 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2592  GROUP BY relid
2593  ORDER BY relid;
2594 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2595 SELECT dbms_stats.unlock_column_stats('s0.st0', NULL);
2596 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2597 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2598  GROUP BY relid
2599  ORDER BY relid;
2600
2601 -- No.14-5-9
2602 DELETE FROM dbms_stats.relation_stats_locked;
2603 VACUUM dbms_stats.relation_stats_locked;  -- in order to avoid auto vacuum
2604 SELECT dbms_stats.lock_database_stats();
2605 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2606  GROUP BY relid
2607  ORDER BY relid;
2608 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2609 BEGIN;
2610 SELECT * FROM internal_locks;
2611 SELECT dbms_stats.unlock_column_stats('s0.st0', 'id');
2612 SELECT * FROM internal_locks;
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 VACUUM dbms_stats.relation_stats_locked;  -- in order to avoid auto vacuum
2722 SELECT dbms_stats.lock_database_stats();
2723 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2724  GROUP BY relid
2725  ORDER BY relid;
2726 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2727 BEGIN;
2728 SELECT * FROM internal_locks;
2729 SELECT dbms_stats.unlock_column_stats('s0', 'st0', 'id');
2730 SELECT * FROM internal_locks;
2731 COMMIT;
2732 SELECT starelid, attname, stainherit FROM columns_locked_v c;
2733 SELECT relid::regclass FROM dbms_stats.relation_stats_locked
2734  GROUP BY relid
2735  ORDER BY relid;