Changeset: 585081582d00 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=585081582d00
Modified Files:
        monetdb5/modules/mal/01_batcalc.mal
        monetdb5/modules/mal/01_calc.mal
        monetdb5/modules/mal/batcalc.c
        sql/backends/monet5/sql.c
Branch: rdf
Log Message:

Add operator +,- with input oid, oid

Kind of hacking for handling q5 bsbm.


diffs (167 lines):

diff --git a/monetdb5/modules/mal/01_batcalc.mal 
b/monetdb5/modules/mal/01_batcalc.mal
--- a/monetdb5/modules/mal/01_batcalc.mal
+++ b/monetdb5/modules/mal/01_batcalc.mal
@@ -2608,6 +2608,45 @@ pattern add_noerror(v:lng,b:bat[:oid,:wr
 address CMDbatADD
 comment "Return V + B with candidates list, overflow causes NIL value";
 
+
+pattern +(b1:bat[:oid,:oid],b2:bat[:oid,:oid]) :bat[:oid,:oid]
+address CMDbatADDsignal
+comment "Return B1 + B2, signal error on overflow [RDF only]";
+pattern +(b1:bat[:oid,:oid],b2:bat[:oid,:oid],s:bat[:oid,:oid]) :bat[:oid,:oid]
+address CMDbatADDsignal
+comment "Return B1 + B2 with candidates list, signal error on overflow [RDF 
only]";
+pattern add_noerror(b1:bat[:oid,:oid],b2:bat[:oid,:oid]) :bat[:oid,:oid]
+address CMDbatADD
+comment "Return B1 + B2, overflow causes NIL value [RDF only]";
+pattern add_noerror(b1:bat[:oid,:oid],b2:bat[:oid,:oid],s:bat[:oid,:oid]) 
:bat[:oid,:oid]
+address CMDbatADD
+comment "Return B1 + B2 with candidates list, overflow causes NIL value [RDF 
only]";
+pattern +(b:bat[:oid,:oid],v:oid) :bat[:oid,:oid]
+address CMDbatADDsignal
+comment "Return B + V, signal error on overflow [RDF only]";
+pattern +(b:bat[:oid,:oid],v:oid,s:bat[:oid,:oid]) :bat[:oid,:oid]
+address CMDbatADDsignal
+comment "Return B + V with candidates list, signal error on overflow [RDF 
only]";
+pattern add_noerror(b:bat[:oid,:oid],v:oid) :bat[:oid,:oid]
+address CMDbatADD
+comment "Return B + V, overflow causes NIL value [RDF only]";
+pattern add_noerror(b:bat[:oid,:oid],v:oid,s:bat[:oid,:oid]) :bat[:oid,:oid]
+address CMDbatADD
+comment "Return B + V with candidates list, overflow causes NIL value [RDF 
only]";
+pattern +(v:oid,b:bat[:oid,:oid]) :bat[:oid,:oid]
+address CMDbatADDsignal
+comment "Return V + B, signal error on overflow [RDF only]";
+pattern +(v:oid,b:bat[:oid,:oid],s:bat[:oid,:oid]) :bat[:oid,:oid]
+address CMDbatADDsignal
+comment "Return V + B with candidates list, signal error on overflow [RDF 
only]";
+pattern add_noerror(v:oid,b:bat[:oid,:oid]) :bat[:oid,:oid]
+address CMDbatADD
+comment "Return V + B, overflow causes NIL value [RDF only]";
+pattern add_noerror(v:oid,b:bat[:oid,:oid],s:bat[:oid,:oid]) :bat[:oid,:oid]
+address CMDbatADD
+comment "Return V + B with candidates list, overflow causes NIL value [RDF 
only]";
+
+
 pattern +(b1:bat[:oid,:lng],b2:bat[:oid,:lng]) :bat[:oid,:lng]
 address CMDbatADDsignal
 comment "Return B1 + B2, signal error on overflow";
