Commit 56fd453c authored by brian@zim.(none)'s avatar brian@zim.(none)

Fix for Antony's push. I've also changed from using the zlib off_t pointer...

Fix for Antony's push. I've also changed from using the zlib off_t pointer type to my_off_t to fix issues around buggy zlib versions and to make sure file sizes are consistent through out mysql.
parent f86fd782
......@@ -725,7 +725,7 @@ CREATE TABLE t_crashme ( f1 BIGINT);
CREATE VIEW a1 (t_CRASHME) AS SELECT f1 FROM t_crashme GROUP BY f1;
CREATE VIEW a2 AS SELECT t_CRASHME FROM a1;
count(*)
103
104
drop view a2, a1;
drop table t_crashme;
select table_schema,table_name, column_name from
......@@ -796,7 +796,7 @@ delete from mysql.db where user='mysqltest_4';
flush privileges;
SELECT table_schema, count(*) FROM information_schema.TABLES GROUP BY TABLE_SCHEMA;
table_schema count(*)
information_schema 17
information_schema 18
mysql 18
create table t1 (i int, j int);
create trigger trg1 before insert on t1 for each row
......
......@@ -247,8 +247,7 @@ ha_archive::ha_archive(TABLE_SHARE *table_arg)
buffer.set((char *)byte_buffer, IO_SIZE, system_charset_info);
/* The size of the offset value we will use for position() */
ref_length = 2 << ((zlibCompileFlags() >> 6) & 3);
DBUG_ASSERT(ref_length <= sizeof(z_off_t));
ref_length = sizeof(my_off_t);
}
/*
......@@ -612,7 +611,7 @@ error:
*/
int ha_archive::real_write_row(byte *buf, azio_stream *writer)
{
z_off_t written;
my_off_t written;
uint *ptr, *end;
DBUG_ENTER("ha_archive::real_write_row");
......@@ -621,7 +620,7 @@ int ha_archive::real_write_row(byte *buf, azio_stream *writer)
if (!delayed_insert || !bulk_insert)
share->dirty= TRUE;
if (written != (z_off_t)table->s->reclength)
if (written != (my_off_t)table->s->reclength)
DBUG_RETURN(errno ? errno : -1);
/*
We should probably mark the table as damagaged if the record is written
......@@ -638,7 +637,7 @@ int ha_archive::real_write_row(byte *buf, azio_stream *writer)
{
((Field_blob*) table->field[*ptr])->get_ptr(&data_ptr);
written= azwrite(writer, data_ptr, (unsigned)size);
if (written != (z_off_t)size)
if (written != (my_off_t)size)
DBUG_RETURN(errno ? errno : -1);
}
}
......@@ -830,7 +829,7 @@ int ha_archive::rnd_pos(byte * buf, byte *pos)
DBUG_ENTER("ha_archive::rnd_pos");
statistic_increment(table->in_use->status_var.ha_read_rnd_next_count,
&LOCK_status);
current_position= (z_off_t)my_get_ptr(pos, ref_length);
current_position= (my_off_t)my_get_ptr(pos, ref_length);
(void)azseek(&archive, current_position, SEEK_SET);
DBUG_RETURN(get_row(&archive, buf));
......
......@@ -51,7 +51,7 @@ class ha_archive: public handler
THR_LOCK_DATA lock; /* MySQL lock */
ARCHIVE_SHARE *share; /* Shared lock info */
azio_stream archive; /* Archive file we are working with */
z_off_t current_position; /* The position of the row we just read */
my_off_t current_position; /* The position of the row we just read */
byte byte_buffer[IO_SIZE]; /* Initial buffer for our string */
String buffer; /* Buffer used for blob storage */
ha_rows scan_rows; /* Number of rows left in scan */
......
......@@ -506,9 +506,9 @@ int azrewind (s)
SEEK_END is not implemented, returns error.
In this version of the library, azseek can be extremely slow.
*/
z_off_t azseek (s, offset, whence)
my_off_t azseek (s, offset, whence)
azio_stream *s;
z_off_t offset;
my_off_t offset;
int whence;
{
......@@ -589,7 +589,7 @@ z_off_t azseek (s, offset, whence)
given compressed file. This position represents a number of bytes in the
uncompressed data stream.
*/
z_off_t ZEXPORT aztell (file)
my_off_t ZEXPORT aztell (file)
azio_stream *file;
{
return azseek(file, 0L, SEEK_CUR);
......
......@@ -166,9 +166,9 @@ typedef struct azio_stream {
char *msg; /* error message */
int transparent; /* 1 if input file is not a .gz file */
char mode; /* 'w' or 'r' */
z_off_t start; /* start of compressed data in file (header skipped) */
z_off_t in; /* bytes into deflate or inflate */
z_off_t out; /* bytes out of deflate or inflate */
my_off_t start; /* start of compressed data in file (header skipped) */
my_off_t in; /* bytes into deflate or inflate */
my_off_t out; /* bytes out of deflate or inflate */
int back; /* one character push-back */
int last; /* true if push-back is last character */
} azio_stream;
......@@ -232,8 +232,8 @@ extern int azflush(azio_stream *file, int flush);
degrade compression.
*/
extern z_off_t azseek (azio_stream *file,
z_off_t offset, int whence);
extern my_off_t azseek (azio_stream *file,
my_off_t offset, int whence);
/*
Sets the starting position for the next gzread or gzwrite on the
given compressed file. The offset represents a number of bytes in the
......@@ -257,7 +257,7 @@ extern int azrewind(azio_stream *file);
gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET)
*/
extern z_off_t aztell(azio_stream *file);
extern my_off_t aztell(azio_stream *file);
/*
Returns the starting position for the next gzread or gzwrite on the
given compressed file. This position represents a number of bytes in the
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment