Filipe, That seems to work fine[1]. I've tried it on both the 1.2.x and master branches and it works with bigcouch-0.4
Cheers, Bob [1] https://gist.github.com/1779568 On Feb 8, 2012, at 8:52 PM, Bob Dionne wrote: > Filipe, > > couch_replicator_api_wrap does like the best place to do this. I'll try this > out in the morning and let you know. > > Thanks also for the explanation about query_args_to_string. Makes sense. > > Best, > > Bob > > On Feb 8, 2012, at 6:20 PM, Filipe David Manana wrote: > >> On Wed, Feb 8, 2012 at 9:31 PM, Bob Dionne <[email protected]> >> wrote: >>> Hi Filipe, >>> >>> I ran into a possible issue replicating from BC 0.4 to CouchDB 1.2.x >>> (someone needs to verify this is a problem and not my local setup). >>> >>> The issue seems to be the treatment of sequence numbers like [2,<<"foo">>]. >>> The latest in 1.2.x of couch_replicator_httpc:send_req runs >>> ?b2l(iolist_to_binary(...)) over that seq and eventually full_url trundles >>> on down to mochiweb_util:quote_plus which loses the brackets and converts >>> the 2 to a %02 >> >> Hi Bob, >> >> I'm assuming this is related to _changes feed request "since" parameter. >> In general, couch_replicator_httpc doesn't do query parameter value >> encoding (other then percent encoding), that task is left to >> couch_replicator_api_wrap.erl - for e.g. some requests require JSON >> encoded values, like open_revs for doc GETs, and others not, like the >> feed parameter for _changes. >> >> If it applies only for that request, I would go for something less >> abstract like (untested) for example: >> >> http://friendpaste.com/6aWgbQaBjMeR9pIshWr5rl >> >> And you can't replace the list comprehension in couch_replicator_httpc >> because there the goal is only to make sure the values are >> lists/strings - when OAuth auth is used, the OAuth signature must be >> computed with the query parameter values unencoded and as >> strings/lists - percent encoding must happen after computing the OAuth >> signature. >> >> regards, >> >>> >>> I can get around this [1] by converting [2,<<"foo">>] to "2-foo" which is >>> the old format, but this is clearly a workaround. Perhaps this should be >>> fixed in mochiweb_util ? >>> >>> As an aside I noticed mochiweb_util:urlencode does exactly what you have >>> in query_to_str_args so those funs can probably go away. >>> >>> Cheers, >>> >>> Bob >>> >>> [1] https://gist.github.com/1772911 >> >> >> >> -- >> Filipe David Manana, >> >> "Reasonable men adapt themselves to the world. >> Unreasonable men adapt the world to themselves. >> That's why all progress depends on unreasonable men." >
