OpenTenBase / OpenTenBase/TXSQL
conversion from myisam to innodb failed when create partition table
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 337
- Forks
- 234
- PR merge metrics
- No merged PRs in 30d
Description
Problem:
when myisam_conversion_innodb and tencent_myisam_conversion_innodb are
opened in instance, user execute following statement will fail.
CREATE TABLE trb9 (id INT, name VARCHAR(50), purchased DATE) ENGINE=MYISAM
PARTITION BY RANGE( YEAR(purchased) ) (
PARTITION p0 VALUES LESS THAN (1990) ENGINE=MYISAM,
PARTITION p1 VALUES LESS THAN (1995) ENGINE=MYISAM,
PARTITION p2 VALUES LESS THAN (2000) ENGINE=MYISAM,
PARTITION p3 VALUES LESS THAN (2005) ENGINE=MYISAM
);
the reason for this problem is that myisam_conversion_innodb only
convert the table engine to innodb but the partition engine still be
myisam so table engine and partition engine are different.
Solution:
Convert partition engine to innodb if it is myisam.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating myisam_conversion_innodb and tencent_myisam_conversion_innodb, then trace how the partitioned CREATE TABLE statement handles table and partition engines. Reproduce the supplied SQL with those settings enabled. Done means a MYISAM table with MYISAM partitions is converted so the table and every partition use InnoDB without failing.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- databases
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 68/100