Re: [Maria-developers] c457f237511: MDEV-30984 Online ALTER table is denied with non-informative error messages

2023-05-29 Thread Nikita Malyavin
Pardon, the debug test results weren't updated. It's in 97e8aeff <https://github.com/MariaDB/server/commit/97e8aeff16bcc32d7a30e2deda8f01c1de37296c> On Mon, 29 May 2023 at 19:47, Nikita Malyavin wrote: > The new version of the fix is 5229ea56 > <https://github.

Re: [Maria-developers] c457f237511: MDEV-30984 Online ALTER table is denied with non-informative error messages

2023-05-29 Thread Nikita Malyavin
Hello Sergei! Apparently, while I was making the changes to this fix, I've also ended up in a small THD refactoring. Please see commits a1df5fdc and 4e2deb34

Re: [Maria-developers] 56e2cd20ed3: MDEV-31033 ER_KEY_NOT_FOUND upon online COPY ALTER on a partitioned table

2023-05-29 Thread Nikita Malyavin
REORGANIZE PARTITION, and will allow making changes from handler clones! On Sun, 28 May 2023 at 12:36, Sergei Golubchik wrote: > Hi, Nikita, > > See, e.g. handler::is_clustering_key() or handler::ha_rnd_pos_by_record() > > On May 28, Nikita Malyavin wrote: > > On Wed, 24 May 2023 a

Re: [Maria-developers] 56e2cd20ed3: MDEV-31033 ER_KEY_NOT_FOUND upon online COPY ALTER on a partitioned table

2023-05-27 Thread Nikita Malyavin
On Wed, 24 May 2023 at 18:32, Sergei Golubchik wrote: > > +bool handler::is_root_handler() const > > +{ > > + return this == table->file; > > +} > > better make it inline in handler.h > > Can't 😓 TABLE is incomplete in h

Re: [Maria-developers] 56e2cd20ed3: MDEV-31033 ER_KEY_NOT_FOUND upon online COPY ALTER on a partitioned table

2023-05-27 Thread Nikita Malyavin
n that there can't be more than two layers of handlers. I suspect I'm able to move the assertion to a more generic place, like is_root_handler, but I'd have to check whether a handler's hton is a "certainly leaf" one by comparing it with ha_resolve_by_name outputs for &

Re: [Maria-developers] c75f774d278: MDEV-31058 ER_KEY_NOT_FOUND upon concurrent CHANGE column autoinc and DML

2023-05-27 Thread Nikita Malyavin
will not be changed under NO_AUTO_VALUE_ON_ZERO, this is why it's fine. -- Yours truly, Nikita Malyavin ___ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lists.launchpad.net Unsubscribe : https://launchpad.

Re: [Maria-developers] c457f237511: MDEV-30984 Online ALTER table is denied with non-informative error messages

2023-05-27 Thread Nikita Malyavin
Oh, it'll be a different branch, no need to handle it there at all On Sat, 27 May 2023 at 19:53, Nikita Malyavin wrote: > Hi, > > I'm mostly up to second approach: > >> if you'll simply print >> the offending sql clause as the reason, this won't need

Re: [Maria-developers] c457f237511: MDEV-30984 Online ALTER table is denied with non-informative error messages

2023-05-27 Thread Nikita Malyavin
Hi, I'm mostly up to second approach: > if you'll simply print > the offending sql clause as the reason, this won't need any > localization. But how to better report a temporary table? CREATE TEMPORARY TABLE? Or simply TEMPORARY? -- Your

Re: [Maria-developers] da5a72f32d4: MDEV-31033 ER_KEY_NOT_FOUND upon online COPY ALTER on a partitioned table

2023-05-10 Thread Nikita Malyavin
It's done: 56e2cd20ed3 <https://github.com/MariaDB/server/commit/56e2cd20ed3ea0f826973c0dcfaed933779fc038> -- Yours truly, Nikita Malyavin ___ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lists.la

Re: [Maria-developers] da5a72f32d4: MDEV-31033 ER_KEY_NOT_FOUND upon online COPY ALTER on a partitioned table

2023-05-08 Thread Nikita Malyavin
So better later on demand. On Mon, 8 May 2023 at 22:49, Sergei Golubchik wrote: > Hi, Nikita, > > On May 08, Nikita Malyavin wrote: > > On Fri, 5 May 2023 at 20:46, Sergei Golubchik wrote: > > > > > > #ifdef HAVE_REPLICATION > > > > - if (unlikely(!

Re: [Maria-developers] da5a72f32d4: MDEV-31033 ER_KEY_NOT_FOUND upon online COPY ALTER on a partitioned table

2023-05-08 Thread Nikita Malyavin
row_online_alter called only for the main ha_partition > handler. > This doesn't look reliable -- won't there be any cases when we make a change from another handler, not table->file? If that never happens, we could add DBUG_ASSERT(this == table->faile) in ha_innodb's/ha

Re: [Maria-developers] 24c653be25a: unpack_row: unpack a correct number of fields

2023-05-06 Thread Nikita Malyavin
> + (long) ())); > > eh? you surely meant `(long) fidx` ? > how did it even compile? > Oops. Will also be `i` with %u format. The corrections can be found in c3879da39 <https://github.com/MariaDB/server/commit/c3879da39fa39204930e46750aba7387de4d3a69> -- Yours truly, Nikita Malyavin ___ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp

Re: [Maria-developers] c5ce597f06a: MDEV-31043 ER_KEY_NOT_FOUND upon concurrent ALTER and transaction

2023-05-06 Thread Nikita Malyavin
end up in a real OS ftell. Even though our file is temporary, I will add at least an assertion to the zero reinit_io_cache result. The commit to see is 4747e9cd584ee <https://github.com/MariaDB/server/commit/4747e9cd584ee982b0033061957d76eb09b13554> . -- Yours truly, Nikita Malyavin

Re: [Maria-developers] c5ce597f06a: MDEV-31043 ER_KEY_NOT_FOUND upon concurrent ALTER and transaction

2023-05-04 Thread Nikita Malyavin
h the old one, here <https://github.com/MariaDB/server/compare/c5ce597f06a...b804bcbc64dfc0bc7b244eaebbd64c987bdb5a93> . -- Yours truly, Nikita Malyavin ___ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lis

