[MDEV-9629] Disappearing PRI from Key column after creating a trigger Created: 2016-02-25 Updated: 2016-03-22 Resolved: 2016-03-22 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Triggers |
| Affects Version/s: | 10.1.11 |
| Fix Version/s: | 10.1.13 |
| Type: | Bug | Priority: | Major |
| Reporter: | Lubomir Daniel Fedor | Assignee: | Sergei Golubchik |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | mariadb, primary_key, trigger | ||
| Environment: |
Ubuntu 15.10, Brfs filesystem, InnoDB (XtraDB), single database server, no replication, root access, all commands entered separately through the command line (bash) after logging through mysql command |
||
| Sprint: | 10.1.13 |
| Description |
|
I create a table on an empty database. Table is called Detail, has 4 columns with first one as a primary key:
I insert a single record and display column info:
There is PRI in KEY column of idDetail (as it should be). I then create a trigger on INSERT and display column info again:
No change, PRI is still where it should be. I then execute an update on a single and only row. Update should neither activate the trigger, nor actually change anything (since the value in the row is the same as in the update).
Suddenly PRI is missing from KEY column. I execute the very same update again and then show columns again.
PRI is back in the KEY column. If I then again execute update, PRI is gone, and then after another one is back. Same behaviour when I execute INSERT. I then DROP the trigger, update the record and show columns again twice :
After the trigger is dropped, SHOW columns always correctly lists PRI in Key column for idDetail. |
| Comments |
| Comment by Risato Stefano [ 2016-03-09 ] | ||||||||||||
|
I confirm this bug with my installation. I was creating a new bug, before finding this one. Here the text I was writing, if it can help... After migration from windows (2003 server 32 bit - MariaDB 10.0.24) to linux (Ubuntu server 15.10 64 bit - MariaDB 10.1.12), I had a problem saving records from web pages. The client uses the .Net connector. After investigating, I found that a table with a trigger doesn't report correctly the information about the primary key to client after an insert or update of a record. To reproduce the bug, try this steps (it is not dependant on the db engine used):
perform SELECT * FROM test, the informations about the primary key are correct
perform SELECT * FROM test, the informations about the primary key are correct
perform SELECT * FROM test, the informations about the primary key are NOT correct, client reports no primary key. Doing an OPTIMIZE TABLE test, informations are then correct, but only for one INSERT. After this the problem reappear. |