Commit eb785a8f authored by unknown's avatar unknown

manual.texi:

  Licensing and various other fixups (Zak & Arjen).


Docs/manual.texi:
  Licensing and various other fixups (Zak & Arjen).
parent 4fadbd9c
...@@ -253,8 +253,8 @@ Version @value{mysql_version}. Being a reference manual, it does not ...@@ -253,8 +253,8 @@ Version @value{mysql_version}. Being a reference manual, it does not
provide general instruction on @code{SQL} or relational database provide general instruction on @code{SQL} or relational database
concepts. concepts.
As the @code{MySQL Database Software} is work in progress, the manual As the @code{MySQL Database Software} is work in under constant
is also updated frequently. development, the manual is also updated frequently.
The most recent version of this manual is available at The most recent version of this manual is available at
@uref{http://www.mysql.com/documentation/} in many different formats, @uref{http://www.mysql.com/documentation/} in many different formats,
currently there are Texinfo, plain text, Info, HTML, PostScript, PDF currently there are Texinfo, plain text, Info, HTML, PostScript, PDF
...@@ -1162,7 +1162,7 @@ license is required, please see @ref{MySQL server licenses}. ...@@ -1162,7 +1162,7 @@ license is required, please see @ref{MySQL server licenses}.
We also sell commercial licenses of third-party @code{Open Source GPL} We also sell commercial licenses of third-party @code{Open Source GPL}
software that adds value to @code{MySQL Server}. A good example is the software that adds value to @code{MySQL Server}. A good example is the
@code{InnoDB} transactional table handler that offers @code{ACID} @code{InnoDB} transactional table handler that offers @code{ACID}
support, row-level locking, crash recovery, multiversioning, foreign support, row-level locking, crash recovery, multi-versioning, foreign
key support, and more. @xref{InnoDB}. key support, and more. @xref{InnoDB}.
...@@ -1281,7 +1281,7 @@ attention to the appropriate mailing list. ...@@ -1281,7 +1281,7 @@ attention to the appropriate mailing list.
Reports of errors (often called bugs), as well as questions and Reports of errors (often called bugs), as well as questions and
comments, should be sent to the mailing list at comments, should be sent to the mailing list at
@email{mysql@@lists.mysql.com}. If you have found a sensitive @email{mysql@@lists.mysql.com}. If you have found a sensitive
security bug in the @code{MySQL Server}, you should send an e-mail security bug in the @code{MySQL Server}, please send an e-mail
to @email{security@@mysql.com}. to @email{security@@mysql.com}.
@xref{Bug reports}. @xref{Bug reports}.
...@@ -1377,24 +1377,18 @@ distribution: ...@@ -1377,24 +1377,18 @@ distribution:
@enumerate @enumerate
@item @item
The @code{MySQL}-specific source needed to build the @code{mysqlclient} All the @code{MySQL}-specific source in the server, the @code{mysqlclient}
library is licensed under the @code{LGPL} and the programs in the library and the client, as well as the @code{GNU} @code{readline} library,
@file{client} directory are under the @code{GPL}. Each file states is covered by the ``GNU GENERAL PUBLIC LICENSE.''
at the beginning which license it is under. @xref{GPL license}.
@item
The client library, and the @code{GNU} @code{getopt} library, are covered
by the ``GNU LESSER GENERAL PUBLIC LICENSE.'' @xref{LGPL license}.
The aim of this is to make it possible to add MySQL support (client
side, i.e. the ability to connect to a @code{MySQL} server) into
commercial products without a license.
@item
All the source in the server, and the @code{GNU} @code{readline} library,
are covered by the ``GNU GENERAL PUBLIC LICENSE.'' @xref{GPL license}.
The text of this license can also be found as the file @file{COPYING} The text of this license can also be found as the file @file{COPYING}
in the distributions. in the distributions.
@item
The @code{GNU} @code{getopt} library is covered by the
``GNU LESSER GENERAL PUBLIC LICENSE.''
@xref{LGPL license}.
@item @item
Some parts of the source (the @code{regexp} library) are covered Some parts of the source (the @code{regexp} library) are covered
by a Berkeley-style copyright. by a Berkeley-style copyright.
...@@ -1406,7 +1400,7 @@ more strict license ...@@ -1406,7 +1400,7 @@ more strict license
See the documentation of the specific version for information. See the documentation of the specific version for information.
@item @item
The manual is @emph{not} distributed under a @code{GPL} style license. The manual is currently @emph{not} distributed under a @code{GPL} style license.
Use of the manual is subject to the following terms: Use of the manual is subject to the following terms:
@itemize @bullet @itemize @bullet
@item @item
...@@ -1440,14 +1434,14 @@ Also see @ref{MySQL AB Logos and Trademarks}. ...@@ -1440,14 +1434,14 @@ Also see @ref{MySQL AB Logos and Trademarks}.
@cindex selling products @cindex selling products
@cindex products, selling @cindex products, selling
The @code{MySQL} server is released under the The @code{MySQL} software is released under the
@code{GNU General Public License} (@code{GPL}), @code{GNU General Public License} (@code{GPL}),
which probably is the best known @code{Open Source} license. which probably is the best known @code{Open Source} license.
The formal terms of the @code{GPL} license can be found at The formal terms of the @code{GPL} license can be found at
@uref{http://www.gnu.org/licenses/}. @uref{http://www.gnu.org/licenses/}.
See also @uref{http://www.gnu.org/licenses/gpl-faq.html}. See also @uref{http://www.gnu.org/licenses/gpl-faq.html}.
Since the @code{MySQL} server is released under the @code{GPL}, Since the @code{MySQL} software is released under the @code{GPL},
it may often be used for free, but for certain uses you may want it may often be used for free, but for certain uses you may want
or need to buy commercial licenses from @code{MySQL AB} at or need to buy commercial licenses from @code{MySQL AB} at
@uref{https://order.mysql.com/}. @uref{https://order.mysql.com/}.
...@@ -1457,7 +1451,7 @@ more strict license ...@@ -1457,7 +1451,7 @@ more strict license
(@uref{http://www.mysql.com/support/arrangements/mypl.html}). (@uref{http://www.mysql.com/support/arrangements/mypl.html}).
See the documentation of the specific version for information. See the documentation of the specific version for information.
Please note that the use of the @code{MySQL} server under commercial Please note that the use of the @code{MySQL} software under commercial
license, @code{GPL} or the old @code{MySQL} license does not license, @code{GPL} or the old @code{MySQL} license does not
automatically give you the right to use @code{MySQL AB} trademarks. automatically give you the right to use @code{MySQL AB} trademarks.
@xref{MySQL AB Logos and Trademarks}. @xref{MySQL AB Logos and Trademarks}.
...@@ -1480,21 +1474,21 @@ You need a commercial license: ...@@ -1480,21 +1474,21 @@ You need a commercial license:
@itemize @bullet @itemize @bullet
@item @item
When you link a program with code from the @code{MySQL} server or from When you link a program with code from the @code{MySQL} software or from
@code{GPL} released clients and don't want the resulting product to be @code{GPL} released clients and don't want the resulting product to be
@code{GPL}, maybe because you want to build a commercial product or keep @code{GPL}, maybe because you want to build a commercial product or keep
the added non-@code{GPL} code closed source for other reasons. When the added non-@code{GPL} code closed source for other reasons. When
purchasing commercial licenses, you are not using the @code{MySQL} server purchasing commercial licenses, you are not using the @code{MySQL} software
under @code{GPL} even though it's the same code. under @code{GPL} even though it's the same code.
@item @item
When you distribute a non-@code{GPL} application that ONLY works with the When you distribute a non-@code{GPL} application that ONLY works with the
@code{MySQL} server and ship it with the @code{MySQL} server. This type @code{MySQL} software and ship it with the @code{MySQL} software. This type
of solution is actually considered to be linking even if it's done over of solution is actually considered to be linking even if it's done over
a network. a network.
@item @item
When you distribute copies of the @code{MySQL} server without providing When you distribute copies of the @code{MySQL} software without providing
the source code as required under the @code{GPL} license. the source code as required under the @code{GPL} license.
@item @item
...@@ -1507,14 +1501,14 @@ immediate advantages for you. ...@@ -1507,14 +1501,14 @@ immediate advantages for you.
@end itemize @end itemize
If you require a license, you will need one for each installation of the If you require a license, you will need one for each installation of the
@code{MySQL} server. This covers any number of CPUs on a machine, and there @code{MySQL} software. This covers any number of CPUs on a machine, and there
is no artificial limit on the number of clients that connect to the server is no artificial limit on the number of clients that connect to the server
in any way. in any way.
To purchase commercial licenses and support, please visit the order section To purchase commercial licenses and support, please visit the order section
of our web site at @uref{https://order.mysql.com/}. If you have restricted of our web site at @uref{https://order.mysql.com/}. If you have special
access to the Internet, please contact our sales staff at licensing needs or you have restricted access to the Internet, please contact
@email{sales@@mysql.com}. our sales staff at @email{sales@@mysql.com}.
@node Using the MySQL server for free under GPL, , Using the MySQL server under a commercial license, MySQL server licenses @node Using the MySQL server for free under GPL, , Using the MySQL server under a commercial license, MySQL server licenses
...@@ -1523,20 +1517,20 @@ access to the Internet, please contact our sales staff at ...@@ -1523,20 +1517,20 @@ access to the Internet, please contact our sales staff at
@cindex licensing, free @cindex licensing, free
@cindex free licensing @cindex free licensing
You can use the @code{MySQL} server for free under the @code{GPL}: You can use the @code{MySQL} software for free under the @code{GPL}:
@itemize @bullet @itemize @bullet
@item @item
When you link a program with code from the @code{MYSQL} server and When you link a program with code from the @code{MYSQL} software and
release the resulting product under @code{GPL}. release the resulting product under @code{GPL}.
@item @item
When you distribute the @code{MySQL} server source code bundled with When you distribute the @code{MySQL} source code bundled with
other programs that are not linked to or dependant on @code{MySQL Server} other programs that are not linked to or dependant on @code{MySQL Server}
for their functionality even if you sell the distribution commercially. for their functionality even if you sell the distribution commercially.
@item @item
When using the @code{MySQL} server internally in your company. When using the @code{MySQL} software internally in your company.
@item @item
When include the @code{MySQL} client code in a commercial program. When include the @code{MySQL} client code in a commercial program.
...@@ -1791,9 +1785,9 @@ the scenes in internet appliances, public kiosks, turn-key ...@@ -1791,9 +1785,9 @@ the scenes in internet appliances, public kiosks, turn-key
hardware/ software combination units, high performance internet hardware/ software combination units, high performance internet
servers, self-contained databases distributed on CD-ROM etc. servers, self-contained databases distributed on CD-ROM etc.
Many embedded MySQL users will benefit from the @emph{dual licensing} Many users of @code{libmysqld} will benefit from the MySQL
scheme of the MySQL software, where besides the GPL license also commercial @emph{Dual Licensing}. For those not wishing to be bound by the GPL,
licensing is available for those not wishing to be bound by the GPL. the software is also made available under a commercial license.
The embedded MySQL library uses the same interface as the normal The embedded MySQL library uses the same interface as the normal
client library, so it is convenient and easy to use. @xref{libmysqld}. client library, so it is convenient and easy to use. @xref{libmysqld}.
...@@ -2453,7 +2447,7 @@ using. If you are using the current version and the manual at ...@@ -2453,7 +2447,7 @@ using. If you are using the current version and the manual at
@uref{http://www.mysql.com/doc/} doesn't cover the @uref{http://www.mysql.com/doc/} doesn't cover the
syntax you are using, MySQL Server doesn't support your query. In this syntax you are using, MySQL Server doesn't support your query. In this
case, your only options are to implement the syntax yourself or e-mail case, your only options are to implement the syntax yourself or e-mail
@email{mysql-licensing@@mysql.com} and ask for an offer to implement it! @email{licensing@@mysql.com} and ask for an offer to implement it!
If the manual covers the syntax you are using, but you have an older version If the manual covers the syntax you are using, but you have an older version
of MySQL Server, you should check the MySQL change history to see of MySQL Server, you should check the MySQL change history to see
...@@ -37484,7 +37478,7 @@ SUM_OVER_ALL_KEYS(max_length_of_key + sizeof(char*) * 2) ...@@ -37484,7 +37478,7 @@ SUM_OVER_ALL_KEYS(max_length_of_key + sizeof(char*) * 2)
* Backing up:: Backing up and Recovering an InnoDB Database * Backing up:: Backing up and Recovering an InnoDB Database
* Moving:: Moving an InnoDB Database to Another Machine * Moving:: Moving an InnoDB Database to Another Machine
* InnoDB transaction model:: InnoDB Transaction Model. * InnoDB transaction model:: InnoDB Transaction Model.
* Implementation:: Implementation of Multiversioning * Implementation:: Implementation of Multi-versioning
* Table and index:: Table and Index Structures * Table and index:: Table and Index Structures
* File space management:: File Space Management and Disk i/o * File space management:: File Space Management and Disk i/o
* Error handling:: Error Handling * Error handling:: Error Handling
...@@ -38363,7 +38357,7 @@ a table. ...@@ -38363,7 +38357,7 @@ a table.
@subsection InnoDB Transaction Model @subsection InnoDB Transaction Model
In the InnoDB transaction model the goal has been to combine the best In the InnoDB transaction model the goal has been to combine the best
properties of a multiversioning database to traditional two-phase locking. properties of a multi-versioning database to traditional two-phase locking.
InnoDB does locking on row level and runs queries by default InnoDB does locking on row level and runs queries by default
as non-locking consistent reads, in the style of Oracle. as non-locking consistent reads, in the style of Oracle.
The lock table in InnoDB is stored so space-efficiently that lock The lock table in InnoDB is stored so space-efficiently that lock
...@@ -38398,7 +38392,7 @@ transaction. ...@@ -38398,7 +38392,7 @@ transaction.
@node InnoDB consistent read, InnoDB locking reads, InnoDB transaction model, InnoDB transaction model @node InnoDB consistent read, InnoDB locking reads, InnoDB transaction model, InnoDB transaction model
@subsubsection Consistent Read @subsubsection Consistent Read
A consistent read means that InnoDB uses its multiversioning to A consistent read means that InnoDB uses its multi-versioning to
present to a query a snapshot of the database at a point in time. present to a query a snapshot of the database at a point in time.
The query will see the changes made by exactly those transactions that The query will see the changes made by exactly those transactions that
committed before that point of time, and no changes made by later committed before that point of time, and no changes made by later
...@@ -38623,7 +38617,7 @@ not see the row deleted. Similarly with inserts and updates. ...@@ -38623,7 +38617,7 @@ not see the row deleted. Similarly with inserts and updates.
You can advance your timepoint by committing your transaction You can advance your timepoint by committing your transaction
and then doing another @code{SELECT}. and then doing another @code{SELECT}.
This is called multiversioned concurrency control. This is called multi-versioned concurrency control.
@example @example
User A User B User A User B
...@@ -38907,9 +38901,9 @@ currently doing. ...@@ -38907,9 +38901,9 @@ currently doing.
@end itemize @end itemize
@node Implementation, Table and index, InnoDB transaction model, InnoDB @node Implementation, Table and index, InnoDB transaction model, InnoDB
@subsection Implementation of Multiversioning @subsection Implementation of Multi-versioning
Since InnoDB is a multiversioned database, it must keep information Since InnoDB is a multi-versioned database, it must keep information
of old versions of rows in the tablespace. This information is stored of old versions of rows in the tablespace. This information is stored
in a data structure we call a rollback segment after an analogous in a data structure we call a rollback segment after an analogous
data structure in Oracle. data structure in Oracle.
...@@ -38949,7 +38943,7 @@ is typically smaller than the corresponding inserted or updated ...@@ -38949,7 +38943,7 @@ is typically smaller than the corresponding inserted or updated
row. You can use this information to calculate the space need row. You can use this information to calculate the space need
for your rollback segment. for your rollback segment.
In our multiversioning scheme a row is not physically removed from In our multi-versioning scheme a row is not physically removed from
the database immediately when you delete it with an SQL statement. the database immediately when you delete it with an SQL statement.
Only when InnoDB can discard the update undo log record written for Only when InnoDB can discard the update undo log record written for
the deletion, it can also physically remove the corresponding row and the deletion, it can also physically remove the corresponding row and
...@@ -44467,7 +44461,7 @@ compatible with the GPL). ...@@ -44467,7 +44461,7 @@ compatible with the GPL).
We encourage everyone to promote free software by releasing We encourage everyone to promote free software by releasing
code under the GPL or a compatible license. For those who code under the GPL or a compatible license. For those who
are not able to do this, another option is to purchase the are not able to do this, another option is to purchase the
MySQL code from MySQL AB under a looser license. For details MySQL code from MySQL AB under a commercial license. For details
concerning this issue, please see @ref{MySQL server licenses}. concerning this issue, please see @ref{MySQL server licenses}.
@node Cplusplus, Java, C, Clients @node Cplusplus, Java, C, Clients
...@@ -47593,7 +47587,7 @@ interface, you should fetch the @code{Data-Dumper}, @code{DBI}, and ...@@ -47593,7 +47587,7 @@ interface, you should fetch the @code{Data-Dumper}, @code{DBI}, and
Note: The programs listed here can be freely downloaded and used. Note: The programs listed here can be freely downloaded and used.
They are copyrighted by their respective owners. They are copyrighted by their respective owners.
Please see each product documentation for more details on licensing and terms. Please see individual product documentation for more details on licensing and terms.
MySQL AB assumes no liability for the correctness of the information in this MySQL AB assumes no liability for the correctness of the information in this
chapter or for the proper operation of the programs listed herein. chapter or for the proper operation of the programs listed herein.
...@@ -47836,12 +47830,12 @@ By Innovative-IT Development AB. ...@@ -47836,12 +47830,12 @@ By Innovative-IT Development AB.
MySQLGUI, the MySQL GUI client homepage. By Sinisa at MySQL AB. MySQLGUI, the MySQL GUI client homepage. By Sinisa at MySQL AB.
@item @uref{http://www.mysql.com/Downloads/Contrib/mysql_navigator_0.9.0.tar.gz} @item @uref{http://www.mysql.com/Downloads/Contrib/mysql_navigator_0.9.0.tar.gz}
MySQL Navigator is a MySQL database server GUI client program. The purpose MySQL Navigator is a MySQL database server GUI client program, distributed
of MySQL Navigator is to provide a useful client interface to MySQL under GPL license. The purpose of MySQL Navigator is to provide a useful
database servers, whilst supporting multiple operating systems and client interface to MySQL database servers, whilst supporting multiple
languages. You can currently import/export database, enter queries, get operating systems and languages. You can currently import/export database,
result sets, edit scripts, run scripts, add, alter, and delete users, enter queries, get result sets, edit scripts, run scripts, add, alter, and
and retrieve client and server information. Uses QT 2.2. GPL delete users, and retrieve client and server information. Uses QT 2.2.
The homepage for MySQL Navigator is at @uref{http://sql.kldp.org/mysql/}. The homepage for MySQL Navigator is at @uref{http://sql.kldp.org/mysql/}.
@item @uref{http://www.mysql.com/Downloads/Win32/secman.zip} @item @uref{http://www.mysql.com/Downloads/Win32/secman.zip}
...@@ -48466,14 +48460,14 @@ Automatic web site updating from the manual. ...@@ -48466,14 +48460,14 @@ Automatic web site updating from the manual.
@item @item
Initial Autoconf, Automake, and Libtool support. Initial Autoconf, Automake, and Libtool support.
@item @item
The licensing stuff. Licensing.
@item @item
Parts of all the text files. (Nowadays only the @file{README} is Parts of all the text files. (Nowadays only the @file{README} is
left. The rest ended up in the manual.) left. The rest ended up in the manual.)
@item @item
Lots of testing of new features. Lots of testing of new features.
@item @item
Our in-house ``free'' software lawyer. Our in-house Free Software legal expert.
@item @item
Mailing list maintainer (who never has the time to do it right...). Mailing list maintainer (who never has the time to do it right...).
@item @item
...@@ -48536,7 +48530,7 @@ Vio interface (the foundation for the encrypted client/server protocol). ...@@ -48536,7 +48530,7 @@ Vio interface (the foundation for the encrypted client/server protocol).
MySQL Filesystem (a way to use MySQL databases as files MySQL Filesystem (a way to use MySQL databases as files
and directories). and directories).
@item @item
The CASE Expression. The CASE expression.
@item @item
The MD5() and COALESCE() functions. The MD5() and COALESCE() functions.
@item @item
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment