MySQL/InnoDB-4.0.21 is released

2004-09-11 Thread Heikki Tuuri
Hi!

InnoDB is a MySQL table type that provides FOREIGN KEY constraints, 'ACID'
transactions, row-level locking, a non-locking consistent read (MVCC), and a
commercial online backup tool.

Release 4.0.21 is a bugfix release of the stable MySQL-4.0 branch. It is
recommended for production use. You can download it from
http://dev.mysql.com/downloads/mysql/4.0.html

The most important InnoDB bug fixed is probably the '4 billion bug' that
could cause InnoDB to complain:

InnoDB: Error: Mem area size is 0. Possibly a memory overrun of the
InnoDB: previous allocated area!
InnoDB: Apparent memory corruption: mem dump  len 500; hex

and crash mysqld at every 4 billionth allocation of memory.


The complete changelog for InnoDB:

Functionality added or changed:

* Renamed the `innodb.status.pid' files (created in the data directory) to
`innodb_status.pid'. This avoids problems on filesystems that do not allow
multiple periods in filenames.

* Added innodb_status_file system variable to mysqld to control whether
output from SHOW INNODB STATUS is written to a `innodb_status.pid' file in
the data directory. By default, the file is not created. To create it, start
mysqld with the --innodb_status_file=1 option.

* Changes for NetWare to exit InnoDB gracefully on NetWare even in a case of
an assertion failure, instead of intentionally crashing the `mysqld' server
process.

Bugs fixed:

