diff --git a/database.d b/database.d index 5832ca0..4e3f93c 100644 --- a/database.d +++ b/database.d @@ -71,6 +71,8 @@ struct Row { package ResultSet resultSet; string opIndex(size_t idx) { + if(idx >= row.length) + throw new Exception(text("index ", idx, " is out of bounds on result")); return row[idx]; } diff --git a/mysql.d b/mysql.d index b862267..41fb9c2 100644 --- a/mysql.d +++ b/mysql.d @@ -100,6 +100,8 @@ class MySqlResult : ResultSet { private void fetchNext() { assert(result); auto r = mysql_fetch_row(result); + if(r is null) + throw new Exception("there is no next row"); uint numFields = mysql_num_fields(result); uint* lengths = mysql_fetch_lengths(result); string[] row;