I just noticed you seem to have the idea that if looks like if{}.
This is not correct. It looks like if(){} in javascript.
On Sun, May 29, 2011 at 11:59 AM, Mark Hahn <[email protected]> wrote:
> Did you fix your syntax errors? You can use jslint to do that before
> I help you. You can ignore the jslint non-syntax errors.
>
> On Sun, May 29, 2011 at 7:40 AM, Mauro Fagnoni <[email protected]>
> wrote:
>> ok i see the problem but i have no a solution....could you give a hand?
>>
>> 2011/5/27 Mark Hahn <[email protected]>
>>
>>> Use http://www.jslint.com/ to check your syntax. I changed the first
>>> part to read like this so it looked liked normal js instead of a big
>>> string ...
>>>
>>> x=function(doc){
>>> if{((doc.partkey == doc.parteky) &&
>>>
>>> It immediately saw the if { which is illegal. It found other errors as
>>> well.
>>>
>>> On Fri, May 27, 2011 at 10:56 AM, Mauro Fagnoni <[email protected]>
>>> wrote:
>>> > 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--------] [email protected]
>>> > [--YAHOOMSNID--] [email protected]
>>> > [--GOOGLETALK--] [email protected]
>>> > [-GOOGLEWAVE-] [email protected]
>>> > [------JABBER-------] [email protected]
>>> > [------SKYPE--------] mauro.fagnoni
>>> > [-----LinuxUser#----] 346345
>>> > [----------Blog---------] http://kingmauro.wordpress.com
>>> > -----------------------------------------------
>>> >
>>>
>>>
>>>
>>> --
>>> Mark Hahn
>>> Website Manager
>>> [email protected]
>>> 949-229-1012
>>>
>>
>>
>>
>> --
>> -----------------------------------------------
>> [-------WHOAMI------] Mauro Fagnoni
>> [----------ICQ#---------] 279572903
>> [--------MSNID--------] [email protected]
>> [--YAHOOMSNID--] [email protected]
>> [--GOOGLETALK--] [email protected]
>> [-GOOGLEWAVE-] [email protected]
>> [------JABBER-------] [email protected]
>> [------SKYPE--------] mauro.fagnoni
>> [-----LinuxUser#----] 346345
>> [----------Blog---------] http://kingmauro.wordpress.com
>> -----------------------------------------------
>>
>
>
>
> --
> Mark Hahn
> Website Manager
> [email protected]
> 949-229-1012
>
--
Mark Hahn
Website Manager
[email protected]
949-229-1012