-
Notifications
You must be signed in to change notification settings - Fork 265
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: propose a simpler way to get software row_id #912
feat: propose a simpler way to get software row_id #912
Conversation
The following is confusing, if we do so, we shall give another name.
I am in to redesign the row_id. The current implementation is complicated and requires special treatments in different components of the system. |
One alternative is that we can rename it to "id"? For normal tables, "id" should be equal to "row_id". For others, it will be created at runtime. Any idea? |
I like the idea! However, this won't work for |
Ok. A few clarifications.
|
If I understand correctly, ROWID needs to be permanent (https://www.ibm.com/docs/en/db2-for-zos/11?topic=types-row-id-values), while the ROWNUM can be generated at run time. I like the idea of storage engine. For structure data, we can get rowid from the sqlalchemy (or underlying database). So we only need handle the multimedia case to generate a unique id. PS: I suggest that |
Close this for now. #1073 is merged as a fix. |
The current approach to get the row_id in the base branch is a bit complicated. It requires us to modify or insert an expression to derive the row_id. It is easy for create index, but it becomes problematic for index scan. Index scan is enabled during optimization. We need to take care of the row_id expression during optimization by traversing multiple operators. I think this is not very clean.
I am thinking we can just generate runtime time row id for storage besides structure table. The assumption is for those data table, they won't be used for operations like join, etc, so it is safe to just use a runtime row id which is different from the row_id actually stored on disk.
Implementation-wise, I think it becomes simpler that we don't need manually insert any expression. Feedback is appreciated if any major issue is overlooked.