Merge Table always "IN USE" after creation

Merge Table always "IN USE" after creation

am 21.04.2003 11:16:49 von Sebastian Bergmann

--------------010108030604090707090803
Content-Type: text/plain; charset=us-ascii format=flowed
Content-Transfer-Encoding: 7bit

After executing the attached series of CREATE TABLE queries
phpMyAdmin always shows "IN USE" as status for the pot_accesslog
table.

For instance a

SHOW KEYS FROM `pot_accesslog`

query results in a

Can't open file: 'pot_accesslog.MRG'. (errno: 143)

error. This problem does not go away after restarting the MySQL server.

I find it odd that this is only the case for the pot_accesslog merge
table while the pot_visitors merge table, that is generated at the
same time, works fine.

At the moment I'm experiencing this with MySQL 4.1.0-alpha on Win32,
but I remember having the same problem with MySQL 4.0.12.

Greetings,
Sebastian

--
Sebastian Bergmann
http://sebastian-bergmann.de/ http://phpOpenTracker.de/

Did I help you? Consider a gift: http://wishlist.sebastian-bergmann.de/

--------------010108030604090707090803
Content-Type: text/plain;
name="queries.txt"; charset=us-ascii
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="queries.txt"

CREATE TABLE IF NOT EXISTS pot_accesslog_200304 (
accesslog_id INT(11) NOT NULL,
timestamp INT(10) UNSIGNED NOT NULL,
document_id INT(11) NOT NULL,
exit_target_id INT(11) DEFAULT '0' NOT NULL,
entry_document TINYINT(3) UNSIGNED NOT NULL,

KEY accesslog_id (accesslog_id),
KEY timestamp (timestamp),
KEY document_id (document_id),
KEY exit_target_id (exit_target_id)
) DELAY_KEY_WRITE=1

CREATE TABLE IF NOT EXISTS pot_accesslog_200305 (
accesslog_id INT(11) NOT NULL,
timestamp INT(10) UNSIGNED NOT NULL,
document_id INT(11) NOT NULL,
exit_target_id INT(11) DEFAULT '0' NOT NULL,
entry_document TINYINT(3) UNSIGNED NOT NULL,

KEY accesslog_id (accesslog_id),
KEY timestamp (timestamp),
KEY document_id (document_id),
KEY exit_target_id (exit_target_id)
) DELAY_KEY_WRITE=1

CREATE TABLE IF NOT EXISTS pot_accesslog_200306 (
accesslog_id INT(11) NOT NULL,
timestamp INT(10) UNSIGNED NOT NULL,
document_id INT(11) NOT NULL,
exit_target_id INT(11) DEFAULT '0' NOT NULL,
entry_document TINYINT(3) UNSIGNED NOT NULL,

KEY accesslog_id (accesslog_id),
KEY timestamp (timestamp),
KEY document_id (document_id),
KEY exit_target_id (exit_target_id)
) DELAY_KEY_WRITE=1

CREATE TABLE IF NOT EXISTS pot_accesslog_200307 (
accesslog_id INT(11) NOT NULL,
timestamp INT(10) UNSIGNED NOT NULL,
document_id INT(11) NOT NULL,
exit_target_id INT(11) DEFAULT '0' NOT NULL,
entry_document TINYINT(3) UNSIGNED NOT NULL,

KEY accesslog_id (accesslog_id),
KEY timestamp (timestamp),
KEY document_id (document_id),
KEY exit_target_id (exit_target_id)
) DELAY_KEY_WRITE=1

CREATE TABLE IF NOT EXISTS pot_accesslog_200308 (
accesslog_id INT(11) NOT NULL,
timestamp INT(10) UNSIGNED NOT NULL,
document_id INT(11) NOT NULL,
exit_target_id INT(11) DEFAULT '0' NOT NULL,
entry_document TINYINT(3) UNSIGNED NOT NULL,

KEY accesslog_id (accesslog_id),
KEY timestamp (timestamp),
KEY document_id (document_id),
KEY exit_target_id (exit_target_id)
) DELAY_KEY_WRITE=1

CREATE TABLE IF NOT EXISTS pot_accesslog_200309 (
accesslog_id INT(11) NOT NULL,
timestamp INT(10) UNSIGNED NOT NULL,
document_id INT(11) NOT NULL,
exit_target_id INT(11) DEFAULT '0' NOT NULL,
entry_document TINYINT(3) UNSIGNED NOT NULL,

KEY accesslog_id (accesslog_id),
KEY timestamp (timestamp),
KEY document_id (document_id),
KEY exit_target_id (exit_target_id)
) DELAY_KEY_WRITE=1

