Hi, Vicențiu! On Apr 16, Vicențiu Ciorbaru wrote:
Hi Sergei!
This email is a followup to the brief discussion on Zulip here:
https://mariadb.zulipchat.com/#narrow/stream/118759-general/topic/preserve.2...
You mentioned we store the view's definition (source) inside the FRM. I've used that information to extend the I_S.views table with a source column. The patch is very small, but I have 2 questions: 1. Is this how the feature should look like? I wonder if we should prepend *create view <view-name>* to the SOURCE column, to make it behave very similar to SHOW CREATE VIEW.
now it's similar to VIEW_DEFINITION, another column from I_S.VIEWS. In your test it looks quote logical that both column values in the same I_S table start from select.
Perhaps SOURCE as a column name is not the most well chosen name.
Feel free to choose something better. It doesn't have to be short, SQL is rather verbose language, and VIEW_DEFINITION isn't exactly short itself.
2. I don't know if I should use: table->field[11]->store(tables->source.str, tables->source.length, tables->view_creation_ctx->get_client_cs()); or table->field[11]->store(tables->source.str, tables->source.length, cs);
when storing the source data.
Check the frm file, I suspect the source value is the original bytes as received by the server, so in the view charset, not converted. That means, when saving it in a field you need to specify view charset, just as you did in your patch. Try to create a view with non-ascii characters and not in utf8 charset. May be, just change your test to start from `set names latin2` Regards, Sergei VP of MariaDB Server Engineering and security@mariadb.org