@@ -4422,6 +4461,43 @@ pattern sub_noerror(v:lng,b:bat[:oid,:wr
 address CMDbatSUB
 comment "Return V - B with candidates list, overflow causes NIL value";
 
+pattern -(b1:bat[:oid,:oid],b2:bat[:oid,:oid]) :bat[:oid,:oid]
+address CMDbatSUBsignal
+comment "Return B1 - B2, signal error on overflow [RDF only]";
+pattern -(b1:bat[:oid,:oid],b2:bat[:oid,:oid],s:bat[:oid,:oid]) :bat[:oid,:oid]
+address CMDbatSUBsignal
+comment "Return B1 - B2 with candidates list, signal error on overflow [RDF 
only]";
+pattern sub_noerror(b1:bat[:oid,:oid],b2:bat[:oid,:oid]) :bat[:oid,:oid]
+address CMDbatSUB
+comment "Return B1 - B2, overflow causes NIL value [RDF only]";
+pattern sub_noerror(b1:bat[:oid,:oid],b2:bat[:oid,:oid],s:bat[:oid,:oid]) 
:bat[:oid,:oid]
+address CMDbatSUB
+comment "Return B1 - B2 with candidates list, overflow causes NIL value [RDF 
only]";
+pattern -(b:bat[:oid,:oid],v:oid) :bat[:oid,:oid]
+address CMDbatSUBsignal
+comment "Return B - V, signal error on overflow [RDF only]";
+pattern -(b:bat[:oid,:oid],v:oid,s:bat[:oid,:oid]) :bat[:oid,:oid]
+address CMDbatSUBsignal
+comment "Return B - V with candidates list, signal error on overflow [RDF 
only]";
+pattern sub_noerror(b:bat[:oid,:oid],v:oid) :bat[:oid,:oid]
+address CMDbatSUB
+comment "Return B - V, overflow causes NIL value [RDF only]";
+pattern sub_noerror(b:bat[:oid,:oid],v:oid,s:bat[:oid,:oid]) :bat[:oid,:oid]
+address CMDbatSUB
+comment "Return B - V with candidates list, overflow causes NIL value [RDF 
only]";
+pattern -(v:oid,b:bat[:oid,:oid]) :bat[:oid,:oid]
+address CMDbatSUBsignal
+comment "Return V - B, signal error on overflow [RDF only]";
+pattern -(v:oid,b:bat[:oid,:oid],s:bat[:oid,:oid]) :bat[:oid,:oid]
+address CMDbatSUBsignal
+comment "Return V - B with candidates list, signal error on overflow [RDF 
only]";
+pattern sub_noerror(v:oid,b:bat[:oid,:oid]) :bat[:oid,:oid]
+address CMDbatSUB
+comment "Return V - B, overflow causes NIL value [RDF only]";
+pattern sub_noerror(v:oid,b:bat[:oid,:oid],s:bat[:oid,:oid]) :bat[:oid,:oid]
+address CMDbatSUB
+comment "Return V - B with candidates list, overflow causes NIL value [RDF 
only]";
+
 pattern -(b1:bat[:oid,:lng],b2:bat[:oid,:lng]) :bat[:oid,:lng]
 address CMDbatSUBsignal
 comment "Return B1 - B2, signal error on overflow";
diff --git a/monetdb5/modules/mal/01_calc.mal b/monetdb5/modules/mal/01_calc.mal
--- a/monetdb5/modules/mal/01_calc.mal
+++ b/monetdb5/modules/mal/01_calc.mal
@@ -684,6 +684,10 @@ pattern add_noerror(v1:lng,v2:wrd) :lng
 address CMDvarADD
 comment "Return V1 + V2, overflow causes NIL value";
 
+pattern +(v1:oid,v2:oid) :oid
+address CMDvarADDsignal
+comment "Return V1 + V2, signal error on overflow [RDF only]";
+
 pattern +(v1:lng,v2:lng) :lng
 address CMDvarADDsignal
 comment "Return V1 + V2, signal error on overflow";
@@ -1028,6 +1032,10 @@ pattern sub_noerror(v1:lng,v2:wrd) :lng
 address CMDvarSUB
 comment "Return V1 - V2, overflow causes NIL value";
 
+pattern -(v1:oid,v2:oid) :oid
+address CMDvarSUBsignal
+comment "Return V1 - V2, signal error on overflow [RDF only]";
+
 pattern -(v1:lng,v2:lng) :lng
 address CMDvarSUBsignal
 comment "Return V1 - V2, signal error on overflow";
@@ -2805,6 +2813,11 @@ pattern <(v1:str,v2:str) :bit
 address CMDvarLT
 comment "Return V1 < V2";
 
+
+pattern <(v1:oid,v2:lng) :bit
+address CMDvarLT
+comment "Return V1 < V2 [RDF only]";
+
 pattern <(v1:oid,v2:oid) :bit
 address CMDvarLT
 comment "Return V1 < V2";
@@ -3223,6 +3236,11 @@ pattern >(v1:str,v2:str) :bit
 address CMDvarGT
 comment "Return V1 > V2";
 
+
+pattern >(v1:oid,v2:lng) :bit
+address CMDvarGT
+comment "Return V1 > V2 [RDF only]";
+
 pattern >(v1:oid,v2:oid) :bit
 address CMDvarGT
 comment "Return V1 > V2";
diff --git a/monetdb5/modules/mal/batcalc.c b/monetdb5/modules/mal/batcalc.c
--- a/monetdb5/modules/mal/batcalc.c
+++ b/monetdb5/modules/mal/batcalc.c
@@ -206,6 +206,9 @@ calctype(int tp1, int tp2)
 {
        int tp1s = ATOMbasetype(tp1);
        int tp2s = ATOMbasetype(tp2);
+       
+       if (tp1 == TYPE_oid && tp2 == TYPE_oid) return TYPE_oid; //RDF only 
+
        if (tp1s == TYPE_str && tp2s == TYPE_str)
                return TYPE_str;
        if (tp1s < TYPE_flt && tp2s < TYPE_flt) {
diff --git a/sql/backends/monet5/sql.c b/sql/backends/monet5/sql.c
--- a/sql/backends/monet5/sql.c
+++ b/sql/backends/monet5/sql.c
@@ -130,7 +130,7 @@ sql_symbol2relation(mvc *c, symbol *sym)
                        
                        if (1) c->emode = m_normal;
                        
-                       if (1) c->emod = mod_explain;
+                       if (0) c->emod = mod_explain;
                        }
                }
                else {
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to