Originally created by: rosenfie...@gmail.com
What is the problem that needs to be solved (required)?
After doing a custom SELECT query, it is not possible to alter the contents
of the result set and have the updates posted back to the server.
What is the idea in abstract terms (optional)?
To begin with, add support for editing result sets that relate to a single
table only. Should be somewhat feasible, since this is how Zeos already
updates records - based on the primary key of a single table.
Updating multiple tables is a much harder problem. The problem is already
solved in the server, by the way: if you prepend the select query with
"CREATE VIEW ... AS", and then browse the newly created view in the data
grid, you will be able to edit even more complex result sets.
Example workflow using the new feature (optional)?
1) Create a table with a primary key.
2) Execute "SELECT x, y FROM c".
3) Edit a field value in the result grid.
4) Click apply.
What is a practical way to implement this idea (optional)?
When the server returns a result set, for each column it also returns:
- the original table it came from
- the original column it came from
Except of course for derivated columns, literals, etc.
So in theory it is possible, after executing a query:
* for each column
* check that they are from the same original table, otherwise abort
* for each original table
* query information_schema for a a list of primary (and unique
all-not-null keys)
* for each of the candidate keys found
* compare the list of columns comprising the candidate key with the
original columns in the result set
* if all columns of the candidate key are present in the result set,
select the key and note the details of the key for use in later UPDATE
statements
When updating,
* use the noted key to update the result set.
View and moderate all "tickets Discussion" comments posted by this user
Mark all as spam, and block user from posting to "Tickets"
Originally posted by: rosenfie...@gmail.com
Duplicate of #723.
Mergedinto: 723
Status: Duplicate