static void log_sequence_tuple(Relation seqrel, HeapTuple tuple,
Buffer buf, Page page);
static void seqrel_update_relam(Oid seqoid, Oid seqamid);
-static Oid get_new_seqam_oid(Oid oldAM, char *accessMethod);
/*
stmt->if_not_exists = seq->if_not_exists;
/* Let AM fill the values[] and nulls[] for the tuple as well. */
- seqamid = get_new_seqam_oid(InvalidOid, seq->accessMethod);
+ if (seq->accessMethod)
+ seqamid = get_seqam_oid(seq->accessMethod, false);
+ else
+ seqamid = LOCAL_SEQAM_OID;
seqam_init(seqamid, InvalidOid, seq->options, seq->amoptions,
value, null);
heap_deform_tuple(tuple, tupDesc, values, nulls);
oldamid = seqrel->rd_rel->relam;
- seqamid = get_new_seqam_oid(seqrel->rd_rel->relam, stmt->accessMethod);
+ if (stmt->accessMethod)
+ seqamid = get_seqam_oid(stmt->accessMethod, false);
+ else
+ seqamid = oldamid;
/*
- * If we are changing sequence AM, we need to alter
- * the sequence relation.
+ * If we are changing sequence AM, we need to alter the sequence relation.
*/
if (seqamid != oldamid)
{
last_used_seq = NULL;
}
-static Oid
-get_new_seqam_oid(Oid oldAM, char *accessMethod)
-{
-
- if (oldAM && accessMethod == NULL)
- return oldAM;
- else if (accessMethod == NULL)
- return LOCAL_SEQAM_OID;
- else
- return get_seqam_oid(accessMethod, false);
-}
-
/*
* Increment sequence while correctly handling overflows and min/max.
*/