MySQL Lists are EOL. Please join:

List:Commits« Previous MessageNext Message »
From:Sergei Golubchik Date:April 17 2007 10:32am
Subject:bk commit into 5.0 tree (serg:1.2457) BUG#5507
View as plain text  
Below is the list of changes that have just been committed into a local
5.0 repository of serg. When serg 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-04-17 12:32:01+02:00, serg@stripped +4 -0
  reverted the fix for Bug#5507

  mysql-test/r/truncate.result@stripped, 2007-04-17 12:31:58+02:00, serg@stripped +3 -23
    reverted the fix for Bug#5507

  mysql-test/t/truncate.test@stripped, 2007-04-17 12:31:58+02:00, serg@stripped +8 -23
    reverted the fix for Bug#5507

  sql/sql_delete.cc@stripped, 2007-04-17 12:31:58+02:00, serg@stripped +3 -6
    reverted the fix for Bug#5507

  sql/sql_lex.cc@stripped, 2007-04-17 12:31:58+02:00, serg@stripped +0 -1
    reverted the fix for Bug#5507

# 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:	serg
# Host:	janus.mylan
# Root:	/usr/home/serg/Abk/mysql-5.0

--- 1.196/sql/sql_delete.cc	2007-04-17 12:32:07 +02:00
+++ 1.197/sql/sql_delete.cc	2007-04-17 12:32:07 +02:00
@@ -369,8 +369,6 @@
 {
   Item *fake_conds= 0;
   SELECT_LEX *select_lex= &thd->lex->select_lex;
-  const char *operation = thd->lex->sql_command == SQLCOM_TRUNCATE ?
-                          "TRUNCATE" : "DELETE";
   DBUG_ENTER("mysql_prepare_delete");
   List<Item> all_fields;
 
@@ -385,14 +383,14 @@
     DBUG_RETURN(TRUE);
   if (!table_list->updatable || check_key_in_view(thd, table_list))
   {
-    my_error(ER_NON_UPDATABLE_TABLE, MYF(0), table_list->alias, operation);
+    my_error(ER_NON_UPDATABLE_TABLE, MYF(0), table_list->alias, "DELETE");
     DBUG_RETURN(TRUE);
   }
   {
     TABLE_LIST *duplicate;
     if ((duplicate= unique_table(thd, table_list, table_list->next_global, 0)))
     {
-      update_non_unique_table_error(table_list, operation, duplicate);
+      update_non_unique_table_error(table_list, "DELETE", duplicate);
       DBUG_RETURN(TRUE);
     }
   }
@@ -897,8 +895,7 @@
   if (!dont_send_ok)
   {
     db_type table_type;
-    if (mysql_frm_type(thd, path, &table_type) == FRMTYPE_VIEW)
-      goto trunc_by_del;
+    mysql_frm_type(thd, path, &table_type);
     if (table_type == DB_TYPE_UNKNOWN)
     {
       my_error(ER_NO_SUCH_TABLE, MYF(0),

--- 1.218/sql/sql_lex.cc	2007-04-17 12:32:07 +02:00
+++ 1.219/sql/sql_lex.cc	2007-04-17 12:32:07 +02:00
@@ -1834,7 +1834,6 @@
   case SQLCOM_UPDATE_MULTI:
   case SQLCOM_DELETE:
   case SQLCOM_DELETE_MULTI:
-  case SQLCOM_TRUNCATE:
   case SQLCOM_INSERT:
   case SQLCOM_INSERT_SELECT:
   case SQLCOM_REPLACE:

--- 1.12/mysql-test/r/truncate.result	2007-04-17 12:32:07 +02:00
+++ 1.13/mysql-test/r/truncate.result	2007-04-17 12:32:07 +02:00
@@ -57,26 +57,6 @@
 insert into t1 (s1) values (1), (2), (3), (4), (5);
 create view v1 as select * from t1;
 truncate table v1;
-select count(*) from t1;
-count(*)
-0
-insert into t1 (s1) values (1), (2), (3), (4), (5);
-create view v2 as select * from t1 where s1 > 3;
-truncate table v2;
-select * from t1;
-s1
-1
-2
-3
-select * from v2;
-s1
-delete from t1;
-create table t2 (s1 int, s2 int);
-create view v3 as select a.s1, b.s2 from t1 a join t2 b on a.s1 = b.s1 where a.s1 > 3;
-truncate table v3;
-ERROR HY000: Can not delete from join view 'test.v3'
-create view v4 as select * from t1 limit 1,1;
-truncate table v4;
-ERROR HY000: The target table v4 of the TRUNCATE is not updatable
-drop view v1, v2, v3, v4;
-drop table t1, t2;
+ERROR 42S02: Table 'test.v1' doesn't exist
+drop view v1;
+drop table t1;

--- 1.13/mysql-test/t/truncate.test	2007-04-17 12:32:07 +02:00
+++ 1.14/mysql-test/t/truncate.test	2007-04-17 12:32:07 +02:00
@@ -54,33 +54,18 @@
 # End of 4.1 tests
 
 # Test for Bug#5507 "TRUNCATE should work with views"
+#
+# when it'll be fixed, the error should become 1347
+# (test.v1' is not BASE TABLE)
+#
 
 create table t1 (s1 int); 
-
 insert into t1 (s1) values (1), (2), (3), (4), (5);
 create view v1 as select * from t1;
+--error 1146
 truncate table v1;
-select count(*) from t1;
-
-insert into t1 (s1) values (1), (2), (3), (4), (5);
-create view v2 as select * from t1 where s1 > 3;
-truncate table v2; 
-select * from t1;
-select * from v2;
-delete from t1;
-
-# The following should fail
-create table t2 (s1 int, s2 int);
-create view v3 as select a.s1, b.s2 from t1 a join t2 b on a.s1 = b.s1 where a.s1 > 3;
---error 1395
-truncate table v3; 
-
-# The following should fail
-create view v4 as select * from t1 limit 1,1; 
---error 1288
-truncate table v4;
-
-drop view v1, v2, v3, v4;
-drop table t1, t2;
+drop view v1;
+drop table t1;
 
 # End of 5.0 tests
+
Thread
bk commit into 5.0 tree (serg:1.2457) BUG#5507Sergei Golubchik17 Apr