Hi, i've rewrite the query but i've also an error....
now whats the problem?
regards
{
"map":"
function(doc){
if (
(
(doc.partkey == doc.parteky) &&
(doc.brand == 'Brand#12') &&
((doc.container == 'SM CASE') || (doc.container == 'SM
BOX') || (doc.container == 'SM PACK') || (doc.container == 'SM PKG')) &&
(doc.quantity >= 1) &&
(doc.quantity <= 11) &&
((doc.size > 1)&&(doc.size < 5)) &&
((doc.shipmode == 'AIR') || (doc.shipmode == 'AIR
REG'))&&
(doc.shipinstruct == 'DELIVER IN PERSON')
)
||
(
(doc.partkey == doc.parteky)&&
(doc.brand == 'Brand#23') &&
(doc.container == 'MED BAG') || (doc.container == 'MED
BOX') || (doc.container == 'MED PKG') || (doc.container == 'MED PACK')) &&
(doc.quantity >= 10) &&
(doc.quantity <= 20) &&
((doc.size > 1) && (doc.size < 10)) &&
((doc.shipmode == 'AIR') || (doc.shipmode == 'AIR
REG'))&&
(doc.shipinstruct == 'DELIVER IN PERSON')
)
||
(
(doc.partkey == doc.parteky) &&
(doc.brand == 'Brand#34') &&
((doc.container == 'LG CASE') || (doc.container == 'LG
BOX') || (doc.container == 'LG PACK') || (doc.container == 'LG PKG')) &&
(doc.quantity >= 20) &&
(doc.quantity <= 30) &&
((doc.size > 1) &&(doc.size < 15)) &&
((doc.shipmode == 'AIR') || (doc.shipmode == 'AIR
REG'))&&
(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;
}"
}
2011/5/29 Mark Hahn <[email protected]>
> 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
>
--
-----------------------------------------------
[-------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
-----------------------------------------------