<div dir="ltr">On Mon, Jul 28, 2008 at 3:17 PM, Edward Hades <span dir="ltr">&lt;<a href="mailto:edward.hades@gmail.com">edward.hades@gmail.com</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
-----BEGIN PGP SIGNED MESSAGE-----<br>
Hash: SHA1<br>
<br>
Hi, guys!<br>
<br>
As you possibly know, I&#39;ve been working on MySQLe integration with<br>
Amarok. I have encountered several issues.<br>
<br>
First, MySQLe needs patching. </blockquote><div><br>That isn&#39;t really acceptable. We need to be able to depend on the distro provided packages. <br>&nbsp;</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
By default it compiles without -fPIC flag<br>
that we need, </blockquote><div>fPIC is a build option, so what I said above doesn&#39;t apply. :)<br>&nbsp;</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
it has a maximum key limit of 1000 bytes (although large<br>
key usage in amarok is a concern itself, but more of an optimization<br>
nature). Also, it calls exit() whenever feels like it was offended; I<br>
guess that should be changed to something at least printing what<br>
happened. </blockquote><div><br>We have a contact within MySQL/Sun who has offered to answer questions that we have. Sounds like a good time to invoke him. :) I&#39;ll find the email address and send it to you.<br>&nbsp;</div>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">I&#39;ll make a build script to simplify life for us, but<br>
packaging questions will remain (luckily it&#39;s a build-dep only, so this<br>
is not hard to settle).<br>
</blockquote><div><br>Why is it a build-only dep? Maybe I&#39;m misunderstanding something. <br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

Also, there is a thread safety issue. MySQL requires every thread to<br>
invoke certain procedures (mysql_thread_init and mysql_thread_end)<br>
before accessing its data and before death respectively. I&#39;ve done some<br>
street pthread magic that takes care of initialization, but I still<br>
didn&#39;t come up with a way to run mysql_thread_end before thread exit.</blockquote><div><br>Yea pthread isn&#39;t portable and shouldn&#39;t be used directly really.<br><br>Just an off-my-top, didn&#39;t-look-at-code idea:<br>
You could use QThread::currentThread() to see if the current thread has been initialized or not, and do so in the sqlcollection itself if it needs to be.<br><br>That doesn&#39;t solve the uninitialized issue...<br><br>Seems like the only solution is to explictly call the mysqle uninitalize code when the thread is being deleted. This might not be that hard, its quite possible only the sqlcollection&#39;s querybuilders threads access it (outside of the gui thread).<br>
&nbsp;<br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
Ideas much appreciated ;). It works fine without it, but it results in<br>
wasted resources.<br>
<br>
This being my first post, I&#39;d like to thank you all for the marvelous<br>
piece of software you make and express honor and delight of being<br>
allowed to stick my dirty fingers in it ;) You rock!<br>
</blockquote><div><br>Awesome work. :)<br>&nbsp;</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
All the best,<br>
Edward &quot;Hades&quot; Toroshchin<br>
IRC nickname: Aides</blockquote></div><br></div>