diff --git a/src/libmdb/data.c b/src/libmdb/data.c index 432c82f..569e386 100644 --- a/src/libmdb/data.c +++ b/src/libmdb/data.c @@ -192,6 +192,9 @@ int mdb_fetch_row(MdbTableDef *table) MdbHandle *mdb = table->entry->mdb; int rows; + if (table->num_rows==0) + return 0; + /* initialize */ if (!table->cur_pg_num) { table->cur_pg_num=1; diff --git a/src/util/mdb-array.c b/src/util/mdb-array.c index 4fdefa7..82fde0a 100644 --- a/src/util/mdb-array.c +++ b/src/util/mdb-array.c @@ -53,7 +53,8 @@ int started; for (i = 0; i < mdb->num_catalog; i++) { entry = g_array_index (mdb->catalog, MdbCatalogEntry, i); - if (!strcmp (entry.object_name, argv [2])) + if (entry.object_type == MDB_TABLE && + !strcmp (entry.object_name, argv [2])) { table = mdb_read_table (&entry); mdb_read_columns (table); diff --git a/src/util/mdb-export.c b/src/util/mdb-export.c index 0473ba0..afd963b 100644 --- a/src/util/mdb-export.c +++ b/src/util/mdb-export.c @@ -48,7 +48,8 @@ char quote_text = 1; for (i=0;inum_catalog;i++) { entry = g_array_index(mdb->catalog,MdbCatalogEntry,i); - if (!strcmp(entry.object_name,argv[2])) { + if (entry.object_type == MDB_TABLE && + !strcmp(entry.object_name,argv[2])) { table = mdb_read_table(&entry); mdb_read_columns(table); mdb_rewind_table(table); diff --git a/src/util/prdata.c b/src/util/prdata.c index 7bce7d4..baecec4 100644 --- a/src/util/prdata.c +++ b/src/util/prdata.c @@ -43,7 +43,8 @@ GList *l; for (i=0;inum_catalog;i++) { entry = g_array_index(mdb->catalog,MdbCatalogEntry,i); - if (!strcmp(entry.object_name,argv[2])) { + if (entry.object_type == MDB_TABLE && + !strcmp(entry.object_name,argv[2])) { table = mdb_read_table(&entry); mdb_read_columns(table); mdb_data_dump(table);