* Sebastian Hammer, Adam Dickmeiss
*
* $Log: extract.c,v $
- * Revision 1.41 1995-12-06 16:06:42 adam
+ * Revision 1.46 1995-12-15 14:57:16 adam
+ * Bug fix.
+ *
+ * Revision 1.45 1995/12/15 12:37:41 adam
+ * In addRecordKeyAny: Writes key only when attrSet != -1.
+ *
+ * Revision 1.44 1995/12/12 16:00:54 adam
+ * System call sync(2) used after update/commit.
+ * Locking (based on fcntl) uses F_EXLCK and F_SHLCK instead of F_WRLCK
+ * and F_RDLCK.
+ *
+ * Revision 1.43 1995/12/11 09:12:46 adam
+ * The rec_get function returns NULL if record doesn't exist - will
+ * happen in the server if the result set records have been deleted since
+ * the creation of the set (i.e. the search).
+ * The server saves a result temporarily if it is 'volatile', i.e. the
+ * set is register dependent.
+ *
+ * Revision 1.42 1995/12/07 17:38:46 adam
+ * Work locking mechanisms for concurrent updates/commit.
+ *
+ * Revision 1.41 1995/12/06 16:06:42 adam
* Better diagnostics. Work on 'real' dictionary deletion.
*
* Revision 1.40 1995/12/05 16:57:40 adam
static int records_updated = 0;
static int records_deleted = 0;
-#define MATCH_DICT "match"
-
void key_open (int mem)
{
if (mem < 50000)
key_buf_used = 0;
key_file_no = 0;
- if (!(matchDict = dict_open (MATCH_DICT, 20, 1)))
+ if (!(matchDict = dict_open (GMATCH_DICT, 50, 1)))
{
- logf (LOG_FATAL, "dict_open fail of %s", MATCH_DICT);
+ logf (LOG_FATAL, "dict_open fail of %s", GMATCH_DICT);
exit (1);
}
assert (!records);
w.attrUse = 1016;
addRecordKey (&w);
}
- addRecordKey (p);
+ if (p->attrSet != -1)
+ addRecordKey (p);
}
struct recKeys delkeys;
rec = rec_get (records, *sysno);
-
+ assert (rec);
delkeys.buf_used = rec->size[recInfo_delKeys];
delkeys.buf = rec->info[recInfo_delKeys];
flushRecordKeys (*sysno, 0, &delkeys, rec->info[recInfo_databaseName]);
}
else
{
- SYSNO sysnoz = 0;
logf (LOG_LOG, "delete %s %s", rGroup->recordType, fname);
records_deleted++;
if (matchStr)
- dict_insert (matchDict, matchStr, sizeof(sysnoz), &sysnoz);
+ dict_delete (matchDict, matchStr);
rec_del (records, &rec);
}
return 1;