CREATE TABLE IF NOT EXISTS pot_accesslog_200310 (
accesslog_id INT(11) NOT NULL,
timestamp INT(10) UNSIGNED NOT NULL,
document_id INT(11) NOT NULL,
exit_target_id INT(11) DEFAULT '0' NOT NULL,
entry_document TINYINT(3) UNSIGNED NOT NULL,

KEY accesslog_id (accesslog_id),
KEY timestamp (timestamp),
KEY document_id (document_id),
KEY exit_target_id (exit_target_id)
) DELAY_KEY_WRITE=1

CREATE TABLE IF NOT EXISTS pot_accesslog_200311 (
accesslog_id INT(11) NOT NULL,
timestamp INT(10) UNSIGNED NOT NULL,
document_id INT(11) NOT NULL,
exit_target_id INT(11) DEFAULT '0' NOT NULL,
entry_document TINYINT(3) UNSIGNED NOT NULL,

KEY accesslog_id (accesslog_id),
KEY timestamp (timestamp),
KEY document_id (document_id),
KEY exit_target_id (exit_target_id)
) DELAY_KEY_WRITE=1

CREATE TABLE IF NOT EXISTS pot_accesslog_200312 (
accesslog_id INT(11) NOT NULL,
timestamp INT(10) UNSIGNED NOT NULL,
document_id INT(11) NOT NULL,
exit_target_id INT(11) DEFAULT '0' NOT NULL,
entry_document TINYINT(3) UNSIGNED NOT NULL,

KEY accesslog_id (accesslog_id),
KEY timestamp (timestamp),
KEY document_id (document_id),
KEY exit_target_id (exit_target_id)
) DELAY_KEY_WRITE=1

CREATE TABLE IF NOT EXISTS pot_accesslog (
accesslog_id INT(11) NOT NULL,
visitor_id INT(11) NOT NULL,
client_id INT(10) UNSIGNED NOT NULL,
operating_system_id INT(11) NOT NULL,
user_agent_id INT(11) NOT NULL,
host_id INT(11) NOT NULL,
referer_id INT(11) NOT NULL,
timestamp INT(10) UNSIGNED NOT NULL,
returning_visitor TINYINT(3) UNSIGNED NOT NULL,

PRIMARY KEY (accesslog_id),
KEY client_time (client_id, timestamp)
) TYPE=MRG_MyISAM UNION=(pot_accesslog_200304,pot_accesslog_200305,pot_accessl og_200306,pot_accesslog_200307,pot_accesslog_200308,pot_acce sslog_200309,pot_accesslog_200310,pot_accesslog_200311,pot_a ccesslog_200312)

CREATE TABLE IF NOT EXISTS pot_visitors_200304 (
accesslog_id INT(11) NOT NULL,
visitor_id INT(11) NOT NULL,
client_id INT(10) UNSIGNED NOT NULL,
operating_system_id INT(11) NOT NULL,
user_agent_id INT(11) NOT NULL,
host_id INT(11) NOT NULL,
referer_id INT(11) NOT NULL,
timestamp INT(10) UNSIGNED NOT NULL,
returning_visitor TINYINT(3) UNSIGNED NOT NULL,

PRIMARY KEY (accesslog_id),
KEY client_time (client_id, timestamp)
) DELAY_KEY_WRITE=1

CREATE TABLE IF NOT EXISTS pot_visitors_200305 (
accesslog_id INT(11) NOT NULL,
visitor_id INT(11) NOT NULL,
client_id INT(10) UNSIGNED NOT NULL,
operating_system_id INT(11) NOT NULL,
user_agent_id INT(11) NOT NULL,
host_id INT(11) NOT NULL,
referer_id INT(11) NOT NULL,
timestamp INT(10) UNSIGNED NOT NULL,
returning_visitor TINYINT(3) UNSIGNED NOT NULL,

PRIMARY KEY (accesslog_id),
KEY client_time (client_id, timestamp)
) DELAY_KEY_WRITE=1

CREATE TABLE IF NOT EXISTS pot_visitors_200306 (
accesslog_id INT(11) NOT NULL,
visitor_id INT(11) NOT NULL,
client_id INT(10) UNSIGNED NOT NULL,
operating_system_id INT(11) NOT NULL,
user_agent_id INT(11) NOT NULL,
host_id INT(11) NOT NULL,
referer_id INT(11) NOT NULL,
timestamp INT(10) UNSIGNED NOT NULL,
returning_visitor TINYINT(3) UNSIGNED NOT NULL,

PRIMARY KEY (accesslog_id),
KEY client_time (client_id, timestamp)
) DELAY_KEY_WRITE=1