Re: [Maria-developers] To getting started for contribution at your GitHub repo

2023-01-28 Thread Nikita Malyavin
oduction_to_Algorithms_Third_Edition_(2009).pdf> * Participate in ICPC <https://icpc.global/>. Ask your teachers how, maybe they'll help you find the training courses in your area. Programming contests really help a lot to sharpen your programming skills. Good luck! Nikita Malyavin

Re: [Maria-developers] 52f489ebccb: MDEV-29069 follow-up: support partially suitable keys

2022-11-02 Thread Nikita Malyavin
Sergei, I made it as we agreed, please see the new commit: 9d04b702 -- Yours truly, Nikita Malyavin ___ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria

Re: [Maria-developers] 52f489ebccb: MDEV-29069 follow-up: support partially suitable keys

2022-11-01 Thread Nikita Malyavin
omplex > online alter task. > By complex logic, do you mean all that bitmap comparison I made? Then yes, agree. Let me simplify that -- Yours truly, Nikita Malyavin ___ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp

Re: [Maria-developers] 52f489ebccb: MDEV-29069 follow-up: support partially suitable keys

2022-10-31 Thread Nikita Malyavin
On Mon, 31 Oct 2022 at 14:08, Sergei Golubchik wrote: > Hi, Nikita, > > On Oct 31, Nikita Malyavin wrote: > > > > > Also, I've looked at your latest branch. What were you optimizing > > > with the commit 3afa3288221 (the one with usable_keys_data)? > >

Re: [Maria-developers] 52f489ebccb: MDEV-29069 follow-up: support partially suitable keys

2022-10-31 Thread Nikita Malyavin
So it needs to be recalculated > This can be done, for example, in copy_data_between_tables(). > For ONLINE ALTER TABLE yes, but what about usual replication? I'd prefer one generic algorithm for everything. -- Yours truly, Nikita Malyavin ___

Re: [Maria-developers] 52f489ebccb: MDEV-29069 follow-up: support partially suitable keys

