Comments (2)
I can repro, this one is a little trickier but basically the same thing. Before we were bleeding information between transactions, failing to reset editor data created an insert editor with a split brain. Now we're bleeding information between analysis and execution. When we resolve foreign keys the session initializes a tableEditor for the FK table. Because the FK table is the same as the insert table, we lose track of the difference when we initialize the execution insert editor. Same error root cause, the editor that lands id increments is not the editor with the insert data.
I do not understand why the FK table editor needs to share the same namespace as the insert table and will look into this. But the solution is either 1) make the session namespace differentiate these two states, 2) make sure the insert editor tracks the analysis editor, 3) make some structural change where FKs do what they need to do in a different way. I guess it depends on whether we can take shortcuts with DELETEs and FK CASCADEs accumulating in the same editor, or if those have to be applied sequentially in different working sets.
from go-mysql-server.
CC @max-hoffman since you implemented the fix for the related issue
from go-mysql-server.
Related Issues (20)
- go mod tidy error HOT 2
- add create table comment on table clause to table spec HOT 1
- Can't turn on multiStatements when using memory driver HOT 2
- Does it support `Functional Key Parts` index ? HOT 2
- Server error message compatibility when doing INSERT HOT 3
- Foreign key constraints break auto-incrementing ids in memory mode HOT 3
- Panic when executing sql statements from external command line tool after startup HOT 7
- Potential regression: number cast to JSON no longer read as float HOT 2
- Running multiple migrations in a transaction HOT 2
- Primary key column order changes column order on insert HOT 1
- Consistent usage of variables in the example
- MemoryDB: Deleting rows silently fails if there are multiple CASCADING constraints pointing to the same parent HOT 1
- MemoryDB: UPDATE succeeds but is not reflected in subsequent SELECT
- Feature request: persistent database store HOT 1
- Any Benchmarks available HOT 1
- Parser support for `PARTITION BY` HOT 6
- Problems with MySQL Connector/NET (Mysql.Data) and go-mysql-server HOT 2
- "ON UPDATE CURRENT_TIMESTAMP" not come into effect
- Update flatbuffers to fix go-mysql-server builds in Bazel environments
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from go-mysql-server.