[MDEV-13320] virtual columns fail when expression references auto increment column Created: 2017-07-13  Updated: 2021-05-13  Resolved: 2017-07-14

Status: Closed
Project: MariaDB Server
Component/s: Documentation, Server, Virtual Columns
Affects Version/s: 10.2.7, 10.2
Fix Version/s: N/A

Type: Bug Priority: Major
Reporter: Taylor Honsowetz Assignee: Ian Gilfillan
Resolution: Fixed Votes: 0
Labels: None
Environment:

openSUSE 42.2


Issue Links:
Relates
relates to MDEV-12936 upgrade to 10.2.6 failed upon tables ... Closed

 Description   

The following create statement fails on 10.2.7:

CREATE TABLE t1 ( id INT NOT NULL AUTO_INCREMENT, v INT AS (id) VIRTUAL, PRIMARY KEY (id) ) ENGINE=InnoDB;

Giving the error:
#1901 - Function or expression 'AUTO_INCREMENT' cannot be used in the GENERATED ALWAYS AS clause of `id`

The same create statement works fine on 10.1.22



 Comments   
Comment by Sergei Golubchik [ 2017-07-13 ]

This is intentional. Generated columns do not work with auto-incremented columns, they won't see the value. We've introduced the limitation in MDEV-11117. It's the same in MySQL 5.7.

In 10.1 (and earlier version) this was allowed, but it did not work correctly.

To let generated columns work with auto-increment would need a rather big internal refactoring. We want to do that, but it's not a change for 10.2.

Comment by Taylor Honsowetz [ 2017-07-13 ]

If this is intentional, it should be included within the documentation for AUTO_INCREMENT.

Currently this is an undocumented incompatible change between 10.1 and 10.2.

Comment by Ian Gilfillan [ 2017-07-14 ]

Documented in:
https://mariadb.com/kb/en/mariadb/upgrading-from-mariadb-101-to-mariadb-102/
https://mariadb.com/kb/en/mariadb/what-is-mariadb-102/
https://mariadb.com/kb/en/mariadb/mariadb-1026-release-notes/
https://mariadb.com/kb/en/mariadb/auto_increment
https://mariadb.com/kb/en/mariadb/virtual-computed-columns/
https://mariadb.com/kb/en/mariadb/constraint/

Generated at Thu Feb 08 08:04:40 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.