X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=index%2Fzebraapi.c;h=f54589b27858f97b7de6e376b2e050f9b80a8e1a;hb=2c381d0b592241769db6e2b599e60c1712604a57;hp=1685caba019dd26c52e9b564183cce449b287bda;hpb=bd3a317131488141726cedfba9f86b9e479c5385;p=idzebra-moved-to-github.git diff --git a/index/zebraapi.c b/index/zebraapi.c index 1685cab..f54589b 100644 --- a/index/zebraapi.c +++ b/index/zebraapi.c @@ -1,4 +1,4 @@ -/* $Id: zebraapi.c,v 1.223 2006-06-27 11:56:28 adam Exp $ +/* $Id: zebraapi.c,v 1.229 2006-09-29 07:05:44 adam Exp $ Copyright (C) 1995-2006 Index Data ApS @@ -15,9 +15,9 @@ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Zebra; see the file LICENSE.zebra. If not, write to the -Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA -02111-1307, USA. +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ #include @@ -140,6 +140,7 @@ ZebraHandle zebra_open(ZebraService zs, Res res) zh->shadow_enable = 1; zh->m_staticrank = 0; + zh->m_segment_indexing = 0; default_encoding = res_get_def(zh->session_res, "encoding", "ISO-8859-1"); @@ -767,6 +768,15 @@ static void zebra_select_register (ZebraHandle zh, const char *new_reg) if (res_get_int(zh->res, "staticrank", &zh->m_staticrank) == ZEBRA_OK) yaz_log(YLOG_LOG, "static rank set and is %d", zh->m_staticrank); } + if (zh->res) + { + if (res_get_int(zh->res, "segment", &zh->m_segment_indexing) == + ZEBRA_OK) + { + yaz_log(YLOG_DEBUG, "segment indexing set and is %d", + zh->m_segment_indexing); + } + } } void map_basenames_func (void *vp, const char *name, const char *value) @@ -1167,10 +1177,10 @@ ZEBRA_RES zebra_scan(ZebraHandle zh, ODR stream, Z_AttributesPlusTerm *zapt, return ZEBRA_FAIL; } } - res = rpn_scan (zh, stream, zapt, attributeset, - zh->num_basenames, zh->basenames, position, - num_entries, entries, is_partial, limit_rset, 0); - zebra_end_read (zh); + res = rpn_scan(zh, stream, zapt, attributeset, + zh->num_basenames, zh->basenames, position, + num_entries, entries, is_partial, limit_rset); + zebra_end_read(zh); return res; } @@ -1475,12 +1485,20 @@ ZEBRA_RES zebra_drop_database(ZebraHandle zh, const char *db) if (zh->reg->isamb) { int db_ord; - zebraExplain_curDatabase (zh->reg->zei, db); - db_ord = zebraExplain_get_database_ord(zh->reg->zei); - dict_delete_subtree_ord(zh->reg->matchDict, db_ord, - 0 /* handle */, 0 /* func */); - zebraExplain_trav_ord(zh->reg->zei, zh, delete_SU_handle); - zebraExplain_removeDatabase(zh->reg->zei, zh); + if (zebraExplain_curDatabase (zh->reg->zei, db)) + { + zebra_setError(zh, YAZ_BIB1_DATABASE_DOES_NOT_EXIST, db); + ret = ZEBRA_FAIL; + } + else + { + db_ord = zebraExplain_get_database_ord(zh->reg->zei); + dict_delete_subtree_ord(zh->reg->matchDict, db_ord, + 0 /* handle */, 0 /* func */); + zebraExplain_trav_ord(zh->reg->zei, zh, delete_SU_handle); + zebraExplain_removeDatabase(zh->reg->zei, zh); + zebra_remove_file_match(zh); + } } else { @@ -2009,9 +2027,6 @@ static ZEBRA_RES zebra_commit_ex(ZebraHandle zh, int clean_only) yaz_log (YLOG_DEBUG, "commit start"); bf_commitExec (bfs); -#ifndef WIN32 - sync (); -#endif } seqno++; zebra_set_state (zh, 'o', seqno);