looks good,  I'll try it,  thanks!<br><br><div class="gmail_quote">On 16 April 2013 17:43, Loïc Hoguin <span dir="ltr"><<a href="mailto:essen@ninenines.eu" target="_blank">essen@ninenines.eu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">bank_mysql has binary prepared statements: <a href="https://github.com/extend/bank_mysql" target="_blank">https://github.com/extend/<u></u>bank_mysql</a><br>

<br>
You can use it with the bank pool (<a href="https://github.com/extend/bank" target="_blank">https://github.com/extend/<u></u>bank</a>) or without, whichever you prefer.<br>
<br>
No user guide at this time but it should be pretty easy to read.<div class="im"><br>
<br>
On 04/16/2013 10:07 PM, Pablo Polvorin wrote:<br>
</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">
Is there a driver that supports the binary mysql protocol (not the<br>
textual, sql one)  for  prepared statements?.<br>
<br>
I come in a situation recently on a query where we have  to bind lots of<br>
parameters into a prepared statement,  and the time to escape all of<br>
them by the driver and send the corresponding  SET @N = ..   was<br>
substantial,  actually larger than the time it takes mysql to run the<br>
query.  Using the binary protocol in this situation would help.<br>
<br>
I found <a href="http://erlmysql.sourceforge.net/" target="_blank">http://erlmysql.sourceforge.<u></u>net/</a>  that do support the binary<br>
protocol, and although it was much faster on this particular query<br>
(order of magnitudes faster)  it sometimes crashed and I found the code<br>
more complex than other mysql drivers I've worked with,  both reason to<br>
make me nervous about using it.  Is anyone using it on production?,  do<br>
you know alternatives?<br>
<br>
<br></div>
*|<div class="im"><br>
|*<br>
<br>
<br>
<br>
<br>
On 16 April 2013 07:06, Jesper Louis Andersen<br>
<<a href="mailto:jesper.louis.andersen@erlang-solutions.com" target="_blank">jesper.louis.andersen@erlang-<u></u>solutions.com</a><br></div><div class="im">
<mailto:<a href="mailto:jesper.louis.andersen@erlang-solutions.com" target="_blank">jesper.louis.andersen@<u></u>erlang-solutions.com</a>>> wrote:<br>
<br>
    I may be interested in helping out on this thing as well. I have<br>
    some work to do changing driver infrastructure to Emysql and when<br>
    that comes around (in a couple of days/weeks), i'll probably also<br>
    try to look into some merging of patches if possible.<br>
<br>
    Please keep me in the loop :)<br>
<br>
    Jesper Louis Andersen<br>
       Erlang Solutions Ltd., Copenhagen<br>
<br>
<br>
<br>
    On Apr 11, 2013, at 12:41 AM, Henning Diedrich <<a href="mailto:hd2010@eonblast.com" target="_blank">hd2010@eonblast.com</a><br></div><div class="im">
    <mailto:<a href="mailto:hd2010@eonblast.com" target="_blank">hd2010@eonblast.com</a>>> wrote:<br>
