PostgreSQL Source Code: src/backend/access/transam/transam.c Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

21

26

27

28

29

30

31

32

36

37

39

40

41

42

43

44

45

46

47

48

49

50

53{

56

57

58

59

60

63

64

65

66

68 {

74 }

75

76

77

78

80

81

82

83

84

87 {

91 }

92

93 return xidstatus;

94}

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125bool

127{

129

131

132

133

134

136 return true;

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

153 {

155

157 return false;

160 {

161 elog(WARNING, "no pg_subtrans entry for subcommitted XID %u",

162 transactionId);

163 return false;

164 }

166 }

167

168

169

170

171 return false;

172}

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187bool

189{

191

193

194

195

196

198 return true;

199

200

201

202

203

204

205

207 {

209

211 return true;

214 {

215

216 elog(WARNING, "no pg_subtrans entry for subcommitted XID %u",

217 transactionId);

218 return true;

219 }

221 }

222

223

224

225

226 return false;

227}

228

229

230

231

232

233

234

235

236

237

238

239void

241{

245}

246

247

248

249

250

251void

254{

257}

258

259

260

261

262

263

264

265

266

267

268

269void

271{

274}

275

276

277

278

279bool

281{

282

283

284

285

287

289 return (id1 < id2);

290

291 diff = (int32) (id1 - id2);

292 return (diff < 0);

293}

294

295

296

297

298bool

300{

302

304 return (id1 <= id2);

305

306 diff = (int32) (id1 - id2);

307 return (diff <= 0);

308}

309

310

311

312

313bool

315{

317

319 return (id1 > id2);

320

321 diff = (int32) (id1 - id2);

322 return (diff > 0);

323}

324

325

326

327

328bool

330{

332

334 return (id1 >= id2);

335

336 diff = (int32) (id1 - id2);

337 return (diff >= 0);

338}

339

340

341

342

343

347{

349

350

351

352

353

354

355

356

357 result = mainxid;

358 while (--nxids >= 0)

359 {

361 result = xids[nxids];

362 }

363 return result;

364}

365

366

367

368

369

370

371

372

373

374

375

376

377

378

379

380

383{

385

386

387

388

389

390

391

394

395

398

399

400

401

403

404 return result;

405}

XidStatus TransactionIdGetStatus(TransactionId xid, XLogRecPtr *lsn)

void TransactionIdSetTreeStatus(TransactionId xid, int nsubxids, TransactionId *subxids, XidStatus status, XLogRecPtr lsn)

#define TRANSACTION_STATUS_IN_PROGRESS

#define TRANSACTION_STATUS_ABORTED

#define TRANSACTION_STATUS_SUB_COMMITTED

#define TRANSACTION_STATUS_COMMITTED

TransactionId TransactionXmin

TransactionId SubTransGetParent(TransactionId xid)

void TransactionIdAsyncCommitTree(TransactionId xid, int nxids, TransactionId *xids, XLogRecPtr lsn)

static TransactionId cachedFetchXid

static XidStatus TransactionLogFetch(TransactionId transactionId)

TransactionId TransactionIdLatest(TransactionId mainxid, int nxids, const TransactionId *xids)

bool TransactionIdDidCommit(TransactionId transactionId)

void TransactionIdCommitTree(TransactionId xid, int nxids, TransactionId *xids)

void TransactionIdAbortTree(TransactionId xid, int nxids, TransactionId *xids)

bool TransactionIdPrecedes(TransactionId id1, TransactionId id2)

bool TransactionIdPrecedesOrEquals(TransactionId id1, TransactionId id2)

bool TransactionIdDidAbort(TransactionId transactionId)

bool TransactionIdFollows(TransactionId id1, TransactionId id2)

XLogRecPtr TransactionIdGetCommitLSN(TransactionId xid)

static XLogRecPtr cachedCommitLSN

static XidStatus cachedFetchXidStatus

bool TransactionIdFollowsOrEquals(TransactionId id1, TransactionId id2)

#define FrozenTransactionId

#define InvalidTransactionId

#define TransactionIdEquals(id1, id2)

#define BootstrapTransactionId

#define TransactionIdIsValid(xid)

#define TransactionIdIsNormal(xid)

#define InvalidXLogRecPtr