1/*--------------------------------------------------------------------
2 * Symbols referenced in this file:
3 * - makeInteger
4 * - makeString
5 * - makeFloat
6 *--------------------------------------------------------------------
7 */
8
9/*-------------------------------------------------------------------------
10 *
11 * value.c
12 * implementation of PGValue nodes
13 *
14 *
15 * Copyright (c) 2003-2017, PostgreSQL Global Development PGGroup
16 *
17 *
18 * IDENTIFICATION
19 * src/backend/nodes/value.c
20 *
21 *-------------------------------------------------------------------------
22 */
23#include "pg_functions.hpp"
24
25#include "nodes/parsenodes.hpp"
26
27/*
28 * makeInteger
29 */
30PGValue *
31makeInteger(long i)
32{
33 PGValue *v = makeNode(PGValue);
34
35 v->type = T_PGInteger;
36 v->val.ival = i;
37 return v;
38}
39
40/*
41 * makeFloat
42 *
43 * Caller is responsible for passing a palloc'd string.
44 */
45PGValue *
46makeFloat(char *numericStr)
47{
48 PGValue *v = makeNode(PGValue);
49
50 v->type = T_PGFloat;
51 v->val.str = numericStr;
52 return v;
53}
54
55/*
56 * makeString
57 *
58 * Caller is responsible for passing a palloc'd string.
59 */
60PGValue *
61makeString(const char *str)
62{
63 PGValue *v = makeNode(PGValue);
64
65 v->type = T_PGString;
66 v->val.str = (char*) str;
67 return v;
68}
69
70/*
71 * makeBitString
72 *
73 * Caller is responsible for passing a palloc'd string.
74 */
75
76