CREATE TABLE IF NOT EXISTS pot_visitors_200307 (
accesslog_id INT(11) NOT NULL,
visitor_id INT(11) NOT NULL,
client_id INT(10) UNSIGNED NOT NULL,
operating_system_id INT(11) NOT NULL,
user_agent_id INT(11) NOT NULL,
host_id INT(11) NOT NULL,
referer_id INT(11) NOT NULL,
timestamp INT(10) UNSIGNED NOT NULL,
returning_visitor TINYINT(3) UNSIGNED NOT NULL,

PRIMARY KEY (accesslog_id),
KEY client_time (client_id, timestamp)
) DELAY_KEY_WRITE=1

CREATE TABLE IF NOT EXISTS pot_visitors_200308 (
accesslog_id INT(11) NOT NULL,
visitor_id INT(11) NOT NULL,
client_id INT(10) UNSIGNED NOT NULL,
operating_system_id INT(11) NOT NULL,
user_agent_id INT(11) NOT NULL,
host_id INT(11) NOT NULL,
referer_id INT(11) NOT NULL,
timestamp INT(10) UNSIGNED NOT NULL,
returning_visitor TINYINT(3) UNSIGNED NOT NULL,

PRIMARY KEY (accesslog_id),
KEY client_time (client_id, timestamp)
) DELAY_KEY_WRITE=1

CREATE TABLE IF NOT EXISTS pot_visitors_200309 (
accesslog_id INT(11) NOT NULL,
visitor_id INT(11) NOT NULL,
client_id INT(10) UNSIGNED NOT NULL,
operating_system_id INT(11) NOT NULL,
user_agent_id INT(11) NOT NULL,
host_id INT(11) NOT NULL,
referer_id INT(11) NOT NULL,
timestamp INT(10) UNSIGNED NOT NULL,
returning_visitor TINYINT(3) UNSIGNED NOT NULL,

PRIMARY KEY (accesslog_id),
KEY client_time (client_id, timestamp)
) DELAY_KEY_WRITE=1

CREATE TABLE IF NOT EXISTS pot_visitors_200310 (
accesslog_id INT(11) NOT NULL,
visitor_id INT(11) NOT NULL,
client_id INT(10) UNSIGNED NOT NULL,
operating_system_id INT(11) NOT NULL,
user_agent_id INT(11) NOT NULL,
host_id INT(11) NOT NULL,
referer_id INT(11) NOT NULL,
timestamp INT(10) UNSIGNED NOT NULL,
returning_visitor TINYINT(3) UNSIGNED NOT NULL,

PRIMARY KEY (accesslog_id),
KEY client_time (client_id, timestamp)
) DELAY_KEY_WRITE=1

CREATE TABLE IF NOT EXISTS pot_visitors_200311 (
accesslog_id INT(11) NOT NULL,
visitor_id INT(11) NOT NULL,
client_id INT(10) UNSIGNED NOT NULL,
operating_system_id INT(11) NOT NULL,
user_agent_id INT(11) NOT NULL,
host_id INT(11) NOT NULL,
referer_id INT(11) NOT NULL,
timestamp INT(10) UNSIGNED NOT NULL,
returning_visitor TINYINT(3) UNSIGNED NOT NULL,

PRIMARY KEY (accesslog_id),
KEY client_time (client_id, timestamp)
) DELAY_KEY_WRITE=1

CREATE TABLE IF NOT EXISTS pot_visitors_200312 (
accesslog_id INT(11) NOT NULL,
visitor_id INT(11) NOT NULL,
client_id INT(10) UNSIGNED NOT NULL,
operating_system_id INT(11) NOT NULL,
user_agent_id INT(11) NOT NULL,
host_id INT(11) NOT NULL,
referer_id INT(11) NOT NULL,
timestamp INT(10) UNSIGNED NOT NULL,
returning_visitor TINYINT(3) UNSIGNED NOT NULL,

PRIMARY KEY (accesslog_id),
KEY client_time (client_id, timestamp)
) DELAY_KEY_WRITE=1

CREATE TABLE IF NOT EXISTS pot_visitors (
accesslog_id INT(11) NOT NULL,
visitor_id INT(11) NOT NULL,
client_id INT(10) UNSIGNED NOT NULL,
operating_system_id INT(11) NOT NULL,
user_agent_id INT(11) NOT NULL,
host_id INT(11) NOT NULL,
referer_id INT(11) NOT NULL,
timestamp INT(10) UNSIGNED NOT NULL,
returning_visitor TINYINT(3) UNSIGNED NOT NULL,

PRIMARY KEY (accesslog_id),
KEY client_time (client_id, timestamp)
) TYPE=MRG_MyISAM UNION=(pot_visitors_200304,pot_visitors_200305,pot_visitors_ 200306,pot_visitors_200307,pot_visitors_200308,pot_visitors_ 200309,pot_visitors_200310,pot_visitors_200311,pot_visitors_ 200312)

