I just added a quick fix that should make the procedure less susceptible to issues relating to bug #23856. To do that, I had to remove the
ORDER BY ordinal_position
bits in all the calls to GROUP_CONCAT
over the rows in the information_schema.COLUMNS
table. If you include the
ORDER BY ordinal_position
clause, the concatenation result will mess up sometimes. The behaviour can be attenuated somewhat by decreasing value for the group_concat_max_len
server variable, but so far, I have not seen a sufficiently large valy of group_concat_max_len
that does not display this behaviour. Omitting the
ORDER BY ordinal_position
clause does not seem change the order. Rows from information_schema.COLUMNS
seem to be ordered by TABLE_SCHEMA
, TABLE_NAME
, COLUMN
and ORDINAL_POSITION
anyhow. I hope I can rely on that order, as all sorts of trouble are to be expected when the column order of the local table differs from that of the remote table.I also added some output so you can see what the procedure is doing. Some steps, like getting the remote metadata, take rather long, and I found some output to be helpful.
The updated procedure can be found here in the usual spot at MySQLForge.
The updated procedure does not yet support creating federated tables using a separate
SERVER
schema object (see the manual).Please, try it, and report bugs in the procedure by adding a comment to this blog entry. Thank you!
2 comments:
I'm trying to use your procedure and consistently get the error:
p_create_federated_table can't return a result set in the given context
Any ideas what this might be?
Phil
Hi Anonymous!
how do you call the procedure?
Post a Comment