Re: MySQL 4.0 released

2002-02-18 Thread Michael Widenius


Hi!

First, please don't email things directly to me or to the announce
list.  The best way to get help for a problem, is to write an email
only to [EMAIL PROTECTED];  In the future, please also change the
subject line to something that is appropriate and don't respond to an
email that has nothing to do with the problem!

 Huang-Ming == Huang-Ming  [EMAIL PROTECTED] writes:

Huang-Ming Hello,
Huang-Ming I'm encountering a serious program fault at using MySQL Win32 client 
library
Huang-Ming LIBMYSQL.DLL.

Huang-Ming I found LIBMYSQL.DLL not thread-safe. When 10 threads are launched to run
Huang-Ming the following two blocks of C statements, very quickly a program fault
Huang-Ming window pops up to LIBMYSQL.DLL.

Huang-Ming  block #1 -
Huang-Ming EnterCriticalSection(dcs);
Huang-Ming mysql_real_query(db,stmt,strlen(stmt));
Huang-Ming res=mysql_store_result(db);
Huang-Ming LeaveCriticalSection(dcs);

Huang-Ming  block #1 - (in another C function)
Huang-Ming EnterCriticalSection(dcs);
Huang-Ming row=mysql_fetch_row(res);
Huang-Ming nfld=mysql_num_fields(res);
Huang-Ming flds=mysql_fetch_fields(res);
Huang-Ming LeaveCriticalSection(dcs);

If this block is done by another thread that did the original query,
you will get a problem if you didn't initialize the thread for MySQL
usage.

Please read the MySQL manual section 'Threaded clients' and the
documentation for the MySQL API 'mysql_thread_init()' or more
information about this

Regards,
Monty

-
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/   (the list archive)

To request this thread, e-mail [EMAIL PROTECTED]
To unsubscribe, e-mail [EMAIL PROTECTED]
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php




Re: MySQL 4.0 released

2002-02-15 Thread Huang-Ming

Hello,

I'm encountering a serious program fault at using MySQL Win32 client library
LIBMYSQL.DLL.

I found LIBMYSQL.DLL not thread-safe. When 10 threads are launched to run
the following two blocks of C statements, very quickly a program fault
window pops up to LIBMYSQL.DLL.

 block #1 -
EnterCriticalSection(dcs);
mysql_real_query(db,stmt,strlen(stmt));
res=mysql_store_result(db);
LeaveCriticalSection(dcs);

 block #1 - (in another C function)
EnterCriticalSection(dcs);
row=mysql_fetch_row(res);
nfld=mysql_num_fields(res);
flds=mysql_fetch_fields(res);
LeaveCriticalSection(dcs);

But, if I merged the two blocks into one as:

EnterCriticalSection(dcs);
mysql_real_query(db,stmt,strlen(stmt));
res=mysql_store_result(db);
row=mysql_fetch_row(res);
nfld=mysql_num_fields(res);
flds=mysql_fetch_fields(res);
LeaveCriticalSection(dcs);

then, the threads run fine for hours without any program fault pop up.

HOWEVER, the second scenario is irrelevant to my (and most multithreaded)
application where there are many nested queries of rows.

Is there any thread-safe LIBMYSQL.DLL downloadable on mysql.com?? or is
there any other solution to make SQL queries by simultaneous threads safe?

Thank You!

Best Regards,
Peter

- Original Message -
From: Michael Widenius [EMAIL PROTECTED]
To: [EMAIL PROTECTED]; [EMAIL PROTECTED]
Sent: Tuesday, October 16, 2001 6:29 AM
Subject: MySQL 4.0 released



 Hi!

 MySQL 4.0.0-alpha is now available at:
 http://www.mysql.com/downloads/mysql-4.0.html

 You can find information about upgrading from MySQL 3.23 to 4.0 at:
 http://www.mysql.com/doc/U/p/Upgrading-from-3.23.html

 The MySQL 4.0 release includes a lot of new exciting features, like
 MySQL as an embedded library, InnoDB (transactions) as standard table
 type, UNION, multi table delete and much more.

 MySQL 4.0 is basically a 'reconstruction release' that will enable us to
 easier add new features to MySQL in the future.  The intention is to
 quickly add features list at:

 http://www.mysql.com/doc/T/O/TODO_MySQL_4.0.html

 and then start to work on the 4.1 branch while 4.0 stabilizes.

 Changes in release 4.0.0
 

* Added documentation for `libmysqld', the embedded MySQL server
  library.  Also added example programs (a `mysql' client and
  `mysqltest' test program) which use `libmysqld'.

* Removed all Gemini hooks from MySQL.

* Removed `my_thread_init()' and `my_thread_end()' from mysql_com.h,
  and added `mysql_thread_init()' and `mysql_thread_end()' to
  mysql.h.

