1 |
Kalin KOZHUHAROV wrote: |
2 |
> Francesco Riosa wrote: |
3 |
>> Kalin KOZHUHAROV wrote: |
4 |
[...] |
5 |
> |
6 |
> Now this is in my mind, a mind that looks for bugs and troubles before |
7 |
they come out. |
8 |
|
9 |
That's exactly what I'm looking for ;-) |
10 |
|
11 |
> |
12 |
> If mysql is slotted (and you said it it will be soon), what will |
13 |
happen to software that use mysql |
14 |
> bindings, for example dev-perl/DBD-mysql? |
15 |
|
16 |
will happen that the bindings need to be fixed at first, |
17 |
fex see bug #114925 "dev-perl/DBD-mysql-3.0002_p4 fails to compile" |
18 |
where Malcolm Lashley give a patch to add backward compatibility. |
19 |
|
20 |
TODO: threat include files like libraries, also mind about "mysql_config" |
21 |
|
22 |
> |
23 |
> "{{{ A hypothetical example: |
24 |
> |
25 |
> I used mysql-4.1.16-r30 and I have a locally encoded (say Shift_JIS) |
26 |
database. I have DBD-mysql |
27 |
> compiled against that and a package FOO using that works as expected. |
28 |
> |
29 |
> Some package wants >=mysql-5.0.0 and DBD-mysql, and because mysql is |
30 |
SLOTed, portage says ok, |
31 |
> emerges mysql-5.0.18-r30 and rebuilds DBD-mysql against it. |
32 |
|
33 |
Oops *you* need to tell portage to rebuild DBD-mysql. |
34 |
Difficult that a package will want mysql >= something, but take this is |
35 |
an example, so it's ok. |
36 |
|
37 |
> |
38 |
> The probable result is that package FOO will be silently broken |
39 |
because of incompatible changes |
40 |
> between mysql-4.1 and mysql-5.0 ... |
41 |
> |
42 |
> "}}} |
43 |
|
44 |
Not so probable, or at least at a lesser degree than what you think. |
45 |
The major part of incompatibilityes are absorbed from the additional |
46 |
layer offered by DBD-mysql. |
47 |
The client app will still work with DBD-mysql, not directly with the server. |
48 |
Ah and by the way remember that the server running will continue to be |
49 |
4.1, and that default datadir will be different for 4.1 and 5.0 (it's |
50 |
insane to make two different versions work with the same data) |
51 |
|
52 |
Charset side there is additional support in MySQL 5.0 to support UTF-16, |
53 |
but the big jump has been done between 4.0 and 4.1, now it should be |
54 |
just more easy. |
55 |
|
56 |
> |
57 |
> Actually reading on |
58 |
http://dev.mysql.com/doc/refman/5.0/en/upgrading-from-4-1.html there are |
59 |
quite |
60 |
> many incompatible changes. |
61 |
|
62 |
Take a look at the changes: |
63 |
|
64 |
Server Changes: |
65 |
- The indexing order for end-space in TEXT columns ... |
66 |
Unlikely to affect many apps. |
67 |
- For BINARY columns, the pad value and how ... |
68 |
Unlikely to affect many apps. |
69 |
- MyISAM and InnoDB tables created with DECIMAL ... |
70 |
Database only change, not visible outside (well not exatly but with a |
71 |
good approx.) |
72 |
- Incompatible change: As of MySQL 5.0.3, the server by default no |
73 |
longer loads user-defined functions... |
74 |
Unlikely to affect many apps. |
75 |
- Incompatible change: The update log was removed in MySQL 5.0 ... |
76 |
Don't affect apps, learn to use "mysqlbinlog" |
77 |
- Support for the ISAM storage engine has been removed ... |
78 |
Well it's real time to switch to myisam |
79 |
- Support for RAID options in MyISAM tables has been removed ... |
80 |
Don't affect apps. |
81 |
|
82 |
SQL Changes: |
83 |
- Previously, a lock wait timeout caused InnoDB to roll ... |
84 |
Look like a bug fixed |
85 |
- The namespace for triggers has changed in MySQL 5.0.10. ... |
86 |
Don't affect 4.1 |
87 |
- As of MySQL 5.0.15, the CHAR() function returns a binary string rather |
88 |
than ... |
89 |
Filtered from DBD-mysql layer |
90 |
- Beginning with MySQL 5.0.12, natural joins and joins with USING, |
91 |
including outer join variants, are processed according to the SQL:2003 |
92 |
standard. The changes include elimination of redundant output columns |
93 |
for NATURAL joins and joins specified with a USING clause and proper |
94 |
ordering of output columns. The precedence of the comma operator also |
95 |
now is lower compared to JOIN. |
96 |
LIKELY TO AFFECT MANY APPS THAT USE SQL, however the fixes are cheap |
97 |
as this nonsense |
98 |
1 + 2 - 3 ==> ( 1 + 2 ) * 3 |
99 |
there is an operator that changed precedence. |
100 |
|
101 |
> |
102 |
> Although this may be a problem for DBD-mysql, it will be exposed after |
103 |
mysql is SLOTed... |
104 |
> Or shall we SLOT dev-perl/DBD-mysql as well? |
105 |
> And what about ruby, python (any other language bindings?)? |
106 |
|
107 |
No at all, every one of these must be able to compile on whatever |
108 |
version of mysql, |
109 |
examples of how this could be done are at bugs 85783, 85810, 85829, |
110 |
85843, 85844, 114925. |
111 |
|
112 |
Better ? |
113 |
-- |
114 |
gentoo-dev@g.o mailing list |