tag:blogger.com,1999:blog-16959946.post5616781279714941807..comments2023-12-09T16:44:47.897+01:00Comments on The Data Charmer: Dispelling some unintentional MySQL FUDGiuseppe Maxiahttp://www.blogger.com/profile/15801583338057324813noreply@blogger.comBlogger14125tag:blogger.com,1999:blog-16959946.post-88490348107940829092010-12-02T13:56:50.988+01:002010-12-02T13:56:50.988+01:00Giuseppe,
"One thing is a subscription to s...Giuseppe, <br /><br />"One thing is a subscription to services (MySQL Enterprise). If you buy this, you are not getting a license (unless you ask for it explicitly) but an agreement about services for a given periods."<br /><br />This is not correct. MySQL Enterprise now comes with a commercial license.<br /><br />Perhaps for the sake of the article you mentioned, it does not change anything, but for end users, this is a change that has a massive impact.Ivanhttps://www.blogger.com/profile/04013184952866618726noreply@blogger.comtag:blogger.com,1999:blog-16959946.post-70562377020649470932010-11-30T20:24:11.736+01:002010-11-30T20:24:11.736+01:00Perhaps Datacharmer, or somebody should take the t...Perhaps Datacharmer, or somebody should take the time and publicly discuss the implications of using a BSD license "shim" to interface with a GPL'd project that has a collection of FOSS exceptions. <br /><br />I believe all of those parts (GPL, FOSS exception, BSD) come into play. <br /><br />GPL:<br />GPL requires open sourcing of all code. <br /><br />FOSS EXCEPTION:<br />GPL including MySQL may include a FOSS exception. Meaning linking with other open source code such as BSD , or apache, or whatever PHP uses.. is okay. <br /><br />BSD SHIM:<br />By linking to the BSD code and isolating the GPL code the user is able to isolate the requirements of the GPL's viral nature. <br /><br />This topic is very very important for a dual licensed project like MySQL especially due to the opinion regarding "linking" and use of the protocol. <br /><br />Or perhaps for other reasons..<br /><br /> --<br />Tom HanlonAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-16959946.post-25306807394190228472010-11-29T18:22:34.668+01:002010-11-29T18:22:34.668+01:00@strcmp,
The autocommit thing is somewhat of a re...@strcmp,<br /><br />The autocommit thing is somewhat of a red herring.<br /><br />In MySQL all DDL (with minor exceptions like CREATE/DROP TEMPORARY TABLE) do an implicit commit. <br /><br />Transactional DDL is actually rather uncommon.<br /><br />SET storage_engine=INNODB;<br />SET SQL_MODE=STRICT_TRANS_TABLES;<br /><br />BEGIN;<br />CREATE TABLE blah (c1 int); #implicit commit<br /><br />#note autocommit is true <br />#we are no longer in a transaction because CREATE TABLE committed.<br />insert into blah values (1);<br />#committed<br /><br />#does nothing<br />rollback;<br /><br />-- Contrasted with the right way -- <br /><br />#implicit commit<br />CREATE TABLE blah (c1 int); <br /><br />#start new transaction<br />BEGIN;<br /><br />#we are in a transaction<br />insert into blah values (1);<br /><br />#rolls back the change<br />rollback;Justin Swanharthttps://www.blogger.com/profile/08193089637089861226noreply@blogger.comtag:blogger.com,1999:blog-16959946.post-12294800961454954302010-11-29T15:38:34.412+01:002010-11-29T15:38:34.412+01:00He uses BEGIN and ROLLBACK, which should switch of...He uses BEGIN and ROLLBACK, which should switch off autommit temporarily. At least that's what the manual says:<br /><br />"<br />To disable autocommit mode for a single series of statements, use the START TRANSACTION statement: <br /><br />START TRANSACTION;<br />SELECT @A:=SUM(salary) FROM table1 WHERE type=1;<br />UPDATE table2 SET summary=@A WHERE type=1;<br />COMMIT;<br /><br />With START TRANSACTION, autocommit remains disabled until you end the transaction with COMMIT or ROLLBACK. The autocommit mode then reverts to its previous state. <br /><br />BEGIN and BEGIN WORK are supported as aliases of START TRANSACTION for initiating a transaction. START TRANSACTION is standard SQL syntax and is the recommended way to start an ad-hoc transaction. <br />"strcmpnoreply@blogger.comtag:blogger.com,1999:blog-16959946.post-17950113064538871392010-11-29T12:22:44.068+01:002010-11-29T12:22:44.068+01:00@stewart:
"it means that if you are not distr...@stewart:<br /><em>"it means that if you are not distributing the MySQL Server and your product is not GPL licensed, then you can use libdrizzle and avoid licensing fees from Oracle"</em><br /><br />What you say is true otherwise, but the "not distributing the MySQL Server" part is irrelevant/distraction. The GPL itself even states that just because you distribute two separate pieces of software together doesn't mean that GPL applies from one to the other. On the other hand this also follows from copyright law, that one piece of software is not a derivative work of another just because they are stored on the same CD, same ZIP file, etc... As an example, many packages on a Linux CD can connect to a MySQL Server, but this doesn't make them GPL (such as PHP with its own PHP ND driver).<br /><br />In other words, whether MySQL Server is distributed together or separately with something else is a completely irrelevant factor.hingohttps://www.blogger.com/profile/09201666166374161923noreply@blogger.comtag:blogger.com,1999:blog-16959946.post-34411933566311865582010-11-29T10:26:31.284+01:002010-11-29T10:26:31.284+01:00I don't use mysql, but I know about "MySQ...I don't use mysql, but I know about "MySQL is not ACID complaint" topic.<br /><br />He can use "autocommit=" for rolling back data.<br />and we can change transaction isolation on mysql...Surachart Opunhttps://www.blogger.com/profile/05646896104906516714noreply@blogger.comtag:blogger.com,1999:blog-16959946.post-52608701528935107122010-11-29T07:07:01.969+01:002010-11-29T07:07:01.969+01:00@shantanu - I am confused by your comment.
The &q...@shantanu - I am confused by your comment.<br /><br />The "MySQL is not ACID" article cited by Giuseppe is misleading to some of us because it really should be "MySQL DDL is not ACID". I don't care much about. It would be nice if DDL could be part of a transaction but it isn't a big deal to me.<br /><br />The bug you cited has nothing to do with DDL. Nor does it have anything to do with violation of ACID behavior. The bug is that InnoDB does not rollback a transaction in some cases when a statement is killed. That means that the transaction is still open and can be committed or rolled back by the user. While the behavior is probably not desirable, the transaction is not busted.<br /><br />Finally, what do any of the other bugs you mention have to do with the topic of this post?Mark Callaghanhttps://www.blogger.com/profile/09590445221922043181noreply@blogger.comtag:blogger.com,1999:blog-16959946.post-28639084080132369032010-11-29T06:18:02.176+01:002010-11-29T06:18:02.176+01:00>> This surprising piece of news...
may be w...>> This surprising piece of news...<br />may be wrong. But the bug 45309 is real and it justifies raising the concern about ACID compliance.<br /><br />http://bugs.mysql.com/bug.php?id=45309<br /><br />I guess some people are more annoyed due to bugs like (29898) Date function returns inconsistent results or (28929) Comparing date field with now broken.<br />or atleast I evaluated my options when I was hit hard by the bug 29898. I could upgrade the version, but in that case there are other bugs related to the new version waiting in wings. Tracking bugs should not be the only task I will be doing.shantanuhttps://www.blogger.com/profile/04386423685935921709noreply@blogger.comtag:blogger.com,1999:blog-16959946.post-76604126797718579002010-11-29T00:47:59.633+01:002010-11-29T00:47:59.633+01:00good to clear it up.
libdrizzle is an interesting...good to clear it up.<br /><br />libdrizzle is an interesting one as it means that if you are not distributing the MySQL Server and your product is not GPL licensed, then you can use libdrizzle and avoid licensing fees from Oracle (as you have included no GPL licensed code from MySQL).<br /><br />Also interesting only to the superbly pedantic: Oracle doesn't own all the MySQL Server code. Interestingly enough, there's parts to which it just has an appropriate license (BSD).Stewart Smithhttps://www.blogger.com/profile/00989044306462002000noreply@blogger.comtag:blogger.com,1999:blog-16959946.post-75153448296935733632010-11-29T00:36:03.662+01:002010-11-29T00:36:03.662+01:00@datacharmer
So what? My point is that you're...@datacharmer<br />So what? My point is that you're assuming Mr Schonewille's hypothetical commercial application is linked with the GPL'd client library. If they linked with libdrizzle they wouldn't need a license, and it wouldn't be wishful thinking.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-16959946.post-15949950281909203092010-11-28T22:20:15.838+01:002010-11-28T22:20:15.838+01:00(Comment received from Henrik Ingo)
Hi Giuseppe
A...<b>(Comment received from Henrik Ingo)</b><br />Hi Giuseppe<br /><br />Actually, you are also a bit behind on the latest news here.<br /><br />Another source of disinformation is "If you decide to pay for a MySQL license, you don't actually pay for the software." This is also incorrect. Oracle sells two kind of things with MySQL. One thing is a subscription to services (MySQL Enterprise). If you buy this, you are not getting a license (unless you ask for it explicitly) but an agreement about services for a given periods.<br /><br />On this point neither of you are correct: with the new Oracle pricelist, they do sell licenses. (Or in the case they are not perpetual licenses, you might say they "rent" licenses.) If you take an Oracle subscription, the default is that Oracle offers you binaries under a proprietary license. This is according to http://blogs.the451group.com/opensource/2010/11/11/is-mysql-open-core/ where the author also talked directly to Oracle.<br /><br />I am afraid that this wishful information is not correct. The GPL FAQ states it clearly: If a library is released under the GPL (not the LGPL), does that mean that any program which uses it has to be under the GPL or a GPL-compatible license? Yes, because the program as it is actually run includes the library.<br /><br />The idea of how the GPL works is clear to us. Where the effect of the GPL actually begins and ends has always been a matter of debate, especially for MySQL and the standard use case of a client server application. For instance, you yourself was active in removing comments from the source code claiming that the GPL travels from the server to the client via the "proprietary" MySQL client protocol, which Sun MySQL sales manager asserted even relatively recently. (http://krow.livejournal.com/684068.html?thread=2669860#t2669860) Probably against the official company policy of course, but still a good example of over asserting the GPL quite recently.<br /><br />Anyway, Oracle has been very clear that in their view the GPL does not affect an application that connects to a MySQL server via the standard interfaces like JDBC etc. This opinion is well documented for instance from the acquisition process.<br /><br />Whether you personally agree with Oracle's interpretation is of course a different matter, but since the original poster claimed to have talked to an Oracle representative, I have every reason to believe that a) he reported on that discussion correctly and b) Oracle is being consistent in their view on this issue. (Which is very welcome, to be honest!)<br /><br />(There are of course still many use cases where most of us agree that the GPL would apply, such as the trivial example of an OEM that actually mixes his own code into MySQL source code. Most FOSS lawyers also agree that libmysqld is a clear such case, but there are also differing opinions.)Giuseppe Maxiahttps://www.blogger.com/profile/15801583338057324813noreply@blogger.comtag:blogger.com,1999:blog-16959946.post-40325828899019349362010-11-28T22:17:44.156+01:002010-11-28T22:17:44.156+01:00Hi Giuseppe
Actually, you are also a bit behind o...Hi Giuseppe<br /><br />Actually, you are also a bit behind on the latest news here.<br /><br /><i>Another source of disinformation is "If you decide to pay for a MySQL license, you don't actually pay for the software." This is also incorrect. Oracle sells two kind of things with MySQL. One thing is a subscription to services (MySQL Enterprise). If you buy this, you are not getting a license (unless you ask for it explicitly) but an agreement about services for a given periods.</i><br /><br />On this point neither of you are correct: with the new Oracle pricelist, they do sell licenses. (Or in the case they are not perpetual licenses, you might say they "rent" licenses.) If you take an Oracle subscription, the default is that Oracle offers you binaries under a proprietary license. This is according to http://blogs.the451group.com/opensource/2010/11/11/is-mysql-open-core/ where the author also talked directly to Oracle.<br /><br /><em>I am afraid that this wishful information is not correct. The GPL FAQ states it clearly: If a library is released under the GPL (not the LGPL), does that mean that any program which uses it has to be under the GPL or a GPL-compatible license? Yes, because the program as it is actually run includes the library.</em><br /><br />The idea of how the GPL works is clear to us. Where the effect of the GPL actually begins and ends has always been a matter of debate, especially for MySQL and the standard use case of a client server application. For instance, you yourself was active in removing comments from the source code claiming that the GPL travels from the server to the client via the "proprietary" MySQL client protocol, which Sun MySQL sales manager asserted even relatively recently. (http://krow.livejournal.com/684068.html?thread=2669860#t2669860) Probably against the official company policy of course, but still a good example of over asserting the GPL quite recently.<br /><br />Anyway, Oracle has been very clear that in their view the GPL does not affect an application that connects to a MySQL server via the standard interfaces like JDBC etc. This opinion is well documented for instance from the acquisition process. <br /><br />Whether you personally agree with Oracle's interpretation is of course a different matter, but since the original poster claimed to have talked to an Oracle representative, I have every reason to believe that a) he reported on that discussion correctly and b) Oracle is being consistent in their view on this issue. (Which is very welcome, to be honest!)<br /><br />(There are of course still many use cases where most of us agree that the GPL would apply, such as the trivial example of an OEM that actually mixes his own code into MySQL source code. Most FOSS lawyers also agree that libmysqld is a clear such case, but there are also differing opinions.)Henrik Ingohttp://openlife.ccnoreply@blogger.comtag:blogger.com,1999:blog-16959946.post-86832479515829731362010-11-28T21:37:26.776+01:002010-11-28T21:37:26.776+01:00@anonymous,
So what?@anonymous,<br />So what?Giuseppe Maxiahttps://www.blogger.com/profile/15801583338057324813noreply@blogger.comtag:blogger.com,1999:blog-16959946.post-74733281386412714102010-11-28T21:20:18.231+01:002010-11-28T21:20:18.231+01:00I take your point about the MySQL client library b...I take your point about the MySQL client library being GPL, and not LGPL, but it's worth mentioning that libdrizzle is a BSD licensed client library that is compatible with MySQL.Anonymousnoreply@blogger.com