- 20 May, 2018 1 commit
-
-
Sergey Vojtovich authored
-
- 19 May, 2018 11 commits
-
-
Sergei Golubchik authored
don't rely on imprecise my_file_opened | my_stream_opened, scan the array for open handles instead. also, remove my_print_open_files() and embed it in my_end() to have one array scan instead of two.
-
Daniel Black authored
Change the following to statistic counters: * my_file_opened * my_file_total_opened * my_stream_opened * my_tmp_file_created There is one non-statistics use of my_file_opened/my_stream_opened in my_end which prints a warning if we shutdown and its still open. It seems excessive to hold locks to prevent this warning. A file descriptor is already a unique element per process - in Windows, protection occurs at fd allocation using THR_LOCK_open in my_win_{,f}open and in other OSes, a unique fd to file map exists at the OS level. So accesses to my_file_info[fd] don't need to be protected by the THR_LOCK_open. my_close/my_fclose where restructured to clear out the my_file_info before the close/my_win_close/my_win_fclose. After these calls another thread could gain the same file descriptor. So for Windows this the file_info elements available to the my_win_{,f}_open are released during the invalidate_fd call within my_win_close. No locking is needed as the my_win_{,f}open is searching for a invalidate entry which is determined by a single value change. my_fclose also changed for non-Windows to retry closing if EINTR was returned, same as my_close. Closes #657
-
Daniel Black authored
Closes #639
-
Sergei Golubchik authored
it's redundant. remove it, use my_error() directly.
-
Sergei Golubchik authored
simplify. move common code inside, specify common flags inside, rewrite dead code (`if (mode & O_TEMPORARY)` on Linux, where `O_TEMPORARY` is always 0) to actually do something.
-
Daniel Black authored
In the spirit of the man page "Never use this function." lets purge off this implementation. mkstemp is a widely available alternative. Closes #661.
-
Jia Zhouyang authored
Print error message and return when fopen fails. Closes #634
-
Alexander Kuleshov authored
for consistency with EVP_CIPHER_CTX_new() and EVP_CIPHER_CTX_free(). As the EVP_DIGESTINIT(3) man page says: EVP_MD_CTX_create() and EVP_MD_CTX_destroy() were renamed to EVP_MD_CTX_new() and EVP_MD_CTX_free() in OpenSSL 1.1. Closes #621
-
Elena Stepanova authored
Duplicate warnings have been removed
-
Varun Gupta authored
The print() function was missing from the FETCH GROUP NEXT ROW instrunction class, so there was no output for this particular instruction when we use the query SHOW FUNCTION CODE function_name
-
Varun Gupta authored
Queries involving rollup need all aggregate function to have copy_or_same function where we create a copy of item_sum items for each sum level. Implemented copy_or_same function for the custom aggregate function class (Item_sum_sp)
-
- 18 May, 2018 8 commits
-
-
Vladislav Vaintroub authored
This reverts commit 685961a0.
-
Andrei Elkin authored
-
Vladislav Vaintroub authored
-
Andrei Elkin authored
Replicated transaction extra gtid statement on slave failed to specify an engine gtid_slave_pos name correctly. In case lower-case-table-names > 0 the InnoDB table name was generated to reproduce the lower-case-table-names=0 version which is of mixed cases. In rpl.rpl_mdev12179 test run this triggered a failure to DROP table which was due to the innodb table handle was not closed: InnoDB: Waited XYZ seconds for ref-count on table: `mysql`.`gtid_slave_pos_innodb` on windows. The closing issue was caused by having the table registered twice in the table cache, for its lower- and mixed- case name versions. The DROP-table handler closed only only one of the cache item to leave the 2nd one active. (On Linux a failure occurs earlier at attempt to open an expected lower-cased table: Last_Error: Error during XID COMMIT: failed to update GTID state in mysql.gtid_slave_pos: 1146: Table 'mysql.gtid_slave_pos_InnoDB' doesn't exist but the table's name as the message shows is not in the right case). Fixed with consulting lower-case-table-names when the engine gtid-slave-pos table is created. Note the lower-case-table-names=a-value created table will not recognized when next the lower case option changes to a different value. In 10.4 a follow-up patch is going to lowercase gtid-slave-pos autocreated table at once at their origination, and a warning is issued in the 10.3 current patch.
-
Alexander Barkov authored
Merging the following features from sql_yacc.yy to sql_yacc_ora.yy: - system versioning - column compression - table value constructor - spatial predicate WITHIN - DELETE_DOMAIN_ID
-
sachin authored
SYSTEM_INVISIBLE or COMPLETELY_INVISIBLE This commit does multiple things to solve this mdev 1st add field into the parameter of check_column_grant_in_table_ref, so that we can find out field invisibility. 2nd If field->invisible >= INVISIBLE_SYSTEM skip access check and simple grant access.
-
Alexander Barkov authored
-
Alexander Barkov authored
sql_yacc_ora.yy: mering MDEV-13384 "window" seems like a reserved column name but it's not listed as one Merging MDEV-13384 changes from sql_yacc.yy to sql_yacc_ora.yy
-
- 17 May, 2018 16 commits
-
-
Alexander Barkov authored
Fixing shift/reduce conflicts introduced by the new system versioning syntax. Additionally, fixing old shift/reduce conflicts: In PREVIOUS/NEXT being identifiers or sequence operations: SELECT PREVIOUS FROM t1; SELECT PREVIOUS VALUE FOR t1; In TIME/DATE/TIMESTAMP being literals, functions or identifiers: SELECT TIMESTAMP'2001-01-01 10:20:30' FROM t1; SELECT TIMESTAMP('2001-01-01 10:20:30') FROM t1; SELECT TIMESTAMP FROM t1;
-
Thirunarayanan Balathandayuthapani authored
InnoDB does not allow FOREIGN KEY constraints to exist for TEMPORARY TABLE. InnoDB introduced a dedicated tablespace for temporary tables, and actually stopped creating persistent metadata and data for temporary tables. row_table_add_foreign_constraints(): Do not create a persistent transaction. dict_create_foreign_constraints_low(): Add the persistent transaction to the update the foreign key relation in dictionary. dict_create_foreign_constraints_low(): Remove a duplicated check for partitioned tables.
-
Sergei Golubchik authored
-
Aleksey Midenkov authored
MDEV-15979 DELETE HISTORY from a table with transaction-precise versioning causes Assertion `table_list->vers_conditions.type == SYSTEM_TIME_BEFORE' failure * Fix versioning.truncate,trx_id to create transaction-based tables * Fix SYSTEM_TIME_BEFORE condition for VERS_TRX_ID
-
Aleksey Midenkov authored
* fixed discovery * DELETE fix * federated.test Closes tempesta-tech/mariadb#490
-
Sergei Golubchik authored
do "set time_zone='+00:00'" on remote server after connecting. temporarily reset local time zone to my_tz_OFFSET0 whenever Field::val_str() or Field::store() methods are used.
-
Sergei Golubchik authored
preserve positions if the multi-update join is using tmp table: * store positions in the tmp table if needed JOIN::add_fields_for_current_rowid() * take positions from the tmp table, not from file->position(): multi_update::prepare2()
-
Sergei Golubchik authored
introduce Item_temptable_rowid() that is used to store table->file->position() in the temporary table record
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Alexander Barkov authored
Reasoning: - Avoid duplicate comments, both in %token and in the "keyword*" rules. - The space in the rules will be needed for %prec commands.
-
Marko Mäkelä authored
Since commit baa5a43d changed the allocation of log_t::files::file_header_bufs[], a memory overrun could occur when running with a non-default setting of innodb_log_files_in_group. log_t::files::create(): Correctly allocate n_files*2048 + 512 bytes of memory, to be aligned at a 512-byte boundary.
-
Alexander Barkov authored
-
Marko Mäkelä authored
For some reason, two replication tests started failing intermittently after commit 442a6e6b changed the InnoDB version number from 5.7.21 to 10.3.7. There is no obvious reference to INNODB_VERSION or PLUGIN_AUTH_VERSION or PLUGIN_LIBRARY_VERSION in the replication tests.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
- 16 May, 2018 4 commits
-
-
Monty authored
Can't repeat issue so I just added the test case
-
Alexander Barkov authored
We'll be fixing soon shift-reduce conflicts introduced in the new 10.3 syntax (see MDEV-15818 for details) by defining precedence for a number of tokens (e.g. TIMESTAMP, TRANSACTION_SYM, TEXT_STRING) and adding "%prec" directives. Before doing this, it's better to have the existing precedences set properly, for easier readability and maintainability. Details: - Changing precedence of NOT to its proper position (between AND and IS). It was wrong. It worked fine only because the relevant grammar reside in different separate rules (expr and predicate). - Moving NOT2_SYM and BINARY to the same line with NEG and ~ It worked fine because operators !, BINARY, ~ do not conflict to each other. - Fixing associativity of NOT_SYM, NOT2_SYM, BINARY, COLLATE_SYM from "right" to "left". They are not dyadic (operate on a single expression only). So "%left" or "%right" is needed only to set precedence, while associativity does not matter. Note, it would be better to use "%precedence" for these tokens instead of "%left" though, but we use an old version of Bison on windows, which may not support %precedence yet. This patch does not change behavior. The generated sql_yacc.cc and sql_yacc_ora.cc are exactly the same before and after this change.
-
Marko Mäkelä authored
srv_purge_coordinator_thread(): Wait for all purge worker threads to actually exit. An analysis of a core dump of a hung 10.3 server revealed that one srv_worker_thread did not exit, even though the purge coordinator had exited. This caused kill_server_thread and mysqld_main to wait indefinitely. The main InnoDB shutdown was never called, because unireg_end() was never called.
-
Alexander Barkov authored
-