- 23 May, 2018 2 commits
-
-
Eugene Kosov authored
-
Alexander Barkov authored
1. Adding LEX::make_item_sysvar() and reusing it in sql_yacc.yy and sql_yacc_ora.yy. Removing the "opt_component" rule. 2. Renaming rules to better reflect their purpose: - keyword to keyword_ident - keyword_sp to keyword_label - keyword_sp_not_data_type to keyword_sp_var_and_label Also renaming: - sp_decl_ident_keyword to keyword_sp_decl for naming consistency - keyword_alias to keyword_table_alias, for consistency with ident_table_alias - keyword_sp_data_type to keyword_data_type, as it has nothing SP-specific. 3. Moving GLOBAL_SYM, LOCAL_SYM, SESSION_SYM from keyword_sp_var_and_label to a separate rule keyword_sysvar_type. We don't have system variables with these names anyway. Adding ident_sysvar_name and using it in the grammar that needs a system variable name instead of ident_or_text. This removed a number of shift/reduce conflicts between GLOBAL_SYM/LOCAL_SYM/SESSION_SYM as a variable scope and as a variable name. 4. Moving keywords BEGIN_SYM, END (in both *.yy fiels) and EXCEPTION_SYM (in sql_yacc_ora.yy) into a separate rule keyword_sp_block_section, because in Oracle verb keywords (COMMIT, DO, HANDLER, OPEN, REPAIR, ROLLBACK, SAVEPOINT, SHUTDOWN, TRUNCATE) are good variables names and can appear in e.g. DECLARE, while block keywords (BEGIN, END, EXCEPTION) are not good variable names and cannot appear in DECLARE. 5. Further splitting keyword_directly_not_assignable in sql_yacc_ora.yy: moving keyword_sp_verb_clause out. Renaming the rest of keyword_directly_not_assignable to keyword_sp_head, which represents keywords that can appear in optional clauses in CREATE PROCEDURE/FUNCTION/TRIGGER. 6. Renaming keyword_sp_verb_clause to keyword_verb_clause, as now it does not contains anything SP-specific. As a result or #4,#5,#6, the rule keyword_directly_not_assignable was replaced to three separate rules: - keyword_sp_block - keyword_sp_head - keyword_verb_clause Adding the same rules in sql_yacc.yy, for unification. 6. Adding keyword_sp_head and keyword_verb_clause into keyword_sp_decl. This fixes MDEV-16244. 7. Reorganizing the rest of keyword related rules into two groups: a. Rules defining a list of keywords and consisting of only terminal symbols: - keyword_sp_var_not_label - keyword_sp_head - keyword_sp_verb_clause - keyword_sp_block_section - keyword_sysvar_type b. Rules that combine the above lists into keyword places: - keyword_table_alias - keyword_ident - keyword_label - keyword_sysvar_name - keyword_sp_decl Rules from the group "b" use on the right side only rules from the group "a" (with optional terminal symbols added). Rules from the group "b" DO NOT mutually use each other any more. This makes them easier to read (and see the difference between them). Sorting the right sides of the group "b" keyword rules alphabetically, for yet better readability.
-
- 22 May, 2018 7 commits
-
-
Monty authored
Fixed by marking NEXTVAL() and LASTVAL() to be replicated row based
-
Monty authored
-
Sergei Golubchik authored
-
Alexander Barkov authored
Fixing PERIOD to PERIOD_SYM in the %left command.
-
Jacob Mathew authored
The failures with valgrind occur as a result of Spider sometimes using the wrong transaction for operations in background threads that send requests to the data nodes. The use of the wrong transaction caused the networking to the data nodes to use the wrong thread in some cases. Valgrind eventually detects this when such a thread is destroyed before it is used to disconnect from the data node by that wrong transaction when it is freed. I have fixed the problem by correcting the transaction used in each of these cases. Author: Jacob Mathew. Reviewer: Kentoku Shiba. Merged: Commit 4d576d9d on branch bb-10.3-MDEV-12900
-
Jacob Mathew authored
The failures with valgrind occur as a result of Spider sometimes using the wrong transaction for operations in background threads that send requests to the data nodes. The use of the wrong transaction caused the networking to the data nodes to use the wrong thread in some cases. Valgrind eventually detects this when such a thread is destroyed before it is used to disconnect from the data node by that wrong transaction when it is freed. I have fixed the problem by correcting the transaction used in each of these cases. Author: Jacob Mathew. Reviewer: Kentoku Shiba. Merged: Commit 4d576d9d on branch bb-10.3-MDEV-12900
-
Jacob Mathew authored
The failures with valgrind occur as a result of Spider sometimes using the wrong transaction for operations in background threads that send requests to the data nodes. The use of the wrong transaction caused the networking to the data nodes to use the wrong thread in some cases. Valgrind eventually detects this when such a thread is destroyed before it is used to disconnect from the data node by that wrong transaction when it is freed. I have fixed the problem by correcting the transaction used in each of these cases. Author: Jacob Mathew. Reviewer: Kentoku Shiba.
-
- 21 May, 2018 31 commits
-
-
Vladislav Vaintroub authored
-
Alexander Barkov authored
- Using array_elements() instead of a constant to iterate through an array - Adding some comments - Adding new-line function comments - Using STRING_WITH_LEN instead of C_STRING_WITH_LEN
-
Alexander Barkov authored
- Removing the unused "THD*" paramer from Lex_ident_sys_st::to_size_number() - Removing redundant #include for "sql_tvc.h" and "vers_utils.h"
-
Alexander Barkov authored
-
Sergey Vojtovich authored
-
Sergey Vojtovich authored
Symlink core from default location (/cores/core.%P), so that lldb can handle it.
-
Sergey Vojtovich authored
-
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
-
Vladislav Vaintroub authored
-
Sergey Vojtovich authored
-
Sergey Vojtovich authored
Symlink core from default location (/cores/core.%P), so that lldb can handle it.
-
Sergey Vojtovich authored
-
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
-
Sergei Petrunia authored
-
Vladislav Vaintroub authored
-
Alexander Barkov authored
- Using array_elements() instead of a constant to iterate through an array - Adding some comments - Adding new-line function comments - Using STRING_WITH_LEN instead of C_STRING_WITH_LEN
-
Alexander Barkov authored
- Removing the unused "THD*" paramer from Lex_ident_sys_st::to_size_number() - Removing redundant #include for "sql_tvc.h" and "vers_utils.h"
-