#include "postgres.h"#include <ctype.h>#include "libpq/pqformat.h"#include "utils/builtins.h"
Go to the source code of this file.
Functions | |
| bool | parse_bool (const char *value, bool *result) |
| bool | parse_bool_with_len (const char *value, size_t len, bool *result) |
| Datum | boolin (PG_FUNCTION_ARGS) |
| Datum | boolout (PG_FUNCTION_ARGS) |
| Datum | boolrecv (PG_FUNCTION_ARGS) |
| Datum | boolsend (PG_FUNCTION_ARGS) |
| Datum | booltext (PG_FUNCTION_ARGS) |
| Datum | booleq (PG_FUNCTION_ARGS) |
| Datum | boolne (PG_FUNCTION_ARGS) |
| Datum | boollt (PG_FUNCTION_ARGS) |
| Datum | boolgt (PG_FUNCTION_ARGS) |
| Datum | boolle (PG_FUNCTION_ARGS) |
| Datum | boolge (PG_FUNCTION_ARGS) |
| Datum | booland_statefunc (PG_FUNCTION_ARGS) |
| Datum | boolor_statefunc (PG_FUNCTION_ARGS) |
| Datum booland_statefunc | ( | PG_FUNCTION_ARGS | ) |
Definition at line 290 of file bool.c.
References PG_GETARG_BOOL, and PG_RETURN_BOOL.
{
PG_RETURN_BOOL(PG_GETARG_BOOL(0) && PG_GETARG_BOOL(1));
}
| Datum booleq | ( | PG_FUNCTION_ARGS | ) |
Definition at line 229 of file bool.c.
References PG_GETARG_BOOL, and PG_RETURN_BOOL.
{
bool arg1 = PG_GETARG_BOOL(0);
bool arg2 = PG_GETARG_BOOL(1);
PG_RETURN_BOOL(arg1 == arg2);
}
| Datum boolge | ( | PG_FUNCTION_ARGS | ) |
Definition at line 274 of file bool.c.
References PG_GETARG_BOOL, and PG_RETURN_BOOL.
{
bool arg1 = PG_GETARG_BOOL(0);
bool arg2 = PG_GETARG_BOOL(1);
PG_RETURN_BOOL(arg1 >= arg2);
}
| Datum boolgt | ( | PG_FUNCTION_ARGS | ) |
Definition at line 256 of file bool.c.
References PG_GETARG_BOOL, and PG_RETURN_BOOL.
{
bool arg1 = PG_GETARG_BOOL(0);
bool arg2 = PG_GETARG_BOOL(1);
PG_RETURN_BOOL(arg1 > arg2);
}
| Datum boolin | ( | PG_FUNCTION_ARGS | ) |
Definition at line 130 of file bool.c.
References ereport, errcode(), errmsg(), ERROR, parse_bool_with_len(), PG_GETARG_CSTRING, and PG_RETURN_BOOL.
{
const char *in_str = PG_GETARG_CSTRING(0);
const char *str;
size_t len;
bool result;
/*
* Skip leading and trailing whitespace
*/
str = in_str;
while (isspace((unsigned char) *str))
str++;
len = strlen(str);
while (len > 0 && isspace((unsigned char) str[len - 1]))
len--;
if (parse_bool_with_len(str, len, &result))
PG_RETURN_BOOL(result);
ereport(ERROR,
(errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
errmsg("invalid input syntax for type boolean: \"%s\"", in_str)));
/* not reached */
PG_RETURN_BOOL(false);
}
| Datum boolle | ( | PG_FUNCTION_ARGS | ) |
Definition at line 265 of file bool.c.
References PG_GETARG_BOOL, and PG_RETURN_BOOL.
{
bool arg1 = PG_GETARG_BOOL(0);
bool arg2 = PG_GETARG_BOOL(1);
PG_RETURN_BOOL(arg1 <= arg2);
}
| Datum boollt | ( | PG_FUNCTION_ARGS | ) |
Definition at line 247 of file bool.c.
References PG_GETARG_BOOL, and PG_RETURN_BOOL.
{
bool arg1 = PG_GETARG_BOOL(0);
bool arg2 = PG_GETARG_BOOL(1);
PG_RETURN_BOOL(arg1 < arg2);
}
| Datum boolne | ( | PG_FUNCTION_ARGS | ) |
Definition at line 238 of file bool.c.
References PG_GETARG_BOOL, and PG_RETURN_BOOL.
{
bool arg1 = PG_GETARG_BOOL(0);
bool arg2 = PG_GETARG_BOOL(1);
PG_RETURN_BOOL(arg1 != arg2);
}
| Datum boolor_statefunc | ( | PG_FUNCTION_ARGS | ) |
Definition at line 299 of file bool.c.
References PG_GETARG_BOOL, and PG_RETURN_BOOL.
{
PG_RETURN_BOOL(PG_GETARG_BOOL(0) || PG_GETARG_BOOL(1));
}
| Datum boolout | ( | PG_FUNCTION_ARGS | ) |
Definition at line 163 of file bool.c.
References palloc(), PG_GETARG_BOOL, and PG_RETURN_CSTRING.
{
bool b = PG_GETARG_BOOL(0);
char *result = (char *) palloc(2);
result[0] = (b) ? 't' : 'f';
result[1] = '\0';
PG_RETURN_CSTRING(result);
}
| Datum boolrecv | ( | PG_FUNCTION_ARGS | ) |
Definition at line 180 of file bool.c.
References buf, PG_GETARG_POINTER, PG_RETURN_BOOL, and pq_getmsgbyte().
{
StringInfo buf = (StringInfo) PG_GETARG_POINTER(0);
int ext;
ext = pq_getmsgbyte(buf);
PG_RETURN_BOOL((ext != 0) ? true : false);
}
| Datum boolsend | ( | PG_FUNCTION_ARGS | ) |
Definition at line 193 of file bool.c.
References buf, PG_GETARG_BOOL, PG_RETURN_BYTEA_P, pq_begintypsend(), pq_endtypsend(), and pq_sendbyte().
{
bool arg1 = PG_GETARG_BOOL(0);
StringInfoData buf;
pq_begintypsend(&buf);
pq_sendbyte(&buf, arg1 ? 1 : 0);
PG_RETURN_BYTEA_P(pq_endtypsend(&buf));
}
| Datum booltext | ( | PG_FUNCTION_ARGS | ) |
Definition at line 210 of file bool.c.
References cstring_to_text(), PG_GETARG_BOOL, and PG_RETURN_TEXT_P.
{
bool arg1 = PG_GETARG_BOOL(0);
const char *str;
if (arg1)
str = "true";
else
str = "false";
PG_RETURN_TEXT_P(cstring_to_text(str));
}
Definition at line 30 of file bool.c.
References parse_bool_with_len().
Referenced by parse_extension_control_file(), parse_one_reloption(), ProcessStartupPacket(), readRecoveryCommandFile(), and set_config_option().
{
return parse_bool_with_len(value, strlen(value), result);
}
Definition at line 36 of file bool.c.
References pg_strncasecmp().
Referenced by boolin(), and parse_bool().
{
switch (*value)
{
case 't':
case 'T':
if (pg_strncasecmp(value, "true", len) == 0)
{
if (result)
*result = true;
return true;
}
break;
case 'f':
case 'F':
if (pg_strncasecmp(value, "false", len) == 0)
{
if (result)
*result = false;
return true;
}
break;
case 'y':
case 'Y':
if (pg_strncasecmp(value, "yes", len) == 0)
{
if (result)
*result = true;
return true;
}
break;
case 'n':
case 'N':
if (pg_strncasecmp(value, "no", len) == 0)
{
if (result)
*result = false;
return true;
}
break;
case 'o':
case 'O':
/* 'o' is not unique enough */
if (pg_strncasecmp(value, "on", (len > 2 ? len : 2)) == 0)
{
if (result)
*result = true;
return true;
}
else if (pg_strncasecmp(value, "off", (len > 2 ? len : 2)) == 0)
{
if (result)
*result = false;
return true;
}
break;
case '1':
if (len == 1)
{
if (result)
*result = true;
return true;
}
break;
case '0':
if (len == 1)
{
if (result)
*result = false;
return true;
}
break;
default:
break;
}
if (result)
*result = false; /* suppress compiler warning */
return false;
}
1.7.1