1 /* $Id: sort1.c,v 1.4 2005-05-04 10:50:09 adam Exp $
2 Copyright (C) 1995-2005
5 This file is part of the Zebra server.
7 Zebra is free software; you can redistribute it and/or modify it under
8 the terms of the GNU General Public License as published by the Free
9 Software Foundation; either version 2, or (at your option) any later
12 Zebra is distributed in the hope that it will be useful, but WITHOUT ANY
13 WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
17 You should have received a copy of the GNU General Public License
18 along with Zebra; see the file LICENSE.zebra. If not, write to the
19 Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
24 #include "../api/testlib.h"
26 static void sort(ZebraHandle zh, const char *query, zint hits, zint *exp)
28 ZebraMetaRecord *recs;
33 do_query(__LINE__, zh, query, hits);
35 recs = zebra_meta_records_create_range (zh, "rsetname", 1, 4);
38 fprintf(stderr, "recs==0\n");
41 for (i = 0; i<hits; i++)
42 if (recs[i].sysno != exp[i])
46 printf("Sequence not in right order for query\n%s\ngot exp\n",
48 for (i = 0; i<hits; i++)
49 printf(" " ZINT_FORMAT " " ZINT_FORMAT "\n",
50 recs[i].sysno, exp[i]);
52 zebra_meta_records_destroy (zh, recs, 4);
58 int main(int argc, char **argv)
60 ZebraService zs = start_up(0, argc, argv);
61 ZebraHandle zh = zebra_open(zs);
66 zebra_select_database(zh, "Default");
70 zebra_begin_trans(zh, 1);
71 for (i = 1; i <= 4; i++)
73 sprintf(path, "%.200s/rec%d.xml", get_srcdir(), i);
74 zebra_repository_update(zh, path);
83 sort(zh, "@or computer @attr 7=1 @attr 1=30 0", 4, ids);
89 sort(zh, "@or computer @attr 7=1 @attr 1=1021 0", 4, ids);
95 sort(zh, "@or computer @attr 7=1 @attr 1=1021 @attr 4=109 0", 4, ids);
97 return close_down(zh, zs, 0);