* Secure connections (with SSL).

* Unsigned `BIGINT' constants now work. `MIN()' and `MAX()' now
  handles signed and unsigned `BIGINT' numbers correctly.

* New character set `latin_de' which provides correct German sorting.

* `TRUNCATE TABLE' and `DELETE FROM table_name' are now separate
  functions. One bonus is that `DELETE FROM table_name' now returns
  the number of deleted rows.

* `DROP DATABASE' now executes a `DROP TABLE' on all tables in the
  database, which fixes a problem with InnoDB tables.

* Added support for `UNION'.

* A new `HANDLER' interface to `MyISAM' tables.

* Added support for `INSERT' on `MERGE' tables. Patch from Benjamin
  Pflugmann.

* Changed `WEEK(#,0)' to match the calender in the USA.

* `COUNT(DISTINCT)' is about 30% faster.

* Speed up all internal list handling.

* Speed up `IS NULL()' and some other internal primitives.

* Creating full text indexes are now much faster.

* Tree-like cache to speed up bulk inserts and
  `myisam_bulk_insert_tree_size' variable.

* Searching on packed (`CHAR'/`VARCHAR') keys are now much faster.

* Optimized queries of type: `SELECT DISTINCT * from table_name
  ORDER by key_part1 LIMIT #'

* `SHOW CREATE TABLE' now shows all table attributes.

* `ORDER BY ... DESC' can now use keys.

* `LOAD DATA FROM MASTER' auto-magically sets up a slave.

* Renamed `safe_mysqld' to `mysqld_safe'.

* Added support for symbolic links to `MyISAM' tables. Symlink
  handling is now enabled by default for Windows.

* `LOAD DATA FROM MASTER' auto-magically sets up a slave.

* Added `SQL_CALC_FOUND_ROWS' and `FOUND_ROWS()'. This makes it
  possible to know how many rows a query would have returned without
  a `LIMIT' clause.

* Changed output format of `SHOW OPEN TABLES'.

* Allow `SELECT expression LIMIT ...'.

* Added `IDENTITY' as a synonym for `AUTO_INCREMENT' (like Sybase).

* Added `ORDER BY' syntax to `UPDATE' and `DELETE'.

* `SHOW INDEXES' is now a synonym for `SHOW INDEX'.

* Added `ALTER TABLE table_name DISABLE KEYS' and `ALTER TABLE
  table_name ENABLE KEYS' commands.

* Allow one to use `IN' instead of `FROM' in `SHOW' commands.

* Allow ANSI SQL syntax `X'hexadecimal-number

Re: MySQL 4.0 released

2001-10-19 Thread Michael Widenius


Hi!

 Michael == Michael Furgal [EMAIL PROTECTED] writes:

cut

Michael Monty and all:

Michael I have re-applied all the Gemini table handler support and
Michael ported it to MySQL 4.0.  It is too large to send as an email
Michael so the patch can be found at:
Michael ftp://ftp.nusphere.com/MySQL40/mysql40+gemini-patches.tar.gz
Michael There are 2 files in the patch, once for the configuration files
Michael and the other for the source code changes.  Both need to be 
Michael applied.

Michael The table handler files themselves (ha_gemini.cc and ha_gemini.h)
Michael have our (NuSphere) copyright on them, however as it has been 
Michael mentioned many time previously, these files are based on the Berkeley 
Michael table handler, so we can hold a shared copyright on the handler files.  
Michael The remaining changes in support of the Gemini component are made to 
Michael existing files that MySQL AB already holds the copyright to.  
Michael You are welcome to the copyright of these changes too (even though I 
Michael believe you already have it, as we have made no claim to it).

Michael The bottom line is that you are welcome to the copyright on the code
Michael for all the files/changes in the patch.

Thanks!  As soon as I get this in writing we will re-apply the patch.
Personally I think this email is fine, but our lawyers require us to get
this in writing. This is in line with the recommendations by FSF, who
also require to get things in writing for larger patches like this.
We have actively been communication with the CEO of NuSphere to get
this done, but haven't yet got this.  I hope we will get this in good
time for 4.0.1.

Michael Please accept this patch so we can move beyond this issue and continue 
Michael to have a technical relationship.  The business issues between our two
Michael companies should not prevent the development and maturing of the 
Michael excellent MySQL Open Source product.

Regards,
Monty

-
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/   (the list archive)

To request this thread, e-mail [EMAIL PROTECTED]
To unsubscribe, e-mail [EMAIL PROTECTED]
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php




RE: MySQL 4.0 released

2001-10-19 Thread Michael Widenius


Hi!

 Britt == Britt Johnston [EMAIL PROTECTED] writes:

Britt Now that the patch for Gemini has been created and made 
Britt available for the new MySQL 4.0 alpha release we are 
Britt back whole again.

I wouldn't really agree with this.

Britt I am told that binaries for the complete MySQL 4.0 
Britt with support for Gemini tables are now available via 
Britt mysql.org for everyone to use (MyISAM and InnoDB also).
Britt These MySQL server binaries can be used as-is under the 
Britt GPL without any requirement for a commercial license
Britt under any circumstances regardless of the specifics 
Britt of the application.

NuSphere lawyers have said that the GPL is not enforcable, but we don't
belive that this true.

Because NuSphere has violated the MySQL GPL license, NuSphere has lost
all benefits that the GPL gives, like the right to distribute the
MySQL server.  This means that every download of MySQL from mysql.org
and selling of the boxed products from NuSphere that contains MySQL is
a violation of the rights of MySQL AB.

The GPL also puts restrictions of how a commercial, not open source
product can use the code; Any open source/GPL product can use MySQL
under the GPL license. If your product that uses MySQL is not open
source and you don't want to make it open source, you can't normally
use MySQL under GPL but should get MySQL under an normal commercial
license from MySQL AB.

You can find out more about this at:

http://www.mysql.com/doc/U/s/Using_the_MySQL_server_under_a_commercial_license.html

Britt As for as 4.0 features you can add the following to 
Britt the list:

Britt  o Lock optimization - MySQL executor acquired 
Britt more locks than required for common queries.

Just a note: The extra locks are only relevant for Gemini and BDB tables,
not for MyISAM or InnoDB tables.

cut

Britt BTW, MySQL will be a major topic at the Linux Lunacy
Britt Geek Cruise next week.  NuSphere is the major sponsor 
Britt for the event helping make it possible for speakers 
Britt like Richard Stallman, Eric Raymond and Monty along 
Britt with myself to further the open source revolution.
Britt Drop me a note if you plan on being there!

Britt, it's ok to email this list that people can meet you on Linux
Lunacy.  However, If you have a commercial message that you believe is
valuable to our users, then please do as everyone else does: Email the
list maintainers and ask for permission to post.

Regards,
Monty

-
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/   (the list archive)

To request this thread, e-mail [EMAIL PROTECTED]
To unsubscribe, e-mail [EMAIL PROTECTED]
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php




RE: MySQL 4.0 released

2001-10-19 Thread Michael Widenius


Hi!

First I have to apologize to the email list for this discussion: It
certainly doesn't belong here.  On the other hand, as the creator of
MySQL and one who has personally sued by NuSphere corporation I can't
let things like this go unanswered.

 Britt == Britt Johnston [EMAIL PROTECTED] writes:

Britt NuSphere is a strong believer in the GPL.  Our history 
Britt and the 150,000 lines of code we have licensed under the 
Britt GPL reinforce that fact.

Britt   http://nusphere.com/releases/062800b.htm  - June 28, 2000
Britt   http://nusphere.com/releases/013001.htm  - January, 30, 2001

Britt Please feel free to contact me directly if you would like 
Britt to discuss this further.

Britt, this is not the right forum to discuss things like this.  You
can't go around the fact that NuSphere violated the MySQL GPL license
by distributing MySQL staticly linked with Gemini without giving the
users access to all the source code.  You also forbid anyone to use
this distribution without having a license from NuSphere.

On your website you even had the following explanation for this:

--
Q: Can I copy NuSphere's products freely and distribute them?
 
A: No, NuSphere's software products are all proprietary,
copyrighted works with licenses that limit distribution. They
cannot be freely copied. The download and CDROM versions of our
products, including NuSphere MySQL and the entire Advantage product
line, cannot be freely copied.

Q: I think all software should be completely free - why isn't
NuSphere's?
 
A: NuSphere believes all software cannot be completely free. We
contribute to Open Source projects that provide free versions of
their software.  Individuals who do not wish to pay to use specific
software are encouraged to join those communities.
--

NuSphere also didn't release Gemini under GPL until MySQL AB sued them
about violating the GPL license and misusing our trademark.  Releasing
Gemini under GPL doesn't however cure the GPL violation, (see
http://www.gnu.org/copyleft/gpl-faq.html).  Until all holders of any
of the violated GPL code has given NuSphere forgiveness, they have
lost all the rights that GPL gives them to the violated code.

Britt, If you want discuss this, you know how to reach me.
I am, as always, ready to discuss ways to solve our differences.

Regards,
Monty

-
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/   (the list archive)

To request this thread, e-mail [EMAIL PROTECTED]
To unsubscribe, e-mail [EMAIL PROTECTED]
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php




RE: MySQL 4.0 released

2001-10-19 Thread Richard C. Tucker


 Britt  o Lock optimization - MySQL executor acquired
 Britt more locks than required for common queries.

 Just a note: The extra locks are only relevant for Gemini and BDB tables,
 not for MyISAM or InnoDB tables.

The extra locks issue does apply to InnoDB for update statements and select
for update statements.  Of course it does not apply to MyISAM since MyISAM
has neither row level locking or transactions.

-regards
Richard Tuckerhttp://www.nusphere.com
Gemini team member


-
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/   (the list archive)

To request this thread, e-mail [EMAIL PROTECTED]
To unsubscribe, e-mail [EMAIL PROTECTED]
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php




Re: MySQL 4.0 released

2001-10-18 Thread Michael Furgal

 Hi!
 
  Michael == Michael T Babcock [EMAIL PROTECTED] writes:
 
 Michael On Wed, Oct 17, 2001 at 12:49:26AM +0300, Michael Widenius wrote:
  We agreed a long time ago with NuSphere that the small hooks would be
  copyrighted by MySQL AB, but as the concrete paperwork has not been
  signed, we felt we had to remove them.
 
 Michael For the sake of those who wish to use Gemini tables, would you
 Michael consider offering the patch, as 'pushed into bitkeeper' on the
 Michael downloads page seperately?
 
 The problem with this is that it would be very hard for us to keep
 this up to date 'outside of MySQL' as we are just now doing some major
 redesign of how tables are used inside MySQL; We are doing this to get
 MySQL to reuse memory better, get more speed and remove a 'not that
 nice' block around 'open table'.
 
 We have however to consider this, if we can't get the copyright
 assignment from NuSphere in the near future.
 
 Michael Michael T. Babcock
 Michael CTO, FibreSpeed Ltd.
 
 Regards,
 Monty

Monty and all:

I have re-applied all the Gemini table handler support and
ported it to MySQL 4.0.  It is too large to send as an email
so the patch can be found at:
ftp://ftp.nusphere.com/MySQL40/mysql40+gemini-patches.tar.gz
There are 2 files in the patch, once for the configuration files
and the other for the source code changes.  Both need to be 
applied.

The table handler files themselves (ha_gemini.cc and ha_gemini.h)
have our (NuSphere) copyright on them, however as it has been 
mentioned many time previously, these files are based on the Berkeley 
table handler, so we can hold a shared copyright on the handler files.  
The remaining changes in support of the Gemini component are made to 
existing files that MySQL AB already holds the copyright to.  
You are welcome to the copyright of these changes too (even though I 
believe you already have it, as we have made no claim to it).

The bottom line is that you are welcome to the copyright on the code
for all the files/changes in the patch.

Please accept this patch so we can move beyond this issue and continue 
to have a technical relationship.  The business issues between our two
companies should not prevent the development and maturing of the 
excellent MySQL Open Source product.

Thank You.

MikeF
-- 
Mike Furgal 
Manager - Gemini Technology
http://www.nusphere.com

-
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/   (the list archive)

To request this thread, e-mail [EMAIL PROTECTED]
To unsubscribe, e-mail [EMAIL PROTECTED]
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php




RE: MySQL 4.0 released

2001-10-18 Thread Britt Johnston

Now that the patch for Gemini has been created and made 
available for the new MySQL 4.0 alpha release we are 
back whole again.

I am told that binaries for the complete MySQL 4.0 
with support for Gemini tables are now available via 
mysql.org for everyone to use (MyISAM and InnoDB also).
These MySQL server binaries can be used as-is under the 
GPL without any requirement for a commercial license
under any circumstances regardless of the specifics 
of the application.

As for as 4.0 features you can add the following to 
the list:

o SHOW LOCKS statement

o Gemini performance improvements in checkpoint
processing and cluster reuse (recovery log).

o Lock optimization - MySQL executor acquired 
more locks than required for common queries.

o General bug fixes to core MySQL function
that benefit Gemini.

We have done recent benchmarks with IBM and OSDL on MySQL
with Gemini which we presented preliminary results at Open 
Source Database summit conference a few weeks ago.  If 
anyone is interested in those slides please let me know.

BTW, MySQL will be a major topic at the Linux Lunacy
Geek Cruise next week.  NuSphere is the major sponsor 
for the event helping make it possible for speakers 
like Richard Stallman, Eric Raymond and Monty along 
with myself to further the open source revolution.
Drop me a note if you plan on being there!

Britt...

-- 
*** NuSphere Advantage *** Winner Best Developer Tool ***
  LinuxWorld 2001

D. Britton Johnston   603-578-6707 Nashua
Chief Technology Officer  781-280-4954 Bedford
NuSphere Corporation  781-280-4600 Main
14 Oak Park   781-280-4646 Fax
Bedford, MA 01730 www.nusphere.com


-
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/   (the list archive)

To request this thread, e-mail [EMAIL PROTECTED]
To unsubscribe, e-mail [EMAIL PROTECTED]
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php