I've posted a patch from my experiments to the ticket. I'm thinking this'll require some Erlang-fu...?
Try not to laugh! ;^) On Mon, Sep 28, 2009 at 1:59 PM, Chris Anderson <[email protected]> wrote: > On Mon, Sep 28, 2009 at 11:34 AM, Zachary Zolton > <[email protected]> wrote: >> Guys, >> >> I've started a ticket for this: >> https://issues.apache.org/jira/browse/COUCHDB-514 >> >> I don't know what level of effort would be required to fix this, or if >> this is even compatible with the current view server protocol. I'm >> motivated to solve this, but I'd need some coaching from someone with >> more knowledge of CouchDB view server internals. >> > > I'm into getting this to happen too. I barely have time, but I can advise. > > It wouldn't hurt to post a patch of what you tried, even if it didn;t > work, as it will let other know which code you are digging into. > > Chris > >> >> Cheers, >> >> Zach >> >> >> On Sun, Sep 27, 2009 at 11:35 PM, Chris Anderson <[email protected]> wrote: >>> On Sun, Sep 27, 2009 at 8:26 PM, Zachary Zolton >>> <[email protected]> wrote: >>>> Hmm... I can't do anything that doesn't result in a view server timeout. >>>> (^_-) >>>> >>>> Shall I open an issue? I can discuss what I tried, as well... >>>> >>> >>> It never hurts to start a ticket. Especially if you have patches. >>> >>> Thinking about it more, it seems like the Erlang side is gonna be >>> looking for that start signal before it will send a row. We'll need to >>> design a dont-start signal, so that it can get a row without sending >>> headers. >>> >>>> On Sun, Sep 27, 2009 at 12:06 PM, Paul Davis >>>> <[email protected]> wrote: >>>>> On Sun, Sep 27, 2009 at 1:04 PM, Zachary Zolton >>>>> <[email protected]> wrote: >>>>>> Hey guys, newb question for you: the make script concatenates all the >>>>>> /share/server/*.js scripts into main.js, right? >>>>>> >>>>> >>>>> yepper. >>>>> >>>>>> I'm still trying to figure this stuff out... >>>>>> >>>>>> On Sat, Sep 26, 2009 at 11:35 PM, Zachary Zolton >>>>>> <[email protected]> wrote: >>>>>>> I'll start studying the query_server_spec.rb script; I think I might >>>>>>> be able to handle this in JavaScript... >>>>>>> >>>>>>> On Sat, Sep 26, 2009 at 11:22 PM, Chris Anderson <[email protected]> >>>>>>> wrote: >>>>>>>> On Sat, Sep 26, 2009 at 8:57 PM, Paul Davis >>>>>>>> <[email protected]> wrote: >>>>>>>>> its been awhile since i studied the Erlang side of this, but IIRC, >>>>>>>>> once getRow() returns, the response has started which means that you >>>>>>>>> can't send a redirect. To get it working proper then would require a >>>>>>>>> bit of a patch to wait on starting the response until the first output >>>>>>>>> from the _list function. >>>>>>>>> >>>>>>>> >>>>>>>> Yes I think it would be a simple patch, once you understand the >>>>>>>> entrails of the _list system. You should read the query_server_spec.rb >>>>>>>> to see what gets sent by the query server on first getRow() call. >>>>>>>> >>>>>>>> It may be that this patch can be accomplished just in the javascript >>>>>>>> side. >>>>>>>> >>>>>>>> Chris >>>>>>>> >>>>>>>>> Paul Davis >>>>>>>>> >>>>>>>>> On Sat, Sep 26, 2009 at 11:39 PM, Zachary Zolton >>>>>>>>> <[email protected]> wrote: >>>>>>>>>> Hey guys, >>>>>>>>>> >>>>>>>>>> I need to find a way to do a redirect from a _list function after >>>>>>>>>> calling the getRow() function. After looking at render.js for a while >>>>>>>>>> I can't see how to solve this without at least adding to the API. >>>>>>>>>> >>>>>>>>>> Basically, I think that calling getRow() shouldn't cause the view >>>>>>>>>> server to send the headers (or awaiting chunks) unless we've already >>>>>>>>>> called send() or something like that. That way, we can return from >>>>>>>>>> the >>>>>>>>>> _list function after iterating to the first row that should redirect. >>>>>>>>>> (I'm not sure if this is a breaking change from the current >>>>>>>>>> semantics, >>>>>>>>>> however...) >>>>>>>>>> >>>>>>>>>> Would greatly appreciate a little guidance on how to attack this! >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Cheers, >>>>>>>>>> >>>>>>>>>> Zach >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> ---------- Forwarded message ---------- >>>>>>>>>> From: Chris Anderson <[email protected]> >>>>>>>>>> Date: Fri, Sep 25, 2009 at 2:15 PM >>>>>>>>>> Subject: Re: Redirect from _list function? >>>>>>>>>> To: Zachary Zolton <[email protected]> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Fri, Sep 25, 2009 at 11:01 AM, Zachary Zolton >>>>>>>>>> <[email protected]> wrote: >>>>>>>>>>> So, now I find that using the send() function to perform the >>>>>>>>>>> redirect >>>>>>>>>>> doesn't work after the first time I call getRow(). Upon checking out >>>>>>>>>>> render.js, I see that the getRow() function calls sendStart()—which >>>>>>>>>>> I >>>>>>>>>>> haven't quite yet figured out—but I can tell there's something fishy >>>>>>>>>>> going on there... >>>>>>>>>>> >>>>>>>>>>> Would I be correct to assume that the headers are already set after >>>>>>>>>>> calling getRow()? >>>>>>>>>> >>>>>>>>>> Yes... The headers are sent when the first getRow is called. Fixing >>>>>>>>>> this is definitely something I'd support. >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On Fri, Sep 25, 2009 at 12:11 PM, Chris Anderson >>>>>>>>>>> <[email protected]> wrote: >>>>>>>>>>>> On Fri, Sep 25, 2009 at 8:40 AM, Zachary Zolton >>>>>>>>>>>> <[email protected]> wrote: >>>>>>>>>>>>> Okay, I've update this section to differentiate between the 0.9 >>>>>>>>>>>>> and >>>>>>>>>>>>> 0.10 _list API: >>>>>>>>>>>>> >>>>>>>>>>>>> http://wiki.apache.org/couchdb/Formatting_with_Show_and_List#Sending_a_Redirect >>>>>>>>>>>>> >>>>>>>>>>>>> Now, I'm feeling that the Other Fun Things section could use a >>>>>>>>>>>>> bit of >>>>>>>>>>>>> love. Hmm... :^) >>>>>>>>>>>> >>>>>>>>>>>> Thanks for keeping the wiki in mind! >>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> On Fri, Sep 25, 2009 at 10:19 AM, Zachary Zolton >>>>>>>>>>>>> <[email protected]> wrote: >>>>>>>>>>>>>> Sweet! I'll try to amend the wiki page for the _list API... >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Fri, Sep 25, 2009 at 10:17 AM, Jason Davies >>>>>>>>>>>>>> <[email protected]> wrote: >>>>>>>>>>>>>>> On 25 Sep 2009, at 16:16, Zachary Zolton wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Thanks for all the help, guys! Shall I delete that JIRA issue? >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> I already did :-) >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>> Jason Davies >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> www.jasondavies.com >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> Chris Anderson >>>>>>>>>>>> http://jchrisa.net >>>>>>>>>>>> http://couch.io >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> Chris Anderson >>>>>>>>>> http://jchrisa.net >>>>>>>>>> http://couch.io >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Chris Anderson >>>>>>>> http://jchrisa.net >>>>>>>> http://couch.io >>>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >>> >>> >>> -- >>> Chris Anderson >>> http://jchrisa.net >>> http://couch.io >>> >> > > > > -- > Chris Anderson > http://jchrisa.net > http://couch.io >
