OSDN Git Service

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