GetNextValGTM(char *seqname) #endif { GTM_Sequence ret = -1; GTM_SequenceKeyData seqkey; #ifdef XCP char *coordName = IS_PGXC_COORDINATOR ? PGXCNodeName : MyCoordName; int coordPid = IS_PGXC_COORDINATOR ? MyProcPid : MyCoordPid; int status; #endif CheckConnection(); seqkey.gsk_keylen = strlen(seqname) + 1; seqkey.gsk_key = seqname; #ifdef XCP if (conn) status = get_next(conn, &seqkey, coordName, coordPid, range, &ret, rangemax); else status = GTM_RESULT_COMM_ERROR; /* retry once */ if (status == GTM_RESULT_COMM_ERROR) { CloseGTM(); InitGTM(); if (conn) status = get_next(conn, &seqkey, coordName, coordPid, range, &ret, rangemax); } if (status != GTM_RESULT_OK) ereport(ERROR, (errcode(ERRCODE_INTERNAL_ERROR), errmsg("%s", GTMPQerrorMessage(conn)))); #else if (conn) ret = get_next(conn, &seqkey); if (ret < 0) { CloseGTM(); InitGTM(); } #endif return ret; }
/* * Get the next sequence value */ GTM_Sequence GetNextValGTM(char *seqname) { GTM_Sequence ret = -1; GTM_SequenceKeyData seqkey; int status; CheckConnection(); seqkey.gsk_keylen = strlen(seqname) + 1; seqkey.gsk_key = seqname; if (conn) status = get_next(conn, &seqkey, &ret); if (status != GTM_RESULT_OK) { CloseGTM(); InitGTM(); ereport(ERROR, (errcode(ERRCODE_INTERNAL_ERROR), errmsg("%s", GTMPQerrorMessage(conn)))); } return ret; }