summaryrefslogtreecommitdiff
path: root/sql/sql_delete.cc
diff options
context:
space:
mode:
authorunknown <jamppa@bk-internal.mysql.com>2007-04-17 15:52:03 +0200
committerunknown <jamppa@bk-internal.mysql.com>2007-04-17 15:52:03 +0200
commit4eecb58fd65e77091c930f0a039a59e85d2c1b5d (patch)
treeb5abc9202d1380b3966b901a4a9dbac7eb1811d1 /sql/sql_delete.cc
parentf036fbcd45ff6481a910d4fa6ebf86b73bb883c7 (diff)
parent46e37afd0661630c442a61d9b23766b4ac802381 (diff)
downloadmariadb-git-4eecb58fd65e77091c930f0a039a59e85d2c1b5d.tar.gz
Merge bk-internal.mysql.com:/data0/bk/mysql-5.0
into bk-internal.mysql.com:/data0/bk/mysql-5.0-marvel sql/ha_ndbcluster.cc: Auto merged sql/item.cc: Auto merged sql/item_cmpfunc.cc: Auto merged sql/sql_delete.cc: Auto merged sql/sql_select.cc: Auto merged sql/sql_table.cc: Auto merged
Diffstat (limited to 'sql/sql_delete.cc')
-rw-r--r--sql/sql_delete.cc9
1 files changed, 6 insertions, 3 deletions
diff --git a/sql/sql_delete.cc b/sql/sql_delete.cc
index bccd4d4cafe..071acb57945 100644
--- a/sql/sql_delete.cc
+++ b/sql/sql_delete.cc
@@ -369,6 +369,8 @@ bool mysql_prepare_delete(THD *thd, TABLE_LIST *table_list, Item **conds)
{
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;
@@ -383,14 +385,14 @@ bool mysql_prepare_delete(THD *thd, TABLE_LIST *table_list, Item **conds)
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, "DELETE");
+ my_error(ER_NON_UPDATABLE_TABLE, MYF(0), table_list->alias, operation);
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, "DELETE", duplicate);
+ update_non_unique_table_error(table_list, operation, duplicate);
DBUG_RETURN(TRUE);
}
}
@@ -895,7 +897,8 @@ bool mysql_truncate(THD *thd, TABLE_LIST *table_list, bool dont_send_ok)
if (!dont_send_ok)
{
db_type table_type;
- mysql_frm_type(thd, path, &table_type);
+ if (mysql_frm_type(thd, path, &table_type) == FRMTYPE_VIEW)
+ goto trunc_by_del;
if (table_type == DB_TYPE_UNKNOWN)
{
my_error(ER_NO_SUCH_TABLE, MYF(0),