From: Date: January 11 2007 10:58pm Subject: bk commit into 5.1 tree (malff:1.2361) BUG#22687 List-Archive: http://lists.mysql.com/commits/17998 X-Bug: 22687 Message-Id: <20070111215811.A353F8E1AE3@weblab.mysql.com> Below is the list of changes that have just been committed into a local 5.1 repository of marcsql. When marcsql does a push these changes will be propagated to the main repository and, within 24 hours after the push, to the public repository. For information on how to access the public repository see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html ChangeSet@stripped, 2007-01-11 14:58:05-07:00, malff@weblab.(none) +11 -0 Bug#22687 (Functions UNIQUE_USERS, GROUP_UNIQUE_USERS) According to some internal communication, these two functions are place holders for future enhancements. Because they use a variable number of parameters, the implementation defined a reserved keyword for them in the parser grammar. Unfortunately, doing so creates a bug similar to Bug 21114 reported for the function FORMAT. In the 5.1 code base, due to improvements in the code implemented with bug 21114, having a reserved keyword for functions with a variable number of arguments is not needed any more by the implementation. As a result, this fix removes the place-holder implementation, and removes the unnecessary reserved keywords. Should the functions UNIQUE_USERS and GROUP_UNIQUE_USERS be finally implemented in a later release, the implementation should sub class Create_native_func in sql/item_create.cc. For example, see the class Create_func_concat. BitKeeper/deleted/.del-item_uniq.cc@stripped, 2007-01-11 14:53:11-07:00, malff@weblab.(none) +0 -0 Rename: sql/item_uniq.cc -> BitKeeper/deleted/.del-item_uniq.cc BitKeeper/deleted/.del-item_uniq.h@stripped, 2007-01-11 14:53:11-07:00, malff@weblab.(none) +0 -0 Rename: sql/item_uniq.h -> BitKeeper/deleted/.del-item_uniq.h libmysqld/Makefile.am@stripped, 2007-01-11 14:58:02-07:00, malff@weblab.(none) +1 -1 Remove native functions UNIQUE_USERS() and GROUP_UNIQUE_USERS(). mysql-test/r/parser.result@stripped, 2007-01-11 14:58:02-07:00, malff@weblab.(none) +6 -6 Remove native functions UNIQUE_USERS() and GROUP_UNIQUE_USERS(). mysql-test/t/parser.test@stripped, 2007-01-11 14:58:02-07:00, malff@weblab.(none) +10 -6 Remove native functions UNIQUE_USERS() and GROUP_UNIQUE_USERS(). sql/Makefile.am@stripped, 2007-01-11 14:58:02-07:00, malff@weblab.(none) +2 -2 Remove native functions UNIQUE_USERS() and GROUP_UNIQUE_USERS(). sql/item.h@stripped, 2007-01-11 14:58:02-07:00, malff@weblab.(none) +0 -1 Remove native functions UNIQUE_USERS() and GROUP_UNIQUE_USERS(). sql/item_sum.h@stripped, 2007-01-11 14:58:02-07:00, malff@weblab.(none) +1 -1 Remove native functions UNIQUE_USERS() and GROUP_UNIQUE_USERS(). sql/lex.h@stripped, 2007-01-11 14:58:02-07:00, malff@weblab.(none) +0 -2 Remove native functions UNIQUE_USERS() and GROUP_UNIQUE_USERS(). sql/mysql_priv.h@stripped, 2007-01-11 14:58:02-07:00, malff@weblab.(none) +1 -0 Remove native functions UNIQUE_USERS() and GROUP_UNIQUE_USERS(). sql/sql_yacc.yy@stripped, 2007-01-11 14:58:02-07:00, malff@weblab.(none) +0 -8 Remove native functions UNIQUE_USERS() and GROUP_UNIQUE_USERS(). # This is a BitKeeper patch. What follows are the unified diffs for the # set of deltas contained in the patch. The rest of the patch, the part # that BitKeeper cares about, is below these diffs. # User: malff # Host: weblab.(none) # Root: /home/marcsql/TREE/mysql-5.1-22687 --- 1.167/sql/Makefile.am 2007-01-11 14:58:11 -07:00 +++ 1.168/sql/Makefile.am 2007-01-11 14:58:11 -07:00 @@ -43,7 +43,7 @@ mysqld_LDADD = @MYSQLD_EXTRA_LDFLAGS@ \ $(LDADD) $(CXXLDFLAGS) $(WRAPLIBS) @LIBDL@ \ @yassl_libs@ @openssl_libs@ noinst_HEADERS = item.h item_func.h item_sum.h item_cmpfunc.h \ - item_strfunc.h item_timefunc.h item_uniq.h \ + item_strfunc.h item_timefunc.h \ item_xmlfunc.h \ item_create.h item_subselect.h item_row.h \ mysql_priv.h item_geofunc.h sql_bitmap.h \ @@ -83,7 +83,7 @@ mysqld_SOURCES = sql_lex.cc sql_handler. sql_base.cc table.cc sql_select.cc sql_insert.cc \ sql_prepare.cc sql_error.cc sql_locale.cc \ sql_update.cc sql_delete.cc uniques.cc sql_do.cc \ - procedure.cc item_uniq.cc sql_test.cc \ + procedure.cc sql_test.cc \ log.cc log_event.cc init.cc derror.cc sql_acl.cc \ unireg.cc des_key_file.cc \ discover.cc time.cc opt_range.cc opt_sum.cc \ --- 1.216/sql/item.h 2007-01-11 14:58:11 -07:00 +++ 1.217/sql/item.h 2007-01-11 14:58:11 -07:00 @@ -2135,7 +2135,6 @@ public: #include "item_strfunc.h" #include "item_geofunc.h" #include "item_timefunc.h" -#include "item_uniq.h" #include "item_subselect.h" #include "item_xmlfunc.h" #endif --- 1.109/sql/item_sum.h 2007-01-11 14:58:11 -07:00 +++ 1.110/sql/item_sum.h 2007-01-11 14:58:11 -07:00 @@ -223,7 +223,7 @@ class Item_sum :public Item_result_field public: enum Sumfunctype { COUNT_FUNC, COUNT_DISTINCT_FUNC, SUM_FUNC, SUM_DISTINCT_FUNC, AVG_FUNC, - AVG_DISTINCT_FUNC, MIN_FUNC, MAX_FUNC, UNIQUE_USERS_FUNC, STD_FUNC, + AVG_DISTINCT_FUNC, MIN_FUNC, MAX_FUNC, STD_FUNC, VARIANCE_FUNC, SUM_BIT_FUNC, UDF_SUM_FUNC, GROUP_CONCAT_FUNC }; --- 1.166/sql/lex.h 2007-01-11 14:58:11 -07:00 +++ 1.167/sql/lex.h 2007-01-11 14:58:11 -07:00 @@ -593,7 +593,6 @@ static SYMBOL sql_functions[] = { { "DATE_SUB", SYM(DATE_SUB_INTERVAL)}, { "EXTRACT", SYM(EXTRACT_SYM)}, { "GROUP_CONCAT", SYM(GROUP_CONCAT_SYM)}, - { "GROUP_UNIQUE_USERS", SYM(GROUP_UNIQUE_USERS)}, { "MAX", SYM(MAX_SYM)}, { "MID", SYM(SUBSTRING)}, /* unireg function */ { "MIN", SYM(MIN_SYM)}, @@ -611,7 +610,6 @@ static SYMBOL sql_functions[] = { { "SYSDATE", SYM(SYSDATE)}, { "SYSTEM_USER", SYM(USER)}, { "TRIM", SYM(TRIM)}, - { "UNIQUE_USERS", SYM(UNIQUE_USERS)}, { "VARIANCE", SYM(VARIANCE_SYM)}, { "VAR_POP", SYM(VARIANCE_SYM)}, { "VAR_SAMP", SYM(VAR_SAMP_SYM)}, --- 1.464/sql/mysql_priv.h 2007-01-11 14:58:11 -07:00 +++ 1.465/sql/mysql_priv.h 2007-01-11 14:58:11 -07:00 @@ -36,6 +36,7 @@ #include #include #include /* Needed by field.h */ +#include #include "sql_bitmap.h" #include "sql_array.h" --- 1.527/sql/sql_yacc.yy 2007-01-11 14:58:11 -07:00 +++ 1.528/sql/sql_yacc.yy 2007-01-11 14:58:11 -07:00 @@ -537,7 +537,6 @@ bool my_yyoverflow(short **a, YYSTYPE ** %token GRANTS %token GROUP /* SQL-2003-R */ %token GROUP_CONCAT_SYM -%token GROUP_UNIQUE_USERS %token GT_SYM /* OPERATOR */ %token HANDLER_SYM %token HASH_SYM @@ -864,7 +863,6 @@ bool my_yyoverflow(short **a, YYSTYPE ** %token UNINSTALL_SYM %token UNION_SYM /* SQL-2003-R */ %token UNIQUE_SYM -%token UNIQUE_USERS %token UNKNOWN_SYM /* SQL-2003-R */ %token UNLOCK_SYM %token UNSIGNED @@ -6279,10 +6277,6 @@ simple_expr: } $$= new (YYTHD->mem_root) Item_func_interval((Item_row *)$1); } - | UNIQUE_USERS '(' text_literal ',' NUM ',' NUM ',' expr_list ')' - { - $$= new Item_func_unique_users($3,atoi($5.str),atoi($7.str), * $9); - } ; /* @@ -6769,8 +6763,6 @@ sum_expr: { Select->in_sum_expr--; } ')' { $$=new Item_sum_count_distinct(* $5); } - | GROUP_UNIQUE_USERS '(' text_literal ',' NUM ',' NUM ',' in_sum_expr ')' - { $$= new Item_sum_unique_users($3,atoi($5.str),atoi($7.str),$9); } | MIN_SYM '(' in_sum_expr ')' { $$=new Item_sum_min($3); } /* --- 1.4/mysql-test/r/parser.result 2007-01-11 14:58:11 -07:00 +++ 1.5/mysql-test/r/parser.result 2007-01-11 14:58:11 -07:00 @@ -49,7 +49,7 @@ ERROR 42000: You have an error in your S create table GROUP_CONCAT (a int); drop table GROUP_CONCAT; create table GROUP_UNIQUE_USERS(a int); -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GROUP_UNIQUE_USERS(a int)' at line 1 +drop table GROUP_UNIQUE_USERS; create table GROUP_UNIQUE_USERS (a int); drop table GROUP_UNIQUE_USERS; create table MAX(a int); @@ -121,7 +121,7 @@ ERROR 42000: You have an error in your S create table TRIM (a int); drop table TRIM; create table UNIQUE_USERS(a int); -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNIQUE_USERS(a int)' at line 1 +drop table UNIQUE_USERS; create table UNIQUE_USERS (a int); drop table UNIQUE_USERS; create table VARIANCE(a int); @@ -186,9 +186,9 @@ ERROR 42000: You have an error in your S create table GROUP_CONCAT (a int); ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GROUP_CONCAT (a int)' at line 1 create table GROUP_UNIQUE_USERS(a int); -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GROUP_UNIQUE_USERS(a int)' at line 1 +drop table GROUP_UNIQUE_USERS; create table GROUP_UNIQUE_USERS (a int); -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GROUP_UNIQUE_USERS (a int)' at line 1 +drop table GROUP_UNIQUE_USERS; create table MAX(a int); ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'MAX(a int)' at line 1 create table MAX (a int); @@ -258,9 +258,9 @@ ERROR 42000: You have an error in your S create table TRIM (a int); ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TRIM (a int)' at line 1 create table UNIQUE_USERS(a int); -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNIQUE_USERS(a int)' at line 1 +drop table UNIQUE_USERS; create table UNIQUE_USERS (a int); -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNIQUE_USERS (a int)' at line 1 +drop table UNIQUE_USERS; create table VARIANCE(a int); ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VARIANCE(a int)' at line 1 create table VARIANCE (a int); --- 1.4/mysql-test/t/parser.test 2007-01-11 14:58:11 -07:00 +++ 1.5/mysql-test/t/parser.test 2007-01-11 14:58:11 -07:00 @@ -77,8 +77,9 @@ create table GROUP_CONCAT(a int); create table GROUP_CONCAT (a int); drop table GROUP_CONCAT; ---error ER_PARSE_ERROR +# Limitation removed in 5.1 create table GROUP_UNIQUE_USERS(a int); +drop table GROUP_UNIQUE_USERS; create table GROUP_UNIQUE_USERS (a int); drop table GROUP_UNIQUE_USERS; @@ -167,8 +168,9 @@ create table TRIM(a int); create table TRIM (a int); drop table TRIM; ---error ER_PARSE_ERROR +# Limitation removed in 5.1 create table UNIQUE_USERS(a int); +drop table UNIQUE_USERS; create table UNIQUE_USERS (a int); drop table UNIQUE_USERS; @@ -249,10 +251,11 @@ create table GROUP_CONCAT(a int); --error ER_PARSE_ERROR create table GROUP_CONCAT (a int); ---error ER_PARSE_ERROR +# Limitation removed in 5.1 create table GROUP_UNIQUE_USERS(a int); ---error ER_PARSE_ERROR +drop table GROUP_UNIQUE_USERS; create table GROUP_UNIQUE_USERS (a int); +drop table GROUP_UNIQUE_USERS; --error ER_PARSE_ERROR create table MAX(a int); @@ -339,10 +342,11 @@ create table TRIM(a int); --error ER_PARSE_ERROR create table TRIM (a int); ---error ER_PARSE_ERROR +# Limitation removed in 5.1 create table UNIQUE_USERS(a int); ---error ER_PARSE_ERROR +drop table UNIQUE_USERS; create table UNIQUE_USERS (a int); +drop table UNIQUE_USERS; --error ER_PARSE_ERROR create table VARIANCE(a int); --- 1.103/libmysqld/Makefile.am 2007-01-11 14:58:11 -07:00 +++ 1.104/libmysqld/Makefile.am 2007-01-11 14:58:11 -07:00 @@ -51,7 +51,7 @@ sqlsources = derror.cc field.cc field_co hostname.cc init.cc password.c \ item.cc item_buff.cc item_cmpfunc.cc item_create.cc \ item_func.cc item_strfunc.cc item_sum.cc item_timefunc.cc \ - item_geofunc.cc item_uniq.cc item_subselect.cc item_row.cc\ + item_geofunc.cc item_subselect.cc item_row.cc\ item_xmlfunc.cc \ key.cc lock.cc log.cc log_event.cc sql_state.c \ protocol.cc net_serv.cc opt_range.cc \