1 /* $Id: safari1.c,v 1.13 2006-08-14 10:40:22 adam Exp $
2 Copyright (C) 1995-2006
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 this program; if not, write to the Free Software
19 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
23 /* safari1 - insert a few Safari records */
29 "1234\n" /* ID first record */
30 /* chunk owner seq idx term */
31 "00024338 125060 1 any the\n"
32 "00024338 125060 2 any art\n"
33 "00024338 125060 3 any mand\n"
35 "5678\n" /* other record - same owner id */
36 "00024339 125060 1 any den\n"
37 "00024339 125060 2 any gamle\n"
38 "00024339 125060 3 any mand\n"
40 "5678\n" /* same record chunk id as before .. */
41 "00024339 125060 1 any the\n"
42 "00024339 125060 2 any gamle\n"
43 "00024339 125060 3 any mand\n"
45 "1000\n" /* separate record */
46 "00024339 125061 1 any the\n"
47 "00024339 125061 2 any gamle\n"
48 "00024339 125061 3 any mand\n"
50 "1001\n" /* separate record */
51 "00024340 125062 1 any the\n"
52 "00024340 125062 1 any the\n" /* DUP KEY, bug #432 */
53 "00024340 125062 2 any old\n"
54 "00024340 125062 3 any mand\n"
56 "1002\n" /* segment testing record */
57 "00024341 125062 1 title a\n"
58 "00024341 125062 2 title b\n"
60 "00024341 125062 1024 title b\n"
61 "00024341 125062 1025 title c\n"
62 "00024341 125062 1026 title d\n"
63 "00024341 125062 1027 title e\n"
64 "00024341 125062 1028 title f\n"
66 "00024341 125062 2048 title g\n"
67 "00024341 125062 2049 title c\n"
73 static void tst(int argc, char **argv)
77 ZebraService zs = tl_start_up("safari.cfg", argc, argv);
79 ZebraHandle zh = zebra_open(zs, 0);
81 YAZ_CHECK(tl_init_data(zh, myrec));
83 YAZ_CHECK(tl_query(zh, "@attr 4=3 @attr 1=any the", 3));
84 YAZ_CHECK(tl_query(zh, "@attr 4=3 @attr 1=any @and the art", 1));
85 YAZ_CHECK(tl_query(zh, "@attr 4=3 @attr 1=any @and den gamle", 0));
86 YAZ_CHECK(tl_query(zh, "@attr 4=3 @attr 1=any @and the gamle", 1));
87 YAZ_CHECK(tl_query(zh, "@attr 4=3 @attr 1=any @and the of", 0));
89 /* verify that we get these records exactly */
93 YAZ_CHECK(tl_meta_query(zh, "@attr 4=3 @attr 1=any mand", 3, ids));
98 zebra_set_limit(zh, 0, limits);
100 YAZ_CHECK(tl_meta_query(zh, "@attr 4=3 @attr 1=any mand", 1, ids));
102 /* limit to 125060, 125061 */
106 zebra_set_limit(zh, 0, limits);
109 YAZ_CHECK(tl_meta_query(zh, "@attr 4=3 @attr 1=any mand", 2, ids));
111 /* all except 125062 */
114 zebra_set_limit(zh, 1, limits);
118 YAZ_CHECK(tl_meta_query(zh, "@attr 4=3 @attr 1=any mand", 2, ids));
121 zebra_set_limit(zh, 1, 0);
122 YAZ_CHECK(tl_query(zh, "@attr 4=3 @attr 1=any mand", 3));
125 YAZ_CHECK(tl_query(zh, "@attr 4=3 @attr 1=title a", 1));
126 YAZ_CHECK(tl_query(zh, "@attr 4=3 @attr 1=title b", 1));
127 YAZ_CHECK(tl_query(zh, "@attr 4=3 @attr 1=title c", 1));
129 YAZ_CHECK(tl_query(zh, "@attr 4=3 @attr 1=title @and a b", 1));
130 YAZ_CHECK(tl_query(zh, "@attr 4=3 @attr 1=title @and a c", 1));
132 YAZ_CHECK(tl_query(zh, "@attr 4=3 @attr 1=title @and c d", 1));
133 YAZ_CHECK(tl_query(zh, "@attr 4=3 @attr 1=title @and b f", 1));
134 YAZ_CHECK(tl_query(zh, "@attr 4=3 @attr 1=title @and f g", 0));
135 YAZ_CHECK(tl_query(zh, "@attr 4=3 @attr 1=title @and g f", 0));
136 YAZ_CHECK(tl_query(zh, "@attr 4=3 @attr 1=title @and d g", 0));
137 YAZ_CHECK(tl_query(zh, "@attr 4=3 @attr 1=title @and g c", 0));
138 YAZ_CHECK(tl_query(zh, "@attr 4=3 @attr 1=title @and c g", 0));
139 YAZ_CHECK(tl_query(zh, "@attr 4=3 @attr 1=title @and c c", 1));
141 YAZ_CHECK(tl_close_down(zh, zs));
148 * indent-tabs-mode: nil
150 * vim: shiftwidth=4 tabstop=8 expandtab