Fwd: Patch for DBD::mysql

Rob Hoelz <[email protected]> Fri, 29 Apr 2011 10:46:02 -0500
Newsgroups gmane.comp.db.mysql.perl
Message-ID <[email protected]>
--Apple-Mail-12--632751515
Content-Type: multipart/alternative; boundary=Apple-Mail-10--632751559


--Apple-Mail-10--632751559
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
	charset=us-ascii

Bumping and forwarding to mailing list.

Begin forwarded message:

> From: Rob Hoelz <[email protected]>
> Date: April 21, 2011 3:26:17 PM CDT
> To: [email protected]
> Subject: Patch for DBD::mysql
> 
> Hello Patrick,
> 
> Attached is a patch for DBD::mysql that adds asynchronous query support
> on top to DBD-mysql-4.018.  It's pretty hefty (about 1500 lines), so
> please feel free to contact me if you have any questions or comments
> about the code, its formatting, or its acceptability into the DBD-mysql
> distribution.  Before you get started, I'd like to point out a few
> things about the asynchronous interface:
> 
> - It relies on mysql_send_query and mysql_read_query_result, which are
>  both undocumented, so the code could break with a future MySQL client
>  library.  However, all of the new code is conditionally compiled when
>  MYSQL_ASYNC is set to 1, so if Makefile.PL detects this and sets
>  MYSQL_ASYNC appropriately, it shouldn't be an issue.
> 
> - Asynchronous queries conflict with server-side prepared statements.
>  I don't know of a way around this, but I figured that it's an
>  acceptable comprimise for the time being.
> 
> - A bit of the code currently relies on poll.h, which may make it more
>  difficult to build this module on Win32.
> 
> - Calling swap_inner_handle during an async query could break some
>  things; but I feel like if a user does that knowingly, they're asking
>  for trouble.
> 
> Other than that, the changes remain backwards compatible with
> DBD::mysql.  Please let me know what you think!
> 
> -Rob


--Apple-Mail-10--632751559
Content-Type: multipart/mixed;
	boundary=Apple-Mail-11--632751559


--Apple-Mail-11--632751559
Content-Transfer-Encoding: 7bit
Content-Type: text/html;
	charset=us-ascii

<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Bumping and forwarding to mailing list.</body></html>
--Apple-Mail-11--632751559
Content-Disposition: attachment;
	filename=mysql-async.patch.gz
Content-Type: application/x-gzip;
	name="mysql-async.patch.gz"
Content-Transfer-Encoding: base64

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

--Apple-Mail-11--632751559
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=us-ascii

<html><head></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space; =
"><br><div><br><div>Begin forwarded message:</div><br =
class=3D"Apple-interchange-newline"><blockquote type=3D"cite"><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px;"><span style=3D"font-family:'Helvetica'; =
font-size:medium; color:rgba(0, 0, 0, 1);"><b>From: </b></span><span =
style=3D"font-family:'Helvetica'; font-size:medium;">Rob Hoelz &lt;<a =
href=3D"mailto:[email protected]">[email protected]</a>&gt;<br></span></div><d=
iv style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px;"><span style=3D"font-family:'Helvetica'; =
font-size:medium; color:rgba(0, 0, 0, 1);"><b>Date: </b></span><span =
style=3D"font-family:'Helvetica'; font-size:medium;">April 21, 2011 =
3:26:17 PM CDT<br></span></div><div style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"><span =
style=3D"font-family:'Helvetica'; font-size:medium; color:rgba(0, 0, 0, =
1);"><b>To: </b></span><span style=3D"font-family:'Helvetica'; =
font-size:medium;"><a =
href=3D"mailto:[email protected]">[email protected]</a><br></span></div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px;"><span style=3D"font-family:'Helvetica'; =
font-size:medium; color:rgba(0, 0, 0, 1);"><b>Subject: </b></span><span =
style=3D"font-family:'Helvetica'; font-size:medium;"><b>Patch for =
DBD::mysql</b><br></span></div><br><div>Hello Patrick,<br><br>Attached =
is a patch for DBD::mysql that adds asynchronous query support<br>on top =
to DBD-mysql-4.018. &nbsp;It's pretty hefty (about 1500 lines), =
so<br>please feel free to contact me if you have any questions or =
comments<br>about the code, its formatting, or its acceptability into =
the DBD-mysql<br>distribution. &nbsp;Before you get started, I'd like to =
point out a few<br>things about the asynchronous interface:<br><br>- It =
relies on mysql_send_query and mysql_read_query_result, which are<br> =
&nbsp;both undocumented, so the code could break with a future MySQL =
client<br> &nbsp;library. &nbsp;However, all of the new code is =
conditionally compiled when<br> &nbsp;MYSQL_ASYNC is set to 1, so if <a =
href=3D"http://Makefile.PL">Makefile.PL</a> detects this and sets<br> =
&nbsp;MYSQL_ASYNC appropriately, it shouldn't be an issue.<br><br>- =
Asynchronous queries conflict with server-side prepared statements.<br> =
&nbsp;I don't know of a way around this, but I figured that it's an<br> =
&nbsp;acceptable comprimise for the time being.<br><br>- A bit of the =
code currently relies on poll.h, which may make it more<br> =
&nbsp;difficult to build this module on Win32.<br><br>- Calling =
swap_inner_handle during an async query could break some<br> =
&nbsp;things; but I feel like if a user does that knowingly, they're =
asking<br> &nbsp;for trouble.<br><br>Other than that, the changes remain =
backwards compatible with<br>DBD::mysql. &nbsp;Please let me know what =
you think!<br><br>-Rob<br></div></blockquote></div><br></body></html>=

--Apple-Mail-11--632751559--

--Apple-Mail-10--632751559--

--Apple-Mail-12--632751515
content-type: application/pgp-signature; x-mac-type=70674453;
	name=PGP.sig
content-description: This is a digitally signed message part
content-disposition: inline; filename=PGP.sig
content-transfer-encoding: 7bit

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Darwin)

iEYEARECAAYFAk263ToACgkQUoGaR6SGEarDxwCfZbLDKEeSdCyyZS4dasCCB7Mr
RLYAn2r+1aldyATEqZK9WtVhYRTWV/IO
=ynBo
-----END PGP SIGNATURE-----

--Apple-Mail-12--632751515--