Mailing List Archive

r3737 - in trunk: c_src/KinoSearch c_src/KinoSearch/Index perl/t
Author: creamyg
Date: 2008-08-19 12:53:41 -0700 (Tue, 19 Aug 2008)
New Revision: 3737

Modified:
trunk/c_src/KinoSearch/Index/LexReader.c
trunk/c_src/KinoSearch/Index/SegInfo.c
trunk/c_src/KinoSearch/Schema.c
trunk/perl/t/023-stepper.t
trunk/perl/t/113-cf_reader.t
trunk/perl/t/216-schema.t
Log:
Change field numbers to start at 1 instead of 0. This is a
backwards-incompatible index format change.


Modified: trunk/c_src/KinoSearch/Index/LexReader.c
===================================================================
--- trunk/c_src/KinoSearch/Index/LexReader.c 2008-08-19 18:34:31 UTC (rev 3736)
+++ trunk/c_src/KinoSearch/Index/LexReader.c 2008-08-19 19:53:41 UTC (rev 3737)
@@ -33,9 +33,9 @@
self->skip_interval = Schema_Get_Skip_Interval(schema);

/* Build an array of SegLexicon objects. */
- lexicons = CALLOCATE(self->num_fields, SegLexicon*);
+ lexicons = CALLOCATE(self->num_fields + 1, SegLexicon*);
self->lexicons = lexicons;
- for (i = 0; i < self->num_fields; i++) {
+ for (i = 1; i <= self->num_fields; i++) {
const CharBuf *field = SegInfo_Field_Name(seg_info, i);
SegLexCache *lex_cache;

@@ -58,7 +58,7 @@
SegLexicon **lexicons = self->lexicons;

/* Release each lexicon and NULL out array. */
- for (i = 0; i < self->num_fields; i++) {
+ for (i = 1; i <= self->num_fields; i++) {
REFCOUNT_DEC(lexicons[i]);
}
free(self->lexicons);

Modified: trunk/c_src/KinoSearch/Index/SegInfo.c
===================================================================
--- trunk/c_src/KinoSearch/Index/SegInfo.c 2008-08-19 18:34:31 UTC (rev 3736)
+++ trunk/c_src/KinoSearch/Index/SegInfo.c 2008-08-19 19:53:41 UTC (rev 3737)
@@ -59,6 +59,9 @@
self->by_num = VA_new(fspecs->size);
self->by_name = Hash_new(fspecs->size);

+ /* Start field numbers at 1, not 0. */
+ VA_Push(self->by_num, (Obj*)&EMPTY);
+
/* Add all fields in the fspecs. */
Hash_Iter_Init(fspecs);
while (Hash_Iter_Next(fspecs, &field_name, &ignore)) {

Modified: trunk/c_src/KinoSearch/Schema.c
===================================================================
--- trunk/c_src/KinoSearch/Schema.c 2008-08-19 18:34:31 UTC (rev 3736)
+++ trunk/c_src/KinoSearch/Schema.c 2008-08-19 19:53:41 UTC (rev 3737)
@@ -27,6 +27,9 @@
self->by_name = Hash_new(0);
self->by_num = VA_new(0);

+ /* Start field numbers at 1, not 0. */
+ VA_Push(self->by_num, (Obj*)&EMPTY);
+
/* Assign. */
self->index_interval = Schema_Index_Interval(self);
self->skip_interval = Schema_Skip_Interval(self);

Modified: trunk/perl/t/023-stepper.t
===================================================================
--- trunk/perl/t/023-stepper.t 2008-08-19 18:34:31 UTC (rev 3736)
+++ trunk/perl/t/023-stepper.t 2008-08-19 19:53:41 UTC (rev 3737)
@@ -11,7 +11,7 @@

my $folder = $invindex->get_folder;
my $schema = $invindex->get_schema;
-my $instream = $folder->open_instream('seg_1-0.lex');
+my $instream = $folder->open_instream('seg_1-1.lex');
my $outstream = $folder->open_outstream('dump');

# Use LexStepper to check Stepper_Dump().

Modified: trunk/perl/t/113-cf_reader.t
===================================================================
--- trunk/perl/t/113-cf_reader.t 2008-08-19 18:34:31 UTC (rev 3736)
+++ trunk/perl/t/113-cf_reader.t 2008-08-19 19:53:41 UTC (rev 3737)
@@ -19,20 +19,20 @@
seg_name => 'seg_1',
);

-my $instream = $cf_reader->open_instream('seg_1-0.lex');
+my $instream = $cf_reader->open_instream('seg_1-1.lex');
isa_ok( $instream, 'KinoSearch::Store::InStream' );

my $lex_bytecount = $instream->length;
my $lex_content;
$instream->read_bytes( $lex_content, $lex_bytecount );
-my $slurped = $cf_reader->slurp_file('seg_1-0.lex');
+my $slurped = $cf_reader->slurp_file('seg_1-1.lex');
is( $slurped, $lex_content, "slurp_file gets the right bytes" );

-my $alt_lex_content = $invindex->get_folder->slurp_file('seg_1-0.lex');
+my $alt_lex_content = $invindex->get_folder->slurp_file('seg_1-1.lex');
is( $alt_lex_content, $lex_content, "access file content via folder" );

my @files = map {"seg_1.$_"} qw( ds dsx tv tvx skip );
-push @files, map {"seg_1-0.$_"} qw( p lex lexx );
+push @files, map {"seg_1-1.$_"} qw( p lex lexx );
@files = sort @files;

my $json = $invindex->get_folder->slurp_file('seg_1.cfmeta');

Modified: trunk/perl/t/216-schema.t
===================================================================
--- trunk/perl/t/216-schema.t 2008-08-19 18:34:31 UTC (rev 3736)
+++ trunk/perl/t/216-schema.t 2008-08-19 19:53:41 UTC (rev 3737)
@@ -45,8 +45,8 @@
$schema->add_field( field => 'new_field', spec => 'text' );
my $got = grep { $_ eq 'new_field' } @{ $schema->all_fields };
ok( $got, 'add_field works' );
-is( $schema->field_num('content'), 0, "field_num" );
-is( $schema->field_num('new_field'), 1, "new field_num" );
+is( $schema->field_num('content'), 1, "field_num" );
+is( $schema->field_num('new_field'), 2, "new field_num" );

$schema = TestSchema->new;
eval { $schema->add_field( field => 'kinobogus', spec => 'text' ) };


_______________________________________________
kinosearch-commits mailing list
kinosearch-commits@rectangular.com
http://www.rectangular.com/mailman/listinfo/kinosearch-commits