Changeset: 7e073a8f92d6 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7e073a8f92d6
Modified Files:
clients/Tests/MAL-signatures.stable.out
clients/Tests/SQL-dump.stable.out
sql/backends/monet5/sql.mx
sql/backends/monet5/sql_gencode.c
sql/backends/monet5/sql_result.c
sql/backends/monet5/sql_scenario.c
sql/backends/monet5/sql_scenario.h
sql/backends/monet5/sql_statistics.c
sql/benchmarks/ssbm/Tests/01-13.stable.out
sql/benchmarks/ssbm/Tests/01-explain.stable.out
sql/benchmarks/ssbm/Tests/01.stable.out
sql/benchmarks/ssbm/Tests/02-explain.stable.out
sql/benchmarks/ssbm/Tests/02.stable.out
sql/benchmarks/ssbm/Tests/03-explain.stable.out
sql/benchmarks/ssbm/Tests/03.stable.out
sql/benchmarks/ssbm/Tests/04-explain.stable.out
sql/benchmarks/ssbm/Tests/04.stable.out
sql/benchmarks/ssbm/Tests/05-explain.stable.out
sql/benchmarks/ssbm/Tests/05.stable.out
sql/benchmarks/ssbm/Tests/06-explain.stable.out
sql/benchmarks/ssbm/Tests/06.stable.out
sql/benchmarks/ssbm/Tests/07-explain.stable.out
sql/benchmarks/ssbm/Tests/07.stable.out
sql/benchmarks/ssbm/Tests/08-explain.stable.out
sql/benchmarks/ssbm/Tests/08.stable.out
sql/benchmarks/ssbm/Tests/09-explain.stable.out
sql/benchmarks/ssbm/Tests/09.stable.out
sql/benchmarks/ssbm/Tests/10-explain.stable.out
sql/benchmarks/ssbm/Tests/10.stable.out
sql/benchmarks/ssbm/Tests/11-explain.stable.out
sql/benchmarks/ssbm/Tests/11.stable.out
sql/benchmarks/ssbm/Tests/12-explain.stable.out
sql/benchmarks/ssbm/Tests/12.stable.out
sql/benchmarks/ssbm/Tests/13-explain.stable.out
sql/benchmarks/ssbm/Tests/13.stable.out
sql/benchmarks/tpch/LOCKED/Tests/01-22.stable.out
sql/benchmarks/tpch/LOCKED/Tests/01.stable.out
sql/benchmarks/tpch/LOCKED/Tests/03.stable.out
sql/benchmarks/tpch/LOCKED/Tests/05.stable.out
sql/benchmarks/tpch/LOCKED/Tests/06.stable.out
sql/benchmarks/tpch/LOCKED/Tests/07.stable.out
sql/benchmarks/tpch/LOCKED/Tests/08.stable.out
sql/benchmarks/tpch/LOCKED/Tests/09.stable.out
sql/benchmarks/tpch/LOCKED/Tests/10.stable.out
sql/benchmarks/tpch/LOCKED/Tests/11.stable.out
sql/benchmarks/tpch/LOCKED/Tests/12.stable.out
sql/benchmarks/tpch/LOCKED/Tests/14.stable.out
sql/benchmarks/tpch/LOCKED/Tests/15.stable.out
sql/benchmarks/tpch/LOCKED/Tests/18.stable.out
sql/benchmarks/tpch/LOCKED/Tests/19.stable.out
sql/benchmarks/tpch/LOCKED/Tests/21.stable.out
sql/benchmarks/tpch/LOCKED/Tests/22.stable.out
sql/benchmarks/tpch/Tests/01-22.stable.out
sql/benchmarks/tpch/Tests/01-explain.stable.out
sql/benchmarks/tpch/Tests/01-plan.stable.out
sql/benchmarks/tpch/Tests/01.stable.out
sql/benchmarks/tpch/Tests/03-explain.stable.out
sql/benchmarks/tpch/Tests/03-plan.stable.out
sql/benchmarks/tpch/Tests/03.stable.out
sql/benchmarks/tpch/Tests/05-explain.stable.out
sql/benchmarks/tpch/Tests/05-plan.stable.out
sql/benchmarks/tpch/Tests/05.stable.out
sql/benchmarks/tpch/Tests/06-explain.stable.out
sql/benchmarks/tpch/Tests/06-plan.stable.out
sql/benchmarks/tpch/Tests/06.stable.out
sql/benchmarks/tpch/Tests/07-explain.stable.out
sql/benchmarks/tpch/Tests/07-plan.stable.out
sql/benchmarks/tpch/Tests/07.stable.out
sql/benchmarks/tpch/Tests/08-explain.stable.out
sql/benchmarks/tpch/Tests/08-plan.stable.out
sql/benchmarks/tpch/Tests/08.stable.out
sql/benchmarks/tpch/Tests/09-explain.stable.out
sql/benchmarks/tpch/Tests/09-plan.stable.out
sql/benchmarks/tpch/Tests/09.stable.out
sql/benchmarks/tpch/Tests/10-explain.stable.out
sql/benchmarks/tpch/Tests/10-plan.stable.out
sql/benchmarks/tpch/Tests/10.stable.out
sql/benchmarks/tpch/Tests/11-explain.stable.out
sql/benchmarks/tpch/Tests/11-plan.stable.out
sql/benchmarks/tpch/Tests/11.stable.out
sql/benchmarks/tpch/Tests/12-explain.stable.out
sql/benchmarks/tpch/Tests/12.stable.out
sql/benchmarks/tpch/Tests/14-explain.stable.out
sql/benchmarks/tpch/Tests/14-plan.stable.out
sql/benchmarks/tpch/Tests/14.stable.out
sql/benchmarks/tpch/Tests/15-explain.stable.out
sql/benchmarks/tpch/Tests/15-plan.stable.out
sql/benchmarks/tpch/Tests/15.stable.out
sql/benchmarks/tpch/Tests/17-explain.stable.out
sql/benchmarks/tpch/Tests/17-plan.stable.out
sql/benchmarks/tpch/Tests/18-explain.stable.out
sql/benchmarks/tpch/Tests/18-plan.stable.out
sql/benchmarks/tpch/Tests/18.stable.out
sql/benchmarks/tpch/Tests/19-explain.stable.out
sql/benchmarks/tpch/Tests/19-plan.stable.out
sql/benchmarks/tpch/Tests/19.stable.out
sql/benchmarks/tpch/Tests/20-explain.stable.out
sql/benchmarks/tpch/Tests/20-plan.stable.out
sql/benchmarks/tpch/Tests/22-explain.stable.out
sql/common/sql_types.c
sql/server/rel_exp.c
sql/server/rel_exp.h
sql/server/rel_optimizer.c
sql/server/rel_select.c
sql/server/sql_atom.c
sql/server/sql_atom.h
sql/server/sql_decimal.c
sql/server/sql_decimal.h
sql/server/sql_mvc.c
sql/server/sql_mvc.h
sql/server/sql_parser.y
sql/test/BugDay_2005-10-06_2.9.3/Tests/huge_expression_and_column_name.SF-921173.stable.out
sql/test/BugDay_2005-10-06_2.9.3/Tests/max_min_sum_null.SF-1123132.stable.out
sql/test/BugTracker-2008/Tests/auto_coersion_bug.SF-2075157.stable.out
sql/test/BugTracker-2008/Tests/extract_bug.SF-2075266.stable.out
sql/test/BugTracker-2008/Tests/groupby_with_NULL.SF-2155606.stable.out
sql/test/BugTracker-2008/Tests/mul_div_bug.SF-2075135.stable.out
sql/test/BugTracker-2009/Tests/TribooleanFailureWithSubquery.SF-2679434.stable.out
sql/test/BugTracker-2009/Tests/avg-bug.SF-2132666.stable.out
sql/test/BugTracker-2009/Tests/count_bug.SF-2604583.stable.out
sql/test/BugTracker-2010/Tests/prepare_statements_crash_server.Bug-2599.stable.out
sql/test/BugTracker-2010/Tests/rank-over-crash.SF-2926454.stable.out
sql/test/BugTracker-2011/Tests/and-power.Bug-3013.stable.out
sql/test/BugTracker-2011/Tests/case-overflow.Bug-2239.stable.out
sql/test/BugTracker-2011/Tests/non-stable-select-bug.Bug-2894.stable.out
sql/test/BugTracker-2012/Tests/large-number-operation-strange-results.Bug-2929.sql
sql/test/BugTracker-2013/Tests/aggregates-typing-issues.Bug-3277.stable.out
sql/test/BugTracker-2013/Tests/between.Bug-3259.stable.out
sql/test/BugTracker-2013/Tests/prepare-smallint.Bug-3297.stable.out
sql/test/BugTracker-2013/Tests/qualified_aggrname.Bug-3332.stable.out
sql/test/BugTracker/Tests/case_with_aggr.SF-1876779.stable.out
sql/test/BugTracker/Tests/groupby_with_alias.SF-1520575.stable.out
sql/test/BugTracker/Tests/limits_of_decimal.SF-1685357.sql
sql/test/BugTracker/Tests/limits_of_decimal.SF-1685357.stable.err
sql/test/BugTracker/Tests/set_sql_debug_64__breaking_the_DB.SF-1906287.stable.out
sql/test/Dependencies/Tests/Dependencies.stable.out
sql/test/Tests/marcin3.stable.out
sql/test/Tests/outerref_in_selection.stable.out
sql/test/Tests/trace.stable.out
sql/test/Tests/zones.stable.out
sql/test/bugs/Tests/aggr_single_value.stable.out
sql/test/bugs/Tests/view_case-bug-sf-1023058.stable.out
sql/test/leaks/Tests/check1.stable.out
sql/test/leaks/Tests/check2.stable.out
sql/test/leaks/Tests/check3.stable.out
sql/test/leaks/Tests/check4.stable.out
sql/test/leaks/Tests/check5.stable.out
sql/test/mapi/Tests/php_monetdb.stable.out
Branch: int128
Log Message:
added int128 / "hge" support in sql/
this also introduces new SQL type HUGEINT
as well as (up to) 38-digit DECIMALs
while (close to) all tests work fine,
more testing is strongly recommended.
diffs (truncated from 17856 to 300 lines):
diff --git a/clients/Tests/MAL-signatures.stable.out
b/clients/Tests/MAL-signatures.stable.out
--- a/clients/Tests/MAL-signatures.stable.out
+++ b/clients/Tests/MAL-signatures.stable.out
@@ -166,6 +166,10 @@ function aggr.corr(e1:bat[:oid,:flt],e2:
function
aggr.covar(e1:bat[:oid,:flt],e2:bat[:oid,:flt],g:bat[:oid,:oid],e:bat[:oid,:any_2]):bat[:oid,:flt];
function aggr.corr(e1:bat[:oid,:flt],e2:bat[:oid,:flt]):flt;
function aggr.covar(e1:bat[:oid,:flt],e2:bat[:oid,:flt]):flt;
+function
aggr.corr(e1:bat[:oid,:hge],e2:bat[:oid,:hge],g:bat[:oid,:oid],e:bat[:oid,:any_2]):bat[:oid,:hge];
+function
aggr.covar(e1:bat[:oid,:hge],e2:bat[:oid,:hge],g:bat[:oid,:oid],e:bat[:oid,:any_2]):bat[:oid,:hge];
+function aggr.corr(e1:bat[:oid,:hge],e2:bat[:oid,:hge]):hge;
+function aggr.covar(e1:bat[:oid,:hge],e2:bat[:oid,:hge]):hge;
function
aggr.corr(e1:bat[:oid,:lng],e2:bat[:oid,:lng],g:bat[:oid,:oid],e:bat[:oid,:any_2]):bat[:oid,:lng];
function
aggr.covar(e1:bat[:oid,:lng],e2:bat[:oid,:lng],g:bat[:oid,:oid],e:bat[:oid,:any_2]):bat[:oid,:lng];
function aggr.corr(e1:bat[:oid,:lng],e2:bat[:oid,:lng]):lng;
@@ -27120,6 +27124,18 @@ pattern batcalc.abs(b:bat[:oid,:bte]):ba
address CMDbatABS;
comment Unary abs over the tail of the bat
+command batcalc.bte(s1:int,v:bat[:oid,:hge],d2:int,s2:int):bat[:oid,:bte]
+address bathge_dec2dec_bte;
+comment cast decimal(hge) to decimal(bte) and check for overflow
+
+command batcalc.bte(s1:int,v:bat[:oid,:hge]):bat[:oid,:bte]
+address bathge_dec2_bte;
+comment cast decimal(hge) to bte and check for overflow
+
+command batcalc.bte(v:bat[:oid,:hge],digits:int,scale:int):bat[:oid,:bte]
+address bathge_num2dec_bte;
+comment cast number to decimal(bte) and check for overflow
+
command batcalc.bte(s1:int,v:bat[:oid,:lng],d2:int,s2:int):bat[:oid,:bte]
address batlng_dec2dec_bte;
comment cast decimal(lng) to decimal(bte) and check for overflow
@@ -29519,6 +29535,18 @@ comment Return -1/0/1 if B1 </==/> B2
function batcalc.dense_rank_grp{inline}(b:bat[:oid,:any_1]):bat[:oid,:int];
function
batcalc.dense_rank_grp{inline}(b:bat[:oid,:any_1],ord:bat[:oid,:oid],orig:bat[:oid,:any_2]):bat[:oid,:int];
function
batcalc.dense_rank_grp{inline}(b:bat[:oid,:any_1],ord:bat[:oid,:oid],grp:bat[:oid,:oid],ext:bat[:oid,:oid]):bat[:oid,:int];
+command batcalc.dbl(s1:int,v:bat[:oid,:hge],d2:int,s2:int):bat[:oid,:dbl]
+address bathge_dec2dec_dbl;
+comment cast decimal(hge) to decimal(dbl) and check for overflow
+
+command batcalc.dbl(s1:int,v:bat[:oid,:hge]):bat[:oid,:dbl]
+address bathge_dec2_dbl;
+comment cast decimal(hge) to dbl and check for overflow
+
+command batcalc.dbl(v:bat[:oid,:hge],digits:int,scale:int):bat[:oid,:dbl]
+address bathge_num2dec_dbl;
+comment cast number to decimal(dbl) and check for overflow
+
command batcalc.dbl(s1:int,v:bat[:oid,:lng],d2:int,s2:int):bat[:oid,:dbl]
address batlng_dec2dec_dbl;
comment cast decimal(lng) to decimal(dbl) and check for overflow
@@ -31335,6 +31363,18 @@ pattern batcalc.div_noerror(b1:bat[:oid,
address CMDbatDIV;
comment Return B1 / B2, overflow causes NIL value
+command batcalc.flt(s1:int,v:bat[:oid,:hge],d2:int,s2:int):bat[:oid,:flt]
+address bathge_dec2dec_flt;
+comment cast decimal(hge) to decimal(flt) and check for overflow
+
+command batcalc.flt(s1:int,v:bat[:oid,:hge]):bat[:oid,:flt]
+address bathge_dec2_flt;
+comment cast decimal(hge) to flt and check for overflow
+
+command batcalc.flt(v:bat[:oid,:hge],digits:int,scale:int):bat[:oid,:flt]
+address bathge_num2dec_flt;
+comment cast number to decimal(flt) and check for overflow
+
command batcalc.flt(s1:int,v:bat[:oid,:lng],d2:int,s2:int):bat[:oid,:flt]
address batlng_dec2dec_flt;
comment cast decimal(lng) to decimal(flt) and check for overflow
@@ -31587,6 +31627,102 @@ pattern batcalc.flt(b:bat[:oid,:void]):b
address CMDconvertsignal_flt;
comment cast from void to flt, signal error on overflow
+command batcalc.hge(s1:int,v:bat[:oid,:hge],d2:int,s2:int):bat[:oid,:hge]
+address bathge_dec2dec_hge;
+comment cast decimal(hge) to decimal(hge) and check for overflow
+
+command batcalc.hge(s1:int,v:bat[:oid,:hge]):bat[:oid,:hge]
+address bathge_dec2_hge;
+comment cast decimal(hge) to hge and check for overflow
+
+command batcalc.hge(v:bat[:oid,:hge],digits:int,scale:int):bat[:oid,:hge]
+address bathge_num2dec_hge;
+comment cast number to decimal(hge) and check for overflow
+
+command batcalc.hge(s1:int,v:bat[:oid,:lng],d2:int,s2:int):bat[:oid,:hge]
+address batlng_dec2dec_hge;
+comment cast decimal(lng) to decimal(hge) and check for overflow
+
+command batcalc.hge(s1:int,v:bat[:oid,:lng]):bat[:oid,:hge]
+address batlng_dec2_hge;
+comment cast decimal(lng) to hge and check for overflow
+
+command batcalc.hge(v:bat[:oid,:lng],digits:int,scale:int):bat[:oid,:hge]
+address batlng_num2dec_hge;
+comment cast number to decimal(hge) and check for overflow
+
+command batcalc.hge(s1:int,v:bat[:oid,:wrd],d2:int,s2:int):bat[:oid,:hge]
+address batwrd_dec2dec_hge;
+comment cast decimal(wrd) to decimal(hge) and check for overflow
+
+command batcalc.hge(s1:int,v:bat[:oid,:wrd]):bat[:oid,:hge]
+address batwrd_dec2_hge;
+comment cast decimal(wrd) to hge and check for overflow
+
+command batcalc.hge(v:bat[:oid,:wrd],digits:int,scale:int):bat[:oid,:hge]
+address batwrd_num2dec_hge;
+comment cast number to decimal(hge) and check for overflow
+
+command batcalc.hge(s1:int,v:bat[:oid,:int],d2:int,s2:int):bat[:oid,:hge]
+address batint_dec2dec_hge;
+comment cast decimal(int) to decimal(hge) and check for overflow
+
+command batcalc.hge(s1:int,v:bat[:oid,:int]):bat[:oid,:hge]
+address batint_dec2_hge;
+comment cast decimal(int) to hge and check for overflow
+
+command batcalc.hge(v:bat[:oid,:int],digits:int,scale:int):bat[:oid,:hge]
+address batint_num2dec_hge;
+comment cast number to decimal(hge) and check for overflow
+
+command batcalc.hge(s1:int,v:bat[:oid,:sht],d2:int,s2:int):bat[:oid,:hge]
+address batsht_dec2dec_hge;
+comment cast decimal(sht) to decimal(hge) and check for overflow
+
+command batcalc.hge(s1:int,v:bat[:oid,:sht]):bat[:oid,:hge]
+address batsht_dec2_hge;
+comment cast decimal(sht) to hge and check for overflow
+
+command batcalc.hge(v:bat[:oid,:sht],digits:int,scale:int):bat[:oid,:hge]
+address batsht_num2dec_hge;
+comment cast number to decimal(hge) and check for overflow
+
+command batcalc.hge(s1:int,v:bat[:oid,:bte],d2:int,s2:int):bat[:oid,:hge]
+address batbte_dec2dec_hge;
+comment cast decimal(bte) to decimal(hge) and check for overflow
+
+command batcalc.hge(s1:int,v:bat[:oid,:bte]):bat[:oid,:hge]
+address batbte_dec2_hge;
+comment cast decimal(bte) to hge and check for overflow
+
+command batcalc.hge(v:bat[:oid,:bte],digits:int,scale:int):bat[:oid,:hge]
+address batbte_num2dec_hge;
+comment cast number to decimal(hge) and check for overflow
+
+command batcalc.hge(v:bat[:oid,:dbl],digits:int,scale:int):bat[:oid,:hge]
+address batdbl_num2dec_hge;
+comment cast number to decimal(hge) and check for overflow
+
+command batcalc.hge(v:bat[:oid,:flt],digits:int,scale:int):bat[:oid,:hge]
+address batflt_num2dec_hge;
+comment cast number to decimal(hge) and check for overflow
+
+command batcalc.hge(v:bat[:oid,:str],digits:int,scale:int):bat[:oid,:hge]
+address batstr_2dec_hge;
+comment cast to dec(hge) and check for overflow
+
+command batcalc.hge(v:bat[:oid,:str],digits:int):bat[:oid,:hge]
+address batstr_2num_hge;
+comment cast to hge and check for overflow
+
+command batcalc.hge(v:bat[:oid,:void],digits:int,scale:int):bat[:oid,:hge]
+address batnil_2dec_hge;
+comment cast to dec(hge) and check for overflow
+
+command batcalc.hge(v:bat[:oid,:void],digits:int):bat[:oid,:hge]
+address batnil_2num_hge;
+comment cast to hge and check for overflow
+
command batcalc.hash(b:bat[:oid,:any_1]):bat[:oid,:wrd]
address MKEYbathash;
command batcalc.hash(b:bat[:oid,:dbl]):bat[:oid,:wrd]
@@ -31597,6 +31733,8 @@ command batcalc.hash(b:bat[:oid,:wrd]):b
address MKEYbathash;
command batcalc.hash(b:bat[:oid,:oid]):bat[:oid,:wrd]
address MKEYbathash;
+command batcalc.hash(b:bat[:oid,:hge]):bat[:oid,:wrd]
+address MKEYbathash;
command batcalc.hash(b:bat[:oid,:lng]):bat[:oid,:wrd]
address MKEYbathash;
command batcalc.hash(b:bat[:oid,:int]):bat[:oid,:wrd]
@@ -31797,6 +31935,18 @@ pattern batcalc.hge(b:bat[:oid,:void]):b
address CMDconvertsignal_hge;
comment cast from void to hge, signal error on overflow
+command batcalc.int(s1:int,v:bat[:oid,:hge],d2:int,s2:int):bat[:oid,:int]
+address bathge_dec2dec_int;
+comment cast decimal(hge) to decimal(int) and check for overflow
+
+command batcalc.int(s1:int,v:bat[:oid,:hge]):bat[:oid,:int]
+address bathge_dec2_int;
+comment cast decimal(hge) to int and check for overflow
+
+command batcalc.int(v:bat[:oid,:hge],digits:int,scale:int):bat[:oid,:int]
+address bathge_num2dec_int;
+comment cast number to decimal(int) and check for overflow
+
command batcalc.int(s1:int,v:bat[:oid,:lng],d2:int,s2:int):bat[:oid,:int]
address batlng_dec2dec_int;
comment cast decimal(lng) to decimal(int) and check for overflow
@@ -32281,6 +32431,18 @@ pattern batcalc.iszero(b:bat[:oid,:bte])
address CMDbatISZERO;
comment Unary check for zero over the tail of the bat
+command batcalc.lng(s1:int,v:bat[:oid,:hge],d2:int,s2:int):bat[:oid,:lng]
+address bathge_dec2dec_lng;
+comment cast decimal(hge) to decimal(lng) and check for overflow
+
+command batcalc.lng(s1:int,v:bat[:oid,:hge]):bat[:oid,:lng]
+address bathge_dec2_lng;
+comment cast decimal(hge) to lng and check for overflow
+
+command batcalc.lng(v:bat[:oid,:hge],digits:int,scale:int):bat[:oid,:lng]
+address bathge_num2dec_lng;
+comment cast number to decimal(lng) and check for overflow
+
command batcalc.lng(s1:int,v:bat[:oid,:lng],d2:int,s2:int):bat[:oid,:lng]
address batlng_dec2dec_lng;
comment cast decimal(lng) to decimal(lng) and check for overflow
@@ -37781,6 +37943,18 @@ pattern batcalc.rsh_noerror(b1:bat[:oid,
address CMDbatRSH;
comment Return B1 >> B2, out of range second operand causes NIL value
+command batcalc.sht(s1:int,v:bat[:oid,:hge],d2:int,s2:int):bat[:oid,:sht]
+address bathge_dec2dec_sht;
+comment cast decimal(hge) to decimal(sht) and check for overflow
+
+command batcalc.sht(s1:int,v:bat[:oid,:hge]):bat[:oid,:sht]
+address bathge_dec2_sht;
+comment cast decimal(hge) to sht and check for overflow
+
+command batcalc.sht(v:bat[:oid,:hge],digits:int,scale:int):bat[:oid,:sht]
+address bathge_num2dec_sht;
+comment cast number to decimal(sht) and check for overflow
+
command batcalc.sht(s1:int,v:bat[:oid,:lng],d2:int,s2:int):bat[:oid,:sht]
address batlng_dec2dec_sht;
comment cast decimal(lng) to decimal(sht) and check for overflow
@@ -45527,6 +45701,18 @@ pattern calc.abs(v:bte):bte
address CMDvarABS;
comment Unary absolute value of V
+command calc.bte(s1:int,v:hge,d2:int,s2:int):bte
+address hge_dec2dec_bte;
+comment cast decimal(hge) to decimal(bte) and check for overflow
+
+command calc.bte(s1:int,v:hge):bte
+address hge_dec2_bte;
+comment cast decimal(hge) to bte and check for overflow
+
+command calc.bte(v:hge,digits:int,scale:int):bte
+address hge_num2dec_bte;
+comment cast number to decimal(bte) and check for overflow
+
command calc.bte(s1:int,v:lng,d2:int,s2:int):bte
address lng_dec2dec_bte;
comment cast decimal(lng) to decimal(bte) and check for overflow
@@ -45988,6 +46174,18 @@ command calc.daytime(v:lng,d:int):daytim
address second_interval_2_daytime;
comment cast second_interval to a daytime and check for overflow
+command calc.dbl(s1:int,v:hge,d2:int,s2:int):dbl
+address hge_dec2dec_dbl;
+comment cast decimal(hge) to decimal(dbl) and check for overflow
+
+command calc.dbl(s1:int,v:hge):dbl
+address hge_dec2_dbl;
+comment cast decimal(hge) to dbl and check for overflow
+
+command calc.dbl(v:hge,digits:int,scale:int):dbl
+address hge_num2dec_dbl;
+comment cast number to decimal(dbl) and check for overflow
+
command calc.dbl(s1:int,v:lng,d2:int,s2:int):dbl
address lng_dec2dec_dbl;
comment cast decimal(lng) to decimal(dbl) and check for overflow
@@ -46394,6 +46592,18 @@ pattern calc.div_noerror(v1:bte,v2:bte):
address CMDvarDIV;
comment Return V1 / V2, overflow causes NIL value
+command calc.flt(s1:int,v:hge,d2:int,s2:int):flt
+address hge_dec2dec_flt;
+comment cast decimal(hge) to decimal(flt) and check for overflow
+
+command calc.flt(s1:int,v:hge):flt
+address hge_dec2_flt;
+comment cast decimal(hge) to flt and check for overflow
+
+command calc.flt(v:hge,digits:int,scale:int):flt
+address hge_num2dec_flt;
+comment cast number to decimal(flt) and check for overflow
+
command calc.flt(s1:int,v:lng,d2:int,s2:int):flt
address lng_dec2dec_flt;
comment cast decimal(lng) to decimal(flt) and check for overflow
@@ -46512,6 +46722,102 @@ command calc.getBATidentifier(b:bat[:any
address CALCbat2batid;
comment Coerce bat to BAT identifier
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list