couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mauro Fagnoni <mauro.fagn...@gmail.com>
Subject error during map function
Date Fri, 27 May 2011 17:56:24 GMT
Hi all i've to adjust this sql query into a valid .js query for couchdb but
i've an error...someone help to find and solve my error???

Best regards

.js query

{
    "map":"function(doc){
        if{((doc.partkey == doc.parteky) &&
           (doc.brand == 'Brand#12') &&
           (if {(doc.container == 'SM CASE') || (doc.container == 'SM BOX')
(doc.container == 'SM PACK') || (doc.container == 'SM PKG')
               doc.container=true;
            }else{doc.container=false;}
           ) &&
           (doc.quantity >= 1) &&
           (doc.quantity <= 11) &&
           (doc.size > 1) &&
           (doc.size < 5) &&
           (if {(doc.shipmode == 'AIR')|| (doc.shipmode == 'AIR REG')
                    doc.shipmode = true;
                }else {doc.shipmode = falese}&&
           (doc.shipinstruct == 'DELIVER IN PERSON')
        )} ||
         if{((doc.partkey == doc.parteky)&&
               (doc.brand == 'Brand#23') &&
               (if {(doc.container == 'MED BAG') || (doc.container == 'MED
BOX') (doc.container == 'MED PKG') || (doc.container == 'MED PACK')
                     doc.container=true;
                }else{doc.container=false;}
               ) &&
               (doc.quantity >= 10) &&
               (doc.quantity <= 20) &&
               (doc.size > 1) &&
               (doc.size < 10) &&
               (if {(doc.container == 'MED BAG') || (doc.container == 'MED
BOX') (doc.container == 'MED PKG') || (doc.container == 'MED PACK')
                     doc.container=true;
                }else{doc.container=false;}
               ) &&
               (doc.shipinstruct == 'DELIVER IN PERSON')
        )} ||
        if{((doc.partkey == doc.parteky) &&
               (doc.brand == 'Brand#34') &&
                    (if {(doc.container == 'LG CASE') || (doc.container ==
'LG BOX') (doc.container == 'LG PACK') || (doc.container == 'LG PKG')
                   doc.container=true;
                }else{doc.container=false;}
               ) &&
            (doc.quantity >= 20) &&
               (doc.quantity <= 30) &&
               (doc.size > 1) &&
               (doc.size < 15) &&
              (if {(doc.container == 'MED BAG') || (doc.container == 'MED
BOX') (doc.container == 'MED PKG') || (doc.container == 'MED PACK')
                     doc.container=true;
                }else{doc.container=false;}
               ) &&
               (doc.shipinstruct == 'DELIVER IN PERSON')
        )}
    emit (null, doc)
    }" ,
    "reduce": "
        function(keys, values, rereduce){
        var tags = {};
        if(!rereduce){
            for (var k in keys) {
                var extPrice = parseFloat(values[k].extendedprice);
                var disc1 = 1-parseFloat(values[k].discount);
                if(tags[key[k][0]]){
                    tags[keys[k][0]].revenue += extPrice * disc1;
                }
                else tags[keys[k][0]] = {
                    'revenue' : extPrice * disc1
                };
            }
        }else{
            tags = values[0];
                    for(var v = 1; v < values.length; v++)
                    {
                        for(var t in values[v])
                        {
                                if(tags[t]) {
                        tags[t].revenue += values[v][t].revenue;
                        }
                }
            }
        }
        return tags;
    }"
}


sql query

SELECT
               sum(L_EXTENDEDPRICE * (1 - L_DISCOUNT) ) as revenue
               FROM
               LINEITEM,
               PART
               WHERE
               (
               P_PARTKEY = L_PARTKEY
               and P_BRAND = 'Brand#12'
               and P_CONTAINER in ( 'SM CASE', 'SM BOX', 'SM PACK', 'SM
PKG')
               and L_QUANTITY >= 1 and L_QUANTITY <= 1 + 10
               and P_SIZE between 1 and 5
               and L_SHIPMODE in ('AIR', 'AIR REG')
               and L_SHIPINSTRUCT = 'DELIVER IN PERSON'
               )
               or
               (
               P_PARTKEY = L_PARTKEY
               and P_BRAND = 'Brand#23'
               and P_CONTAINER in ('MED BAG', 'MED BOX', 'MED PKG', 'MED
PACK')
               and L_QUANTITY >= 10 and L_QUANTITY <= 10 + 10
               and P_SIZE between 1 and 10
               and L_SHIPMODE in ('AIR', 'AIR REG')
               and L_SHIPINSTRUCT = 'DELIVER IN PERSON'
               )
               or
               (
               P_PARTKEY = L_PARTKEY
               and P_BRAND = 'Brand#34'
               and P_CONTAINER in ( 'LG CASE', 'LG BOX', 'LG PACK', 'LG
PKG')
               and L_QUANTITY >= 20 and L_QUANTITY <= 20 + 10
               and P_SIZE between 1 and 15
               and L_SHIPMODE in ('AIR', 'AIR REG')
               and L_SHIPINSTRUCT = 'DELIVER IN PERSON;


error log

{"error":"compilation_error","reason":"Expression does not eval to a
function. ((new String(\"function(doc){\\n\\t\\tif{((doc.partkey ==
doc.parteky) && \\n\\t\\t   (doc.brand == 'Brand#12') &&\\n\\t\\t   (if
{(doc.container == 'SM CASE') || (doc.container == 'SM BOX') (doc.container
== 'SM PACK') || (doc.container == 'SM PKG')\\n\\t\\t
\\tdoc.container=true;\\n\\t\\t\\t}else{doc.container=false;}\\n\\t\\t   )
&&\\n\\t\\t   (doc.quantity >= 1) &&\\n\\t\\t   (doc.quantity <= 11)
&&\\n\\t\\t   (doc.size > 1) &&\\n\\t\\t   (doc.size < 5) &&\\n\\t\\t
  (if
{(doc.shipmode == 'AIR')|| (doc.shipmode == 'AIR
REG')\\n\\t\\t\\t\\t\\tdoc.shipmode = true;\\n\\t\\t\\t\\t}else
{doc.shipmode = falese}&&\\n\\t\\t   (doc.shipinstruct == 'DELIVER IN
PERSON')\\n\\t\\t)} ||\\n\\t\\t if{((doc.partkey == doc.parteky)&&
\\n\\t\\t   \\t(doc.brand == 'Brand#23') &&\\n\\t\\t   \\t(if
{(doc.container == 'MED BAG') || (doc.container == 'MED BOX') (doc.container
== 'MED PKG') || (doc.container == 'MED PACK')\\n\\t\\t   \\t
doc.container=true;\\n\\t\\t\\t    }else{doc.container=false;}\\n\\t\\t
\\t) &&\\n\\t\\t   \\t(doc.quantity >= 10) &&\\n\\t\\t   \\t(doc.quantity
<=
20) &&\\n\\t\\t   \\t(doc.size > 1) &&\\n\\t\\t   \\t(doc.size < 10)
&&\\n\\t\\t   \\t(if {(doc.container == 'MED BAG') || (doc.container == 'MED
BOX') (doc.container == 'MED PKG') || (doc.container == 'MED
PACK')\\n\\t\\t   \\t      doc.container=true;\\n\\t\\t\\t
}else{doc.container=false;}\\n\\t\\t   \\t) &&\\n\\t\\t
\\t(doc.shipinstruct == 'DELIVER IN PERSON')\\n\\t\\t)}
||\\n\\t\\tif{((doc.partkey == doc.parteky) && \\n\\t\\t   \\t(doc.brand ==
'Brand#34') &&\\n        \\t        (if {(doc.container == 'LG CASE') ||
(doc.container == 'LG BOX') (doc.container == 'LG PACK') || (doc.container
== 'LG PKG')\\n\\t\\t   \\t\\tdoc.container=true;\\n\\t\\t\\t
}else{doc.container=false;}\\n\\t\\t   \\t) &&\\n\\t\\t\\t(doc.quantity >=
20) &&\\n\\t\\t   \\t(doc.quantity <= 30) &&\\n\\t\\t   \\t(doc.size >
1)
&&\\n\\t\\t   \\t(doc.size < 15) &&\\n\\t\\t  \\t(if {(doc.container ==
'MED
BAG') || (doc.container == 'MED BOX') (doc.container == 'MED PKG') ||
(doc.container == 'MED PACK')\\n\\t\\t   \\t
doc.container=true;\\n\\t\\t\\t    }else{doc.container=false;}\\n\\t\\t
\\t) &&\\n\\t\\t   \\t(doc.shipinstruct == 'DELIVER IN
PERSON')\\n\\t\\t)}\\n\\temit (null, doc)\\n\\t}\")))"}

-- -----------------------------------------------
[-------WHOAMI------] Mauro Fagnoni
[----------ICQ#---------] 279572903
[--------MSNID--------] maurofagnoni@yahoo.it
[--YAHOOMSNID--] maurofagnoni@gmail.com
[--GOOGLETALK--] mauro.fagnoni@gmail.com
[-GOOGLEWAVE-] mauro.fagnoni@googlewave.com
[------JABBER-------] mauro.fagnoni@gmail.com
[------SKYPE--------] mauro.fagnoni
[-----LinuxUser#----] 346345
[----------Blog---------] http://kingmauro.wordpress.com
-----------------------------------------------

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message