* Fixed a bug in ON DELETE CASCADE and ON UPDATE CASCADE foreign key
constraints: long chains of cascaded operations would cause a stack overflow
and crash the server. Cascaded operations are now limited to 15 levels. (Bug
#4446)

* Fixed a possible bug in LOCK TABLES introduced in MySQL/InnoDB-4.0.19: The
count of tables explicitly locked by a transaction was incremented only
after the locks were granted, but decremented when the lock structures were
destroyed.

* Fixed a bug in UNLOCK TABLES in AUTOCOMMIT=0 mode, introduced in
MySQL/InnoDB-4.0.19: The memory allocated for some locks acquired by the
transaction could be deallocated before those locks were released. The bug
can lead to crashes and memory corruption of the buffer pool when the
transaction acquires a large number of locks (table locks or row-level
locks).

* Increment the InnoDB watchdog timeout during CHECK TABLE. A long-running
CHECK TABLE would cause InnoDB to complain about a 'long semaphore wait',
and crash the server, if a query had to wait more than 600 seconds behind
that CHECK TABLE operation. (Bug #2694)

* If you configure innodb_additional_mem_pool_size so small that InnoDB
memory allocation spills over from it, then every 4 billionth spill may
cause memory corruption. A symptom is a printout like below in the `.err'
log. The workaround is to make innodb_additional_mem_pool_size big enough to
hold all memory allocation. Use SHOW INNODB STATUS to determine that there
is plenty of free space available in the additional mem pool, and the total
allocated memory stays rather constant.

InnoDB: Error: Mem area size is 0. Possibly a memory overrun of the
InnoDB: previous allocated area!
InnoDB: Apparent memory corruption: mem dump  len 500; hex

* The special meaning of the table names innodb_monitor,
innodb_lock_monitor, innodb_tablespace_monitor, innodb_table_monitor, and
innodb_validate in CREATE TABLE and DROP TABLE statements was accidentally
removed in MySQL/InnoDB-4.0.19. The diagnostic functions attached to these
special table names (see section 16.12.1 SHOW INNODB STATUS and the InnoDB
Monitors) are accessible again in MySQL/InnoDB-4.0.21.

* When the private SQL parser of InnoDB was modified in MySQL/InnoDB-4.0.19
in order to allow the use of the apostrophe (`'') in table and column names,
the fix relied on a previously unused function mem_realloc(), whose
implementation was incorrect. As a result, InnoDB can incorrectly parse
column and table names as the empty string. The InnoDB realloc()
implementation has been corrected in MySQL/InnoDB-4.0.21.

* Fixed a glitch introduced in 4.0.18 and 4.1.2: in SHOW TABLE STATUS InnoDB
systematically overestimated the row count by 1 if the table fit on a single
16 kB data page.

* InnoDB created temporary files with the C library function tmpfile(). On
Windows, the files would be created in the root directory of the current
file system. To correct this behavior, the invocations of tmpfile() were
replaced with code that uses the function create_temp_file() in the MySQL
portability layer. (Bug #3998)

* If ALTER TABLE ... DROP FOREIGN KEY ... fails because of a wrong
constraint name, return a table handler error number 150 instead of 152.

* If there was little file I/O in InnoDB, but the insert buffer was used, it
could happen that 'Pending normal aio reads' was bigger than 0, but the I/O
handler thread did not get waken up in 600 seconds. This resulted in a hang,
and crashing of InnoDB.

* If we RENAMEd a table, InnoDB forgot to load the FOREIGN KEY constraints
that reference the new table name, and forgot to check that 

Still problem with MyODBC :((

2004-09-11 Thread Danesh Daroui
Hi all,

I have still problem with MyODBC. When I want to connect to my Database server which 
is a Linux machine, it returns an error:

Client does not support authentication protocol requested by server; consider 
upgrading MySQL client

I visited MySQL documents but the suggestions were about when a version prior to 4.1 
attempts to connect to a server which runs MySQL version 4.1 or newer, but this is not 
my case. Because, both my client and server use same version of MySQL and they use 
MySQL version 4.1 not older releases. Can anyone help ? :((

Yours,

Danesh Daroui



Re: Best way to get Access DB structures into MySQL ??

2004-09-11 Thread Peter Brawley
Christopher,

What is the best way to take the structure of multiple tables in Access
and get them re-created in MySQL without doing that all by hand?

Is there a way to do the equivalent of a Show Create Table in Access, that
I could then use in MySQL ??

The only way I know is to use a tool like Dezign or DbScripter to generate a
script.

PB


Re: Best way to get Access DB structures into MySQL ??

2004-09-11 Thread Martijn Tonies
Download yourself the trial version of Database Workbench
at www.upscene.com and try the Schema Migration tool.
Connect to Access via ADO and migrate the existing structure
to MySQL.

With regards,

Martijn Tonies
Database Workbench - developer tool for InterBase, Firebird, MySQL  MS SQL
Server.
Upscene Productions
http://www.upscene.com



What is the best way to take the structure of multiple tables in Access
and get them re-created in MySQL without doing that all by hand?



Is there a way to do the equivalent of a Show Create Table in Access, that
I could then use in MySQL ??







Chris Hood

Investigator Verizon Global Security Operations Center

Email:  mailto:[EMAIL PROTECTED]
[EMAIL PROTECTED]

Desk: 972.399.5900

Verizon Proprietary







-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



Re: Problems Compiling

2004-09-11 Thread Egor Egorov
Andrew Wheeler [EMAIL PROTECTED] wrote:

 I am not sure that this is the correct list. I did not
 see any list that seemed more appropriate.

Private email answered here. 

 Well if it compiling is not a configure, make, make
 install job perhaps you could point me in the
 direction to learn the intricacies of the job? 

First, see 
http://dev.mysql.com/doc/mysql/en/Installing_source.html

And don't forget about glibc patch.





-- 
For technical support contracts, goto https://order.mysql.com/?ref=ensita
This email is sponsored by Ensita.net http://www.ensita.net/
   __  ___ ___   __
  /  |/  /_ __/ __/ __ \/ /Egor Egorov
 / /|_/ / // /\ \/ /_/ / /__   [EMAIL PROTECTED]
/_/  /_/\_, /___/\___\_\___/   MySQL AB / Ensita.net
   ___/   www.mysql.com




-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



Re: MySQL 4.1.4 RPM Distribution startup problem

2004-09-11 Thread Egor Egorov
Egor Egorov [EMAIL PROTECTED] wrote:

 Then temporary give a+rw on /root/tmp (don't forget to +x /root)
 and see what's mysqld_safe gonna write there. Maybe it's a bug in the
 script.
 Also please check the environment for TMPDIR.
 
 After this mysql started successfully but it didn't write anything in
 /root/tmp.
 []
 Does MySQL need rights to /root/tmp to work well?
 
 No. It's a weird behavior. I will investigate and get back to you.

Igor, 

First, does the mysql user exists?
Second, here is what Marko Makela told me about your situation:

 It's probably from innobase_mysql_tmpfile(), which is called two or three
 times at startup.  That function relies on create_temp_file().  Has
 the MySQL configuration parameter tmpdir or the environment variable TMPDIR
 been set incorrectly, or is the default value somehow incorrect?  Could
 it be that the directory /var/mysqltmp does not exist, and the fall-back
 value is incorrect?  Maybe $HOME is pointing to /root, but mysqld is being
 run as a non-privileged user?





-- 
For technical support contracts, goto https://order.mysql.com/?ref=ensita
This email is sponsored by Ensita.net http://www.ensita.net/
   __  ___ ___   __
  /  |/  /_ __/ __/ __ \/ /Egor Egorov
 / /|_/ / // /\ \/ /_/ / /__   [EMAIL PROTECTED]
/_/  /_/\_, /___/\___\_\___/   MySQL AB / Ensita.net
   ___/   www.mysql.com




-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



Re: Analyze Dreaweaver's PHP/MySQL code

2004-09-11 Thread Robb Kerr
On Fri, 10 Sep 2004 17:49:21 -0700, Andrew Kreps wrote:

 You have a pretty good handle on what's happening there, I hope I can
 add some clarity.
 
 The Resource Id you're trying to echo is a pointer to a MySQL result
 set, you aren't actually working with the data yet.  That's where the
 mysql_fetch functions come in.
 
 The mysql_fetch_assoc function fetches the next line of the result set
 and stores it in an associative array, so that you can reference your
 results by their database field name, i.e.
 $row_RS_CourseEnrollment['Id_field'].  Otherwise, using a similar
 function like mysql_fetch_row, you'd end up with
 $row_RS_CourseEnrollment[0] for the first field, [1] for the second,
 and so on.  If you ever change your database and you're using select
 *, this can get messy.
 
 Additionally, the mysql_fetch functions are simply returning a portion
 of the result of your previously executed query, so the database isn't
 re-queried every time you loop through it.
 
 Hope this helps!
 
 
 
 On Fri, 10 Sep 2004 16:12:06 -0500, Robb Kerr
 [EMAIL PROTECTED] wrote:
 Here are my questions...
 1) Do I understand what's going on?
 2) When I ECHO the variable created in Line 4 of the connection I get
 Resource id #4. Why don't I get Array or something I can read?
 3) Because the last line of the repeat region includes
 mysql_fetch_assoc($variableDefiningTheQuery) does this mean that the
 database is queried every time through the loop?
 4) I can't find mysql_fetch_assoc() in the MySQL documentation. What's
 this command do?


Thanx Andrew. I thought that's what was going on. I was just concerned
because I didn't know exactly what mysql_fetch_assoc() was doing. I was
afraid that the database was being queried every time through the repeat
region loop. I found it hard to believe that DW would code so
inefficiently, but then again, it might.
-- 
Robb Kerr
Digital IGUANA
Helping Digital Artists Achieve their Dreams

http://www.digitaliguana.com
http://www.cancerreallysucks.org

-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



errno: 144

2004-09-11 Thread diegon
Hello everybody,
MySQL was working perfectly and soudenly i get an error whan i start it
ns31129:/usr/local/mysql/bin# ./safe_mysqld --user=sql
[1] 3115
ns31129:/usr/local/mysql/bin# Starting mysqld daemon with databases from 
/usr/local/mysql/var
040911 16:11:20  mysqld ended

I cant see in the .err file (at the end)
040911 14:45:02  /usr/local/mysql/libexec/mysqld: Can't open file: 'host.MYD'. (errno: 
144)
My Disk space was complet (100%) ... now it's good (95%); but always the same error 
... 
How can i do to resolve this problem ???
Thanks,
Diego

Wrong query result

2004-09-11 Thread Mauricio Pellegrini
Sorry to insist with this, but still can't find the reason.

Any ideas?

-Forwarded Message-
Hi, 
I'm using MySql 4.1.4 Gamma and the following query returns
values containing N and Ñ instead of only those containing Ñ.

The query is as follows 

   Select Lastname from table1 where locate(Ñ,Lastname)0

The result set includes values like this

HERNANDEZ
NUÑES
MONTAGNE
MIÑO
ANTIÑACO
MORENO
GONZALEZ

In other words mysql seems to mistake N with Ñ

The charset for the tables is latin1 and the type InnoDB.

What is happenning?


Mauricio





-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



mysql and leftt outer join

2004-09-11 Thread Terry A. Haimann
Lets say I have a Database defined as

create table Photos (
PhotoIdxVarchar(20),
PhotograherIdx  varchar(20),
PhotoTypeIdxvarchar(20),
CameraIdx   varchar(20)
PhotoDate   DateTime );

Create table Photographer (
PhotographerIdx varchar(20),
Photographervarchar(50));

Create table PhotoType (
PhotoTypeIdxvarchar(20),
PhotoType   varchar(50));

Create table Camera (
CameraIdx   varchar(20),
Camera  varchar(50));

Therefore, a select to print the basic info would be:

select Photos.PhotoIdx, Photographer.Photograper, PhotoType.PhotoType,
Camera.Camera, Photos.PhotoDate from
Photos, Photorapher, PhotoType, Camera where
((Photos.PhotograherIdx = Photographer.PhotograperIdx) and
 (Photos.PhotoTypeIdx = PhotoType.PhotoType) and
 (Photos.CameraIdx = Camera.CameraIdx));

The problem with doing this is that if any of the lookup indexes are
null (such as Photos.PhotographerIdx, Photos.PhotoTypeIdx or
Photos.CameraIdx) or point to a nonexistent record in the lookup table, 
the record will not be selected. So one has to use a left outer join. 
The problem is I can get a left outer join to work that links two table,
but not more. 

So how woulds you construct the above select to use only left outer
joins???

Thx,Terry  





-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



Joins Syntax

2004-09-11 Thread Graham

In the query below, I want to obtain all options_totals table records(500 or so), 
except for those
users_options records where the userID=3. 
i.e. Not retrieve options the user has already selected.

Have tried many combinations of joins, but get either just the records which are in 
the users_options
table, less userID=3, or failing that no records at all.

SELECT DISTINCT options_totals.optionID AS optionID, options.optioncode, 
options_totals.nameID
, options_names.cname, users_options.listtype AS listtype, users_options.userstatus AS 
userstatus
, users_options.userID AS userID
FROM options_totals
LEFT JOIN options_names ON options_names.ID = options_totals.nameID
LEFT JOIN options ON options.ID = options_totals.optionID
LEFT JOIN users_options ON options_totals.optionID = users_options.optionID
WHERE userID  3
ORDER BY userID

Appreciate if someone can show me the right syntax.
Graham


Please Disregard This Message

2004-09-11 Thread GH
Please disregard. Attempting to verify that I can send and receive messages

-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



Re: mysql and leftt outer join

2004-09-11 Thread Michael Stassen
Terry A. Haimann wrote:
Lets say I have a Database defined as
create table Photos (
PhotoIdxVarchar(20),
PhotograherIdx  varchar(20),
PhotoTypeIdxvarchar(20),
CameraIdx   varchar(20)
PhotoDate   DateTime );
Create table Photographer (
PhotographerIdx varchar(20),
Photographervarchar(50));
Create table PhotoType (
PhotoTypeIdxvarchar(20),
PhotoType   varchar(50));
Create table Camera (
CameraIdx   varchar(20),
Camera  varchar(50));
Therefore, a select to print the basic info would be:
select Photos.PhotoIdx, Photographer.Photograper, PhotoType.PhotoType,
Camera.Camera, Photos.PhotoDate from
Photos, Photorapher, PhotoType, Camera where
((Photos.PhotograherIdx = Photographer.PhotograperIdx) and
 (Photos.PhotoTypeIdx = PhotoType.PhotoType) and
 (Photos.CameraIdx = Camera.CameraIdx));
A lot of typos in that, but I'll assume that wasn't the problem.
The problem with doing this is that if any of the lookup indexes are
null (such as Photos.PhotographerIdx, Photos.PhotoTypeIdx or
Photos.CameraIdx) or point to a nonexistent record in the lookup table, 
the record will not be selected. So one has to use a left outer join. 
The problem is I can get a left outer join to work that links two table,
but not more. 
It's hard to say what you did wrong without seeing your query.
So how woulds you construct the above select to use only left outer
joins???
Thx,	Terry  
This should do:
  SELECT Photos.PhotoIdx, Photographer.Photographer, PhotoType.PhotoType,
 Camera.Camera, Photos.PhotoDate
  FROM Photos
  LEFT JOIN Photographer
ON Photos.PhotographerIdx = Photographer.PhotographerIdx
  LEFT JOIN PhotoType
ON Photos.PhotoTypeIdx = PhotoType.PhotoType
  LEFT JOIN Camera
ON Photos.CameraIdx = Camera.CameraIdx;
Michael
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]


Re: Best way to get Access DB structures into MySQL ??

2004-09-11 Thread Chris Martin
[EMAIL PROTECTED] wrote:
What is the best way to take the structure of multiple tables in Access
and get them re-created in MySQL without doing that all by hand? 

 

Is there a way to do the equivalent of a Show Create Table in Access, that
I could then use in MySQL ??
 

Chris Hood 

Investigator Verizon Global Security Operations Center 

Email:  mailto:[EMAIL PROTECTED]
[EMAIL PROTECTED] 

Desk: 972.399.5900
Verizon Proprietary
MySQL-Front has an ODBC import feature.
The old 2.5 version was free (looks like it still is)
http://www.bumpersoft.com/Programming/Databases_and_Networks/Review_982_index.htm
It's since been taken over by new developers, and newer versions are 
available for a reasonable fee at
http://www.mysqlfront.de/download.html

--
Chris Martin
Web Developer
Open Source  Web Standards Advocate
http://www.chriscodes.com/
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]