Slashdot Mirror


MySQL Writes Exception for PHP in License

ryanjensen writes "According to an article on News.com, MySQL wrote an exception into its license to allow PHP to use its libraries. From the article: 'Because MySQL owns copyright to all the MySQL code, it can include additional license provisions to its software. The new provision, called the Free and Open Source Software License Exception, enables people to use MySQL client libraries with other open-source projects under other open-source licenses other than the GPL.'"

5 of 313 comments (clear)

  1. Python is included too by attonitus · · Score: 5, Informative

    FOSS license Exception. Scroll down for the table.

  2. Here me now, believe me later by freelunch · · Score: 5, Informative

    MYSQL just received $19.5 million in venture capital funding.

    While this could and should be great, it remains to be seen what impact the influx will have.

  3. Re:A response to X? by LostCluster · · Score: 5, Informative

    The copyright holder of a product that is released under the GPL is not required to use the GPL as the only license. It's hard to attach a license more restrictive than the GPL to already GPLed software, but it's very easy to attach a less restrictive license.

    The copyright holder can also craft exceptions to the GPL simply by making an add-on license that promises a certain violation of their GPL rights will be tolerated, and that includes a situation under which distribution without the GPL is allowed. :)

  4. Re:Attention span too short to RTFM... by Anonymous Coward · · Score: 5, Informative

    Lots of reasons.

    Scales better with large numbers of simultaneous connections, larger tables, etc.

    Mature transactions. MySQL just gained these, but they aren't in heavy use. For applications where consistency matters, you need either transactions or locks. In MySQL you spend a lot more time coming up with locks and resolving deadlocks.

    Stored procedures. Sometimes it's useful to put code right in the database that can abort an invalid transaction or perform some other automated action. With MySQL you have to put this code in your PHP application, everywhere you access the database, rather than just once in the database. Much more code, much more debugging, and often much less efficient. The primary procedural language (PostgreSQL supports several) is Pl/PgSQL, essentially the same as Oracle's Pl/SQL. If you learn Postgres, you're well on your way to learning Oracle.

    Multi version concurrency, like the big commercial databases.

    A query optimizer that gets much better performance as your queries get complex. MySQL often can't do the same complex queries at all, and when it can does them naively at unusable speeds.

    Rule system, implementing views and other big-iron features, allowing applications to be simpler.

    Correct behavior under crash scenarios or disk full. I've never had PostgreSQL corrupt a database. MySQL will occaisionally, so your backups will get more exercise, and you'll have lost some data.

    subselects. You can often contort your MySQL queries to work around the lack of full subselects, but again, you do more work, and there isn't always a workaround.

    Foreign keys (implemented using triggers). These allow you to ensure that your data follows certain relationship rules (every sale points to a valid buyer for instance) at the database level. In MySQL you just have to make sure in PHP (outside the database) that you always generate good data.
    Mistakes happen, Postgres lets you program more defensively.

    Temporary tables. Very useful when building a complex operation inside a transaction.

    Security and authentication. Postgres has a very wide array of authentication methods, ranging from allow these IPs to do anything to local sockets, with SSL available to use to encrypt and authenticate as well.

    postgres is not as good at altering tables in production, especially if you've used the advanced features like triggers and rules (you may end up copying the data, deleting the tables, and reloading them, all inside a transaction of course).

  5. Re:It had to happen. by scragz · · Score: 5, Informative

    RTF license exception page. It doesn't only apply to PHP:

    Academic Free License 2.0
    Apache Software License 1.0/1.1/2.0
    Apple Public Source License 2.0
    Artistic license From Perl 5.0.8
    BSD license "July 22 1999"
    Common Public License 1.0
    GNU General Public License (GPL) 2.0
    GNU Library or "Lesser" General Public License (LGPL) 2.1
    Jabber Open Source License 1.0
    MIT license -
    Mozilla Public License (MPL) 1.0/1.1
    PHP License 3.0
    Python license (CNRI Python License) -
    Python Software Foundation License 2.1.1
    Sleepycat License "1999"
    W3C License "2001"
    Zlib/libpng License -
    Zope Public License 2.0