<br>
     > Hi Garrett,<br>
     ><br>
     > great, I'll check out your connection time outs, thanks a lot!<br>
     ><br>
     > It was quite fun to find Jacob, Nick and Fredrik to write this<br>
    [1] up. It certainly felt more like historical forensics from some<br>
    point on although I was throughout only trying to find out which<br>
    driver version made most sense. Which in the end came to light in a<br>
    way I could not read out of the source.<br>
     ><br>
     > If someone would like to share the story of his fork I'll be<br>
    happy to include it, for the fun of it. Somehow, this all fits MySQL.<br>
     ><br>
     > Henning<br>
     ><br>
     > [1] <a href="https://github.com/eonblast/Emysql#History" target="_blank">https://github.com/eonblast/<u></u>Emysql#History</a><br>
     ><br>
     ><br>
     > On Apr 11, 2013, at 12:25 AM, Garrett Smith <<a href="mailto:g@rre.tt" target="_blank">g@rre.tt</a><br></div><div class="im">
    <mailto:<a href="mailto:g@rre.tt" target="_blank">g@rre.tt</a>>> wrote:<br>
     ><br>
     >> Someday someone will write a book on the history of the Erlang MySQL<br>
     >> libraries. Not a great read, but it'd have to be scholarly.<br>
     >><br>
     >> I've modified the Eonblast library with some connection timeout<br>
    tweaks<br>
     >> (as in, supporting them):<br>
     >><br>
     >> <a href="https://github.com/gar1t/Emysql" target="_blank">https://github.com/gar1t/<u></u>Emysql</a><br>
     >><br>
     >><br>
     >><br>
     >> On Wed, Apr 10, 2013 at 4:59 PM, Dave Smith <<a href="mailto:dizzyd@dizzyd.com" target="_blank">dizzyd@dizzyd.com</a><br></div><div><div class="h5">
    <mailto:<a href="mailto:dizzyd@dizzyd.com" target="_blank">dizzyd@dizzyd.com</a>>> wrote:<br>
     >>> Hi Henning,<br>
     >>><br>
     >>> Thanks for the pointers. I must admit that I find the level of<br>
    snark in the<br>
     >>> emysql history delightful, considering that it's at least as<br>
    forked as<br>
     >>> erlang-mysql-driver now. :)<br>
     >>><br>
     >>> There are a number of good fixes for the emysql driver, but<br>
    they are on 20<br>
     >>> different forks across Github. Looking over csrl's, fixes, I'm<br>
    pretty<br>
     >>> concerned those aren't in mainline since there are some<br>
    non-trivial pooling<br>
     >>> problems he's addressed (would you like some irony with that<br>
    irony? :)).<br>
     >>><br>
     >>> Do you know if eonblast is planning to incorporate all the work<br>
    from those<br>
     >>> different forks? I think we need to build some momentum behind<br>
    a driver and<br>
     >>> I'm certainly happy to direct people towards a maintained one.<br>
     >>><br>
     >>> IMO, it would also be handy if the driver wasn't pooled, but<br>
    used poolboy<br>
     >>> since getting the pooling right is rather difficult. (I know<br>
    that poolboy<br>
     >>> has been tested with some of Quviq's concurrent checking stuff<br>
    and a number<br>
     >>> of race conditions addressed).<br>
     >>><br>
     >>> Thanks!<br>
     >>><br>
     >>> D.<br>
     >>><br>
     >>><br>
     >>> On Wed, Apr 10, 2013 at 3:00 PM, Henning Diedrich<br></div></div>
    <<a href="mailto:hd2010@eonblast.com" target="_blank">hd2010@eonblast.com</a> <mailto:<a href="mailto:hd2010@eonblast.com" target="_blank">hd2010@eonblast.com</a>>><div><div class="h5"><br>
     >>> wrote:<br>
     >>>><br>
     >>>> Hi Dave,<br>
     >>>><br>
     >>>> if I remember right, you were using the driver that came from<br>
    Yxa via<br>
     >>>> Yarif's erlang-emysql-driver<br>
    <a href="https://github.com/dizzyd/erlang-mysql-driver" target="_blank">https://github.com/dizzyd/<u></u>erlang-mysql-driver</a> ?<br>
     >>>> (Here is the history of that.<br>
    <a href="https://github.com/eonblast/Emysql#History" target="_blank">https://github.com/eonblast/<u></u>Emysql#History</a>)<br>
     >>>><br>
     >>>> It was found less than perfect when Nick and Jacob gave it<br>
    something to<br>
     >>>> chew building Rupture. I never spotted the problems myself I<br>
    should add.<br>
     >>>> That's purely from Nick Gerakine's and Jacob Vorreuter's words.<br>
     >>>><br>
     >>>> But they report that with much effort they could not get the<br>
    races out of<br>
     >>>> it. That's why they started emysql, which I later started<br>
    maintaining, and<br>
     >>>> which Jeremy just mentioned, <a href="https://github.com/eonblast/Emysql" target="_blank">https://github.com/eonblast/<u></u>Emysql</a><br>
     >>>><br>
     >>>> Considerable work went into getting the pooling system of<br>
    Emysql right.<br>
     >>>> (What I don't know is when exactly it got buggy, it may have<br>
    been after<br>
     >>>> Jacob's Emysql fork that now lies dormant.) But I worked a<br>
    while, with help<br>
     >>>> from others to get all races out of the queuing.<br>
     >>>><br>
     >>>> However, the best fork of Emysql, I *think* is currently that<br>
    of Chris<br>
     >>>> Rempel at <a href="https://github.com/csrl/emysql" target="_blank">https://github.com/csrl/emysql</a> as I got behind while<br>
    making<br>
     >>>> Erlvolt, the VoltDB driver, modeled in parts on Emysql. Chris<br>
    did some<br>
     >>>> impressive clean up. Now that Erlvolt is out, I'll turn around<br>
    and catch up<br>
     >>>> asap. But that's not a New York asap.<br>
     >>>><br>
     >>>> An alternative may be to go back to a more original Yxa<br>
    version, like the<br>
     >>>> one possibly still to be found in ejabberd. That may be more<br>
    stable than<br>
     >>>> Yariv's branch that you started out with. The "history" I<br>
    linked to above<br>
     >>>> has the reasons, why that branch may be not quite clean and<br>
    hard to debug.<br>
     >>>><br>
     >>>> Best,<br>
     >>>><br>
     >>>> Henning<br>
     >>>><br>
     >>>> On Apr 10, 2013, at 10:43 PM, Dave Smith <<a href="mailto:dizzyd@dizzyd.com" target="_blank">dizzyd@dizzyd.com</a><br></div></div><div class="im">
    <mailto:<a href="mailto:dizzyd@dizzyd.com" target="_blank">dizzyd@dizzyd.com</a>>> wrote:<br>
     >>>><br>
     >>>>> Hello list,<br>
     >>>>><br>
     >>>>> I'm curious what libraries people are currently using for<br>
    MySQL access<br>
     >>>>> in Erlang. I have an old library on my github that I've kept<br>
    basically<br>
     >>>>> working, but am wondering if there are any<br>
    preferred/production libraries<br>
     >>>>> out there that people like better.<br>
     >>>>><br>
     >>>>> I ask because I'm considering retrofitting the pooling system<br>
    in the<br>
     >>>>> driver I maintain to use poolboy, but figure it was worth<br>
    checking if there<br>
     >>>>> are better alternatives out there. :)<br>
     >>>>><br>
     >>>>> After all, the best code to maintain is the code you don't<br>
    maintain.<br>
     >>>>><br>
     >>>>> D.<br>
     >>>>> ______________________________<u></u>_________________<br>
     >>>>> erlang-questions mailing list<br></div>
     >>>>> <a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a> <mailto:<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@<u></u>erlang.org</a>><div class="im">
<br>
     >>>>> <a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/<u></u>listinfo/erlang-questions</a><br>
     >>>><br>
     >>><br>
     >>><br>
     >>> ______________________________<u></u>_________________<br>
     >>> erlang-questions mailing list<br></div>
     >>> <a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a> <mailto:<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@<u></u>erlang.org</a>><div class="im">
<br>
     >>> <a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/<u></u>listinfo/erlang-questions</a><br>
     >>><br>
     ><br>
     > ______________________________<u></u>_________________<br>
     > erlang-questions mailing list<br></div>
     > <a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a> <mailto:<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@<u></u>erlang.org</a>><div class="im">
<br>
     > <a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/<u></u>listinfo/erlang-questions</a><br>
<br>
    ______________________________<u></u>_________________<br>
    erlang-questions mailing list<br></div>
    <a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a> <mailto:<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@<u></u>erlang.org</a>><div class="im">
<br>
    <a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/<u></u>listinfo/erlang-questions</a><br>
<br>
<br>
<br>
<br>
--<br>
Pablo Polvorin<br>
ProcessOne<br>
<br>
<br>
______________________________<u></u>_________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/<u></u>listinfo/erlang-questions</a><br>
<br>
</div></blockquote><span class="HOEnZb"><font color="#888888">
<br>
<br>
-- <br>
Loďc Hoguin<br>
Erlang Cowboy<br>
Nine Nines<br>
<a href="http://ninenines.eu" target="_blank">http://ninenines.eu</a><br>
</font></span></blockquote></div><br><br clear="all"><br>-- <br>Pablo Polvorin<br>ProcessOne