INSERT
INTO pot_visitors_200304
(client_id, accesslog_id, visitor_id,
operating_system_id, user_agent_id, host_id,
referer_id, timestamp, returning_visitor)
VALUES (1, -794589418, -794589418,
630865406, -600033253, 85172930,
0, 1050915941, 0)

INSERT
INTO pot_accesslog_200304
(accesslog_id, timestamp,
document_id, entry_document)
VALUES (-794589418, 1050915941, -412988852, 1)

--------------010108030604090707090803
Content-Type: text/plain; charset=us-ascii

--
MySQL Bugs Mailing List
For list archives: http://lists.mysql.com/bugs
To unsubscribe: http://lists.mysql.com/bugs?unsub=gcdmb-bugs@m.gmane.org
--------------010108030604090707090803--

Re: Merge Table always "IN USE" after creation

am 22.04.2003 20:01:35 von Benjamin Pflugmann

Hi.

On Mon 2003-04-21 at 11:16:49 +0200, lists@sebastian-bergmann.de wrote:
> After executing the attached series of CREATE TABLE queries
> phpMyAdmin always shows "IN USE" as status for the pot_accesslog
> table.
>
> For instance a
>
> SHOW KEYS FROM `pot_accesslog`
>
> query results in a
>
> Can't open file: 'pot_accesslog.MRG'. (errno: 143)

$ perror 143
Error code 143: Unknown error 143
143 = Conflicting table definition between MERGE and mapped table

[...]
> CREATE TABLE IF NOT EXISTS pot_accesslog_200312 (
> accesslog_id INT(11) NOT NULL,
> timestamp INT(10) UNSIGNED NOT NULL,
> document_id INT(11) NOT NULL,
> exit_target_id INT(11) DEFAULT '0' NOT NULL,
> entry_document TINYINT(3) UNSIGNED NOT NULL,
>
> KEY accesslog_id (accesslog_id),
> KEY timestamp (timestamp),
> KEY document_id (document_id),
> KEY exit_target_id (exit_target_id)
> ) DELAY_KEY_WRITE=1
>
> CREATE TABLE IF NOT EXISTS pot_accesslog (
> accesslog_id INT(11) NOT NULL,
> visitor_id INT(11) NOT NULL,
> client_id INT(10) UNSIGNED NOT NULL,
> operating_system_id INT(11) NOT NULL,
> user_agent_id INT(11) NOT NULL,
> host_id INT(11) NOT NULL,
> referer_id INT(11) NOT NULL,
> timestamp INT(10) UNSIGNED NOT NULL,
> returning_visitor TINYINT(3) UNSIGNED NOT NULL,

Here, the merge table definition has serveral fields (e.g. visitor_id)
which are not part of the underlying tables. So error 143 is to be
expected. Fix the table defintion for the merge table to fit the
underlying tables and everything should work.

>
> PRIMARY KEY (accesslog_id),
> KEY client_time (client_id, timestamp)
> ) TYPE=MRG_MyISAM UNION=(pot_accesslog_200304,pot_accesslog_200305,pot_accessl og_200306,pot_accesslog_200307,pot_accesslog_200308,pot_acce sslog_200309,pot_accesslog_200310,pot_accesslog_200311,pot_a ccesslog_200312)
[...]

HTH,

Benjamin.

--
benjamin-mysql@pflugmann.de

--
MySQL Bugs Mailing List
For list archives: http://lists.mysql.com/bugs
To unsubscribe: http://lists.mysql.com/bugs?unsub=gcdmb-bugs@m.gmane.org

Re: Merge Table always "IN USE" after creation

am 22.04.2003 23:14:56 von Sebastian Bergmann

Benjamin Pflugmann wrote:
> Here, the merge table definition has serveral fields (e.g. visitor_id)
> which are not part of the underlying tables. So error 143 is to be
> expected. Fix the table defintion for the merge table to fit the
> underlying tables and everything should work.

Argh, stupid me.

Thank you,
Sebastian

--
Sebastian Bergmann
http://sebastian-bergmann.de/ http://phpOpenTracker.de/

Did I help you? Consider a gift: http://wishlist.sebastian-bergmann.de/

--
MySQL Bugs Mailing List
For list archives: http://lists.mysql.com/bugs
To unsubscribe: http://lists.mysql.com/bugs?unsub=gcdmb-bugs@m.gmane.org