@@ -99,7 +99,7 @@ smergebuild(Relation heap, Relation index, IndexInfo *indexInfo)
99
99
Page metapage ;
100
100
101
101
btreeIndStmt = create_btree_index_stmt (heap , indexInfo -> ii_NumIndexAttrs , indexInfo -> ii_KeyAttrNumbers , NULL );
102
- addr = DefineIndex (RelationGetRelid (heap ),
102
+ addr = DefineIndex (RelationGetRelid (heap ),
103
103
btreeIndStmt ,
104
104
InvalidOid ,
105
105
false,
@@ -119,10 +119,10 @@ smergebuild(Relation heap, Relation index, IndexInfo *indexInfo)
119
119
120
120
/* Construct metapage. */
121
121
metapage = (Page ) palloc (BLCKSZ );
122
-
122
+
123
123
_sm_init_metadata (metapage , bt_index , indexInfo );
124
124
_sm_writepage (index , metapage , SMERGE_METAPAGE );
125
-
125
+
126
126
127
127
result = (IndexBuildResult * ) palloc (sizeof (IndexBuildResult ));
128
128
@@ -145,7 +145,7 @@ smergebuildempty(Relation index)
145
145
metapage = (Page ) palloc (BLCKSZ );
146
146
147
147
PageInit (metapage , BLCKSZ , 0 /*for now, need to add a metadata size struct*/ );
148
-
148
+
149
149
PageSetChecksumInplace (metapage , SMERGE_METAPAGE );
150
150
smgrwrite (index -> rd_smgr , INIT_FORKNUM , SMERGE_METAPAGE ,
151
151
(char * ) metapage , true);
@@ -187,7 +187,7 @@ smergeinsert(Relation rel, Datum *values, bool *isnull,
187
187
// insert into sub btrees only if there any btrees
188
188
btreeRel = _get_curr_btree (sm_metadata );
189
189
190
- b = btinsert (btreeRel , values , isnull ,
190
+ b = btinsert (btreeRel , values , isnull ,
191
191
ht_ctid , heapRel , checkUnique );
192
192
193
193
printf ("btinsert returns %d\n" , b );
@@ -202,10 +202,10 @@ smergeinsert(Relation rel, Datum *values, bool *isnull,
202
202
sm_metadata -> currTuples = 0 ;
203
203
if (addr .objectId != InvalidOid )
204
204
sm_metadata -> curr = addr .objectId ;
205
- else
205
+ else
206
206
printf ("Error in creating a sub-btree\n" );
207
207
208
- // call merge func here
208
+ sm_flush ( heapRel , sm_metadata );
209
209
}
210
210
211
211
_sm_write_metadata (rel , sm_metadata );
@@ -240,11 +240,11 @@ smergegettuple(IndexScanDesc scan, ScanDirection dir)
240
240
241
241
scan -> xs_itup = bt_scan -> xs_itup ;
242
242
scan -> xs_itupdesc = bt_scan -> xs_itupdesc ;
243
-
243
+
244
244
while (!res ) {
245
245
btendscan (so -> bt_isd );
246
246
pfree (so -> bt_isd );
247
-
247
+
248
248
index_close (so -> bt_rel , RowExclusiveLock );
249
249
pfree (so -> bt_rel );
250
250
@@ -277,7 +277,7 @@ smergegettuple(IndexScanDesc scan, ScanDirection dir)
277
277
bt_scan -> xs_continue_hot = false;
278
278
279
279
bt_scan -> kill_prior_tuple = false; /* for safety */
280
-
280
+
281
281
282
282
btrescan (so -> bt_isd , scan -> keyData , scan -> numberOfKeys , scan -> orderByData , scan -> numberOfOrderBys );
283
283
@@ -289,12 +289,12 @@ smergegettuple(IndexScanDesc scan, ScanDirection dir)
289
289
scan -> xs_ctup = bt_scan -> xs_ctup ;
290
290
291
291
scan -> xs_itup = bt_scan -> xs_itup ;
292
- scan -> xs_itupdesc = bt_scan -> xs_itupdesc ;
292
+ scan -> xs_itupdesc = bt_scan -> xs_itupdesc ;
293
293
}
294
294
else {
295
295
break ;
296
296
}
297
- }
297
+ }
298
298
299
299
/* If we're out of index entries, we're done */
300
300
// if (!res)
@@ -326,7 +326,7 @@ smergebeginscan(Relation rel, int nkeys, int norderbys)
326
326
SmScanOpaque so ;
327
327
328
328
scan = RelationGetIndexScan (rel , nkeys , norderbys );
329
-
329
+
330
330
// smerge metadata and stuff needed for successful scan
331
331
so = palloc (sizeof (SmScanOpaqueData ));
332
332
so -> metadata = _sm_getmetadata (rel );
350
350
smergerescan (IndexScanDesc scan , ScanKey scankey , int nscankeys ,
351
351
ScanKey orderbys , int norderbys )
352
352
{
353
-
353
+
354
354
IndexScanDesc bt_scan ;
355
355
SmScanOpaque so = (SmScanOpaque ) scan -> opaque ;
356
356
@@ -387,7 +387,7 @@ smergeendscan(IndexScanDesc scan)
387
387
SmScanOpaque so = (SmScanOpaque ) scan -> opaque ;
388
388
389
389
/* Release metadata */
390
- if (so -> metadata != NULL )
390
+ if (so -> metadata != NULL )
391
391
pfree (so -> metadata );
392
392
393
393
pfree (so );
0 commit comments