Changeset: 99d8ee637905 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=99d8ee637905
Modified Files:
        sql/backends/monet5/sql_upgrades.c
Branch: default
Log Message:

Fix upgrade code w.r.t. semantics.


diffs (144 lines):

diff --git a/sql/backends/monet5/sql_upgrades.c 
b/sql/backends/monet5/sql_upgrades.c
--- a/sql/backends/monet5/sql_upgrades.c
+++ b/sql/backends/monet5/sql_upgrades.c
@@ -2305,15 +2305,134 @@ sql_update_default(Client c, mvc *sql, c
                                list_append(functions, sql_create_func(sql->sa, 
"degrees", "mmath", "degrees", FALSE, FALSE, SCALE_FIX, 0, next->type, 1, 
next->type));
                                list_append(functions, sql_create_func(sql->sa, 
"radians", "mmath", "radians", FALSE, FALSE, SCALE_FIX, 0, next->type, 1, 
next->type));
                        }
+
                        insert_functions(sql->session->tr, mvc_bind_table(sql, 
sys, "functions"), functions, mvc_bind_table(sql, sys, "args"));
 
                        pos += snprintf(buf + pos, bufsize - pos,
-                               "update sys.functions set semantics = false 
where type <> 6 and ((func not ilike '%%CREATE FUNCTION%%' and name in 
('length','octet_length','>','>=','<','<=','min','max','sql_min','sql_max','least','greatest','sum','prod','mod','and',\n"
-                               
"'xor','not','sql_mul','sql_div','sql_sub','sql_add','bit_and','bit_or','bit_xor','bit_not','left_shift','right_shift','abs','sign','scale_up','scale_down','round','power','floor','ceil','ceiling','sin','cos','tan','asin',\n"
-                               
"'acos','atan','sinh','cot','cosh','tanh','sqrt','exp','log','ln','log10','log2','pi','curdate','current_date','curtime','current_time','current_timestamp','localtime','localtimestamp','local_timezone','century','decade','year',\n"
-                               
"'quarter','month','day','dayofyear','weekofyear','dayofweek','dayofmonth','week','hour','minute','second','strings','locate','charindex','splitpart','substring','substr','truncate','concat','ascii','code','right','left','upper',\n"
-                               
"'ucase','lower','lcase','trim','ltrim','rtrim','lpad','rpad','insert','replace','repeat','space','char_length','character_length','soundex','qgramnormalize','degrees','radians'))
 or \n"
-                               "(system = true and name in 
('like','ilike','str_to_date','date_to_str','str_to_time','time_to_str','str_to_timestamp','timestamp_to_str','date_trunc','epoch','reverse')));\n");
+                               "UPDATE sys.functions set semantics = false 
WHERE (name, func) IN (VALUES \n"
+                                       "('length', 'nitems'),\n"
+                                       "('octet_length', 'nitems'),\n"
+                                       "('>', '>'),\n"
+                                       "('>=', '>='),\n"
+                                       "('<', '<'),\n"
+                                       "('<=', '<='),\n"
+                                       "('min', 'min'),\n"
+                                       "('max', 'max'),\n"
+                                       "('sql_min', 'min'),\n"
+                                       "('sql_max', 'max'),\n"
+                                       "('least', 'min_no_nil'),\n"
+                                       "('greatest', 'max_no_nil'),\n"
+                                       "('sum', 'sum'),\n"
+                                       "('prod', 'prod'),\n"
+                                       "('mod', '%%'),\n"
+                                       "('and', 'and'),\n"
+                                       "('xor', 'xor'),\n"
+                                       "('not', 'not'),\n"
+                                       "('sql_mul', '*'),\n"
+                                       "('sql_div', '/'),\n"
+                                       "('sql_sub', '-'),\n"
+                                       "('sql_add', '+'),\n"
+                                       "('bit_and', 'and'),\n"
+                                       "('bit_or', 'or'),\n"
+                                       "('bit_xor', 'xor'),\n"
+                                       "('bit_not', 'not'),\n"
+                                       "('left_shift', '<<'),\n"
+                                       "('right_shift', '>>'),\n"
+                                       "('abs', 'abs'),\n"
+                                       "('sign', 'sign'),\n"
+                                       "('scale_up', '*'),\n"
+                                       "('scale_down', 'dec_round'),\n"
+                                       "('round', 'round'),\n"
+                                       "('power', 'pow'),\n"
+                                       "('floor', 'floor'),\n"
+                                       "('ceil', 'ceil'),\n"
+                                       "('ceiling', 'ceil'),\n"
+                                       "('sin', 'sin'),\n"
+                                       "('cos', 'cos'),\n"
+                                       "('tan', 'tan'),\n"
+                                       "('asin', 'asin'),\n"
+                                       "('acos', 'acos'),\n"
+                                       "('atan', 'atan'),\n"
+                                       "('atan', 'atan2'),\n"
+                                       "('sinh', 'sinh'),\n"
+                                       "('cot', 'cot'),\n"
+                                       "('cosh', 'cosh'),\n"
+                                       "('tanh', 'tanh'),\n"
+                                       "('sqrt', 'sqrt'),\n"
+                                       "('exp', 'exp'),\n"
+                                       "('log', 'log'),\n"
+                                       "('ln', 'log'),\n"
+                                       "('log10', 'log10'),\n"
+                                       "('log2', 'log2'),\n"
+                                       "('degrees', 'degrees'),\n"
+                                       "('radians', 'radians'),\n"
+                                       "('pi', 'pi'),\n"
+                                       "('curdate', 'current_date'),\n"
+                                       "('current_date', 'current_date'),\n"
+                                       "('curtime', 'current_time'),\n"
+                                       "('current_time', 'current_time'),\n"
+                                       "('current_timestamp', 
'current_timestamp'),\n"
+                                       "('localtime', 'current_time'),\n"
+                                       "('localtimestamp', 
'current_timestamp'),\n"
+                                       "('sql_sub', 'diff'),\n"
+                                       "('sql_sub', 
'date_sub_msec_interval'),\n"
+                                       "('sql_sub', 
'date_sub_month_interval'),\n"
+                                       "('sql_sub', 
'time_sub_msec_interval'),\n"
+                                       "('sql_sub', 
'timestamp_sub_msec_interval'),\n"
+                                       "('sql_sub', 
'timestamp_sub_month_interval'),\n"
+                                       "('sql_add', 
'date_add_msec_interval'),\n"
+                                       "('sql_add', 'addmonths'),\n"
+                                       "('sql_add', 
'timestamp_add_msec_interval'),\n"
+                                       "('sql_add', 
'timestamp_add_month_interval'),\n"
+                                       "('sql_add', 
'time_add_msec_interval'),\n"
+                                       "('local_timezone', 
'local_timezone'),\n"
+                                       "('century', 'century'),\n"
+                                       "('decade', 'decade'),\n"
+                                       "('year', 'year'),\n"
+                                       "('quarter', 'quarter'),\n"
+                                       "('month', 'month'),\n"
+                                       "('day', 'day'),\n"
+                                       "('dayofyear', 'dayofyear'),\n"
+                                       "('weekofyear', 'weekofyear'),\n"
+                                       "('dayofweek', 'dayofweek'),\n"
+                                       "('dayofmonth', 'day'),\n"
+                                       "('week', 'weekofyear'),\n"
+                                       "('hour', 'hours'),\n"
+                                       "('minute', 'minutes'),\n"
+                                       "('second', 'sql_seconds'),\n"
+                                       "('second', 'seconds'),\n"
+                                       "('strings', 'strings'),\n"
+                                       "('locate', 'locate'),\n"
+                                       "('charindex', 'locate'),\n"
+                                       "('splitpart', 'splitpart'),\n"
+                                       "('substring', 'substring'),\n"
+                                       "('substr', 'substring'),\n"
+                                       "('truncate', 'stringleft'),\n"
+                                       "('concat', '+'),\n"
+                                       "('ascii', 'ascii'),\n"
+                                       "('code', 'unicode'),\n"
+                                       "('length', 'length'),\n"
+                                       "('right', 'stringright'),\n"
+                                       "('left', 'stringleft'),\n"
+                                       "('upper', 'toUpper'),\n"
+                                       "('ucase', 'toUpper'),\n"
+                                       "('lower', 'toLower'),\n"
+                                       "('lcase', 'toLower'),\n"
+                                       "('trim', 'trim'),\n"
+                                       "('ltrim', 'ltrim'),\n"
+                                       "('rtrim', 'rtrim'),\n"
+                                       "('lpad', 'lpad'),\n"
+                                       "('rpad', 'rpad'),\n"
+                                       "('insert', 'insert'),\n"
+                                       "('replace', 'replace'),\n"
+                                       "('repeat', 'repeat'),\n"
+                                       "('space', 'space'),\n"
+                                       "('char_length', 'length'),\n"
+                                       "('character_length', 'length'),\n"
+                                       "('octet_length', 'nbytes'),\n"
+                                       "('soundex', 'soundex'),\n"
+                                       "('qgramnormalize', 'qgramnormalize')\n"
+                                       ");\n");
 
                        pos += snprintf(buf + pos, bufsize - pos, "set schema 
\"%s\";\n", prev_schema);
                        assert(pos < bufsize);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to