PostgreSQL Source Code: src/common/psprintf.c Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17#ifndef FRONTEND
18
20
22
23#else
24
26
27#endif
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42char *
44{
45 int save_errno = errno;
46 size_t len = 128;
47
48 for (;;)
49 {
50 char *result;
52 size_t newlen;
53
54
55
56
57
59
60
61 errno = save_errno;
62 va_start(args, fmt);
65
66 if (newlen < len)
67 return result;
68
69
71 len = newlen;
72 }
73}
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102size_t
104{
105 int nprinted;
106
108
109
111 {
112#ifndef FRONTEND
113 elog(ERROR, "vsnprintf failed: %m with format string \"%s\"", fmt);
114#else
115 fprintf(stderr, "vsnprintf failed: %m with format string \"%s\"\n",
116 fmt);
118#endif
119 }
120
121 if ((size_t) nprinted < len)
122 {
123
124 return (size_t) nprinted;
125 }
126
127
128
129
130
131
132
133
134
136 {
137#ifndef FRONTEND
139 (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
140 errmsg("out of memory")));
141#else
142 fprintf(stderr, _("out of memory\n"));
144#endif
145 }
146
147 return nprinted + 1;
148}
#define fprintf(file, fmt, msg)
int errcode(int sqlerrcode)
int errmsg(const char *fmt,...)
#define ereport(elevel,...)
void pfree(void *pointer)
size_t pvsnprintf(char *buf, size_t len, const char *fmt, va_list args)
char * psprintf(const char *fmt,...)