-/* $Id: extract.c,v 1.136 2003-02-26 09:13:51 pop Exp $
- Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002
+/* $Id: extract.c,v 1.143 2003-03-13 04:25:17 pop Exp $
+ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003
zh->reg->keys.prevAttrSet = -1;
zh->reg->keys.prevSeqNo = 0;
zh->reg->sortKeys.buf_used = 0;
zh->reg->keys.prevAttrSet = -1;
zh->reg->keys.prevSeqNo = 0;
zh->reg->sortKeys.buf_used = 0;
+ zh->reg->keys.buf_used = 0;
+ zh->reg->keys.prevAttrUse = -1;
+ zh->reg->keys.prevAttrSet = -1;
+ zh->reg->keys.prevSeqNo = 0;
+ zh->reg->sortKeys.buf_used = 0;
+
- logf (LOG_DEBUG, "Record type explicitly specified: %s", recordType);
- recType = recType_byName (zh->reg->recTypes, recordType, subType,
- &clientData);
+ logf (LOG_DEBUG, "Record type explicitly specified: %s", recordType);
+ recType = recType_byName (zh->reg->recTypes, recordType, subType,
+ &clientData);
- if (!(rGroup->recordType)) {
- logf (LOG_WARN, "No such record type defined");
- return 0;
- }
- logf (LOG_DEBUG, "Get record type from rgroup: %s",rGroup->recordType);
- recType = recType_byName (zh->reg->recTypes, rGroup->recordType, subType,
- &clientData);
- recordType = rGroup->recordType;
+ if (!(rGroup->recordType)) {
+ logf (LOG_WARN, "No such record type defined");
+ return 0;
+ }
+ logf (LOG_DEBUG, "Get record type from rgroup: %s",rGroup->recordType);
+ recType = recType_byName (zh->reg->recTypes, rGroup->recordType, subType,
+ &clientData);
+ recordType = rGroup->recordType;
-
- zh->reg->keys.buf_used = 0;
- zh->reg->keys.prevAttrUse = -1;
- zh->reg->keys.prevAttrSet = -1;
- zh->reg->keys.prevSeqNo = 0;
- zh->reg->sortKeys.buf_used = 0;
- zh->reg->sortKeys.buf_max = 0;
- zh->reg->sortKeys.buf = 0;
-
extractCtrl.subType = subType;
extractCtrl.init = extract_init;
extractCtrl.tokenAdd = extract_token_add;
extractCtrl.subType = subType;
extractCtrl.init = extract_init;
extractCtrl.tokenAdd = extract_token_add;
- if (! *sysno) {
- char *rinfo;
- if (strlen(match_criteria) > 0) {
- matchStr = (char *)match_criteria;
- } else {
- if (rGroup->recordId && *rGroup->recordId) {
- matchStr = fileMatchStr (zh, &zh->reg->keys, rGroup, fname,
- rGroup->recordId);
- }
- }
- if (matchStr) {
- rinfo = dict_lookup (zh->reg->matchDict, matchStr);
- if (rinfo)
- memcpy (sysno, rinfo+1, sizeof(*sysno));
- } else {
- logf (LOG_WARN, "Bad match criteria (recordID)");
- return 0;
- }
-
+ if (! *sysno && match_criteria) {
+ char *rinfo;
+ if (*match_criteria) {
+ matchStr = (char *)match_criteria;
+ } else {
+ if (rGroup->recordId && *rGroup->recordId) {
+ matchStr = fileMatchStr (zh, &zh->reg->keys, rGroup, fname,
+ rGroup->recordId);
+ }
+ }
+ if (matchStr) {
+ rinfo = dict_lookup (zh->reg->matchDict, matchStr);
+ if (rinfo)
+ memcpy (sysno, rinfo+1, sizeof(*sysno));
+ } else {
+ logf (LOG_WARN, "Bad match criteria (recordID)");
+ return 0;
+ }
extract_flushRecordKeys (zh, *sysno, 1, &zh->reg->keys);
zh->records_inserted++;
extract_flushRecordKeys (zh, *sysno, 1, &zh->reg->keys);
zh->records_inserted++;
rec = rec_get (zh->reg->records, *sysno);
assert (rec);
recordAttr = rec_init_attr (zh->reg->zei, rec);
rec = rec_get (zh->reg->records, *sysno);
assert (rec);
recordAttr = rec_init_attr (zh->reg->zei, rec);
- if (recordAttr->runNumber ==
- zebraExplain_runNumberIncrement (zh->reg->zei, 0))
- {
- logf (LOG_LOG, "skipped %s %s %ld", recordType,
- fname, (long) recordOffset);
- extract_flushSortKeys (zh, *sysno, -1, &zh->reg->sortKeys);
- rec_rm (&rec);
- logRecord(zh);
- return 1;
+ if (!force_update) {
+ if (recordAttr->runNumber ==
+ zebraExplain_runNumberIncrement (zh->reg->zei, 0))
+ {
+ logf (LOG_LOG, "skipped %s %s %ld", recordType,
+ fname, (long) recordOffset);
+ extract_flushSortKeys (zh, *sysno, -1, &zh->reg->sortKeys);
+ rec_rm (&rec);
+ logRecord(zh);
+ return 1;
+ }