This mail includes just some additions to "Christian Mack" <Mack@stripped> answer.
>>>>> "Douglas" == Douglas B Jones <douglas@stripped>
Douglas> We are currently on 3.21.28-gamma. I wish to upgrade to the most recent
Douglas> version of mysql. Here is the situation:
Douglas> According to the doc. in section 4.16.1, there is a version 3.23. On
Douglas> the download page, the most recent reference was 3.22. How do I get
Douglas> version 3.23 - or is it stable enough to be listed on that download page.
Douglas> If it is not stable enough - then I will wait.
Douglas> Assuming I just upgrade from 3.21.28-gamma to the most recent 3.22 release
Douglas> here are the questions:
Douglas> 1) does the most recent version of php3 support the correct C interface
Douglas> changes for mysql_real_connect() and the need for mysql_init()?
Douglas> 2) the fix privilege stuff - no problem there.
Douglas> 3) the DATE type worries me - is there a way to convert from the old format
Douglas> to the new format?
You don't have to convert any DATE columns; MySQL 3.22 and newer can
use the new and old DATE type. This is only a problem if you want to
convert a 3.22 table to a 3.21 MySQL version.
Douglas> If I am upgrading from 3.21.28-gamma to 3.23.?, then I have these questions:
Douglas> 1) 1,2,3 from above
Douglas> 2) Are the new myisam tables faster/better than the old nisam?
I haven't yet benchmarked this; The speed should be about the same
but the are binary portable across os and has a lot of new features
which makes them much better!
Douglas> 3) what is the syntax for the ALTER TABLE command to convert from the
Douglas> old nisam to the new myisam? I did not see this in the documentation, but
Douglas> that appeared to be for 3.22.
MySQL 3.23 can handle both old NISAM and new MYISAM tables without problems.
In normal cases you don't need to convert. If you really want to
convert, you will be able to do:
ALTER TABLE old_table type=myisam;
Douglas> 4) some of the watch out for in section 4.16.1:
Douglas> a) What does float(4/8) are now true floating point type mean exactly?
Douglas> it mean that the storage format is different? I assume that there is no
Douglas> problem here since that is stated right above. If I update a table,
Douglas> the new table have the new storage format on that update col, but the
Douglas> other cols/rows will have the old format? I have not programmed yet
Douglas> the C api, was the the reference to a float under the 3.22 and before
Douglas> a C float? If not, I guess the C code needs to be looked at. Understand
Douglas> that this 4.a question is out of ignorance of programming with the C
Douglas> for mysql.
Douglas> b) same with the decimal......
If you convert a table to MyISAM, it will behave EXACTLY as before.
Normally MySQL uses a fixed decimal format. When using float(4/8) the
format is NOT fixed point. The following will show the difference:
mysql> create table test (a float(8,2), b float(8));
Query OK, 0 rows affected (2.84 sec)
mysql> insert into test values (10.222,10.222),(1e+10,1e+10),(1e-10,1e-10);
Query OK, 3 rows affected (0.75 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> select * from test;
| a | b |
| 10.22 | 10.222 |
| 10000000000.00 | 10000000000 |
| 0.00 | 1e-10 |
3 rows in set (0.15 sec)
Douglas> I guess one of my concerns is the PHP3 interface. Does the most recent
Douglas> PHP3 have all these things (1-4) taken care of?
Douglas> Thanks for any help,