Commit 31203972 authored by unknown's avatar unknown
Browse files

Update for delete_all_rows() which will be used for TRUNCATE and DELETE support.


mysql-test/t/archive.test:
  Auto merged
sql/handler.h:
  Auto merged
mysql-test/r/archive.result:
  Result sets
sql/examples/ha_archive.cc:
  Update for tests
sql/examples/ha_archive.h:
  Updated from merge, added new method for solving truncate problems.
parents 11d32b4a 341a08ed
Loading
Loading
Loading
Loading
+3654 −0

File changed.

Preview size limit exceeded, changes collapsed.

+14 −1
Original line number Diff line number Diff line
@@ -1332,6 +1332,19 @@ INSERT DELAYED INTO t2 VALUES (4,011403,37,'intercepted','audiology','tinily',''
# 
# Cleanup, test is over
#
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;
+11 −0
Original line number Diff line number Diff line
@@ -1028,4 +1028,15 @@ int ha_archive::end_bulk_insert()
  share->dirty= TRUE;
  DBUG_RETURN(0);
}

/*
  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 */
+1 −0
Original line number Diff line number Diff line
@@ -78,6 +78,7 @@ class ha_archive: public handler
  int close(void);
  int write_row(byte * buf);
  int real_write_row(byte *buf, gzFile writer);
  int delete_row(const byte * buf);
  int rnd_init(bool scan=1);
  int rnd_next(byte *buf);
  int rnd_pos(byte * buf, byte *pos);
+2 −0
Original line number Diff line number Diff line
@@ -824,6 +824,8 @@ extern ulong total_ha, total_ha_2pc;

#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)

/* lookups */