mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
Added support for delete_all_rows() for archive. This fixes bug #12836.
This commit is contained in:
parent
5b35789d12
commit
4e9931752e
5 changed files with 3654 additions and 1 deletions
File diff suppressed because it is too large
Load diff
|
@ -1310,6 +1310,19 @@ rename table t3 to t4;
|
|||
select * from t4 where fld3='bonfire';
|
||||
select count(*) from t4;
|
||||
|
||||
drop table t1, t2, t4;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
||||
#
|
||||
# For bug #12836
|
||||
# Delete was allowing all rows to be removed
|
||||
DELETE FROM t2;
|
||||
SELECT * FROM t2;
|
||||
INSERT INTO t2 VALUES (2,011401,37,'breaking','dreaded','Steinberg','W');
|
||||
INSERT INTO t2 VALUES (3,011402,37,'Romans','scholastics','jarring','');
|
||||
INSERT INTO t2 VALUES (4,011403,37,'intercepted','audiology','tinily','');
|
||||
SELECT * FROM t2;
|
||||
TRUNCATE TABLE t2;
|
||||
SELECT * FROM t2;
|
||||
|
||||
drop table t1, t2, t4;
|
||||
|
|
|
@ -1001,4 +1001,15 @@ ha_rows ha_archive::records_in_range(uint inx, key_range *min_key,
|
|||
DBUG_ENTER("ha_archive::records_in_range ");
|
||||
DBUG_RETURN(records); // HA_ERR_WRONG_COMMAND
|
||||
}
|
||||
|
||||
/*
|
||||
We cancel a truncate command. The only way to delete an archive table is to drop it.
|
||||
This is done for security reasons. In a later version we will enable this by
|
||||
allowing the user to select a different row format.
|
||||
*/
|
||||
int ha_archive::delete_all_rows()
|
||||
{
|
||||
DBUG_ENTER("ha_archive::delete_all_rows");
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
#endif /* HAVE_ARCHIVE_DB */
|
||||
|
|
|
@ -95,6 +95,7 @@ public:
|
|||
int write_row(byte * buf);
|
||||
int update_row(const byte * old_data, byte * new_data);
|
||||
int delete_row(const byte * buf);
|
||||
int delete_all_rows();
|
||||
int index_read(byte * buf, const byte * key,
|
||||
uint key_len, enum ha_rkey_function find_flag);
|
||||
int index_read_idx(byte * buf, uint idx, const byte * key,
|
||||
|
|
|
@ -531,6 +531,8 @@ extern TYPELIB tx_isolation_typelib;
|
|||
|
||||
#define ha_supports_generate(T) (T != DB_TYPE_INNODB && \
|
||||
T != DB_TYPE_BERKELEY_DB && \
|
||||
T != DB_TYPE_ARCHIVE_DB && \
|
||||
T != DB_TYPE_FEDERATED_DB && \
|
||||
T != DB_TYPE_NDBCLUSTER)
|
||||
|
||||
bool ha_caching_allowed(THD* thd, char* table_key,
|
||||
|
|
Loading…
Reference in a new issue