summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormalff/marcsql@weblab.(none) <>2007-01-12 08:11:52 -0700
committermalff/marcsql@weblab.(none) <>2007-01-12 08:11:52 -0700
commitb73101af15e62324d6d831ac6637e2ec25127da7 (patch)
treec8c74cbb5c220afe7996fa67459b45106a3abeb1
parentb72c2771dca69b1f968d75717c5f010682ca2841 (diff)
parent9655f5fb0330d9eb67effe6755dec45f28f1e446 (diff)
downloadmariadb-git-b73101af15e62324d6d831ac6637e2ec25127da7.tar.gz
Merge malff@bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into weblab.(none):/home/marcsql/TREE/mysql-5.1-22687
-rw-r--r--libmysqld/Makefile.am2
-rw-r--r--mysql-test/r/parser.result12
-rw-r--r--mysql-test/t/parser.test16
-rw-r--r--sql/Makefile.am4
-rw-r--r--sql/item.h1
-rw-r--r--sql/item_sum.h2
-rw-r--r--sql/item_uniq.cc31
-rw-r--r--sql/item_uniq.h62
-rw-r--r--sql/lex.h2
-rw-r--r--sql/mysql_priv.h1
-rw-r--r--sql/sql_yacc.yy8
11 files changed, 21 insertions, 120 deletions
diff --git a/libmysqld/Makefile.am b/libmysqld/Makefile.am
index a0a041d2f8d..0f57d01108c 100644
--- a/libmysqld/Makefile.am
+++ b/libmysqld/Makefile.am
@@ -51,7 +51,7 @@ sqlsources = derror.cc field.cc field_conv.cc strfunc.cc filesort.cc \
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 \
diff --git a/mysql-test/r/parser.result b/mysql-test/r/parser.result
index 49008eb818b..cb44a235f25 100644
--- a/mysql-test/r/parser.result
+++ b/mysql-test/r/parser.result
@@ -49,7 +49,7 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp
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 SQL syntax; check the manual that corresp
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 SQL syntax; check the manual that corresp
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 SQL syntax; check the manual that corresp
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);
diff --git a/mysql-test/t/parser.test b/mysql-test/t/parser.test
index 13b4338701e..65aa9dbb89b 100644
--- a/mysql-test/t/parser.test
+++ b/mysql-test/t/parser.test
@@ -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);
diff --git a/sql/Makefile.am b/sql/Makefile.am
index ab0d8c905aa..6cb9467c32c 100644
--- a/sql/Makefile.am
+++ b/sql/Makefile.am
@@ -42,7 +42,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 \
@@ -82,7 +82,7 @@ mysqld_SOURCES = sql_lex.cc sql_handler.cc sql_partition.cc \
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 \
diff --git a/sql/item.h b/sql/item.h
index c962e36aa2b..8c97010389e 100644
--- a/sql/item.h
+++ b/sql/item.h
@@ -2134,7 +2134,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
diff --git a/sql/item_sum.h b/sql/item_sum.h
index 3b941c1493c..fdc13a36874 100644
--- a/sql/item_sum.h
+++ b/sql/item_sum.h
@@ -222,7 +222,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
};
diff --git a/sql/item_uniq.cc b/sql/item_uniq.cc
deleted file mode 100644
index 17eee9fb79e..00000000000
--- a/sql/item_uniq.cc
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright (C) 2000-2001, 2005 MySQL AB
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; version 2 of the License.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* Compability file */
-
-#ifdef USE_PRAGMA_IMPLEMENTATION
-#pragma implementation // gcc: Class implementation
-#endif
-
-#include "mysql_priv.h"
-
-Field *Item_sum_unique_users::create_tmp_field(bool group, TABLE *table,
- uint convert_blob_length)
-{
- Field *field= new Field_long(9, maybe_null, name, 1);
- if (field)
- field->init(table);
- return field;
-}
diff --git a/sql/item_uniq.h b/sql/item_uniq.h
deleted file mode 100644
index ce43abe3f33..00000000000
--- a/sql/item_uniq.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Copyright (C) 2000-2005 MySQL AB
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; version 2 of the License.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* Compability file ; This file only contains dummy functions */
-
-#ifdef USE_PRAGMA_INTERFACE
-#pragma interface
-#endif
-
-#include <queues.h>
-
-class Item_func_unique_users :public Item_real_func
-{
-public:
- Item_func_unique_users(Item *name_arg,int start,int end,List<Item> &list)
- :Item_real_func(list) {}
- double val_real() { DBUG_ASSERT(fixed == 1); return 0.0; }
- void fix_length_and_dec() { decimals=0; max_length=6; }
- void print(String *str) { str->append(STRING_WITH_LEN("0.0")); }
- const char *func_name() const { return "unique_users"; }
-};
-
-
-class Item_sum_unique_users :public Item_sum_num
-{
-public:
- Item_sum_unique_users(Item *name_arg,int start,int end,Item *item_arg)
- :Item_sum_num(item_arg) {}
- Item_sum_unique_users(THD *thd, Item_sum_unique_users *item)
- :Item_sum_num(thd, item) {}
- double val_real() { DBUG_ASSERT(fixed == 1); return 0.0; }
- enum Sumfunctype sum_func () const {return UNIQUE_USERS_FUNC;}
- void clear() {}
- bool add() { return 0; }
- void reset_field() {}
- void update_field() {}
- bool fix_fields(THD *thd, Item **ref)
- {
- DBUG_ASSERT(fixed == 0);
- fixed= 1;
- return FALSE;
- }
- Item *copy_or_same(THD* thd)
- {
- return new Item_sum_unique_users(thd, this);
- }
- void print(String *str) { str->append(STRING_WITH_LEN("0.0")); }
- Field *create_tmp_field(bool group, TABLE *table, uint convert_blob_length);
- const char *func_name() const { return "sum_unique_users"; }
-};
diff --git a/sql/lex.h b/sql/lex.h
index 155d70d101c..2bf0e08c825 100644
--- a/sql/lex.h
+++ b/sql/lex.h
@@ -599,7 +599,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)},
@@ -617,7 +616,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)},
diff --git a/sql/mysql_priv.h b/sql/mysql_priv.h
index e21658bc6b8..305cf78593e 100644
--- a/sql/mysql_priv.h
+++ b/sql/mysql_priv.h
@@ -35,6 +35,7 @@
#include <signal.h>
#include <thr_lock.h>
#include <my_base.h> /* Needed by field.h */
+#include <queues.h>
#include "sql_bitmap.h"
#include "sql_array.h"
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy
index d541724a133..841c0f19c1e 100644
--- a/sql/sql_yacc.yy
+++ b/sql/sql_yacc.yy
@@ -536,7 +536,6 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
%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
@@ -870,7 +869,6 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
%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
@@ -6348,10 +6346,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);
- }
;
/*
@@ -6838,8 +6832,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); }
/*