projects
/
idzebra-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Optimized resultSetInsert{Rank,Sort}.
[idzebra-moved-to-github.git]
/
index
/
zsets.c
diff --git
a/index/zsets.c
b/index/zsets.c
index
07d4f03
..
d2ebf5f
100644
(file)
--- a/
index/zsets.c
+++ b/
index/zsets.c
@@
-1,10
+1,16
@@
/*
/*
- * Copyright (C) 1994-1999, Index Data
+ * Copyright (C) 1994-2000, Index Data
* All rights reserved.
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: zsets.c,v $
* All rights reserved.
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: zsets.c,v $
- * Revision 1.26 2000-03-20 19:08:36 adam
+ * Revision 1.28 2000-07-07 12:49:20 adam
+ * Optimized resultSetInsert{Rank,Sort}.
+ *
+ * Revision 1.27 2000/04/05 09:49:36 adam
+ * On Unix, zebra/z'mbol uses automake.
+ *
+ * Revision 1.26 2000/03/20 19:08:36 adam
* Added remote record import using Z39.50 extended services and Segment
* Requests.
*
* Added remote record import using Z39.50 extended services and Segment
* Requests.
*
@@
-406,20
+412,23
@@
void resultSetInsertSort (ZebraHandle zh, ZebraSet sset,
break;
}
}
break;
}
}
- j = sort_info->max_entries-1;
+ ++i;
+ j = sort_info->max_entries;
if (i == j)
return;
if (i == j)
return;
- ++i;
+
+ if (sort_info->num_entries == j)
+ --j;
+ else
+ j = (sort_info->num_entries)++;
new_entry = sort_info->entries[j];
while (j != i)
{
sort_info->entries[j] = sort_info->entries[j-1];
--j;
}
new_entry = sort_info->entries[j];
while (j != i)
{
sort_info->entries[j] = sort_info->entries[j-1];
--j;
}
- sort_info->entries[j] = new_entry;
+ sort_info->entries[i] = new_entry;
assert (new_entry);
assert (new_entry);
- if (sort_info->num_entries != sort_info->max_entries)
- (sort_info->num_entries)++;
for (i = 0; i<num_criteria; i++)
memcpy (new_entry->buf[i], this_entry.buf[i], SORT_IDX_ENTRYSIZE);
new_entry->sysno = sysno;
for (i = 0; i<num_criteria; i++)
memcpy (new_entry->buf[i], this_entry.buf[i], SORT_IDX_ENTRYSIZE);
new_entry->sysno = sysno;
@@
-450,20
+459,24
@@
void resultSetInsertRank (ZebraHandle zh, struct zset_sort_info *sort_info,
break;
}
}
break;
}
}
- j = sort_info->max_entries-1;
+ ++i;
+ j = sort_info->max_entries;
if (i == j)
return;
if (i == j)
return;
- ++i;
+
+ if (sort_info->num_entries == j)
+ --j;
+ else
+ j = (sort_info->num_entries)++;
+
new_entry = sort_info->entries[j];
while (j != i)
{
sort_info->entries[j] = sort_info->entries[j-1];
--j;
}
new_entry = sort_info->entries[j];
while (j != i)
{
sort_info->entries[j] = sort_info->entries[j-1];
--j;
}
- sort_info->entries[j] = new_entry;
+ sort_info->entries[i] = new_entry;
assert (new_entry);
assert (new_entry);
- if (sort_info->num_entries != sort_info->max_entries)
- (sort_info->num_entries)++;
new_entry->sysno = sysno;
new_entry->score = score;
}
new_entry->sysno = sysno;
new_entry->score = score;
}
@@
-595,7
+608,6
@@
void resultSetSortSingle (ZebraHandle zh, NMEM nmem,
}
rset_close (rset, rfd);
}
rset_close (rset, rfd);
- zh->errCode = 0;
*sort_status = Z_SortStatus_success;
logf (LOG_DEBUG, "resultSetSortSingle end");
}
*sort_status = Z_SortStatus_success;
logf (LOG_DEBUG, "resultSetSortSingle end");
}