Revision | 217f38bb4f27b9725e981a6bcda2cce7c65363ba (tree) |
---|---|
Time | 2015-01-07 16:11:09 |
Author | Kyotaro Horiguchi <horiguchi.kyotaro@lab....> |
Commiter | Kyotaro Horiguchi |
Allow dbms_stats.prepare_statstweak() to take multi-word type names.
The function ends up with an error being given type names consists of
more than a word. This commit makes the spaces between keywords to be
replaced with underscores. The function takes the parameter as regtype
so every white space consists of exactly one space. Therefore
considering only the single-space case is enough.
@@ -26,7 +26,7 @@ DECLARE | ||
26 | 26 | castdef varchar; |
27 | 27 | BEGIN |
28 | 28 | srctypname := $1 || '[]'; |
29 | - funcname := 'dbms_stats._' || $1 || 'ary_anyarray'; | |
29 | + SELECT 'dbms_stats._' || replace(CAST($1 AS text), ' ','_') || 'ary_anyarray' INTO funcname; | |
30 | 30 | funcdef := funcname || '(' || srctypname || ')'; |
31 | 31 | castdef := '(' || srctypname || ' AS dbms_stats.anyarray)'; |
32 | 32 |
@@ -57,7 +57,7 @@ DECLARE | ||
57 | 57 | castdef varchar; |
58 | 58 | BEGIN |
59 | 59 | srctypname := $1 || '[]'; |
60 | - funcname := 'dbms_stats._' || $1 || 'ary_anyarray'; | |
60 | + SELECT 'dbms_stats._' || replace(CAST($1 AS text), ' ','_') || 'ary_anyarray' INTO funcname; | |
61 | 61 | funcdef := funcname || '(' || srctypname || ')'; |
62 | 62 | castdef := '(' || srctypname || ' AS dbms_stats.anyarray)'; |
63 | 63 |
@@ -26,7 +26,7 @@ DECLARE | ||
26 | 26 | castdef varchar; |
27 | 27 | BEGIN |
28 | 28 | srctypname := $1 || '[]'; |
29 | - funcname := 'dbms_stats._' || $1 || 'ary_anyarray'; | |
29 | + SELECT 'dbms_stats._' || replace(CAST($1 AS text), ' ','_') || 'ary_anyarray' INTO funcname; | |
30 | 30 | funcdef := funcname || '(' || srctypname || ')'; |
31 | 31 | castdef := '(' || srctypname || ' AS dbms_stats.anyarray)'; |
32 | 32 |
@@ -57,7 +57,7 @@ DECLARE | ||
57 | 57 | castdef varchar; |
58 | 58 | BEGIN |
59 | 59 | srctypname := $1 || '[]'; |
60 | - funcname := 'dbms_stats._' || $1 || 'ary_anyarray'; | |
60 | + SELECT 'dbms_stats._' || replace(CAST($1 AS text), ' ','_') || 'ary_anyarray' INTO funcname; | |
61 | 61 | funcdef := funcname || '(' || srctypname || ')'; |
62 | 62 | castdef := '(' || srctypname || ' AS dbms_stats.anyarray)'; |
63 | 63 |
@@ -26,7 +26,7 @@ DECLARE | ||
26 | 26 | castdef varchar; |
27 | 27 | BEGIN |
28 | 28 | srctypname := $1 || '[]'; |
29 | - funcname := 'dbms_stats._' || $1 || 'ary_anyarray'; | |
29 | + SELECT 'dbms_stats._' || replace(CAST($1 AS text), ' ','_') || 'ary_anyarray' INTO funcname; | |
30 | 30 | funcdef := funcname || '(' || srctypname || ')'; |
31 | 31 | castdef := '(' || srctypname || ' AS dbms_stats.anyarray)'; |
32 | 32 |
@@ -57,7 +57,7 @@ DECLARE | ||
57 | 57 | castdef varchar; |
58 | 58 | BEGIN |
59 | 59 | srctypname := $1 || '[]'; |
60 | - funcname := 'dbms_stats._' || $1 || 'ary_anyarray'; | |
60 | + SELECT 'dbms_stats._' || replace(CAST($1 AS text), ' ','_') || 'ary_anyarray' INTO funcname; | |
61 | 61 | funcdef := funcname || '(' || srctypname || ')'; |
62 | 62 | castdef := '(' || srctypname || ' AS dbms_stats.anyarray)'; |
63 | 63 |
@@ -26,7 +26,7 @@ DECLARE | ||
26 | 26 | castdef varchar; |
27 | 27 | BEGIN |
28 | 28 | srctypname := $1 || '[]'; |
29 | - funcname := 'dbms_stats._' || $1 || 'ary_anyarray'; | |
29 | + SELECT 'dbms_stats._' || replace(CAST($1 AS text), ' ','_') || 'ary_anyarray' INTO funcname; | |
30 | 30 | funcdef := funcname || '(' || srctypname || ')'; |
31 | 31 | castdef := '(' || srctypname || ' AS dbms_stats.anyarray)'; |
32 | 32 |
@@ -57,7 +57,7 @@ DECLARE | ||
57 | 57 | castdef varchar; |
58 | 58 | BEGIN |
59 | 59 | srctypname := $1 || '[]'; |
60 | - funcname := 'dbms_stats._' || $1 || 'ary_anyarray'; | |
60 | + SELECT 'dbms_stats._' || replace(CAST($1 AS text), ' ','_') || 'ary_anyarray' INTO funcname; | |
61 | 61 | funcdef := funcname || '(' || srctypname || ')'; |
62 | 62 | castdef := '(' || srctypname || ' AS dbms_stats.anyarray)'; |
63 | 63 |
@@ -175,7 +175,7 @@ DECLARE | ||
175 | 175 | castdef varchar; |
176 | 176 | BEGIN |
177 | 177 | srctypname := $1 || '[]'; |
178 | - funcname := 'dbms_stats._' || $1 || 'ary_anyarray'; | |
178 | + SELECT 'dbms_stats._' || replace(CAST($1 AS text), ' ','_') || 'ary_anyarray' INTO funcname; | |
179 | 179 | funcdef := funcname || '(' || srctypname || ')'; |
180 | 180 | castdef := '(' || srctypname || ' AS dbms_stats.anyarray)'; |
181 | 181 |
@@ -206,7 +206,7 @@ DECLARE | ||
206 | 206 | castdef varchar; |
207 | 207 | BEGIN |
208 | 208 | srctypname := $1 || '[]'; |
209 | - funcname := 'dbms_stats._' || $1 || 'ary_anyarray'; | |
209 | + SELECT 'dbms_stats._' || replace(CAST($1 AS text), ' ','_') || 'ary_anyarray' INTO funcname; | |
210 | 210 | funcdef := funcname || '(' || srctypname || ')'; |
211 | 211 | castdef := '(' || srctypname || ' AS dbms_stats.anyarray)'; |
212 | 212 |
@@ -185,7 +185,7 @@ DECLARE | ||
185 | 185 | castdef varchar; |
186 | 186 | BEGIN |
187 | 187 | srctypname := $1 || '[]'; |
188 | - funcname := 'dbms_stats._' || $1 || 'ary_anyarray'; | |
188 | + SELECT 'dbms_stats._' || replace(CAST($1 AS text), ' ','_') || 'ary_anyarray' INTO funcname; | |
189 | 189 | funcdef := funcname || '(' || srctypname || ')'; |
190 | 190 | castdef := '(' || srctypname || ' AS dbms_stats.anyarray)'; |
191 | 191 |
@@ -216,7 +216,7 @@ DECLARE | ||
216 | 216 | castdef varchar; |
217 | 217 | BEGIN |
218 | 218 | srctypname := $1 || '[]'; |
219 | - funcname := 'dbms_stats._' || $1 || 'ary_anyarray'; | |
219 | + SELECT 'dbms_stats._' || replace(CAST($1 AS text), ' ','_') || 'ary_anyarray' INTO funcname; | |
220 | 220 | funcdef := funcname || '(' || srctypname || ')'; |
221 | 221 | castdef := '(' || srctypname || ' AS dbms_stats.anyarray)'; |
222 | 222 |
@@ -185,7 +185,7 @@ DECLARE | ||
185 | 185 | castdef varchar; |
186 | 186 | BEGIN |
187 | 187 | srctypname := $1 || '[]'; |
188 | - funcname := 'dbms_stats._' || $1 || 'ary_anyarray'; | |
188 | + SELECT 'dbms_stats._' || replace(CAST($1 AS text), ' ','_') || 'ary_anyarray' INTO funcname; | |
189 | 189 | funcdef := funcname || '(' || srctypname || ')'; |
190 | 190 | castdef := '(' || srctypname || ' AS dbms_stats.anyarray)'; |
191 | 191 |
@@ -216,7 +216,7 @@ DECLARE | ||
216 | 216 | castdef varchar; |
217 | 217 | BEGIN |
218 | 218 | srctypname := $1 || '[]'; |
219 | - funcname := 'dbms_stats._' || $1 || 'ary_anyarray'; | |
219 | + SELECT 'dbms_stats._' || replace(CAST($1 AS text), ' ','_') || 'ary_anyarray' INTO funcname; | |
220 | 220 | funcdef := funcname || '(' || srctypname || ')'; |
221 | 221 | castdef := '(' || srctypname || ' AS dbms_stats.anyarray)'; |
222 | 222 |
@@ -185,7 +185,7 @@ DECLARE | ||
185 | 185 | castdef varchar; |
186 | 186 | BEGIN |
187 | 187 | srctypname := $1 || '[]'; |
188 | - funcname := 'dbms_stats._' || $1 || 'ary_anyarray'; | |
188 | + SELECT 'dbms_stats._' || replace(CAST($1 AS text), ' ','_') || 'ary_anyarray' INTO funcname; | |
189 | 189 | funcdef := funcname || '(' || srctypname || ')'; |
190 | 190 | castdef := '(' || srctypname || ' AS dbms_stats.anyarray)'; |
191 | 191 |
@@ -216,7 +216,7 @@ DECLARE | ||
216 | 216 | castdef varchar; |
217 | 217 | BEGIN |
218 | 218 | srctypname := $1 || '[]'; |
219 | - funcname := 'dbms_stats._' || $1 || 'ary_anyarray'; | |
219 | + SELECT 'dbms_stats._' || replace(CAST($1 AS text), ' ','_') || 'ary_anyarray' INTO funcname; | |
220 | 220 | funcdef := funcname || '(' || srctypname || ')'; |
221 | 221 | castdef := '(' || srctypname || ' AS dbms_stats.anyarray)'; |
222 | 222 |