1 /* This file is part of Pazpar2.
2 Copyright (C) 2006-2012 Index Data
4 Pazpar2 is free software; you can redistribute it and/or modify it under
5 the terms of the GNU General Public License as published by the Free
6 Software Foundation; either version 2, or (at your option) any later
9 Pazpar2 is distributed in the hope that it will be useful, but WITHOUT ANY
10 WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
22 #include <yaz/yaz-util.h>
29 #include "pazpar2_config.h"
32 union data_types * data_types_assign(NMEM nmem,
33 union data_types ** data1,
34 union data_types data2)
45 *data1 = nmem_malloc(nmem, sizeof(union data_types));
53 struct record * record_create(NMEM nmem, int num_metadata, int num_sortkeys,
54 struct client *client, int position)
56 struct record * record = 0;
61 record = nmem_malloc(nmem, sizeof(struct record));
64 record->client = client;
68 sizeof(struct record_metadata*) * num_metadata);
69 for (i = 0; i < num_metadata; i++)
70 record->metadata[i] = 0;
74 sizeof(union data_types*) * num_sortkeys);
75 for (i = 0; i < num_sortkeys; i++)
76 record->sortkeys[i] = 0;
78 record->position = position;
83 struct record_metadata * record_metadata_create(NMEM nmem)
85 struct record_metadata * rec_md
86 = nmem_malloc(nmem, sizeof(struct record_metadata));
88 rec_md->attributes = 0;
93 int record_compare(struct record *r1, struct record *r2,
94 struct conf_service *service)
97 for (i = 0; i < service->num_metadata; i++)
99 struct conf_metadata *ser_md = &service->metadata[i];
100 enum conf_metadata_type type = ser_md->type;
102 struct record_metadata *m1 = r1->metadata[i];
103 struct record_metadata *m2 = r2->metadata[i];
108 case Metadata_type_generic:
109 if (strcmp(m1->data.text.disp, m2->data.text.disp))
112 case Metadata_type_date:
113 case Metadata_type_year:
114 if (m1->data.number.min != m2->data.number.min ||
115 m1->data.number.max != m2->data.number.max)
131 * c-file-style: "Stroustrup"
132 * indent-tabs-mode: nil
134 * vim: shiftwidth=4 tabstop=8 expandtab