PostgreSQL Source Code: src/include/postgres.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43#ifndef POSTGRES_H

44#define POSTGRES_H

45

46

47

48#include "c.h"

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

70

71

72

73

74

75

76

78{

79#define FIELDNO_NULLABLE_DATUM_DATUM 0

81#define FIELDNO_NULLABLE_DATUM_ISNULL 1

83

85

86#define SIZEOF_DATUM SIZEOF_VOID_P

87

88

89

90

91

92

93

94static inline bool

96{

97 return (X != 0);

98}

99

100

101

102

103

104

105

106static inline Datum

108{

109 return (Datum) (X ? 1 : 0);

110}

111

112

113

114

115

116static inline char

118{

119 return (char) X;

120}

121

122

123

124

125

126static inline Datum

128{

129 return (Datum) X;

130}

131

132

133

134

135

136static inline Datum

138{

139 return (Datum) X;

140}

141

142

143

144

145

146static inline uint8

148{

149 return (uint8) X;

150}

151

152

153

154

155

156static inline Datum

158{

159 return (Datum) X;

160}

161

162

163

164

165

166static inline int16

168{

169 return (int16) X;

170}

171

172

173

174

175

176static inline Datum

178{

179 return (Datum) X;

180}

181

182

183

184

185

188{

190}

191

192

193

194

195

196static inline Datum

198{

199 return (Datum) X;

200}

201

202

203

204

205

206static inline int32

208{

209 return (int32) X;

210}

211

212

213

214

215

216static inline Datum

218{

219 return (Datum) X;

220}

221

222

223

224

225

228{

230}

231

232

233

234

235

236static inline Datum

238{

239 return (Datum) X;

240}

241

242

243

244

245

246static inline Oid

248{

249 return (Oid) X;

250}

251

252

253

254

255

256static inline Datum

258{

259 return (Datum) X;

260}

261

262

263

264

265

268{

270}

271

272

273

274

275

276static inline Datum

278{

279 return (Datum) X;

280}

281

282

283

284

285

286static inline Datum

288{

289 return (Datum) X;

290}

291

292

293

294

295

298{

300}

301

302

303

304

305

306static inline Datum

308{

309 return (Datum) X;

310}

311

312

313

314

315

318{

320}

321

322

323

324

325

326static inline Datum

328{

329 return (Datum) X;

330}

331

332

333

334

335

336

337

338

339static inline char *

341{

343}

344

345

346

347

348

349

350

351

352

353

354static inline Datum

356{

358}

359

360

361

362

363

364static inline Name

366{

368}

369

370

371

372

373

374

375

376

377static inline Datum

379{

381}

382

383

384

385

386

387

388

389static inline int64

391{

392#ifdef USE_FLOAT8_BYVAL

393 return (int64) X;

394#else

396#endif

397}

398

399

400

401

402

403

404

405

406#ifdef USE_FLOAT8_BYVAL

407static inline Datum

409{

410 return (Datum) X;

411}

412#else

414#endif

415

416

417

418

419

420

421

422

425{

426#ifdef USE_FLOAT8_BYVAL

428#else

430#endif

431}

432

433

434

435

436

437

438

439

440static inline Datum

442{

443#ifdef USE_FLOAT8_BYVAL

444 return (Datum) X;

445#else

447#endif

448}

449

450

451

452

453

454

455

456

457

458

459

460

461

464{

465 union

466 {

469 } myunion;

470

472 return myunion.retval;

473}

474

475

476

477

478

479static inline Datum

481{

482 union

483 {

486 } myunion;

487

488 myunion.value = X;

490}

491

492

493

494

495

496

497

500{

501#ifdef USE_FLOAT8_BYVAL

502 union

503 {

506 } myunion;

507

509 return myunion.retval;

510#else

512#endif

513}

514

515

516

517

518

519

520

521

522#ifdef USE_FLOAT8_BYVAL

523static inline Datum

525{

526 union

527 {

530 } myunion;

531

532 myunion.value = X;

534}

535#else

537#endif

538

539

540

541

542

543

544

545

546

547

548

549

550

551

552

553#ifdef USE_FLOAT8_BYVAL

554#define Int64GetDatumFast(X) \

555 (AssertVariableIsOfTypeMacro(X, int64), Int64GetDatum(X))

556#define Float8GetDatumFast(X) \

557 (AssertVariableIsOfTypeMacro(X, double), Float8GetDatum(X))

558#else

559#define Int64GetDatumFast(X) \

560 (AssertVariableIsOfTypeMacro(X, int64), PointerGetDatum(&(X)))

561#define Float8GetDatumFast(X) \

562 (AssertVariableIsOfTypeMacro(X, double), PointerGetDatum(&(X)))

563#endif

564

565

566

567

568

569

570

571

572

573

574

575

576

577

578#ifdef EXEC_BACKEND

579#define NON_EXEC_STATIC

580#else

581#define NON_EXEC_STATIC static

582#endif

583

584#endif

TransactionId MultiXactId

static uint32 DatumGetUInt32(Datum X)

static uint64 DatumGetUInt64(Datum X)

static bool DatumGetBool(Datum X)

static int64 DatumGetInt64(Datum X)

static Datum PointerGetDatum(const void *X)

static Name DatumGetName(Datum X)

static Datum Float4GetDatum(float4 X)

static Datum Int8GetDatum(int8 X)

static Datum TransactionIdGetDatum(TransactionId X)

static float4 DatumGetFloat4(Datum X)

static Datum CommandIdGetDatum(CommandId X)

static Oid DatumGetObjectId(Datum X)

static Datum UInt64GetDatum(uint64 X)

static Datum Int16GetDatum(int16 X)

static Datum MultiXactIdGetDatum(MultiXactId X)

Datum Int64GetDatum(int64 X)

static CommandId DatumGetCommandId(Datum X)

static Datum UInt16GetDatum(uint16 X)

static Datum BoolGetDatum(bool X)

static float8 DatumGetFloat8(Datum X)

Datum Float8GetDatum(float8 X)

static Datum ObjectIdGetDatum(Oid X)

static char * DatumGetCString(Datum X)

static Datum NameGetDatum(const NameData *X)

static uint16 DatumGetUInt16(Datum X)

static Pointer DatumGetPointer(Datum X)

static TransactionId DatumGetTransactionId(Datum X)

static uint8 DatumGetUInt8(Datum X)

static Datum UInt8GetDatum(uint8 X)

static char DatumGetChar(Datum X)

static Datum CStringGetDatum(const char *X)

static Datum Int32GetDatum(int32 X)

static int16 DatumGetInt16(Datum X)

struct NullableDatum NullableDatum

static Datum UInt32GetDatum(uint32 X)

static int32 DatumGetInt32(Datum X)

static Datum CharGetDatum(char X)