2022-10-17 Thread Nikita Malyavin
(but we can still select it for range scan below if > nothing better > > > >is available). > > > > */ > > > > -if ((key->flags & (HA_NOSAME | HA_NULL_PART_KEY)) == HA_NOSAME) > > > > +if ((key->flags & (HA_NOSAM

Re: [Maria-developers] 52f489ebccb: MDEV-29069 follow-up: support partially suitable keys

2022-10-17 Thread Nikita Malyavin
Hello Sergei! On Tue, 4 Oct 2022 at 21:02, Sergei Golubchik wrote: > Hi, Nikita, > > This review applies to the combined diff e2f8dff^..52f489e > > On Oct 04, Nikita Malyavin wrote: > > > diff --git a/sql/log_event.h b/sql/log_event.h > > index 91a910f..84

Re: [Maria-developers] e2f8dffc056: MDEV-29069 ER_KEY_NOT_FOUND on online autoinc addition + concurrent DELETE

2022-10-03 Thread Nikita Malyavin
; > > > > + const uchar *curr_row_end= m_curr_row_end; > > + unpack_row(rgi, m_table, m_width, m_curr_row, &m_cols, > > + &curr_row_end, &m_master_reclength, m_rows_end); > > + > >if ((m_table->file->ha_table_flags() &a

Re: [Maria-developers] b1b38b64598: MDEV-29181 Potential corruption on FK update on a table with vcol index

2022-09-26 Thread Nikita Malyavin
Sergei, I have reworded the commit message, please see it here: https://github.com/MariaDB/server/commit/3a3064e355bac20ed56ae807e790068e16dd16f3 On Thu, 1 Sept 2022 at 19:59, Nikita Malyavin wrote: > Hello, Sergei! > > On Thu, 1 Sept 2022 at 15:23, Sergei Golubchik wrote: > &

Re: [Maria-developers] ed477a6d30c: MDEV-29056 Replica thread reports error on ALTER ONLINE after LOCK WRITE

2022-09-09 Thread Nikita Malyavin
clauses are compatible? > > On Aug 27, Nikita Malyavin wrote: > > revision-id: ed477a6d30c (mariadb-10.6.1-521-ged477a6d30c) > > parent(s): 56206e60315 > > author: Nikita Malyavin > > committer: Nikita Malyavin > > timestamp: 2022-07-26 00:41:00 +0300 > >

Re: [Maria-developers] b1b38b64598: MDEV-29181 Potential corruption on FK update on a table with vcol index

2022-09-01 Thread Nikita Malyavin
Hello, Sergei! On Thu, 1 Sept 2022 at 15:23, Sergei Golubchik wrote: > Hi, Nikita, > > On Aug 30, Nikita Malyavin wrote: > > revision-id: b1b38b64598 (mariadb-10.5.17-4-gb1b38b64598) > > parent(s): 3b656ac8c17 > > author: Nikita Malyavin > > committer: Nikita M

Re: [Maria-developers] ce5cc8fb905: MDEV-29021 ALTER TABLE fails when a stored virtual column is dropped+added

2022-07-13 Thread Nikita Malyavin
gt; > On Jul 13, Nikita Malyavin wrote: > > On Thu, 7 Jul 2022 at 16:05, Sergei Golubchik wrote: > > > > > Hi, Nikita, > > > > > > This is good, but I think fill_extra_persistent_columns() shouldn't be > > > used at all. > > > &

Re: [Maria-developers] ce5cc8fb905: MDEV-29021 ALTER TABLE fails when a stored virtual column is dropped+added

2022-07-13 Thread Nikita Malyavin
On Thu, 7 Jul 2022 at 16:05, Sergei Golubchik wrote: > Hi, Nikita, > > This is good, but I think fill_extra_persistent_columns() shouldn't be > used at all. > > It doesn't handle default values. I've changed rpl_alter_extra_persistent > test > as > > -alter table t1 add column z1 int as(a+1) virt

Re: [Maria-developers] 3e2d297830b: MDEV-29013 ER_KEY_NOT_FOUND/lock timeout upon online alter with long unique

2022-07-13 Thread Nikita Malyavin
p;m_cols); > > bitmap_intersect(table->write_set, after_image); > > > > this->slave_exec_mode= slave_exec_mode_options; // fix the mode > > +} > > I'm sorry, I don't quite understand. "some fields are excluded based on > m_cols val

Re: [Maria-developers] 73c4fd41afc: Do not ignore sql_mode when replicating

2022-07-13 Thread Nikita Malyavin
your Rpl_table_data simplification. > > > + | MODE_NO_AUTO_VALUE_ON_ZERO; > > Right, and besides It reminds me a similar method from instant alter table. -- Yours truly, Nikita Malyavin ___ Mailing list: https://launchpad.ne

Re: [Maria-developers] Squash aaed3436 MENT-651 [4/8] ALTER ONLINE TABLE

2021-11-24 Thread Nikita Malyavin
ering > and secur...@mariadb.org > -- Yours truly, Nikita Malyavin ___ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp

Re: [Maria-developers] Squash aaed3436 MENT-651 [4/8] ALTER ONLINE TABLE

2021-11-24 Thread Nikita Malyavin
Golubchik wrote: > Hi, Nikita! > > On Nov 24, Nikita Malyavin wrote: > > Sergei, I think all the commits starting from [4/8] ALTER ONLINE TABLE > > should be squashed. > > > > I will also add a better description in the commit message covering our > > latest di

[Maria-developers] Squash aaed3436 MENT-651 [4/8] ALTER ONLINE TABLE

2021-11-23 Thread Nikita Malyavin
helping the reader investigate the code -- Yours truly, Nikita Malyavin ___ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-developers More help : https

Re: [Maria-developers] 4af7a583802: Refactor MYSQL_BIN_LOG: extract Event_log ancestor

2021-11-23 Thread Nikita Malyavin
The changes to this commit are secured in 15fe904d3 <https://github.com/MariaDB/server/commit/15fe904d3fd4583f1966c8a7ab6ff36111f1f920> fixup On Tue, 23 Nov 2021 at 22:54, Nikita Malyavin wrote: > Hello Serg! > > TLDR the commit is verbalized, junks are removed, `using` is pre

Re: [Maria-developers] f3603cbfaeb: report progress

2021-11-23 Thread Nikita Malyavin
age change there, maybe > I wasn't sure should it be another stage or the same one. > > Added in the new commit > Also, I see that result in another commit is wrong. Will fix soon, > The same commit, actually. I said "in another commit" becau

Re: [Maria-developers] 9277b838aad: Forbid savepoints setup while ONLINE ALTER goes on

2021-11-23 Thread Nikita Malyavin
On Mon, 15 Nov 2021 at 16:07, Sergei Golubchik wrote: > Hi, Nikita! > > On Nov 15, Nikita Malyavin wrote: > > revision-id: 9277b838aad (mariadb-10.5.2-485-g9277b838aad) > > parent(s): 37b6f5cb8ef > > author: Nikita Malyavin > > committer: Nikita Malyavin > &g

Re: [Maria-developers] 37b6f5cb8ef: decouple commit/rollback code from binlog hton

2021-11-23 Thread Nikita Malyavin
On Mon, 15 Nov 2021 at 15:54, Sergei Golubchik wrote: > Hi, Nikita! > > On Nov 15, Nikita Malyavin wrote: > > revision-id: 37b6f5cb8ef (mariadb-10.5.2-484-g37b6f5cb8ef) > > parent(s): f3603cbfaeb > > author: Nikita Malyavin > > committer: Nikita Malyavin > &g

Re: [Maria-developers] f3603cbfaeb: report progress

2021-11-23 Thread Nikita Malyavin
On Mon, 15 Nov 2021 at 15:43, Sergei Golubchik wrote: > Hi, Nikita! > > On Nov 15, Nikita Malyavin wrote: > > revision-id: f3603cbfaeb (mariadb-10.5.2-483-gf3603cbfaeb) > > parent(s): 3b6038bee88 > > author: Nikita Malyavin > > committer: Nikita Malyavin > &g

Re: [Maria-developers] 903ae1c03ae: Fix running without binlog

2021-11-23 Thread Nikita Malyavin
and make a new test: one that sources have_binlog.inc, and one that doesn't. I don't like putting tests in .inc, so decided to leave only one version of it. Maybe that's wrong But what about sourcing a .test file? On Mon, 15 Nov 2021 at 13:56, Sergei Golubchik wrote: > Hi,

Re: [Maria-developers] a5fca9a6e30: MENT-651 [6/8] store cache managers in a list

2021-11-23 Thread Nikita Malyavin
On Mon, 15 Nov 2021 at 13:52, Sergei Golubchik wrote: > Hi, Nikita! > > On Nov 14, Nikita Malyavin wrote: > > revision-id: a5fca9a6e30 (mariadb-10.5.2-478-ga5fca9a6e30) > > parent(s): ad6e7b87107 > > author: Nikita Malyavin > > committer: Nikita Malyavin > &g

Re: [Maria-developers] ad6e7b87107: introduce cache flipping

2021-11-23 Thread Nikita Malyavin
Sergei, On Sat, 13 Nov 2021 at 22:44, Sergei Golubchik wrote: > Hi, Nikita! > > Interesting trick. > That was you who proposed it! :D > > On Nov 13, Nikita Malyavin wrote: > > revision-id: ad6e7b87107 (mariadb-10.5.2-477-gad6e7b87107) > > parent(s): 85fbd867b

Re: [Maria-developers] 4af7a583802: Refactor MYSQL_BIN_LOG: extract Event_log ancestor

2021-11-23 Thread Nikita Malyavin
Hello Serg! TLDR the commit is verbalized, junks are removed, `using` is preferred except for tiny getters. On Fri, 12 Nov 2021 at 19:20, Sergei Golubchik wrote: > Hi, Nikita! > > On Nov 12, Nikita Malyavin wrote: > > revision-id: 4af7a583802 (mariadb-10.5.2-474-g4af7a58380

Re: [Maria-developers] INSTEAD OF triggers

2021-09-27 Thread Nikita Malyavin
e progress: jira.mariadb.com [Please, use the search first] Anyway you'll need the task, because it's ID is required to be in git commit header and a pull request. Good luck with the research! Nikita Malyavin Software engineer of Mariadb 24-09-2021 г., 18:44 Alexandre hadjinlian guerra : > Hello

Re: [Maria-developers] 9e1c15355a9: resolve the possible deadlock issue through intern_plugin_lock

2021-09-08 Thread Nikita Malyavin
THD *safe_thd= pfs->safe_thd(); >> > + >> > +if (pfs->query_scope() == OPT_SESSION) >> >> what's the point doing apc call if the query_scope() is not OPT_SESSION? >> It seems like here you need a DBUG_ASSERT, >> and the if() should be much earlier

Re: [Maria-developers] 9e1c15355a9: resolve the possible deadlock issue through intern_plugin_lock

2021-09-08 Thread Nikita Malyavin
_variables.dynamic_variables_head > > > + safe_thd->variables.dynamic_variables_head) > > + { > > +mysql_prlock_rdlock(&LOCK_system_variables_hash); > > +sync_dynamic_session_variables(safe_thd,

Re: [Maria-developers] ce289840131: MDEV-24511 null field is created with CREATE..SELECT

2021-07-28 Thread Nikita Malyavin
Hello, Sergei! Looks fine for me. So if you both prefer it more, let's use this variant. Regards, Nikita On Wed, Jul 28, 2021 at 12:08 PM Sergei Golubchik wrote: > Hi, Nikita! > > On Jul 27, Nikita Malyavin wrote: > > revision-id: ce289840131 (mariadb-10.3.30-31-gce289

Re: [Maria-developers] 19aebbd1b89: MDEV-16481: set global system_versioning_asof=sf() crashes in specific case

2021-07-18 Thread Nikita Malyavin
ound at bb-10.3-nikita-old for now. 2. The email in your header is wrong, I never used it in git, and besides format=fuller shows the correct one: commit 19aebbd1b89feb1482e2cdf5ddb8322f48ad4216 Author: Nikita Malyavin AuthorDate: Mon Jul 22 19:12:15 2019 +1000 Commit: Nikita Malyavin Commi

Re: [Maria-developers] Request for a discusison: A fine-grained concurrent ring buffer mode for IO_CACHE

2021-05-22 Thread Nikita Malyavin
Welcome to the thread, Andrei! For everybody: we just had a productive chat with Andrei, and I'd like to outline the results. Let's take a look at binlog_commit, or more exactly MYSQL_BIN_LOG::trx_group_commit_leader called from there (follow binlog_commit_flush_trx_cache -> THD::binlog_flush_p

Re: [Maria-developers] Request for a discusison: A fine-grained concurrent ring buffer mode for IO_CACHE

2021-05-19 Thread Nikita Malyavin
ly single-producer case can be applied to the replication. We have one scenario on ES with multiple producers though. -- Yours truly, Nikita Malyavin ___ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lists.launchpa

Re: [Maria-developers] RFC: incompatible changes to mtr debugging flags

2021-01-27 Thread Nikita Malyavin
Hello, Sergei! I like how it sounds, just please don't destroy `--manual-gdb`, I am using it for debugging from IDE -- Yours truly, Nikita Malyavin ___ Mailing list: https://launchpad.net/~maria-developers Post to : maria-devel

Re: [Maria-developers] 5150dfd6ab3: MDEV-17891 Assertion failures in select_insert::abort_result_set and mysql_load upon attempt to replace into a full table

2020-10-25 Thread Nikita Malyavin
updated the comment and have added one more test case from the ticket. See bb-10.3-nikita, or simply https://github.com/MariaDB/server/commit/688b9de0fedfcf13c4d33e7aa98e03e6e37cb0fb -- Yours truly, Nikita Malyavin ___ Mailing list: https://launchpad.net/~m

Re: [Maria-developers] 05968211699: MDEV-16026: Global system_versioning_asof must not be used if client sessions can have non-default time zone

2020-10-25 Thread Nikita Malyavin
Hello! > If you want to store the value in unix timestamp, you don't need > MYSQL_TIME in save_result. You should calculate the value as a unix > timestamp in ::check and store that in save_result. > Now you still have timezone conversion in ::update and that can fail. > Everything that can fail

Re: [Maria-developers] On bb-10.6-monty work

2020-09-10 Thread Nikita Malyavin
; > -static void _ma_check_print_msg(HA_CHECK *param, const char *msg_type, > +static void _ma_check_print_msg(HA_CHECK *param, const LEX_CSTRING *msg_type, > const char *fmt, va_list args) > { >THD *thd= (THD *) param->thd; -- Yours trul

[Maria-developers] On bb-10.6-monty work

2020-09-10 Thread Nikita Malyavin
include "setup_bitwise_operators.inc" and then in setup_bitwise_operators.inc: static inline T operator&(const T a, const T b) { return (T) (((item_flags_t) a) & ((item_flags_t) b)); } And so on. Another variant I've just googled is to make a template operator for al

[Maria-developers] Improving `source` in mysqltest

2020-06-11 Thread Nikita Malyavin
7;s more suitable for us? This is an important question, since all of us are using mysqltest, and we probably wouldn't change the behavior ever later. -- Yours truly, Nikita Malyavin ___ Mailing list: https://launchpad.net/~maria-develop

Re: [Maria-developers] 7b03ce7af3d: MDEV-17395 REPLACE/INSERT ODKU: support WITHOUT OVERLAPS

2020-04-06 Thread Nikita Malyavin
I am not familiar with any of the real use cases, and don't know, what users do actually expect. I thought we're agreed about that пн, 6 апр. 2020 г., 20:39 Sergei Golubchik : > Hi, Nikita! > > On Apr 03, Nikita Malyavin wrote: > > > > > > Now, about sem

Re: [Maria-developers] 7b03ce7af3d: MDEV-17395 REPLACE/INSERT ODKU: support WITHOUT OVERLAPS

2020-04-03 Thread Nikita Malyavin
, if fails delete/update the conflicting row". No > periods involved here. The other option is to use FOR PERIOD implicitly > for updates and deletes. > Sure, option two should be chosen. I rewrote the code Also, added more tests: for double execution, auto_increment, insert

Re: [Maria-developers] bbe056ac3fa: support NULL fields in key

2020-03-11 Thread Nikita Malyavin
On Wed, 11 Mar 2020 at 04:51, Sergei Golubchik wrote: > Hi, Nikita! > > On Mar 10, Nikita Malyavin wrote: > > revision-id: bbe056ac3fa (mariadb-10.5.0-273-gbbe056ac3fa) > > parent(s): 7a5d3316805 > > author: Nikita Malyavin > > committer: Nikita Malyavin &

Re: [Maria-developers] 10670133744: MDEV-16978 Application-time periods: WITHOUT OVERLAPS

2020-01-13 Thread Nikita Malyavin
{ int2store(data, fieldno); } > > +static inline size_t extra2_str_size(size_t len) > > +{ return (len > 255 ? 3 : 1) + len; } > > why did you move that? it's still not used anywhere outside of unireg.cc > Yes, one frm corruption check from extra2.application_period was missing from initial periods commit. Added it back. > > diff --git a/sql/unireg.cc b/sql/unireg.cc > > index 7130b3e5d8a..ea5d739a97e 100644 > > --- a/sql/unireg.cc > > +++ b/sql/unireg.cc > > @@ -390,7 +385,9 @@ LEX_CUSTRING build_frm_image(THD *thd, const > LEX_CSTRING &table, > > > >if (create_info->period_info.name) > >{ > > -extra2_size+= 1 + extra2_str_size(period_info_len); > > +// two extra2 sections are taken after 10.5 > > This is a confusing comment, it suggests that both extra2 sections > were added in 10.5. Remove the comment, please, it's not worth it. > okay > > diff --git a/sql/unireg.h b/sql/unireg.h > > index 419fbc4bd80..873d6f681fc 100644 > > --- a/sql/unireg.h > > +++ b/sql/unireg.h > > @@ -177,7 +177,8 @@ enum extra2_frm_value_type { > > > >EXTRA2_ENGINE_TABLEOPTS=128, > >EXTRA2_FIELD_FLAGS=129, > > - EXTRA2_FIELD_DATA_TYPE_INFO=130 > > + EXTRA2_FIELD_DATA_TYPE_INFO=130, > > + EXTRA2_PERIOD_WITHOUT_OVERLAPS=131, > > Please, try to create a table that uses WITHOUT OVERLAPS > and open it in 10.4. Just as a test, to make sure it works as expected. No it doesn't open. Is it the behavior you expect? > > Regards, > Sergei > VP of MariaDB Server Engineering > and secur...@mariadb.org > -- Yours truly, Nikita Malyavin ___ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp

Re: [Maria-developers] 6ac19d09c66: MDEV-16978 Application-time periods: WITHOUT OVERLAPS

2019-12-16 Thread Nikita Malyavin
update_handler). Sergei, Sachin, agree? On Tue, 17 Dec 2019 at 03:50, Sergei Golubchik wrote: > Hi, Nikita! > > On Dec 17, Nikita Malyavin wrote: > > It is used in innodb's implementation of handler::position, to copy the > key > > from the record buffer, which is also used

Re: [Maria-developers] 6ac19d09c66: MDEV-16978 Application-time periods: WITHOUT OVERLAPS

2019-12-16 Thread Nikita Malyavin
It is used in innodb's implementation of handler::position, to copy the key from the record buffer, which is also used to be record[0] On Tue, 17 Dec 2019 at 01:20, Sergei Golubchik wrote: > Hi, Nikita! > > On Dec 06, Nikita Malyavin wrote: > > Hi Sergei! > > >

Re: [Maria-developers] 6ac19d09c66: MDEV-16978 Application-time periods: WITHOUT OVERLAPS

2019-12-10 Thread Nikita Malyavin
We've also had MDEV-19082 <https://jira.mariadb.org/browse/MDEV-19082> -- change application-time period tables to use HA_EXTRA_REMEMBER_POS. On Fri, 6 Dec 2019 at 18:33, Nikita Malyavin wrote: > Hi Sergei! > > I traced out the problem I faced with refs comparison

Re: [Maria-developers] 6ac19d09c66: MDEV-16978 Application-time periods: WITHOUT OVERLAPS

2019-12-06 Thread Nikita Malyavin
is in the branch, so am waiting now for your comments on the new code! Kind regards, Nikita Malyavin On Thu, 5 Dec 2019 at 02:36, Sergei Golubchik wrote: > Hi, Nikita! > > On Dec 05, Nikita Malyavin wrote: > > Heh, unfortunately comparing refs will not work in conjunction with >

Re: [Maria-developers] 6ac19d09c66: MDEV-16978 Application-time periods: WITHOUT OVERLAPS

2019-12-04 Thread Nikita Malyavin
at is because if innodb has primary key, it just does key_copy On Wed, 4 Dec 2019 at 17:14, Nikita Malyavin wrote: > > > On Wed, 4 Dec 2019 at 05:04, Sergei Golubchik wrote: > >> > > > > two rows are the same, if their "positions" are equal, not if >> &g

Re: [Maria-developers] 6ac19d09c66: MDEV-16978 Application-time periods: WITHOUT OVERLAPS

2019-12-04 Thread Nikita Malyavin
Well, I've pushed that logic. Looks about 2 lines prettier ср, 4 дек. 2019 г., 19:19 Sergei Golubchik : > Hi, Nikita! > > On Dec 04, Nikita Malyavin wrote: > > > > Another case: > > suppose you have to rows in table with periods (a > (a, c), > > (c, d).

Re: [Maria-developers] 6ac19d09c66: MDEV-16978 Application-time periods: WITHOUT OVERLAPS

2019-12-04 Thread Nikita Malyavin
On Wed, 4 Dec 2019 at 01:00, Nikita Malyavin wrote: > > > On Tue, 3 Dec 2019 at 23:59, Sergei Golubchik wrote: > >> > > > > But it can be done better. You search for the key with the same >> > > > > value and a period start <= than the perio

Re: [Maria-developers] 6ac19d09c66: MDEV-16978 Application-time periods: WITHOUT OVERLAPS

2019-12-03 Thread Nikita Malyavin
in FOR PORTION case), and that was worked around -- either by saving/restoring positions, or by having separate file with rowids > So both positions exist, can be read and compared. What's not general > here, that it doesn't work for INSERT? It doesn't have to, this is > s

Re: [Maria-developers] 6ac19d09c66: MDEV-16978 Application-time periods: WITHOUT OVERLAPS

2019-12-03 Thread Nikita Malyavin
ave a "position" stored in handler->ref, and it has the > > > length of handler->ref_length bytes. For MyISAM it's usually the file > > > offset, for InnoDB - PK value. > > > > > > For UPDATE you can, I suppose, call this->position(old_data) to get the > > > position. > > > > It actually returns the ref for the last fetched row. the argument passed > > is not even used😐 . Only innodb uses it, and only for the primary key > case. > > Right, but it doesn't matter what the engine internally uses, you have > to pass the row - that's how the method is defined. > > But yes, it'll return positions for the last fetched row, that's why > handler->position(record_buffer) and this->position(old_data) > will return you two positions that you can compare. > old_data could have been even not fetched, and in some cases handler is not cloned, so it can't work in general. BTW I also wonder, would this memcpy work with KEYREAD? -- Yours truly, Nikita Malyavin ___ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp

Re: [Maria-developers] 6ac19d09c66: MDEV-16978 Application-time periods: WITHOUT OVERLAPS

2019-12-03 Thread Nikita Malyavin
Hello! On Tue, 3 Dec 2019 at 21:52, Sergei Golubchik wrote: > Hi, Nikita! > > On Nov 26, Nikita Malyavin wrote: > > Hello, Sergei! > > I have updated the code, please see > > > >- bb-10.5-MDEV-16978-without-overlaps > >< > https://github.

Re: [Maria-developers] 6ac19d09c66: MDEV-16978 Application-time periods: WITHOUT OVERLAPS

2019-11-26 Thread Nikita Malyavin
it is independent from the feature and can be pushed separately (all the others are just fixups) On Tue, 26 Nov 2019 at 19:28, Nikita Malyavin wrote: > Hello, Sergei! > I have updated the code, please see > >- bb-10.5-MDEV-16978-without-overlaps > > <https://github.

Re: [Maria-developers] 6ac19d09c66: MDEV-16978 Application-time periods: WITHOUT OVERLAPS

2019-11-26 Thread Nikita Malyavin
/table.h > > @@ -1730,10 +1731,18 @@ class IS_table_read_plan; > > > > /** number of bytes used by field positional indexes in frm */ > > constexpr uint frm_fieldno_size= 2; > > +/** number of bytes used by key position number in frm */ > > +constexpr uint frm_keyno_size= 2; > > static inline uint16 read_frm_fieldno(const uchar *data) > > { return uint2korr(data); } > > -static inline void store_frm_fieldno(const uchar *data, uint16 fieldno) > > +static inline void store_frm_fieldno(uchar *data, uint16 fieldno) > > { int2store(data, fieldno); } > > +static inline uint16 read_frm_keyno(const uchar *data) > > +{ return uint2korr(data); } > > +static inline void store_frm_keyno(uchar *data, uint16 fieldno) > > +{ int2store(data, fieldno); } > > +static inline size_t frm_ident_stored_size(size_t len) > > +{ return len + (len > 255 ? 3 : 1); } > > this is exactly extra2_str_size() function. Don't duplicate it, reuse. > (and rename, if you'd like a more generic name) > > thanks, replaced with extra2_str_size() > > > > class select_unit; > > class TMP_TABLE_PARAM; > > diff --git a/sql/unireg.cc b/sql/unireg.cc > > index 7130b3e5d8a..1e95242786e 100644 > > --- a/sql/unireg.cc > > +++ b/sql/unireg.cc > > @@ -485,6 +486,16 @@ LEX_CUSTRING build_frm_image(THD *thd, const > LEX_CSTRING &table, > > store_frm_fieldno(pos, get_fieldno_by_name(create_info, > create_fields, > > > create_info->period_info.period.end)); > > pos+= frm_fieldno_size; > > +store_frm_keyno(pos, create_info->period_info.unique_keys); > > +pos+= frm_keyno_size; > > +for (uint key= 0; key < keys; key++) > > +{ > > + if (key_info[key].without_overlaps) > > + { > > +store_frm_keyno(pos, key); > > +pos+= frm_keyno_size; > > + } > > +} > > This will make 10.5 frms look corrupted in 10.4. Better use a new EXTRA2 > flag for that. With a number > EXTRA2_ENGINE_IMPORTANT. > > Another way is to update 10.4 code to handle additional entry, but ok, this way is same good for me Regards, > Sergei > VP of MariaDB Server Engineering > and secur...@mariadb.org > -- Yours truly, Nikita Malyavin ___ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp

Re: [Maria-developers] GSoC [MDEV-6017]

2019-06-10 Thread Nikita Malyavin
> approach will be to put it somewhere in optimizer. > > From messages in zulip I understood that some rewrites could not be used > by the optimizer. My first approach was to try to generalize all rewrite > rules, but now I am totally confused about what rules to implement next > week

Re: [Maria-developers] 126a9b6db25: MDEV-18875 Assertion `thd->transaction.stmt.ha_list == __null || trans == &thd->transaction.stmt' failed or bogus ER_DUP_ENTRY upon ALTER TABLE with versioning

2019-04-02 Thread Nikita Malyavin
Hi! IIRC, rw_trans is false when the table was empty On Tue, 2 Apr 2019 at 20:07, Sergei Golubchik wrote: > Hi, Nikita! > > On Apr 02, Nikita Malyavin wrote: > > revision-id: 126a9b6db25 (mariadb-10.3.12-101-g126a9b6db25) > > parent(s): 1c60f40868f > > author: Nik

Re: [Maria-developers] 74b2eba1ca6: MDEV-15458 Segfault in heap_scan() upon UPDATE after ADD SYSTEM VERSIONING

2019-03-27 Thread Nikita Malyavin
RA_REMEMBER_POS in system >> versioning, Nikita simply sets delete_while_scanning=false in >> application time period tables, and Sachin uses handler::clone() to >> create a second handler that can be used to check for hash collis

Re: [Maria-developers] 0608c273598: MDEV-15966: Behavior for TRUNCATE versioned table is not documented and not covered by tests

2019-02-28 Thread Nikita Malyavin
On Fri, Mar 1, 2019 at 1:24 AM Sergei Golubchik wrote: > Hi, Nikita! > > On Feb 28, Nikita Malyavin wrote: > > On Fri, Dec 28, 2018 at 9:18 AM Sergei Golubchik > wrote: > > > On Dec 28, Nikita Malyavin wrote: > > > > Hi, Sergei! > > > > > &g

Re: [Maria-developers] 0608c273598: MDEV-15966: Behavior for TRUNCATE versioned table is not documented and not covered by tests

2019-02-28 Thread Nikita Malyavin
On Fri, Dec 28, 2018 at 9:18 AM Sergei Golubchik wrote: > Hi, Nikita! > > On Dec 28, Nikita Malyavin wrote: > > Hi, Sergei! > > > > In short, I am on the side of standard conformance. > > Our TRUNCATE is not exactly a standard TRUNCATE. it's defined as

Re: [Maria-developers] df203d1daa1: MDEV-15990: REPLACE on a precise-versioned table returns duplicate key error (ER_DUP_ENTRY)

2019-02-28 Thread Nikita Malyavin
Hi, Sergei! On Thu, Dec 27, 2018 at 10:19 PM Sergei Golubchik wrote: > Hi, Nikita! > > Sorry, I don't understand what are you fixing and why :( > Could you please elaborate? > > Have you already had a look at MDEV-16546 "System versioning setting to allow history modification", which I've also a

Re: [Maria-developers] 773d24d457a: MDEV-15951 system versioning by trx id doesn't work with partitioning

2019-02-28 Thread Nikita Malyavin
gt; select * from t1; >> >> Yes, part_info is going to be filled only if creating, or altering table. > It works as follows: > If we're creating/altering, then check thd->lex->part_info; > else, check m_file array, which is initialized at that point. > >

Re: [Maria-developers] 773d24d457a: MDEV-15951 system versioning by trx id doesn't work with partitioning

2019-02-28 Thread Nikita Malyavin
On Wed, Dec 26, 2018 at 8:53 AM Sergei Golubchik wrote: > Hi, Nikita! > > On Dec 25, Nikita Malyavin wrote: > > revision-id: 773d24d457a (versioning-1.0.6-100-g773d24d457a) > > parent(s): b26736cdb11 > > author: Nikita Malyavin > > committer: Nikita Malyavin &

Re: [Maria-developers] bc7d600a27f: MDEV-15951 system versioning by trx id doesn't work with partitioning

2019-02-28 Thread Nikita Malyavin
Hi, Sergei! On Wed, Dec 26, 2018 at 7:42 AM Sergei Golubchik wrote: > Hi, Nikita! > > On Dec 21, Nikita Malyavin wrote: > > > > @@ -4938,6 +4938,7 @@ int ha_create_table(THD *thd, const char *path, > > > > !create_info->tmp_table();

Re: [Maria-developers] 5e265de00c5: triggers fix: delete

2019-02-19 Thread Nikita Malyavin
Hi, Sergei! On Tue, Feb 19, 2019 at 2:36 AM Sergei Golubchik wrote: > Hi, Nikita! > > On Feb 18, Nikita Malyavin wrote: > > revision-id: 5e265de00c5 (mariadb-10.4.1-185-g5e265de00c5) > > parent(s): 8ec8242e962 > > author: Nikita Malyavin > > committer: Nikita

Re: [Maria-developers] 4b01d3aee60: MDEV-17082 Application-time periods: CREATE

2019-02-12 Thread Nikita Malyavin
Hi, Sergei! On Fri, Feb 8, 2019 at 5:02 AM Sergei Golubchik wrote: > Hi, Nikita! > > On Feb 08, Nikita Malyavin wrote: > > On Fri, Feb 8, 2019 at 2:18 AM Sergei Golubchik > wrote: > > > I thought you've wanted it a CHECK constraint. You've quoted the >

Re: [Maria-developers] b1a4d1e4937: MDEV-16973 Application-time periods: DELETE

2019-02-08 Thread Nikita Malyavin
Ok, thanks. On Fri, Feb 8, 2019 at 10:36 PM Sergei Golubchik wrote: > Hi, Nikita! > > On Feb 08, Nikita Malyavin wrote: > > > > > +# auto_increment field overflow > > > > +create or replace table t (id tinyint auto_increment primary key, > > &

Re: [Maria-developers] b1a4d1e4937: MDEV-16973 Application-time periods: DELETE

2019-02-08 Thread Nikita Malyavin
Hi, Sergei! On Thu, Feb 7, 2019 at 4:23 AM Sergei Golubchik wrote: > Hi, Nikita! > > On Jan 31, Nikita Malyavin wrote: > > revision-id: b1a4d1e4937 (versioning-1.0.7-3-gb1a4d1e4937) > > parent(s): 4b01d3aee60 > > author: Nikita Malyavin > > committer: Nikita Ma

Re: [Maria-developers] 4b01d3aee60: MDEV-17082 Application-time periods: CREATE

2019-02-07 Thread Nikita Malyavin
Hi, Sergei! On Fri, Feb 8, 2019 at 2:18 AM Sergei Golubchik wrote: > Hi, Nikita! > > On Feb 08, Nikita Malyavin wrote: > > On Tue, Feb 5, 2019 at 10:37 AM Sergei Golubchik > wrote: > > > > > > as discussed, let's give the constraint the same name as th

Re: [Maria-developers] 4b01d3aee60: MDEV-17082 Application-time periods: CREATE

2019-02-07 Thread Nikita Malyavin
ourse korr2size is 2. And korr3size is 3, and korr4size is 4. > Of course! That's the way to say "This variable was stored as a 2-byte tuple". If you want to get rid of the magic number, don't put it into the name > of the macro :) > > Well i'm ok with 2 or 3, actually, but not 14, for example > That's why I suggested something like > > #define fieldno_size 2 > #define fieldno_korr uint2korr > #define fieldno_store int2store > Oh no, that'll add 9 new macros! And the number can grow... Well, since we can't find common solution, let's rollback to the first one:) I'll just leave comments in sensible places Ok? -- Yours truly, Nikita Malyavin ___ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp

Re: [Maria-developers] c39f74ce0d9: MDEV-16974 Application period tables: UPDATE

2019-02-04 Thread Nikita Malyavin
On Wed, Jan 30, 2019 at 3:50 AM Nikita Malyavin wrote: > Jan 9, 2019 06:09, Sergei Golubchik : > >> > --- /dev/null >> > +++ b/mysql-test/suite/period/t/update.opt >> > @@ -0,0 +1 @@ >> > +--explicit_defaults_for_timestamp >> >> Why? >>

Re: [Maria-developers] 83444b747f1: MDEV-16975 Application period tables: ALTER TABLE

2019-02-04 Thread Nikita Malyavin
R TABLE ADD IF NOT EXISTS should replace > stuff. > Made it ADD PERIOD IF NOT EXISTS FOR a() First, it is more consistent with the way other entities handled, e.g. ADD CONSTRAINT IF NOT EXISTS; second, no shift/reduce conflicts:) -- Yours truly, Nikita Malyavin __

Re: [Maria-developers] 83444b747f1: MDEV-16975 Application period tables: ALTER TABLE

2019-02-03 Thread Nikita Malyavin
ation"); > > + goto err; > > +} > > +else > > +{ > > + Field *s= table->s->period.start_field(table->s); > > + Field *e= table->s->period.end_field(table->s); > > +

Re: [Maria-developers] c39f74ce0d9: MDEV-16974 Application period tables: UPDATE

2019-01-31 Thread Nikita Malyavin
On Fri, Feb 1, 2019 at 3:16 AM Sergei Golubchik wrote: > Hi, Nikita! > > On Jan 30, Nikita Malyavin wrote: > > > > > > #define ER_NO_CONST_EXPR_IN_RANGE_OR_LIST_ERROR > ER_NOT_CONSTANT_EXPRESSION > > > > > This error seems to be unused... Considerin

Re: [Maria-developers] ce4f8955d8d: MDEV-17082 Application period tables: CREATE

2019-01-30 Thread Nikita Malyavin
Hi, Sergei! On Wed, Jan 30, 2019 at 7:33 AM Sergei Golubchik wrote: > Hi, Nikita! > > On Jan 30, Nikita Malyavin wrote: > > > > > > In a similar case I used something like > > > > > > #define SIZE 2 > > > #define uintSIZEkorr(X) uint2korr(

Re: [Maria-developers] ce4f8955d8d: MDEV-17082 Application period tables: CREATE

2019-01-29 Thread Nikita Malyavin
Hi, Sergei! On Sat, Jan 19, 2019 at 10:14 AM Sergei Golubchik wrote: > Hi, Nikita! > > On Jan 18, Nikita Malyavin wrote: > > > > diff --git a/sql/table.cc b/sql/table.cc > > > > index ab1a04ccae4..87fa1ba4d61 100644 > > > > --- a/sql/table.cc

Re: [Maria-developers] c39f74ce0d9: MDEV-16974 Application period tables: UPDATE

2019-01-29 Thread Nikita Malyavin
gers= false; > > same as for sql_delete.cc, one has_triggers is enough, second > has_period_triggers > is quite confusing. > > Removed has_period_triggers ✅ > >Update_plan query_plan(thd->mem_root); > >Explain_update *explain; > >TABLE_LIST *upd

Re: [Maria-developers] fd18ed07d65: MDEV-16973 Application period tables: DELETE

2019-01-28 Thread Nikita Malyavin
Hi, Sergei! 26 Jan 2019 06:27, Sergei Golubchik : > > > > > > +delete from t for portion of othertime from '2000-01-01' to > '2018-01-01'; > > > > > > +ERROR HY000: period `othertime` is not found in table > > > > > > +delete from t for portion of system_time from '2000-01-01' to > '2018-01-01';

Re: [Maria-developers] fd18ed07d65: MDEV-16973 Application period tables: DELETE

2019-01-25 Thread Nikita Malyavin
Hi, Sergei! чт, 24 янв. 2019 г. в 21:31, Sergei Golubchik : > Hi, Nikita! > > On Jan 24, Nikita Malyavin wrote: > > > > +delete history from t2 for portion of apptime from '2000-01-01' to > '2018-01-01'; > > > > +ERROR 42000: You h

Re: [Maria-developers] fd18ed07d65: MDEV-16973 Application period tables: DELETE

2019-01-24 Thread Nikita Malyavin
field(dst, true); > > + > > + if (likely(!res)) > > +table_update_generated_fields(table); > > perhaps, move store_record() and save_in_field() into > table_update_generated_fields() ? less duplicated code. > But the function will need to be renamed, like

[Maria-developers] Fwd: ce4f8955d8d: MDEV-17082 Application period tables: CREATE

2019-01-17 Thread Nikita Malyavin
-- Forwarded message - From: Nikita Malyavin Date: пт, 18 янв. 2019 г. в 01:46 Subject: Re: ce4f8955d8d: MDEV-17082 Application period tables: CREATE To: Sergei Golubchik Hi, Sergei! > > +# SQL17 p.832 > > +# Let IDCN be an implementation-dependent

Re: [Maria-developers] 0608c273598: MDEV-15966: Behavior for TRUNCATE versioned table is not documented and not covered by tests

2018-12-27 Thread Nikita Malyavin
nly actual data, or only history (we already have delete history for this one), or both. Kind regards, Nikita Malyavin Tempesta Technologies tempesta-tech.com ___ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers

[Maria-developers] Fwd: bc7d600a27f: MDEV-15951 system versioning by trx id doesn't work with partitioning

2018-12-21 Thread Nikita Malyavin
-- Forwarded message - From: Nikita Malyavin Date: пт, 21 дек. 2018 г. в 04:52 Subject: Re: bc7d600a27f: MDEV-15951 system versioning by trx id doesn't work with partitioning To: Sergei Golubchik вт, 13 нояб. 2018 г. в 04:43, Sergei Golubchik : > > Hi, Nikita! &