@@ -520,14 +520,6 @@ rum_extract_tsquery(PG_FUNCTION_ARGS)
520
520
PG_RETURN_POINTER (entries );
521
521
}
522
522
523
- typedef struct RestoreWordEntry
524
- {
525
- char * word ;
526
- char * posptr ;
527
- int32 npos ;
528
- int32 wordlen ;
529
- } RestoreWordEntry ;
530
-
531
523
/*
532
524
* reconstruct partial tsvector from set of index entries
533
525
*/
@@ -540,15 +532,21 @@ rum_reconstruct_tsvector(bool *check, TSQuery query, int *map_item_operand,
540
532
int i = 0 ;
541
533
QueryItem * item = GETQUERY (query );
542
534
char * operandData = GETOPERAND (query );
543
- RestoreWordEntry * rwe ;
535
+ struct
536
+ {
537
+ char * word ;
538
+ char * posptr ;
539
+ int32 npos ;
540
+ int32 wordlen ;
541
+ } * restoredWordEntry ;
544
542
int len = 0 , totallen ;
545
543
bool * visited ;
546
544
WordEntry * ptr ;
547
545
char * str ;
548
546
int stroff ;
549
547
550
548
551
- rwe = palloc (sizeof (* rwe ) * query -> size );
549
+ restoredWordEntry = palloc (sizeof (* restoredWordEntry ) * query -> size );
552
550
visited = palloc0 (sizeof (* visited ) * query -> size );
553
551
554
552
/*
@@ -570,26 +568,26 @@ rum_reconstruct_tsvector(bool *check, TSQuery query, int *map_item_operand,
570
568
*/
571
569
visited [keyN ] = true;
572
570
573
- rwe [cntwords ].word = operandData + item -> qoperand .distance ;
574
- rwe [cntwords ].wordlen = item -> qoperand .length ;
571
+ restoredWordEntry [cntwords ].word = operandData + item -> qoperand .distance ;
572
+ restoredWordEntry [cntwords ].wordlen = item -> qoperand .length ;
575
573
576
574
len += item -> qoperand .length ;
577
575
578
576
if (addInfoIsNull [keyN ] == false)
579
577
{
580
578
bytea * positions = DatumGetByteaP (addInfo [keyN ]);
581
579
582
- rwe [cntwords ].npos = count_pos (VARDATA_ANY (positions ),
580
+ restoredWordEntry [cntwords ].npos = count_pos (VARDATA_ANY (positions ),
583
581
VARSIZE_ANY_EXHDR (positions ));
584
- rwe [cntwords ].posptr = VARDATA_ANY (positions );
582
+ restoredWordEntry [cntwords ].posptr = VARDATA_ANY (positions );
585
583
586
584
len = SHORTALIGN (len );
587
585
len += sizeof (uint16 ) +
588
- rwe [cntwords ].npos * sizeof (WordEntryPos );
586
+ restoredWordEntry [cntwords ].npos * sizeof (WordEntryPos );
589
587
}
590
588
else
591
589
{
592
- rwe [cntwords ].npos = 0 ;
590
+ restoredWordEntry [cntwords ].npos = 0 ;
593
591
}
594
592
595
593
cntwords ++ ;
@@ -609,12 +607,12 @@ rum_reconstruct_tsvector(bool *check, TSQuery query, int *map_item_operand,
609
607
610
608
for (i = 0 ; i < cntwords ; i ++ )
611
609
{
612
- ptr -> len = rwe [i ].wordlen ;
610
+ ptr -> len = restoredWordEntry [i ].wordlen ;
613
611
ptr -> pos = stroff ;
614
- memcpy (str + stroff , rwe [i ].word , ptr -> len );
612
+ memcpy (str + stroff , restoredWordEntry [i ].word , ptr -> len );
615
613
stroff += ptr -> len ;
616
614
617
- if (rwe [i ].npos )
615
+ if (restoredWordEntry [i ].npos )
618
616
{
619
617
WordEntryPos * wptr ,
620
618
post = 0 ;
@@ -623,15 +621,15 @@ rum_reconstruct_tsvector(bool *check, TSQuery query, int *map_item_operand,
623
621
ptr -> haspos = 1 ;
624
622
625
623
stroff = SHORTALIGN (stroff );
626
- * (uint16 * ) (str + stroff ) = rwe [i ].npos ;
624
+ * (uint16 * ) (str + stroff ) = restoredWordEntry [i ].npos ;
627
625
wptr = POSDATAPTR (tsv , ptr );
628
626
629
- for (j = 0 ; j < rwe [i ].npos ; j ++ )
627
+ for (j = 0 ; j < restoredWordEntry [i ].npos ; j ++ )
630
628
{
631
- rwe [i ].posptr = decompress_pos (rwe [i ].posptr , & post );
629
+ restoredWordEntry [i ].posptr = decompress_pos (restoredWordEntry [i ].posptr , & post );
632
630
wptr [j ] = post ;
633
631
}
634
- stroff += sizeof (uint16 ) + rwe [i ].npos * sizeof (WordEntryPos );
632
+ stroff += sizeof (uint16 ) + restoredWordEntry [i ].npos * sizeof (WordEntryPos );
635
633
}
636
634
else
637
635
{
@@ -641,7 +639,7 @@ rum_reconstruct_tsvector(bool *check, TSQuery query, int *map_item_operand,
641
639
ptr ++ ;
642
640
}
643
641
644
- pfree (rwe );
642
+ pfree (restoredWordEntry );
645
643
pfree (visited );
646
644
647
645
return tsv ;
0 commit comments