@@ -204,6 +204,7 @@ nextval (struct varlena * seqin)
204
204
205
205
/* open and WIntentLock sequence */
206
206
elm = init_sequence ("nextval" ,seqname );
207
+ pfree (seqname );
207
208
208
209
if (elm -> last != elm -> cached )/* some numbers were cached */
209
210
{
@@ -237,7 +238,7 @@ nextval (struct varlena * seqin)
237
238
break ;/* stop caching */
238
239
if (seq -> is_cycled != 't' )
239
240
elog (WARN ,"%s.nextval: got MAXVALUE (%d)" ,
240
- seqname ,maxv );
241
+ elm -> name ,maxv );
241
242
next = minv ;
242
243
}
243
244
else
@@ -252,7 +253,7 @@ nextval (struct varlena * seqin)
252
253
break ;/* stop caching */
253
254
if (seq -> is_cycled != 't' )
254
255
elog (WARN ,"%s.nextval: got MINVALUE (%d)" ,
255
- seqname ,minv );
256
+ elm -> name ,minv );
256
257
next = maxv ;
257
258
}
258
259
else
@@ -287,34 +288,19 @@ currval (struct varlena * seqin)
287
288
{
288
289
char * seqname = textout (seqin );
289
290
SeqTable elm ;
290
- Buffer buf ;
291
- SequenceTupleForm seq ;
292
- ItemPointerData iptr ;
293
291
int4 result ;
294
292
295
293
/* open and WIntentLock sequence */
296
294
elm = init_sequence ("currval" ,seqname );
295
+ pfree (seqname );
297
296
298
- if (elm -> last != elm -> cached )/*some numbers werecached */
297
+ if (elm -> increment == 0 )/*nextval/read_info werenot called */
299
298
{
300
- return ( elm -> last ); /* return last returned by nextval */
299
+ elog ( WARN , "%s.currval is not yet defined in this session" , elm -> name );
301
300
}
302
301
303
- seq = read_info ("currval" ,elm ,& buf );
304
-
305
- if (seq -> is_called != 't' )
306
- {
307
- elog (WARN ,"%s.currval: yet undefined (%s.nextval never called)" ,
308
- seqname ,seqname );
309
- }
310
- result = seq -> last_value ;
302
+ result = elm -> last ;
311
303
312
- if (ReleaseBuffer (buf )== STATUS_ERROR )
313
- elog (WARN ,"%s.currval: ReleaseBuffer failed" ,seqname );
314
-
315
- ItemPointerSet (& iptr ,0 ,FirstOffsetNumber );
316
- RelationUnsetSingleWLockPage (elm -> rel ,& iptr );
317
-
318
304
return (result );
319
305
320
306
}