mirror of
https://github.com/postgres/postgres.git
synced 2025-11-10 17:42:29 +03:00
Another PGINDENT run that changes variable indenting and case label indenting. Also static variable indenting.
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/acl.c,v 1.14 1997/09/07 04:49:53 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/acl.c,v 1.15 1997/09/08 02:30:15 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -21,10 +21,10 @@
|
||||
#include "utils/syscache.h"
|
||||
#include "miscadmin.h"
|
||||
|
||||
static char *getid(char *s, char *n);
|
||||
static int32 aclitemeq(AclItem * a1, AclItem * a2);
|
||||
static int32 aclitemgt(AclItem * a1, AclItem * a2);
|
||||
static char *aclparse(char *s, AclItem * aip, unsigned *modechg);
|
||||
static char *getid(char *s, char *n);
|
||||
static int32 aclitemeq(AclItem * a1, AclItem * a2);
|
||||
static int32 aclitemgt(AclItem * a1, AclItem * a2);
|
||||
static char *aclparse(char *s, AclItem * aip, unsigned *modechg);
|
||||
|
||||
#define ACL_IDTYPE_GID_KEYWORD "group"
|
||||
#define ACL_IDTYPE_UID_KEYWORD "user"
|
||||
@@ -41,11 +41,11 @@ static char *aclparse(char *s, AclItem * aip, unsigned *modechg);
|
||||
* - loads the identifier into 'name'. (If no identifier is found, 'name'
|
||||
* contains an empty string).
|
||||
*/
|
||||
static char *
|
||||
static char *
|
||||
getid(char *s, char *n)
|
||||
{
|
||||
unsigned len;
|
||||
char *id;
|
||||
unsigned len;
|
||||
char *id;
|
||||
|
||||
Assert(s && n);
|
||||
|
||||
@@ -82,11 +82,11 @@ getid(char *s, char *n)
|
||||
* UID/GID, id type identifier and mode type values.
|
||||
* - loads 'modechg' with the mode change flag.
|
||||
*/
|
||||
static char *
|
||||
static char *
|
||||
aclparse(char *s, AclItem * aip, unsigned *modechg)
|
||||
{
|
||||
HeapTuple htp;
|
||||
char name[NAMEDATALEN];
|
||||
HeapTuple htp;
|
||||
char name[NAMEDATALEN];
|
||||
|
||||
Assert(s && aip && modechg);
|
||||
|
||||
@@ -113,18 +113,18 @@ aclparse(char *s, AclItem * aip, unsigned *modechg)
|
||||
|
||||
switch (*s)
|
||||
{
|
||||
case ACL_MODECHG_ADD_CHR:
|
||||
*modechg = ACL_MODECHG_ADD;
|
||||
break;
|
||||
case ACL_MODECHG_DEL_CHR:
|
||||
*modechg = ACL_MODECHG_DEL;
|
||||
break;
|
||||
case ACL_MODECHG_EQL_CHR:
|
||||
*modechg = ACL_MODECHG_EQL;
|
||||
break;
|
||||
default:
|
||||
elog(WARN, "aclparse: mode change flag must use \"%s\"",
|
||||
ACL_MODECHG_STR);
|
||||
case ACL_MODECHG_ADD_CHR:
|
||||
*modechg = ACL_MODECHG_ADD;
|
||||
break;
|
||||
case ACL_MODECHG_DEL_CHR:
|
||||
*modechg = ACL_MODECHG_DEL;
|
||||
break;
|
||||
case ACL_MODECHG_EQL_CHR:
|
||||
*modechg = ACL_MODECHG_EQL;
|
||||
break;
|
||||
default:
|
||||
elog(WARN, "aclparse: mode change flag must use \"%s\"",
|
||||
ACL_MODECHG_STR);
|
||||
}
|
||||
|
||||
aip->ai_mode = ACL_NO;
|
||||
@@ -132,39 +132,39 @@ aclparse(char *s, AclItem * aip, unsigned *modechg)
|
||||
{
|
||||
switch (*s)
|
||||
{
|
||||
case ACL_MODE_AP_CHR:
|
||||
aip->ai_mode |= ACL_AP;
|
||||
break;
|
||||
case ACL_MODE_RD_CHR:
|
||||
aip->ai_mode |= ACL_RD;
|
||||
break;
|
||||
case ACL_MODE_WR_CHR:
|
||||
aip->ai_mode |= ACL_WR;
|
||||
break;
|
||||
case ACL_MODE_RU_CHR:
|
||||
aip->ai_mode |= ACL_RU;
|
||||
break;
|
||||
default:
|
||||
elog(WARN, "aclparse: mode flags must use \"%s\"",
|
||||
ACL_MODE_STR);
|
||||
case ACL_MODE_AP_CHR:
|
||||
aip->ai_mode |= ACL_AP;
|
||||
break;
|
||||
case ACL_MODE_RD_CHR:
|
||||
aip->ai_mode |= ACL_RD;
|
||||
break;
|
||||
case ACL_MODE_WR_CHR:
|
||||
aip->ai_mode |= ACL_WR;
|
||||
break;
|
||||
case ACL_MODE_RU_CHR:
|
||||
aip->ai_mode |= ACL_RU;
|
||||
break;
|
||||
default:
|
||||
elog(WARN, "aclparse: mode flags must use \"%s\"",
|
||||
ACL_MODE_STR);
|
||||
}
|
||||
}
|
||||
|
||||
switch (aip->ai_idtype)
|
||||
{
|
||||
case ACL_IDTYPE_UID:
|
||||
htp = SearchSysCacheTuple(USENAME, PointerGetDatum(name),
|
||||
0, 0, 0);
|
||||
if (!HeapTupleIsValid(htp))
|
||||
elog(WARN, "aclparse: non-existent user \"%s\"", name);
|
||||
aip->ai_id = ((Form_pg_user) GETSTRUCT(htp))->usesysid;
|
||||
break;
|
||||
case ACL_IDTYPE_GID:
|
||||
aip->ai_id = get_grosysid(name);
|
||||
break;
|
||||
case ACL_IDTYPE_WORLD:
|
||||
aip->ai_id = ACL_ID_WORLD;
|
||||
break;
|
||||
case ACL_IDTYPE_UID:
|
||||
htp = SearchSysCacheTuple(USENAME, PointerGetDatum(name),
|
||||
0, 0, 0);
|
||||
if (!HeapTupleIsValid(htp))
|
||||
elog(WARN, "aclparse: non-existent user \"%s\"", name);
|
||||
aip->ai_id = ((Form_pg_user) GETSTRUCT(htp))->usesysid;
|
||||
break;
|
||||
case ACL_IDTYPE_GID:
|
||||
aip->ai_id = get_grosysid(name);
|
||||
break;
|
||||
case ACL_IDTYPE_WORLD:
|
||||
aip->ai_id = ACL_ID_WORLD;
|
||||
break;
|
||||
}
|
||||
|
||||
#ifdef ACLDEBUG_TRACE
|
||||
@@ -181,11 +181,11 @@ aclparse(char *s, AclItem * aip, unsigned *modechg)
|
||||
* RETURNS:
|
||||
* the new Acl
|
||||
*/
|
||||
Acl *
|
||||
Acl *
|
||||
makeacl(int n)
|
||||
{
|
||||
Acl *new_acl;
|
||||
Size size;
|
||||
Acl *new_acl;
|
||||
Size size;
|
||||
|
||||
if (n < 0)
|
||||
elog(WARN, "makeacl: invalid size: %d\n", n);
|
||||
@@ -209,11 +209,11 @@ makeacl(int n)
|
||||
* RETURNS:
|
||||
* the new AclItem
|
||||
*/
|
||||
AclItem *
|
||||
AclItem *
|
||||
aclitemin(char *s)
|
||||
{
|
||||
unsigned modechg;
|
||||
AclItem *aip;
|
||||
unsigned modechg;
|
||||
AclItem *aip;
|
||||
|
||||
if (!s)
|
||||
elog(WARN, "aclitemin: null string");
|
||||
@@ -239,18 +239,18 @@ aclitemin(char *s)
|
||||
* RETURNS:
|
||||
* the new string
|
||||
*/
|
||||
char *
|
||||
char *
|
||||
aclitemout(AclItem * aip)
|
||||
{
|
||||
register char *p;
|
||||
char *out;
|
||||
HeapTuple htp;
|
||||
unsigned i;
|
||||
static AclItem default_aclitem = {ACL_ID_WORLD,
|
||||
register char *p;
|
||||
char *out;
|
||||
HeapTuple htp;
|
||||
unsigned i;
|
||||
static AclItem default_aclitem = {ACL_ID_WORLD,
|
||||
ACL_IDTYPE_WORLD,
|
||||
ACL_WORLD_DEFAULT};
|
||||
extern char *int2out();
|
||||
char *tmpname;
|
||||
extern char *int2out();
|
||||
char *tmpname;
|
||||
|
||||
if (!aip)
|
||||
aip = &default_aclitem;
|
||||
@@ -262,33 +262,33 @@ aclitemout(AclItem * aip)
|
||||
|
||||
switch (aip->ai_idtype)
|
||||
{
|
||||
case ACL_IDTYPE_UID:
|
||||
htp = SearchSysCacheTuple(USESYSID, ObjectIdGetDatum(aip->ai_id),
|
||||
0, 0, 0);
|
||||
if (!HeapTupleIsValid(htp))
|
||||
{
|
||||
char *tmp = int2out(aip->ai_id);
|
||||
case ACL_IDTYPE_UID:
|
||||
htp = SearchSysCacheTuple(USESYSID, ObjectIdGetDatum(aip->ai_id),
|
||||
0, 0, 0);
|
||||
if (!HeapTupleIsValid(htp))
|
||||
{
|
||||
char *tmp = int2out(aip->ai_id);
|
||||
|
||||
elog(NOTICE, "aclitemout: usesysid %d not found",
|
||||
aip->ai_id);
|
||||
strcat(p, tmp);
|
||||
pfree(tmp);
|
||||
}
|
||||
else
|
||||
strncat(p, (char *) &((Form_pg_user)
|
||||
GETSTRUCT(htp))->usename,
|
||||
sizeof(NameData));
|
||||
break;
|
||||
case ACL_IDTYPE_GID:
|
||||
strcat(p, "group ");
|
||||
tmpname = get_groname(aip->ai_id);
|
||||
strncat(p, tmpname, NAMEDATALEN);
|
||||
break;
|
||||
case ACL_IDTYPE_WORLD:
|
||||
break;
|
||||
default:
|
||||
elog(WARN, "aclitemout: bad ai_idtype: %d", aip->ai_idtype);
|
||||
break;
|
||||
elog(NOTICE, "aclitemout: usesysid %d not found",
|
||||
aip->ai_id);
|
||||
strcat(p, tmp);
|
||||
pfree(tmp);
|
||||
}
|
||||
else
|
||||
strncat(p, (char *) &((Form_pg_user)
|
||||
GETSTRUCT(htp))->usename,
|
||||
sizeof(NameData));
|
||||
break;
|
||||
case ACL_IDTYPE_GID:
|
||||
strcat(p, "group ");
|
||||
tmpname = get_groname(aip->ai_id);
|
||||
strncat(p, tmpname, NAMEDATALEN);
|
||||
break;
|
||||
case ACL_IDTYPE_WORLD:
|
||||
break;
|
||||
default:
|
||||
elog(WARN, "aclitemout: bad ai_idtype: %d", aip->ai_idtype);
|
||||
break;
|
||||
}
|
||||
while (*p)
|
||||
++p;
|
||||
@@ -311,7 +311,7 @@ aclitemout(AclItem * aip)
|
||||
* RETURNS:
|
||||
* a boolean value indicating = or >
|
||||
*/
|
||||
static int32
|
||||
static int32
|
||||
aclitemeq(AclItem * a1, AclItem * a2)
|
||||
{
|
||||
if (!a1 && !a2)
|
||||
@@ -321,7 +321,7 @@ aclitemeq(AclItem * a1, AclItem * a2)
|
||||
return (a1->ai_idtype == a2->ai_idtype && a1->ai_id == a2->ai_id);
|
||||
}
|
||||
|
||||
static int32
|
||||
static int32
|
||||
aclitemgt(AclItem * a1, AclItem * a2)
|
||||
{
|
||||
if (a1 && !a2)
|
||||
@@ -332,11 +332,11 @@ aclitemgt(AclItem * a1, AclItem * a2)
|
||||
(a1->ai_idtype == a2->ai_idtype && a1->ai_id > a2->ai_id));
|
||||
}
|
||||
|
||||
Acl *
|
||||
Acl *
|
||||
aclownerdefault(AclId ownerid)
|
||||
{
|
||||
Acl *acl;
|
||||
AclItem *aip;
|
||||
Acl *acl;
|
||||
AclItem *aip;
|
||||
|
||||
acl = makeacl(2);
|
||||
aip = ACL_DAT(acl);
|
||||
@@ -349,11 +349,11 @@ aclownerdefault(AclId ownerid)
|
||||
return (acl);
|
||||
}
|
||||
|
||||
Acl *
|
||||
Acl *
|
||||
acldefault(void)
|
||||
{
|
||||
Acl *acl;
|
||||
AclItem *aip;
|
||||
Acl *acl;
|
||||
AclItem *aip;
|
||||
|
||||
acl = makeacl(1);
|
||||
aip = ACL_DAT(acl);
|
||||
@@ -363,15 +363,15 @@ acldefault(void)
|
||||
return (acl);
|
||||
}
|
||||
|
||||
Acl *
|
||||
Acl *
|
||||
aclinsert3(Acl * old_acl, AclItem * mod_aip, unsigned modechg)
|
||||
{
|
||||
Acl *new_acl;
|
||||
AclItem *old_aip,
|
||||
*new_aip;
|
||||
unsigned src,
|
||||
dst,
|
||||
num;
|
||||
Acl *new_acl;
|
||||
AclItem *old_aip,
|
||||
*new_aip;
|
||||
unsigned src,
|
||||
dst,
|
||||
num;
|
||||
|
||||
if (!old_acl || ACL_NUM(old_acl) < 1)
|
||||
{
|
||||
@@ -435,18 +435,18 @@ aclinsert3(Acl * old_acl, AclItem * mod_aip, unsigned modechg)
|
||||
}
|
||||
switch (modechg)
|
||||
{
|
||||
case ACL_MODECHG_ADD:
|
||||
new_aip[dst].ai_mode =
|
||||
old_aip[src].ai_mode | mod_aip->ai_mode;
|
||||
break;
|
||||
case ACL_MODECHG_DEL:
|
||||
new_aip[dst].ai_mode =
|
||||
old_aip[src].ai_mode & ~mod_aip->ai_mode;
|
||||
break;
|
||||
case ACL_MODECHG_EQL:
|
||||
new_aip[dst].ai_mode =
|
||||
mod_aip->ai_mode;
|
||||
break;
|
||||
case ACL_MODECHG_ADD:
|
||||
new_aip[dst].ai_mode =
|
||||
old_aip[src].ai_mode | mod_aip->ai_mode;
|
||||
break;
|
||||
case ACL_MODECHG_DEL:
|
||||
new_aip[dst].ai_mode =
|
||||
old_aip[src].ai_mode & ~mod_aip->ai_mode;
|
||||
break;
|
||||
case ACL_MODECHG_EQL:
|
||||
new_aip[dst].ai_mode =
|
||||
mod_aip->ai_mode;
|
||||
break;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -458,7 +458,7 @@ aclinsert3(Acl * old_acl, AclItem * mod_aip, unsigned modechg)
|
||||
{
|
||||
if (new_aip[dst].ai_mode == 0)
|
||||
{
|
||||
int i;
|
||||
int i;
|
||||
|
||||
for (i = dst + 1; i < num; i++)
|
||||
{
|
||||
@@ -480,21 +480,21 @@ aclinsert3(Acl * old_acl, AclItem * mod_aip, unsigned modechg)
|
||||
* aclinsert
|
||||
*
|
||||
*/
|
||||
Acl *
|
||||
Acl *
|
||||
aclinsert(Acl * old_acl, AclItem * mod_aip)
|
||||
{
|
||||
return (aclinsert3(old_acl, mod_aip, ACL_MODECHG_EQL));
|
||||
}
|
||||
|
||||
Acl *
|
||||
Acl *
|
||||
aclremove(Acl * old_acl, AclItem * mod_aip)
|
||||
{
|
||||
Acl *new_acl;
|
||||
AclItem *old_aip,
|
||||
*new_aip;
|
||||
unsigned dst,
|
||||
old_num,
|
||||
new_num;
|
||||
Acl *new_acl;
|
||||
AclItem *old_aip,
|
||||
*new_aip;
|
||||
unsigned dst,
|
||||
old_num,
|
||||
new_num;
|
||||
|
||||
if (!old_acl || ACL_NUM(old_acl) < 1)
|
||||
{
|
||||
@@ -549,9 +549,9 @@ aclremove(Acl * old_acl, AclItem * mod_aip)
|
||||
int32
|
||||
aclcontains(Acl * acl, AclItem * aip)
|
||||
{
|
||||
unsigned i,
|
||||
num;
|
||||
AclItem *aidat;
|
||||
unsigned i,
|
||||
num;
|
||||
AclItem *aidat;
|
||||
|
||||
if (!acl || !aip || ((num = ACL_NUM(acl)) < 1))
|
||||
return (0);
|
||||
@@ -574,12 +574,12 @@ aclcontains(Acl * acl, AclItem * aip)
|
||||
* the CALLER is reponsible for free'ing the string returned
|
||||
*/
|
||||
|
||||
char *
|
||||
char *
|
||||
aclmakepriv(char *old_privlist, char new_priv)
|
||||
{
|
||||
char *priv;
|
||||
int i;
|
||||
int l;
|
||||
char *priv;
|
||||
int i;
|
||||
int l;
|
||||
|
||||
Assert(strlen(old_privlist) < 5);
|
||||
priv = malloc(5); /* at most "rwaR" */ ;
|
||||
@@ -628,10 +628,10 @@ aclmakepriv(char *old_privlist, char new_priv)
|
||||
* the CALLER is responsible for freeing the memory allocated
|
||||
*/
|
||||
|
||||
char *
|
||||
char *
|
||||
aclmakeuser(char *user_type, char *user)
|
||||
{
|
||||
char *user_list;
|
||||
char *user_list;
|
||||
|
||||
user_list = malloc(strlen(user) + 3);
|
||||
sprintf(user_list, "%s %s", user_type, user);
|
||||
@@ -652,12 +652,12 @@ aclmakeuser(char *user_type, char *user)
|
||||
* then calling aclparse;
|
||||
*/
|
||||
|
||||
ChangeACLStmt *
|
||||
ChangeACLStmt *
|
||||
makeAclStmt(char *privileges, List * rel_list, char *grantee,
|
||||
char grant_or_revoke)
|
||||
{
|
||||
ChangeACLStmt *n = makeNode(ChangeACLStmt);
|
||||
char str[MAX_PARSE_BUFFER];
|
||||
ChangeACLStmt *n = makeNode(ChangeACLStmt);
|
||||
char str[MAX_PARSE_BUFFER];
|
||||
|
||||
n->aclitem = (AclItem *) palloc(sizeof(AclItem));
|
||||
/* the grantee string is "G <group_name>", "U <user_name>", or "ALL" */
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/arrayutils.c,v 1.4 1997/09/07 04:49:57 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/arrayutils.c,v 1.5 1997/09/08 02:30:23 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -21,9 +21,9 @@
|
||||
int
|
||||
GetOffset(int n, int dim[], int lb[], int indx[])
|
||||
{
|
||||
int i,
|
||||
scale,
|
||||
offset;
|
||||
int i,
|
||||
scale,
|
||||
offset;
|
||||
|
||||
for (i = n - 1, scale = 1, offset = 0; i >= 0; scale *= dim[i--])
|
||||
offset += (indx[i] - lb[i]) * scale;
|
||||
@@ -33,8 +33,8 @@ GetOffset(int n, int dim[], int lb[], int indx[])
|
||||
int
|
||||
getNitems(int n, int a[])
|
||||
{
|
||||
int i,
|
||||
ret;
|
||||
int i,
|
||||
ret;
|
||||
|
||||
for (i = 0, ret = 1; i < n; ret *= a[i++]);
|
||||
if (n == 0)
|
||||
@@ -45,8 +45,8 @@ getNitems(int n, int a[])
|
||||
int
|
||||
compute_size(int st[], int endp[], int n, int base)
|
||||
{
|
||||
int i,
|
||||
ret;
|
||||
int i,
|
||||
ret;
|
||||
|
||||
for (i = 0, ret = base; i < n; i++)
|
||||
ret *= (endp[i] - st[i] + 1);
|
||||
@@ -56,8 +56,8 @@ compute_size(int st[], int endp[], int n, int base)
|
||||
void
|
||||
mda_get_offset_values(int n, int dist[], int PC[], int span[])
|
||||
{
|
||||
int i,
|
||||
j;
|
||||
int i,
|
||||
j;
|
||||
|
||||
for (j = n - 2, dist[n - 1] = 0; j >= 0; j--)
|
||||
for (i = j + 1, dist[j] = PC[j] - 1; i < n;
|
||||
@@ -67,7 +67,7 @@ mda_get_offset_values(int n, int dist[], int PC[], int span[])
|
||||
void
|
||||
mda_get_range(int n, int span[], int st[], int endp[])
|
||||
{
|
||||
int i;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < n; i++)
|
||||
span[i] = endp[i] - st[i] + 1;
|
||||
@@ -76,7 +76,7 @@ mda_get_range(int n, int span[], int st[], int endp[])
|
||||
void
|
||||
mda_get_prod(int n, int range[], int P[])
|
||||
{
|
||||
int i;
|
||||
int i;
|
||||
|
||||
for (i = n - 2, P[n - 1] = 1; i >= 0; i--)
|
||||
P[i] = P[i + 1] * range[i + 1];
|
||||
@@ -85,8 +85,8 @@ mda_get_prod(int n, int range[], int P[])
|
||||
int
|
||||
tuple2linear(int n, int tup[], int scale[])
|
||||
{
|
||||
int i,
|
||||
lin;
|
||||
int i,
|
||||
lin;
|
||||
|
||||
for (i = lin = 0; i < n; i++)
|
||||
lin += tup[i] * scale[i];
|
||||
@@ -96,7 +96,7 @@ tuple2linear(int n, int tup[], int scale[])
|
||||
void
|
||||
array2chunk_coord(int n, int C[], int a_coord[], int c_coord[])
|
||||
{
|
||||
int i;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < n; i++)
|
||||
c_coord[i] = a_coord[i] / C[i];
|
||||
@@ -112,7 +112,7 @@ array2chunk_coord(int n, int C[], int a_coord[], int c_coord[])
|
||||
int
|
||||
next_tuple(int n, int curr[], int span[])
|
||||
{
|
||||
int i;
|
||||
int i;
|
||||
|
||||
if (!n)
|
||||
return (-1);
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/bool.c,v 1.5 1997/09/07 04:49:58 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/bool.c,v 1.6 1997/09/08 02:30:26 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -35,10 +35,10 @@ boolin(char *b)
|
||||
/*
|
||||
* boolout - converts 1 or 0 to "t" or "f"
|
||||
*/
|
||||
char *
|
||||
char *
|
||||
boolout(long b)
|
||||
{
|
||||
char *result = (char *) palloc(2);
|
||||
char *result = (char *) palloc(2);
|
||||
|
||||
*result = (b) ? 't' : 'f';
|
||||
result[1] = '\0';
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
* workings can be found in the book "Software Solutions in C" by
|
||||
* Dale Schumacher, Academic Press, ISBN: 0-12-632360-7.
|
||||
*
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/cash.c,v 1.10 1997/09/07 04:49:59 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/cash.c,v 1.11 1997/09/08 02:30:27 momjian Exp $
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
@@ -47,22 +47,22 @@ static struct lconv *lconv = NULL;
|
||||
* monetary values returned by localeconv() can be multiple
|
||||
* bytes/characters. This code assumes one byte only. - tgl 97/04/14
|
||||
*/
|
||||
Cash *
|
||||
Cash *
|
||||
cash_in(const char *str)
|
||||
{
|
||||
Cash *result;
|
||||
Cash *result;
|
||||
|
||||
Cash value = 0;
|
||||
Cash dec = 0;
|
||||
Cash sgn = 1;
|
||||
int seen_dot = 0;
|
||||
const char *s = str;
|
||||
int fpoint;
|
||||
char dsymbol,
|
||||
ssymbol,
|
||||
psymbol,
|
||||
nsymbol,
|
||||
csymbol;
|
||||
Cash value = 0;
|
||||
Cash dec = 0;
|
||||
Cash sgn = 1;
|
||||
int seen_dot = 0;
|
||||
const char *s = str;
|
||||
int fpoint;
|
||||
char dsymbol,
|
||||
ssymbol,
|
||||
psymbol,
|
||||
nsymbol,
|
||||
csymbol;
|
||||
|
||||
#ifdef USE_LOCALE
|
||||
if (lconv == NULL)
|
||||
@@ -164,22 +164,22 @@ cash_in(const char *str)
|
||||
* XXX HACK This code appears to assume US conventions for
|
||||
* positive-valued amounts. - tgl 97/04/14
|
||||
*/
|
||||
const char *
|
||||
const char *
|
||||
cash_out(Cash * value)
|
||||
{
|
||||
char *result;
|
||||
char buf[CASH_BUFSZ];
|
||||
int minus = 0;
|
||||
int count = LAST_DIGIT;
|
||||
int point_pos;
|
||||
int comma_position = 0;
|
||||
char mon_group,
|
||||
comma,
|
||||
points;
|
||||
char csymbol,
|
||||
dsymbol,
|
||||
*nsymbol;
|
||||
char convention;
|
||||
char *result;
|
||||
char buf[CASH_BUFSZ];
|
||||
int minus = 0;
|
||||
int count = LAST_DIGIT;
|
||||
int point_pos;
|
||||
int comma_position = 0;
|
||||
char mon_group,
|
||||
comma,
|
||||
points;
|
||||
char csymbol,
|
||||
dsymbol,
|
||||
*nsymbol;
|
||||
char convention;
|
||||
|
||||
#ifdef USE_LOCALE
|
||||
if (lconv == NULL)
|
||||
@@ -328,10 +328,10 @@ cash_ge(Cash * c1, Cash * c2)
|
||||
/* cash_pl()
|
||||
* Add two cash values.
|
||||
*/
|
||||
Cash *
|
||||
Cash *
|
||||
cash_pl(Cash * c1, Cash * c2)
|
||||
{
|
||||
Cash *result;
|
||||
Cash *result;
|
||||
|
||||
if (!PointerIsValid(c1) || !PointerIsValid(c2))
|
||||
return (NULL);
|
||||
@@ -348,10 +348,10 @@ cash_pl(Cash * c1, Cash * c2)
|
||||
/* cash_mi()
|
||||
* Subtract two cash values.
|
||||
*/
|
||||
Cash *
|
||||
Cash *
|
||||
cash_mi(Cash * c1, Cash * c2)
|
||||
{
|
||||
Cash *result;
|
||||
Cash *result;
|
||||
|
||||
if (!PointerIsValid(c1) || !PointerIsValid(c2))
|
||||
return (NULL);
|
||||
@@ -368,10 +368,10 @@ cash_mi(Cash * c1, Cash * c2)
|
||||
/* cash_mul()
|
||||
* Multiply cash by floating point number.
|
||||
*/
|
||||
Cash *
|
||||
Cash *
|
||||
cash_mul(Cash * c, float8 * f)
|
||||
{
|
||||
Cash *result;
|
||||
Cash *result;
|
||||
|
||||
if (!PointerIsValid(f) || !PointerIsValid(c))
|
||||
return (NULL);
|
||||
@@ -391,10 +391,10 @@ cash_mul(Cash * c, float8 * f)
|
||||
* XXX Don't know if rounding or truncating is correct behavior.
|
||||
* Round for now. - tgl 97/04/15
|
||||
*/
|
||||
Cash *
|
||||
Cash *
|
||||
cash_div(Cash * c, float8 * f)
|
||||
{
|
||||
Cash *result;
|
||||
Cash *result;
|
||||
|
||||
if (!PointerIsValid(f) || !PointerIsValid(c))
|
||||
return (NULL);
|
||||
@@ -414,10 +414,10 @@ cash_div(Cash * c, float8 * f)
|
||||
/* cashlarger()
|
||||
* Return larger of two cash values.
|
||||
*/
|
||||
Cash *
|
||||
Cash *
|
||||
cashlarger(Cash * c1, Cash * c2)
|
||||
{
|
||||
Cash *result;
|
||||
Cash *result;
|
||||
|
||||
if (!PointerIsValid(c1) || !PointerIsValid(c2))
|
||||
return (NULL);
|
||||
@@ -434,10 +434,10 @@ cashlarger(Cash * c1, Cash * c2)
|
||||
/* cashsmaller()
|
||||
* Return smaller of two cash values.
|
||||
*/
|
||||
Cash *
|
||||
Cash *
|
||||
cashsmaller(Cash * c1, Cash * c2)
|
||||
{
|
||||
Cash *result;
|
||||
Cash *result;
|
||||
|
||||
if (!PointerIsValid(c1) || !PointerIsValid(c2))
|
||||
return (NULL);
|
||||
@@ -455,15 +455,15 @@ cashsmaller(Cash * c1, Cash * c2)
|
||||
* This converts a int4 as well but to a representation using words
|
||||
* Obviously way North American centric - sorry
|
||||
*/
|
||||
const char *
|
||||
const char *
|
||||
cash_words_out(Cash * value)
|
||||
{
|
||||
static char buf[128];
|
||||
char *p = buf;
|
||||
Cash m0;
|
||||
Cash m1;
|
||||
Cash m2;
|
||||
Cash m3;
|
||||
static char buf[128];
|
||||
char *p = buf;
|
||||
Cash m0;
|
||||
Cash m1;
|
||||
Cash m2;
|
||||
Cash m3;
|
||||
|
||||
/* work with positive numbers */
|
||||
if (*value < 0)
|
||||
@@ -515,15 +515,15 @@ cash_words_out(Cash * value)
|
||||
static const char *
|
||||
num_word(Cash value)
|
||||
{
|
||||
static char buf[128];
|
||||
static char buf[128];
|
||||
static const char *small[] = {
|
||||
"zero", "one", "two", "three", "four", "five", "six", "seven",
|
||||
"eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen",
|
||||
"fifteen", "sixteen", "seventeen", "eighteen", "nineteen", "twenty",
|
||||
"thirty", "fourty", "fifty", "sixty", "seventy", "eighty", "ninety"
|
||||
};
|
||||
const char **big = small + 18;
|
||||
int tu = value % 100;
|
||||
const char **big = small + 18;
|
||||
int tu = value % 100;
|
||||
|
||||
/* deal with the simple cases first */
|
||||
if (value <= 20)
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/char.c,v 1.8 1997/09/07 04:50:02 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/char.c,v 1.9 1997/09/08 02:30:29 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -40,10 +40,10 @@ charin(char *ch)
|
||||
/*
|
||||
* charout - converts 'x' to "x"
|
||||
*/
|
||||
char *
|
||||
char *
|
||||
charout(int32 ch)
|
||||
{
|
||||
char *result = (char *) palloc(2);
|
||||
char *result = (char *) palloc(2);
|
||||
|
||||
result[0] = (char) ch;
|
||||
result[1] = '\0';
|
||||
@@ -59,7 +59,7 @@ charout(int32 ch)
|
||||
int32
|
||||
cidin(char *s)
|
||||
{
|
||||
CommandId c;
|
||||
CommandId c;
|
||||
|
||||
if (s == NULL)
|
||||
c = 0;
|
||||
@@ -75,11 +75,11 @@ cidin(char *s)
|
||||
* NOTE: we must no use 'charout' because cid might be a non
|
||||
* printable character...
|
||||
*/
|
||||
char *
|
||||
char *
|
||||
cidout(int32 c)
|
||||
{
|
||||
char *result;
|
||||
CommandId c2;
|
||||
char *result;
|
||||
CommandId c2;
|
||||
|
||||
/*
|
||||
* cid is a number between 0 .. 2^16-1, therefore we need at most 6
|
||||
@@ -98,10 +98,10 @@ cidout(int32 c)
|
||||
* Note:
|
||||
* Currently if strlen(s) < 14, the extra chars are nulls
|
||||
*/
|
||||
char *
|
||||
char *
|
||||
char16in(char *s)
|
||||
{
|
||||
char *result;
|
||||
char *result;
|
||||
|
||||
if (s == NULL)
|
||||
return (NULL);
|
||||
@@ -113,10 +113,10 @@ char16in(char *s)
|
||||
/*
|
||||
* char16out - converts internal reprsentation to "..."
|
||||
*/
|
||||
char *
|
||||
char *
|
||||
char16out(char *s)
|
||||
{
|
||||
char *result = (char *) palloc(17);
|
||||
char *result = (char *) palloc(17);
|
||||
|
||||
if (s == NULL)
|
||||
{
|
||||
@@ -133,48 +133,59 @@ char16out(char *s)
|
||||
* PUBLIC ROUTINES *
|
||||
*****************************************************************************/
|
||||
|
||||
bool chareq(int8 arg1, int8 arg2)
|
||||
bool
|
||||
chareq(int8 arg1, int8 arg2)
|
||||
{
|
||||
return (arg1 == arg2);
|
||||
}
|
||||
bool charne(int8 arg1, int8 arg2)
|
||||
bool
|
||||
charne(int8 arg1, int8 arg2)
|
||||
{
|
||||
return (arg1 != arg2);
|
||||
}
|
||||
bool charlt(int8 arg1, int8 arg2)
|
||||
bool
|
||||
charlt(int8 arg1, int8 arg2)
|
||||
{
|
||||
return ((uint8) arg1 < (uint8) arg2);
|
||||
}
|
||||
bool charle(int8 arg1, int8 arg2)
|
||||
bool
|
||||
charle(int8 arg1, int8 arg2)
|
||||
{
|
||||
return ((uint8) arg1 <= (uint8) arg2);
|
||||
}
|
||||
bool chargt(int8 arg1, int8 arg2)
|
||||
bool
|
||||
chargt(int8 arg1, int8 arg2)
|
||||
{
|
||||
return ((uint8) arg1 > (uint8) arg2);
|
||||
}
|
||||
bool charge(int8 arg1, int8 arg2)
|
||||
bool
|
||||
charge(int8 arg1, int8 arg2)
|
||||
{
|
||||
return ((uint8) arg1 >= (uint8) arg2);
|
||||
}
|
||||
int8 charpl(int8 arg1, int8 arg2)
|
||||
int8
|
||||
charpl(int8 arg1, int8 arg2)
|
||||
{
|
||||
return (arg1 + arg2);
|
||||
}
|
||||
int8 charmi(int8 arg1, int8 arg2)
|
||||
int8
|
||||
charmi(int8 arg1, int8 arg2)
|
||||
{
|
||||
return (arg1 - arg2);
|
||||
}
|
||||
int8 charmul(int8 arg1, int8 arg2)
|
||||
int8
|
||||
charmul(int8 arg1, int8 arg2)
|
||||
{
|
||||
return (arg1 * arg2);
|
||||
}
|
||||
int8 chardiv(int8 arg1, int8 arg2)
|
||||
int8
|
||||
chardiv(int8 arg1, int8 arg2)
|
||||
{
|
||||
return (arg1 / arg2);
|
||||
}
|
||||
|
||||
bool cideq(int8 arg1, int8 arg2)
|
||||
bool
|
||||
cideq(int8 arg1, int8 arg2)
|
||||
{
|
||||
return (arg1 == arg2);
|
||||
}
|
||||
@@ -248,7 +259,7 @@ char16ge(char *arg1, char *arg2)
|
||||
uint16
|
||||
char2in(char *s)
|
||||
{
|
||||
uint16 res;
|
||||
uint16 res;
|
||||
|
||||
if (s == NULL)
|
||||
return (0);
|
||||
@@ -257,10 +268,10 @@ char2in(char *s)
|
||||
return (res);
|
||||
}
|
||||
|
||||
char *
|
||||
char *
|
||||
char2out(uint16 s)
|
||||
{
|
||||
char *result = (char *) palloc(3);
|
||||
char *result = (char *) palloc(3);
|
||||
|
||||
strNcpy(result, (char *) &s, 2);
|
||||
|
||||
@@ -313,7 +324,7 @@ char2cmp(uint16 a, uint16 b)
|
||||
uint32
|
||||
char4in(char *s)
|
||||
{
|
||||
uint32 res;
|
||||
uint32 res;
|
||||
|
||||
if (s == NULL)
|
||||
return (0);
|
||||
@@ -323,11 +334,11 @@ char4in(char *s)
|
||||
return (res);
|
||||
}
|
||||
|
||||
char *
|
||||
char *
|
||||
char4out(s)
|
||||
uint32 s;
|
||||
uint32 s;
|
||||
{
|
||||
char *result = (char *) palloc(5);
|
||||
char *result = (char *) palloc(5);
|
||||
|
||||
strNcpy(result, (char *) &s, 4);
|
||||
|
||||
@@ -377,10 +388,10 @@ char4cmp(uint32 a, uint32 b)
|
||||
}
|
||||
|
||||
/* ============================== char8 ============================== */
|
||||
char *
|
||||
char *
|
||||
char8in(char *s)
|
||||
{
|
||||
char *result;
|
||||
char *result;
|
||||
|
||||
if (s == NULL)
|
||||
return ((char *) NULL);
|
||||
@@ -390,10 +401,10 @@ char8in(char *s)
|
||||
return (result);
|
||||
}
|
||||
|
||||
char *
|
||||
char *
|
||||
char8out(char *s)
|
||||
{
|
||||
char *result = (char *) palloc(9);
|
||||
char *result = (char *) palloc(9);
|
||||
|
||||
if (s == NULL)
|
||||
{
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/chunk.c,v 1.7 1997/09/07 04:50:04 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/chunk.c,v 1.8 1997/09/08 02:30:31 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -48,8 +48,8 @@ static CHUNK_INFO cInfo;
|
||||
static int
|
||||
_FindBestChunk(int size, int dmax[], int dbest[], int dim,
|
||||
int A[MAXPAT][MAXDIM + 1], int N);
|
||||
static int get_next(int d[], int k, int C, int dmax[]);
|
||||
static void initialize_info(CHUNK_INFO * A, int ndim, int dim[], int chunk[]);
|
||||
static int get_next(int d[], int k, int C, int dmax[]);
|
||||
static void initialize_info(CHUNK_INFO * A, int ndim, int dim[], int chunk[]);
|
||||
|
||||
#ifdef LOARRAY
|
||||
static void
|
||||
@@ -58,8 +58,8 @@ _ConvertToChunkFile(int n, int baseSize, int dim[], int C[],
|
||||
static void
|
||||
read_chunk(int chunk_no[], int C[], char a_chunk[], int srcfd,
|
||||
int n, int baseSize, int PX[], int dist[]);
|
||||
static int write_chunk(struct varlena * a_chunk, int ofile);
|
||||
static int seek_and_read(int pos, int size, char buff[], int fp, int from);
|
||||
static int write_chunk(struct varlena * a_chunk, int ofile);
|
||||
static int seek_and_read(int pos, int size, char buff[], int fp, int from);
|
||||
|
||||
#endif
|
||||
static int
|
||||
@@ -75,7 +75,7 @@ GetChunkSize(FILE * fd, int ndim, int dim[MAXDIM], int baseSize,
|
||||
* information about the chunked file
|
||||
*-----------------------------------------------------------------------
|
||||
*/
|
||||
char *
|
||||
char *
|
||||
_ChunkArray(int fd,
|
||||
FILE * afd,
|
||||
int ndim,
|
||||
@@ -85,12 +85,12 @@ _ChunkArray(int fd,
|
||||
char *chunkfile)
|
||||
{
|
||||
#ifdef LOARRAY
|
||||
int cfd = 0;
|
||||
int cfd = 0;
|
||||
|
||||
#endif
|
||||
int chunk[MAXDIM],
|
||||
csize;
|
||||
bool reorgFlag;
|
||||
int chunk[MAXDIM],
|
||||
csize;
|
||||
bool reorgFlag;
|
||||
|
||||
if (chunkfile == NULL)
|
||||
reorgFlag = true;
|
||||
@@ -136,12 +136,12 @@ GetChunkSize(FILE * fd,
|
||||
int baseSize,
|
||||
int d[MAXDIM])
|
||||
{
|
||||
int N,
|
||||
i,
|
||||
j,
|
||||
csize;
|
||||
int A[MAXPAT][MAXDIM + 1],
|
||||
dmax[MAXDIM];
|
||||
int N,
|
||||
i,
|
||||
j,
|
||||
csize;
|
||||
int A[MAXPAT][MAXDIM + 1],
|
||||
dmax[MAXDIM];
|
||||
|
||||
/*
|
||||
* ----------- read input ------------
|
||||
@@ -183,9 +183,9 @@ _FindBestChunk(int size,
|
||||
int A[MAXPAT][MAXDIM + 1],
|
||||
int N)
|
||||
{
|
||||
int d[MAXDIM];
|
||||
int tc,
|
||||
mintc = INFTY;
|
||||
int d[MAXDIM];
|
||||
int tc,
|
||||
mintc = INFTY;
|
||||
|
||||
d[0] = 0;
|
||||
mintc = INFTY;
|
||||
@@ -196,9 +196,9 @@ _FindBestChunk(int size,
|
||||
* compute the number of page fetches for a given chunk size (d[])
|
||||
* and access pattern (A[][])
|
||||
*/
|
||||
register int i,
|
||||
j,
|
||||
nc;
|
||||
register int i,
|
||||
j,
|
||||
nc;
|
||||
|
||||
for (i = 0, tc = 0; i < N; i++)
|
||||
{
|
||||
@@ -229,9 +229,9 @@ _FindBestChunk(int size,
|
||||
static int
|
||||
get_next(int d[], int k, int C, int dmax[])
|
||||
{
|
||||
register int i,
|
||||
j,
|
||||
temp;
|
||||
register int i,
|
||||
j,
|
||||
temp;
|
||||
|
||||
if (!d[0])
|
||||
{
|
||||
@@ -271,15 +271,14 @@ get_next(int d[], int k, int C, int dmax[])
|
||||
}
|
||||
|
||||
#ifdef LOARRAY
|
||||
static char a_chunk[BLCKSZ + 4]; /* 4 since a_chunk is in varlena
|
||||
* format */
|
||||
static char a_chunk[BLCKSZ + 4];/* 4 since a_chunk is in varlena format */
|
||||
|
||||
#endif
|
||||
|
||||
static void
|
||||
initialize_info(CHUNK_INFO * A, int ndim, int dim[], int chunk[])
|
||||
{
|
||||
int i;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < ndim; i++)
|
||||
A->C[i] = chunk[i];
|
||||
@@ -305,13 +304,13 @@ _ConvertToChunkFile(int n,
|
||||
int srcfd,
|
||||
int destfd)
|
||||
{
|
||||
int max_chunks[MAXDIM],
|
||||
chunk_no[MAXDIM];
|
||||
int PX[MAXDIM],
|
||||
dist[MAXDIM];
|
||||
int csize = 1,
|
||||
i,
|
||||
temp;
|
||||
int max_chunks[MAXDIM],
|
||||
chunk_no[MAXDIM];
|
||||
int PX[MAXDIM],
|
||||
dist[MAXDIM];
|
||||
int csize = 1,
|
||||
i,
|
||||
temp;
|
||||
|
||||
for (i = 0; i < n; chunk_no[i++] = 0)
|
||||
{
|
||||
@@ -349,14 +348,14 @@ read_chunk(int chunk_no[],
|
||||
int PX[],
|
||||
int dist[])
|
||||
{
|
||||
int i,
|
||||
j,
|
||||
cp,
|
||||
unit_transfer;
|
||||
int start_pos,
|
||||
pos[MAXDIM];
|
||||
int indx[MAXDIM];
|
||||
int fpOff;
|
||||
int i,
|
||||
j,
|
||||
cp,
|
||||
unit_transfer;
|
||||
int start_pos,
|
||||
pos[MAXDIM];
|
||||
int indx[MAXDIM];
|
||||
int fpOff;
|
||||
|
||||
for (i = start_pos = 0; i < n; i++)
|
||||
{
|
||||
@@ -392,7 +391,7 @@ read_chunk(int chunk_no[],
|
||||
static int
|
||||
write_chunk(struct varlena * a_chunk, int ofile)
|
||||
{
|
||||
int got_n = 0;
|
||||
int got_n = 0;
|
||||
|
||||
#ifdef LOARRAY
|
||||
got_n = LOwrite(ofile, a_chunk);
|
||||
@@ -444,41 +443,41 @@ _ReadChunkArray(int st[],
|
||||
int isDestLO,
|
||||
bool * isNull)
|
||||
{
|
||||
int i,
|
||||
j,
|
||||
jj;
|
||||
int n,
|
||||
temp,
|
||||
words_read;
|
||||
int chunk_span[MAXDIM],
|
||||
chunk_off[MAXDIM];
|
||||
int chunk_st[MAXDIM],
|
||||
chunk_end[MAXDIM];
|
||||
int block_seek;
|
||||
int i,
|
||||
j,
|
||||
jj;
|
||||
int n,
|
||||
temp,
|
||||
words_read;
|
||||
int chunk_span[MAXDIM],
|
||||
chunk_off[MAXDIM];
|
||||
int chunk_st[MAXDIM],
|
||||
chunk_end[MAXDIM];
|
||||
int block_seek;
|
||||
|
||||
int bptr,
|
||||
*C,
|
||||
csize,
|
||||
*dim,
|
||||
*lb;
|
||||
int range_st[MAXDIM],
|
||||
range_end[MAXDIM],
|
||||
range[MAXDIM],
|
||||
array_span[MAXDIM];
|
||||
int PA[MAXDIM],
|
||||
PCHUNK[MAXDIM],
|
||||
PC[MAXDIM];
|
||||
int to_read;
|
||||
int cdist[MAXDIM],
|
||||
adist[MAXDIM];
|
||||
int dist[MAXDIM],
|
||||
temp_seek;
|
||||
int bptr,
|
||||
*C,
|
||||
csize,
|
||||
*dim,
|
||||
*lb;
|
||||
int range_st[MAXDIM],
|
||||
range_end[MAXDIM],
|
||||
range[MAXDIM],
|
||||
array_span[MAXDIM];
|
||||
int PA[MAXDIM],
|
||||
PCHUNK[MAXDIM],
|
||||
PC[MAXDIM];
|
||||
int to_read;
|
||||
int cdist[MAXDIM],
|
||||
adist[MAXDIM];
|
||||
int dist[MAXDIM],
|
||||
temp_seek;
|
||||
|
||||
int srcOff; /* Needed since LO don't understand
|
||||
int srcOff; /* Needed since LO don't understand
|
||||
* SEEK_CUR */
|
||||
char *baseDestFp = (char *) destfp;
|
||||
char *baseDestFp = (char *) destfp;
|
||||
|
||||
CHUNK_INFO *A = (CHUNK_INFO *) ARR_DATA_PTR(array);
|
||||
CHUNK_INFO *A = (CHUNK_INFO *) ARR_DATA_PTR(array);
|
||||
|
||||
n = ARR_NDIM(array);
|
||||
dim = ARR_DIMS(array);
|
||||
@@ -584,7 +583,7 @@ _ReadChunkArray(int st[],
|
||||
* compute next tuple in range[]
|
||||
*/
|
||||
{
|
||||
int x;
|
||||
int x;
|
||||
|
||||
if (!(i + 1))
|
||||
j = -1;
|
||||
@@ -641,21 +640,21 @@ _ReadChunkArray1El(int st[],
|
||||
ArrayType * array,
|
||||
bool * isNull)
|
||||
{
|
||||
int i,
|
||||
j,
|
||||
n,
|
||||
temp,
|
||||
srcOff;
|
||||
int chunk_st[MAXDIM];
|
||||
int i,
|
||||
j,
|
||||
n,
|
||||
temp,
|
||||
srcOff;
|
||||
int chunk_st[MAXDIM];
|
||||
|
||||
int *C,
|
||||
csize,
|
||||
*dim,
|
||||
*lb;
|
||||
int PCHUNK[MAXDIM],
|
||||
PC[MAXDIM];
|
||||
int *C,
|
||||
csize,
|
||||
*dim,
|
||||
*lb;
|
||||
int PCHUNK[MAXDIM],
|
||||
PC[MAXDIM];
|
||||
|
||||
CHUNK_INFO *A = (CHUNK_INFO *) ARR_DATA_PTR(array);
|
||||
CHUNK_INFO *A = (CHUNK_INFO *) ARR_DATA_PTR(array);
|
||||
|
||||
n = ARR_NDIM(array);
|
||||
lb = ARR_LBOUND(array);
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/date.c,v 1.15 1997/09/07 04:50:06 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/date.c,v 1.16 1997/09/08 02:30:32 momjian Exp $
|
||||
*
|
||||
* NOTES
|
||||
* This code is actually (almost) unused.
|
||||
@@ -74,7 +74,7 @@
|
||||
#define ABSTIMEMAX(t1, t2) abstimelt((t1),(t2)) ? (t2) : (t1)
|
||||
|
||||
#if FALSE
|
||||
static char *unit_tab[] = {
|
||||
static char *unit_tab[] = {
|
||||
"second", "seconds", "minute", "minutes",
|
||||
"hour", "hours", "day", "days", "week", "weeks",
|
||||
"month", "months", "year", "years"};
|
||||
@@ -83,7 +83,7 @@ static char *unit_tab[] = {
|
||||
#define NUNITS 14 /* number of different units */
|
||||
|
||||
/* table of seconds per unit (month = 30 days, year = 365 days) */
|
||||
static int sec_tab[] = {
|
||||
static int sec_tab[] = {
|
||||
1, 1, 60, 60,
|
||||
3600, 3600, 86400, 86400, 604800, 604800,
|
||||
2592000, 2592000, 31536000, 31536000};
|
||||
@@ -94,11 +94,11 @@ static int sec_tab[] = {
|
||||
* Function prototypes -- internal to this file only
|
||||
*/
|
||||
|
||||
static void reltime2tm(int32 time, struct tm * tm);
|
||||
static void reltime2tm(int32 time, struct tm * tm);
|
||||
|
||||
#if FALSE
|
||||
static int correct_unit(char unit[], int *unptr);
|
||||
static int correct_dir(char direction[], int *signptr);
|
||||
static int correct_unit(char unit[], int *unptr);
|
||||
static int correct_dir(char direction[], int *signptr);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -117,16 +117,16 @@ istinterval(char *i_string,
|
||||
RelativeTime
|
||||
reltimein(char *str)
|
||||
{
|
||||
RelativeTime result;
|
||||
RelativeTime result;
|
||||
|
||||
struct tm tt,
|
||||
*tm = &tt;
|
||||
double fsec;
|
||||
int dtype;
|
||||
char *field[MAXDATEFIELDS];
|
||||
int nf,
|
||||
ftype[MAXDATEFIELDS];
|
||||
char lowstr[MAXDATELEN + 1];
|
||||
struct tm tt,
|
||||
*tm = &tt;
|
||||
double fsec;
|
||||
int dtype;
|
||||
char *field[MAXDATEFIELDS];
|
||||
int nf,
|
||||
ftype[MAXDATEFIELDS];
|
||||
char lowstr[MAXDATELEN + 1];
|
||||
|
||||
if (!PointerIsValid(str))
|
||||
elog(WARN, "Bad (null) date external representation", NULL);
|
||||
@@ -144,13 +144,13 @@ reltimein(char *str)
|
||||
|
||||
switch (dtype)
|
||||
{
|
||||
case DTK_DELTA:
|
||||
result = ((((tm->tm_hour * 60) + tm->tm_min) * 60) + tm->tm_sec);
|
||||
result += (((tm->tm_year * 365) + (tm->tm_mon * 30) + tm->tm_mday) * (24 * 60 * 60));
|
||||
return (result);
|
||||
case DTK_DELTA:
|
||||
result = ((((tm->tm_hour * 60) + tm->tm_min) * 60) + tm->tm_sec);
|
||||
result += (((tm->tm_year * 365) + (tm->tm_mon * 30) + tm->tm_mday) * (24 * 60 * 60));
|
||||
return (result);
|
||||
|
||||
default:
|
||||
return (INVALID_RELTIME);
|
||||
default:
|
||||
return (INVALID_RELTIME);
|
||||
}
|
||||
|
||||
elog(WARN, "Bad reltime (internal coding error) '%s'", str);
|
||||
@@ -161,13 +161,13 @@ reltimein(char *str)
|
||||
/*
|
||||
* reltimeout - converts the internal format to a reltime string
|
||||
*/
|
||||
char *
|
||||
char *
|
||||
reltimeout(int32 time)
|
||||
{
|
||||
char *result;
|
||||
struct tm tt,
|
||||
*tm = &tt;
|
||||
char buf[MAXDATELEN + 1];
|
||||
char *result;
|
||||
struct tm tt,
|
||||
*tm = &tt;
|
||||
char buf[MAXDATELEN + 1];
|
||||
|
||||
if (time == INVALID_RELTIME)
|
||||
{
|
||||
@@ -204,10 +204,10 @@ reltime2tm(int32 time, struct tm * tm)
|
||||
} /* reltime2tm() */
|
||||
|
||||
#if FALSE
|
||||
char *timestring;
|
||||
long quantity;
|
||||
register int i;
|
||||
int unitnr;
|
||||
char *timestring;
|
||||
long quantity;
|
||||
register int i;
|
||||
int unitnr;
|
||||
|
||||
timestring = (char *) palloc(Max(strlen(INVALID_RELTIME_STR),
|
||||
UNITMAXLEN) + 1);
|
||||
@@ -245,12 +245,12 @@ return (timestring);
|
||||
TimeInterval
|
||||
tintervalin(char *intervalstr)
|
||||
{
|
||||
int error;
|
||||
AbsoluteTime i_start,
|
||||
i_end,
|
||||
t1,
|
||||
t2;
|
||||
TimeInterval interval;
|
||||
int error;
|
||||
AbsoluteTime i_start,
|
||||
i_end,
|
||||
t1,
|
||||
t2;
|
||||
TimeInterval interval;
|
||||
|
||||
interval = (TimeInterval) palloc(sizeof(TimeIntervalData));
|
||||
error = istinterval(intervalstr, &t1, &t2);
|
||||
@@ -274,11 +274,11 @@ tintervalin(char *intervalstr)
|
||||
* tintervalout - converts an internal interval format to a string
|
||||
*
|
||||
*/
|
||||
char *
|
||||
char *
|
||||
tintervalout(TimeInterval interval)
|
||||
{
|
||||
char *i_str,
|
||||
*p;
|
||||
char *i_str,
|
||||
*p;
|
||||
|
||||
i_str = (char *) palloc(T_INTERVAL_LEN); /* ['...' '...'] */
|
||||
strcpy(i_str, "[\"");
|
||||
@@ -306,10 +306,10 @@ tintervalout(TimeInterval interval)
|
||||
RelativeTime
|
||||
timespan_reltime(TimeSpan * timespan)
|
||||
{
|
||||
RelativeTime time;
|
||||
int year,
|
||||
month;
|
||||
double span;
|
||||
RelativeTime time;
|
||||
int year,
|
||||
month;
|
||||
double span;
|
||||
|
||||
if (!PointerIsValid(timespan))
|
||||
time = INVALID_RELTIME;
|
||||
@@ -353,28 +353,28 @@ timespan_reltime(TimeSpan * timespan)
|
||||
} /* timespan_reltime() */
|
||||
|
||||
|
||||
TimeSpan *
|
||||
TimeSpan *
|
||||
reltime_timespan(RelativeTime reltime)
|
||||
{
|
||||
TimeSpan *result;
|
||||
int year,
|
||||
month;
|
||||
TimeSpan *result;
|
||||
int year,
|
||||
month;
|
||||
|
||||
if (!PointerIsValid(result = PALLOCTYPE(TimeSpan)))
|
||||
elog(WARN, "Memory allocation failed, can't convert reltime to timespan", NULL);
|
||||
|
||||
switch (reltime)
|
||||
{
|
||||
case INVALID_RELTIME:
|
||||
TIMESPAN_INVALID(*result);
|
||||
break;
|
||||
case INVALID_RELTIME:
|
||||
TIMESPAN_INVALID(*result);
|
||||
break;
|
||||
|
||||
default:
|
||||
TMODULO(reltime, year, 31536000);
|
||||
TMODULO(reltime, month, 2592000);
|
||||
default:
|
||||
TMODULO(reltime, year, 31536000);
|
||||
TMODULO(reltime, month, 2592000);
|
||||
|
||||
result->time = reltime;
|
||||
result->month = ((12 * year) + month);
|
||||
result->time = reltime;
|
||||
result->month = ((12 * year) + month);
|
||||
}
|
||||
|
||||
return (result);
|
||||
@@ -387,9 +387,9 @@ reltime_timespan(RelativeTime reltime)
|
||||
TimeInterval
|
||||
mktinterval(AbsoluteTime t1, AbsoluteTime t2)
|
||||
{
|
||||
AbsoluteTime tstart = ABSTIMEMIN(t1, t2),
|
||||
tend = ABSTIMEMAX(t1, t2);
|
||||
TimeInterval interval;
|
||||
AbsoluteTime tstart = ABSTIMEMIN(t1, t2),
|
||||
tend = ABSTIMEMAX(t1, t2);
|
||||
TimeInterval interval;
|
||||
|
||||
interval = (TimeInterval) palloc(sizeof(TimeIntervalData));
|
||||
if (t1 == INVALID_ABSTIME || t2 == INVALID_ABSTIME)
|
||||
@@ -500,7 +500,7 @@ intervalrel(TimeInterval interval)
|
||||
AbsoluteTime
|
||||
timenow()
|
||||
{
|
||||
time_t sec;
|
||||
time_t sec;
|
||||
|
||||
if (time(&sec) < 0)
|
||||
return (INVALID_ABSTIME);
|
||||
@@ -583,7 +583,7 @@ intervaleq(TimeInterval i1, TimeInterval i2)
|
||||
bool
|
||||
intervalleneq(TimeInterval i, RelativeTime t)
|
||||
{
|
||||
RelativeTime rt;
|
||||
RelativeTime rt;
|
||||
|
||||
if ((i->status == T_INTERVAL_INVAL) || (t == INVALID_RELTIME))
|
||||
return (0);
|
||||
@@ -598,7 +598,7 @@ intervalleneq(TimeInterval i, RelativeTime t)
|
||||
bool
|
||||
intervallenne(TimeInterval i, RelativeTime t)
|
||||
{
|
||||
RelativeTime rt;
|
||||
RelativeTime rt;
|
||||
|
||||
if ((i->status == T_INTERVAL_INVAL) || (t == INVALID_RELTIME))
|
||||
return (0);
|
||||
@@ -613,7 +613,7 @@ intervallenne(TimeInterval i, RelativeTime t)
|
||||
bool
|
||||
intervallenlt(TimeInterval i, RelativeTime t)
|
||||
{
|
||||
RelativeTime rt;
|
||||
RelativeTime rt;
|
||||
|
||||
if ((i->status == T_INTERVAL_INVAL) || (t == INVALID_RELTIME))
|
||||
return (0);
|
||||
@@ -628,7 +628,7 @@ intervallenlt(TimeInterval i, RelativeTime t)
|
||||
bool
|
||||
intervallengt(TimeInterval i, RelativeTime t)
|
||||
{
|
||||
RelativeTime rt;
|
||||
RelativeTime rt;
|
||||
|
||||
if ((i->status == T_INTERVAL_INVAL) || (t == INVALID_RELTIME))
|
||||
return (0);
|
||||
@@ -643,7 +643,7 @@ intervallengt(TimeInterval i, RelativeTime t)
|
||||
bool
|
||||
intervallenle(TimeInterval i, RelativeTime t)
|
||||
{
|
||||
RelativeTime rt;
|
||||
RelativeTime rt;
|
||||
|
||||
if ((i->status == T_INTERVAL_INVAL) || (t == INVALID_RELTIME))
|
||||
return (0);
|
||||
@@ -658,7 +658,7 @@ intervallenle(TimeInterval i, RelativeTime t)
|
||||
bool
|
||||
intervallenge(TimeInterval i, RelativeTime t)
|
||||
{
|
||||
RelativeTime rt;
|
||||
RelativeTime rt;
|
||||
|
||||
if ((i->status == T_INTERVAL_INVAL) || (t == INVALID_RELTIME))
|
||||
return (0);
|
||||
@@ -727,14 +727,14 @@ intervalend(TimeInterval i)
|
||||
int
|
||||
isreltime(char *str)
|
||||
{
|
||||
struct tm tt,
|
||||
*tm = &tt;
|
||||
double fsec;
|
||||
int dtype;
|
||||
char *field[MAXDATEFIELDS];
|
||||
int nf,
|
||||
ftype[MAXDATEFIELDS];
|
||||
char lowstr[MAXDATELEN + 1];
|
||||
struct tm tt,
|
||||
*tm = &tt;
|
||||
double fsec;
|
||||
int dtype;
|
||||
char *field[MAXDATEFIELDS];
|
||||
int nf,
|
||||
ftype[MAXDATEFIELDS];
|
||||
char lowstr[MAXDATELEN + 1];
|
||||
|
||||
if (!PointerIsValid(str))
|
||||
return 0;
|
||||
@@ -748,31 +748,31 @@ isreltime(char *str)
|
||||
|
||||
switch (dtype)
|
||||
{
|
||||
case (DTK_DELTA):
|
||||
return ((abs(tm->tm_year) <= 68) ? 1 : 0);
|
||||
break;
|
||||
case (DTK_DELTA):
|
||||
return ((abs(tm->tm_year) <= 68) ? 1 : 0);
|
||||
break;
|
||||
|
||||
case (DTK_INVALID):
|
||||
return 2;
|
||||
break;
|
||||
case (DTK_INVALID):
|
||||
return 2;
|
||||
break;
|
||||
|
||||
default:
|
||||
return 0;
|
||||
break;
|
||||
default:
|
||||
return 0;
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
} /* isreltime() */
|
||||
|
||||
#if FALSE
|
||||
register char *p;
|
||||
register char c;
|
||||
int i;
|
||||
char unit[UNITMAXLEN];
|
||||
char direction[DIRMAXLEN];
|
||||
int localSign;
|
||||
int localUnitNumber;
|
||||
long localQuantity;
|
||||
register char *p;
|
||||
register char c;
|
||||
int i;
|
||||
char unit[UNITMAXLEN];
|
||||
char direction[DIRMAXLEN];
|
||||
int localSign;
|
||||
int localUnitNumber;
|
||||
long localQuantity;
|
||||
|
||||
if (!PointerIsValid(sign))
|
||||
{
|
||||
@@ -897,7 +897,7 @@ return (1);
|
||||
static int
|
||||
correct_unit(char unit[], int *unptr)
|
||||
{
|
||||
int j = 0;
|
||||
int j = 0;
|
||||
|
||||
while (j < NUNITS)
|
||||
{
|
||||
@@ -955,9 +955,9 @@ istinterval(char *i_string,
|
||||
AbsoluteTime * i_start,
|
||||
AbsoluteTime * i_end)
|
||||
{
|
||||
register char *p,
|
||||
*p1;
|
||||
register char c;
|
||||
register char *p,
|
||||
*p1;
|
||||
register char c;
|
||||
|
||||
p = i_string;
|
||||
/* skip leading blanks up to '[' */
|
||||
@@ -1058,16 +1058,16 @@ istinterval(char *i_string,
|
||||
* the Wisconsin benchmark with Illustra whose TimeNow() shows current
|
||||
* time with precision up to microsecs.) - ay 3/95
|
||||
*/
|
||||
text *
|
||||
text *
|
||||
timeofday(void)
|
||||
{
|
||||
|
||||
struct timeval tp;
|
||||
struct timeval tp;
|
||||
struct timezone tpz;
|
||||
char templ[500];
|
||||
char buf[500];
|
||||
text *tm;
|
||||
int len = 0;
|
||||
char templ[500];
|
||||
char buf[500];
|
||||
text *tm;
|
||||
int len = 0;
|
||||
|
||||
gettimeofday(&tp, &tpz);
|
||||
strftime(templ, sizeof(templ), "%a %b %d %H:%M:%S.%%d %Y %Z",
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/datetime.c,v 1.14 1997/09/07 04:50:08 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/datetime.c,v 1.15 1997/09/08 02:30:34 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -25,10 +25,10 @@
|
||||
#include "utils/datetime.h"
|
||||
#include "access/xact.h"
|
||||
|
||||
static int date2tm(DateADT dateVal, int *tzp, struct tm * tm, double *fsec, char **tzn);
|
||||
static int date2tm(DateADT dateVal, int *tzp, struct tm * tm, double *fsec, char **tzn);
|
||||
|
||||
|
||||
static int day_tab[2][12] = {
|
||||
static int day_tab[2][12] = {
|
||||
{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
|
||||
{31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}};
|
||||
|
||||
@@ -59,16 +59,16 @@ static int day_tab[2][12] = {
|
||||
DateADT
|
||||
date_in(char *str)
|
||||
{
|
||||
DateADT date;
|
||||
double fsec;
|
||||
struct tm tt,
|
||||
*tm = &tt;
|
||||
int tzp;
|
||||
int dtype;
|
||||
int nf;
|
||||
char *field[MAXDATEFIELDS];
|
||||
int ftype[MAXDATEFIELDS];
|
||||
char lowstr[MAXDATELEN + 1];
|
||||
DateADT date;
|
||||
double fsec;
|
||||
struct tm tt,
|
||||
*tm = &tt;
|
||||
int tzp;
|
||||
int dtype;
|
||||
int nf;
|
||||
char *field[MAXDATEFIELDS];
|
||||
int ftype[MAXDATEFIELDS];
|
||||
char lowstr[MAXDATELEN + 1];
|
||||
|
||||
if (!PointerIsValid(str))
|
||||
elog(WARN, "Bad (null) date external representation", NULL);
|
||||
@@ -82,21 +82,21 @@ date_in(char *str)
|
||||
|
||||
switch (dtype)
|
||||
{
|
||||
case DTK_DATE:
|
||||
break;
|
||||
case DTK_DATE:
|
||||
break;
|
||||
|
||||
case DTK_CURRENT:
|
||||
GetCurrentTime(tm);
|
||||
break;
|
||||
case DTK_CURRENT:
|
||||
GetCurrentTime(tm);
|
||||
break;
|
||||
|
||||
case DTK_EPOCH:
|
||||
tm->tm_year = 1970;
|
||||
tm->tm_mon = 1;
|
||||
tm->tm_mday = 1;
|
||||
break;
|
||||
case DTK_EPOCH:
|
||||
tm->tm_year = 1970;
|
||||
tm->tm_mon = 1;
|
||||
tm->tm_mday = 1;
|
||||
break;
|
||||
|
||||
default:
|
||||
elog(WARN, "Unrecognized date external representation %s", str);
|
||||
default:
|
||||
elog(WARN, "Unrecognized date external representation %s", str);
|
||||
}
|
||||
|
||||
if (tm->tm_year < 0 || tm->tm_year > 32767)
|
||||
@@ -115,18 +115,18 @@ date_in(char *str)
|
||||
/* date_out()
|
||||
* Given internal format date, convert to text string.
|
||||
*/
|
||||
char *
|
||||
char *
|
||||
date_out(DateADT date)
|
||||
{
|
||||
char *result;
|
||||
struct tm tt,
|
||||
*tm = &tt;
|
||||
char buf[MAXDATELEN + 1];
|
||||
char *result;
|
||||
struct tm tt,
|
||||
*tm = &tt;
|
||||
char buf[MAXDATELEN + 1];
|
||||
|
||||
#if FALSE
|
||||
int year,
|
||||
month,
|
||||
day;
|
||||
int year,
|
||||
month,
|
||||
day;
|
||||
|
||||
#endif
|
||||
|
||||
@@ -237,15 +237,15 @@ date_mii(DateADT dateVal, int4 days)
|
||||
/* date_datetime()
|
||||
* Convert date to datetime data type.
|
||||
*/
|
||||
DateTime *
|
||||
DateTime *
|
||||
date_datetime(DateADT dateVal)
|
||||
{
|
||||
DateTime *result;
|
||||
struct tm tt,
|
||||
*tm = &tt;
|
||||
int tz;
|
||||
double fsec = 0;
|
||||
char *tzn;
|
||||
DateTime *result;
|
||||
struct tm tt,
|
||||
*tm = &tt;
|
||||
int tz;
|
||||
double fsec = 0;
|
||||
char *tzn;
|
||||
|
||||
result = PALLOCTYPE(DateTime);
|
||||
|
||||
@@ -270,12 +270,12 @@ date_datetime(DateADT dateVal)
|
||||
DateADT
|
||||
datetime_date(DateTime * datetime)
|
||||
{
|
||||
DateADT result;
|
||||
struct tm tt,
|
||||
*tm = &tt;
|
||||
int tz;
|
||||
double fsec;
|
||||
char *tzn;
|
||||
DateADT result;
|
||||
struct tm tt,
|
||||
*tm = &tt;
|
||||
int tz;
|
||||
double fsec;
|
||||
char *tzn;
|
||||
|
||||
if (!PointerIsValid(datetime))
|
||||
elog(WARN, "Unable to convert null datetime to date", NULL);
|
||||
@@ -311,36 +311,36 @@ datetime_date(DateTime * datetime)
|
||||
DateADT
|
||||
abstime_date(AbsoluteTime abstime)
|
||||
{
|
||||
DateADT result;
|
||||
struct tm tt,
|
||||
*tm = &tt;
|
||||
int tz;
|
||||
DateADT result;
|
||||
struct tm tt,
|
||||
*tm = &tt;
|
||||
int tz;
|
||||
|
||||
switch (abstime)
|
||||
{
|
||||
case INVALID_ABSTIME:
|
||||
case NOSTART_ABSTIME:
|
||||
case NOEND_ABSTIME:
|
||||
elog(WARN, "Unable to convert reserved abstime value to date", NULL);
|
||||
case INVALID_ABSTIME:
|
||||
case NOSTART_ABSTIME:
|
||||
case NOEND_ABSTIME:
|
||||
elog(WARN, "Unable to convert reserved abstime value to date", NULL);
|
||||
|
||||
/*
|
||||
* pretend to drop through to make compiler think that result will
|
||||
* be set
|
||||
*/
|
||||
/*
|
||||
* pretend to drop through to make compiler think that result
|
||||
* will be set
|
||||
*/
|
||||
|
||||
case EPOCH_ABSTIME:
|
||||
result = date2j(1970, 1, 1) - date2j(2000, 1, 1);
|
||||
break;
|
||||
case EPOCH_ABSTIME:
|
||||
result = date2j(1970, 1, 1) - date2j(2000, 1, 1);
|
||||
break;
|
||||
|
||||
case CURRENT_ABSTIME:
|
||||
GetCurrentTime(tm);
|
||||
result = date2j(tm->tm_year, tm->tm_mon, tm->tm_mday) - date2j(2000, 1, 1);
|
||||
break;
|
||||
case CURRENT_ABSTIME:
|
||||
GetCurrentTime(tm);
|
||||
result = date2j(tm->tm_year, tm->tm_mon, tm->tm_mday) - date2j(2000, 1, 1);
|
||||
break;
|
||||
|
||||
default:
|
||||
abstime2tm(abstime, &tz, tm, NULL);
|
||||
result = date2j(tm->tm_year, tm->tm_mon, tm->tm_mday) - date2j(2000, 1, 1);
|
||||
break;
|
||||
default:
|
||||
abstime2tm(abstime, &tz, tm, NULL);
|
||||
result = date2j(tm->tm_year, tm->tm_mon, tm->tm_mday) - date2j(2000, 1, 1);
|
||||
break;
|
||||
}
|
||||
|
||||
return (result);
|
||||
@@ -356,8 +356,8 @@ abstime_date(AbsoluteTime abstime)
|
||||
static int
|
||||
date2tm(DateADT dateVal, int *tzp, struct tm * tm, double *fsec, char **tzn)
|
||||
{
|
||||
struct tm *tx;
|
||||
time_t utime;
|
||||
struct tm *tx;
|
||||
time_t utime;
|
||||
|
||||
*fsec = 0;
|
||||
|
||||
@@ -447,20 +447,20 @@ date2tm(DateADT dateVal, int *tzp, struct tm * tm, double *fsec, char **tzn)
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
TimeADT *
|
||||
TimeADT *
|
||||
time_in(char *str)
|
||||
{
|
||||
TimeADT *time;
|
||||
TimeADT *time;
|
||||
|
||||
double fsec;
|
||||
struct tm tt,
|
||||
*tm = &tt;
|
||||
double fsec;
|
||||
struct tm tt,
|
||||
*tm = &tt;
|
||||
|
||||
int nf;
|
||||
char lowstr[MAXDATELEN + 1];
|
||||
char *field[MAXDATEFIELDS];
|
||||
int dtype;
|
||||
int ftype[MAXDATEFIELDS];
|
||||
int nf;
|
||||
char lowstr[MAXDATELEN + 1];
|
||||
char *field[MAXDATEFIELDS];
|
||||
int dtype;
|
||||
int ftype[MAXDATEFIELDS];
|
||||
|
||||
if (!PointerIsValid(str))
|
||||
elog(WARN, "Bad (null) time external representation", NULL);
|
||||
@@ -484,21 +484,21 @@ time_in(char *str)
|
||||
} /* time_in() */
|
||||
|
||||
|
||||
char *
|
||||
char *
|
||||
time_out(TimeADT * time)
|
||||
{
|
||||
char *result;
|
||||
struct tm tt,
|
||||
*tm = &tt;
|
||||
char *result;
|
||||
struct tm tt,
|
||||
*tm = &tt;
|
||||
|
||||
#if FALSE
|
||||
int hour,
|
||||
min,
|
||||
sec;
|
||||
int hour,
|
||||
min,
|
||||
sec;
|
||||
|
||||
#endif
|
||||
double fsec;
|
||||
char buf[MAXDATELEN + 1];
|
||||
double fsec;
|
||||
char buf[MAXDATELEN + 1];
|
||||
|
||||
if (!PointerIsValid(time))
|
||||
return NULL;
|
||||
@@ -602,10 +602,10 @@ time_cmp(TimeADT * time1, TimeADT * time2)
|
||||
/* datetime_datetime()
|
||||
* Convert date and time to datetime data type.
|
||||
*/
|
||||
DateTime *
|
||||
DateTime *
|
||||
datetime_datetime(DateADT date, TimeADT * time)
|
||||
{
|
||||
DateTime *result;
|
||||
DateTime *result;
|
||||
|
||||
if (!PointerIsValid(time))
|
||||
{
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/datum.c,v 1.6 1997/09/07 04:50:09 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/datum.c,v 1.7 1997/09/08 02:30:35 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -51,7 +51,7 @@ datumGetSize(Datum value, Oid type, bool byVal, Size len)
|
||||
{
|
||||
|
||||
struct varlena *s;
|
||||
Size size = 0;
|
||||
Size size = 0;
|
||||
|
||||
if (byVal)
|
||||
{
|
||||
@@ -110,9 +110,9 @@ Datum
|
||||
datumCopy(Datum value, Oid type, bool byVal, Size len)
|
||||
{
|
||||
|
||||
Size realSize;
|
||||
Datum res;
|
||||
char *s;
|
||||
Size realSize;
|
||||
Datum res;
|
||||
char *s;
|
||||
|
||||
|
||||
if (byVal)
|
||||
@@ -154,8 +154,8 @@ void
|
||||
datumFree(Datum value, Oid type, bool byVal, Size len)
|
||||
{
|
||||
|
||||
Size realSize;
|
||||
Pointer s;
|
||||
Size realSize;
|
||||
Pointer s;
|
||||
|
||||
realSize = datumGetSize(value, type, byVal, len);
|
||||
|
||||
@@ -188,10 +188,10 @@ datumFree(Datum value, Oid type, bool byVal, Size len)
|
||||
bool
|
||||
datumIsEqual(Datum value1, Datum value2, Oid type, bool byVal, Size len)
|
||||
{
|
||||
Size size1,
|
||||
size2;
|
||||
char *s1,
|
||||
*s2;
|
||||
Size size1,
|
||||
size2;
|
||||
char *s1,
|
||||
*s2;
|
||||
|
||||
if (byVal)
|
||||
{
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/filename.c,v 1.9 1997/09/07 04:50:14 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/filename.c,v 1.10 1997/09/08 02:30:40 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -22,11 +22,11 @@
|
||||
#include <miscadmin.h>
|
||||
#include "utils/builtins.h" /* where function declarations go */
|
||||
|
||||
char *
|
||||
char *
|
||||
filename_in(char *file)
|
||||
{
|
||||
char *str;
|
||||
int ind = 0;
|
||||
char *str;
|
||||
int ind = 0;
|
||||
|
||||
/*
|
||||
* XXX - HACK CITY --- REDO should let the shell do expansions
|
||||
@@ -41,8 +41,8 @@ filename_in(char *file)
|
||||
{
|
||||
/* Home directory */
|
||||
|
||||
char *userName;
|
||||
struct passwd *pw;
|
||||
char *userName;
|
||||
struct passwd *pw;
|
||||
|
||||
userName = GetPgUserName();
|
||||
|
||||
@@ -59,10 +59,10 @@ filename_in(char *file)
|
||||
else
|
||||
{
|
||||
/* Someone else's directory */
|
||||
char name[16],
|
||||
*p;
|
||||
struct passwd *pw;
|
||||
int len;
|
||||
char name[16],
|
||||
*p;
|
||||
struct passwd *pw;
|
||||
int len;
|
||||
|
||||
if ((p = (char *) strchr(file, '/')) == NULL)
|
||||
{
|
||||
@@ -89,10 +89,10 @@ filename_in(char *file)
|
||||
}
|
||||
else if (file[0] == '$')
|
||||
{ /* $POSTGRESHOME, etc. expand it. */
|
||||
char environment[80],
|
||||
*envirp,
|
||||
*p;
|
||||
int len;
|
||||
char environment[80],
|
||||
*envirp,
|
||||
*p;
|
||||
int len;
|
||||
|
||||
if ((p = (char *) strchr(file, '/')) == NULL)
|
||||
{
|
||||
@@ -123,10 +123,10 @@ filename_in(char *file)
|
||||
return (str);
|
||||
}
|
||||
|
||||
char *
|
||||
char *
|
||||
filename_out(char *s)
|
||||
{
|
||||
char *ret;
|
||||
char *ret;
|
||||
|
||||
if (!s)
|
||||
return ((char *) NULL);
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/float.c,v 1.18 1997/09/07 04:50:15 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/float.c,v 1.19 1997/09/08 02:30:41 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -81,36 +81,36 @@
|
||||
/* NS3.3 has conflicting declarations of these in <math.h> */
|
||||
|
||||
#ifndef atof
|
||||
extern double atof(const char *p);
|
||||
extern double atof(const char *p);
|
||||
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_CBRT
|
||||
#define cbrt my_cbrt
|
||||
static double cbrt(double x);
|
||||
static double cbrt(double x);
|
||||
|
||||
#else
|
||||
#if !defined(nextstep)
|
||||
extern double cbrt(double x);
|
||||
extern double cbrt(double x);
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_RINT
|
||||
#define rint my_rint
|
||||
static double rint(double x);
|
||||
static double rint(double x);
|
||||
|
||||
#else
|
||||
extern double rint(double x);
|
||||
extern double rint(double x);
|
||||
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_ISINF
|
||||
#define isinf my_isinf
|
||||
static int isinf(double x);
|
||||
static int isinf(double x);
|
||||
|
||||
#else
|
||||
extern int isinf(double x);
|
||||
extern int isinf(double x);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -203,9 +203,9 @@ CheckFloat8Val(double val)
|
||||
float32
|
||||
float4in(char *num)
|
||||
{
|
||||
float32 result = (float32) palloc(sizeof(float32data));
|
||||
double val;
|
||||
char *endptr;
|
||||
float32 result = (float32) palloc(sizeof(float32data));
|
||||
double val;
|
||||
char *endptr;
|
||||
|
||||
errno = 0;
|
||||
val = strtod(num, &endptr);
|
||||
@@ -227,10 +227,10 @@ float4in(char *num)
|
||||
* float4out - converts a float4 number to a string
|
||||
* using a standard output format
|
||||
*/
|
||||
char *
|
||||
char *
|
||||
float4out(float32 num)
|
||||
{
|
||||
char *ascii = (char *) palloc(MAXFLOATWIDTH + 1);
|
||||
char *ascii = (char *) palloc(MAXFLOATWIDTH + 1);
|
||||
|
||||
if (!num)
|
||||
return strcpy(ascii, "(null)");
|
||||
@@ -250,9 +250,9 @@ float4out(float32 num)
|
||||
float64
|
||||
float8in(char *num)
|
||||
{
|
||||
float64 result = (float64) palloc(sizeof(float64data));
|
||||
double val;
|
||||
char *endptr;
|
||||
float64 result = (float64) palloc(sizeof(float64data));
|
||||
double val;
|
||||
char *endptr;
|
||||
|
||||
errno = 0;
|
||||
val = strtod(num, &endptr);
|
||||
@@ -269,10 +269,10 @@ float8in(char *num)
|
||||
* float8out - converts float8 number to a string
|
||||
* using a standard output format
|
||||
*/
|
||||
char *
|
||||
char *
|
||||
float8out(float64 num)
|
||||
{
|
||||
char *ascii = (char *) palloc(MAXDOUBLEWIDTH + 1);
|
||||
char *ascii = (char *) palloc(MAXDOUBLEWIDTH + 1);
|
||||
|
||||
if (!num)
|
||||
return strcpy(ascii, "(null)");
|
||||
@@ -301,8 +301,8 @@ float8out(float64 num)
|
||||
float32
|
||||
float4abs(float32 arg1)
|
||||
{
|
||||
float32 result;
|
||||
double val;
|
||||
float32 result;
|
||||
double val;
|
||||
|
||||
if (!arg1)
|
||||
return (float32) NULL;
|
||||
@@ -322,8 +322,8 @@ float4abs(float32 arg1)
|
||||
float32
|
||||
float4um(float32 arg1)
|
||||
{
|
||||
float32 result;
|
||||
double val;
|
||||
float32 result;
|
||||
double val;
|
||||
|
||||
if (!arg1)
|
||||
return (float32) NULL;
|
||||
@@ -339,7 +339,7 @@ float4um(float32 arg1)
|
||||
float32
|
||||
float4larger(float32 arg1, float32 arg2)
|
||||
{
|
||||
float32 result;
|
||||
float32 result;
|
||||
|
||||
if (!arg1 || !arg2)
|
||||
return (float32) NULL;
|
||||
@@ -353,7 +353,7 @@ float4larger(float32 arg1, float32 arg2)
|
||||
float32
|
||||
float4smaller(float32 arg1, float32 arg2)
|
||||
{
|
||||
float32 result;
|
||||
float32 result;
|
||||
|
||||
if (!arg1 || !arg2)
|
||||
return (float32) NULL;
|
||||
@@ -376,8 +376,8 @@ float4smaller(float32 arg1, float32 arg2)
|
||||
float64
|
||||
float8abs(float64 arg1)
|
||||
{
|
||||
float64 result;
|
||||
double val;
|
||||
float64 result;
|
||||
double val;
|
||||
|
||||
if (!arg1)
|
||||
return (float64) NULL;
|
||||
@@ -397,8 +397,8 @@ float8abs(float64 arg1)
|
||||
float64
|
||||
float8um(float64 arg1)
|
||||
{
|
||||
float64 result;
|
||||
double val;
|
||||
float64 result;
|
||||
double val;
|
||||
|
||||
if (!arg1)
|
||||
return (float64) NULL;
|
||||
@@ -414,7 +414,7 @@ float8um(float64 arg1)
|
||||
float64
|
||||
float8larger(float64 arg1, float64 arg2)
|
||||
{
|
||||
float64 result;
|
||||
float64 result;
|
||||
|
||||
if (!arg1 || !arg2)
|
||||
return (float64) NULL;
|
||||
@@ -428,7 +428,7 @@ float8larger(float64 arg1, float64 arg2)
|
||||
float64
|
||||
float8smaller(float64 arg1, float64 arg2)
|
||||
{
|
||||
float64 result;
|
||||
float64 result;
|
||||
|
||||
if (!arg1 || !arg2)
|
||||
return (float64) NULL;
|
||||
@@ -456,8 +456,8 @@ float8smaller(float64 arg1, float64 arg2)
|
||||
float32
|
||||
float4pl(float32 arg1, float32 arg2)
|
||||
{
|
||||
float32 result;
|
||||
double val;
|
||||
float32 result;
|
||||
double val;
|
||||
|
||||
if (!arg1 || !arg2)
|
||||
return (float32) NULL;
|
||||
@@ -474,8 +474,8 @@ float4pl(float32 arg1, float32 arg2)
|
||||
float32
|
||||
float4mi(float32 arg1, float32 arg2)
|
||||
{
|
||||
float32 result;
|
||||
double val;
|
||||
float32 result;
|
||||
double val;
|
||||
|
||||
if (!arg1 || !arg2)
|
||||
return (float32) NULL;
|
||||
@@ -491,8 +491,8 @@ float4mi(float32 arg1, float32 arg2)
|
||||
float32
|
||||
float4mul(float32 arg1, float32 arg2)
|
||||
{
|
||||
float32 result;
|
||||
double val;
|
||||
float32 result;
|
||||
double val;
|
||||
|
||||
if (!arg1 || !arg2)
|
||||
return (float32) NULL;
|
||||
@@ -508,8 +508,8 @@ float4mul(float32 arg1, float32 arg2)
|
||||
float32
|
||||
float4div(float32 arg1, float32 arg2)
|
||||
{
|
||||
float32 result;
|
||||
double val;
|
||||
float32 result;
|
||||
double val;
|
||||
|
||||
if (!arg1 || !arg2)
|
||||
return (float32) NULL;
|
||||
@@ -528,7 +528,7 @@ float4div(float32 arg1, float32 arg2)
|
||||
float32
|
||||
float4inc(float32 arg1)
|
||||
{
|
||||
double val;
|
||||
double val;
|
||||
|
||||
if (!arg1)
|
||||
return (float32) NULL;
|
||||
@@ -549,8 +549,8 @@ float4inc(float32 arg1)
|
||||
float64
|
||||
float8pl(float64 arg1, float64 arg2)
|
||||
{
|
||||
float64 result;
|
||||
double val;
|
||||
float64 result;
|
||||
double val;
|
||||
|
||||
if (!arg1 || !arg2)
|
||||
return (float64) NULL;
|
||||
@@ -566,8 +566,8 @@ float8pl(float64 arg1, float64 arg2)
|
||||
float64
|
||||
float8mi(float64 arg1, float64 arg2)
|
||||
{
|
||||
float64 result;
|
||||
double val;
|
||||
float64 result;
|
||||
double val;
|
||||
|
||||
if (!arg1 || !arg2)
|
||||
return (float64) NULL;
|
||||
@@ -583,8 +583,8 @@ float8mi(float64 arg1, float64 arg2)
|
||||
float64
|
||||
float8mul(float64 arg1, float64 arg2)
|
||||
{
|
||||
float64 result;
|
||||
double val;
|
||||
float64 result;
|
||||
double val;
|
||||
|
||||
if (!arg1 || !arg2)
|
||||
return (float64) NULL;
|
||||
@@ -600,8 +600,8 @@ float8mul(float64 arg1, float64 arg2)
|
||||
float64
|
||||
float8div(float64 arg1, float64 arg2)
|
||||
{
|
||||
float64 result;
|
||||
double val;
|
||||
float64 result;
|
||||
double val;
|
||||
|
||||
if (!arg1 || !arg2)
|
||||
return (float64) NULL;
|
||||
@@ -620,7 +620,7 @@ float8div(float64 arg1, float64 arg2)
|
||||
float64
|
||||
float8inc(float64 arg1)
|
||||
{
|
||||
double val;
|
||||
double val;
|
||||
|
||||
if (!arg1)
|
||||
return (float64) NULL;
|
||||
@@ -765,7 +765,7 @@ float8ge(float64 arg1, float64 arg2)
|
||||
float64
|
||||
ftod(float32 num)
|
||||
{
|
||||
float64 result;
|
||||
float64 result;
|
||||
|
||||
if (!num)
|
||||
return (float64) NULL;
|
||||
@@ -783,7 +783,7 @@ ftod(float32 num)
|
||||
float32
|
||||
dtof(float64 num)
|
||||
{
|
||||
float32 result;
|
||||
float32 result;
|
||||
|
||||
if (!num)
|
||||
return (float32) NULL;
|
||||
@@ -803,7 +803,7 @@ dtof(float64 num)
|
||||
int32
|
||||
dtoi4(float64 num)
|
||||
{
|
||||
int32 result;
|
||||
int32 result;
|
||||
|
||||
if (!num)
|
||||
elog(WARN, "dtoi4: unable to convert null", NULL);
|
||||
@@ -822,7 +822,7 @@ dtoi4(float64 num)
|
||||
int16
|
||||
dtoi2(float64 num)
|
||||
{
|
||||
int16 result;
|
||||
int16 result;
|
||||
|
||||
if (!num)
|
||||
elog(WARN, "dtoi2: unable to convert null", NULL);
|
||||
@@ -841,7 +841,7 @@ dtoi2(float64 num)
|
||||
float64
|
||||
i4tod(int32 num)
|
||||
{
|
||||
float64 result;
|
||||
float64 result;
|
||||
|
||||
result = (float64) palloc(sizeof(float64data));
|
||||
|
||||
@@ -856,7 +856,7 @@ i4tod(int32 num)
|
||||
float64
|
||||
i2tod(int16 num)
|
||||
{
|
||||
float64 result;
|
||||
float64 result;
|
||||
|
||||
result = (float64) palloc(sizeof(float64data));
|
||||
|
||||
@@ -871,7 +871,7 @@ i2tod(int16 num)
|
||||
int32
|
||||
ftoi4(float32 num)
|
||||
{
|
||||
int32 result;
|
||||
int32 result;
|
||||
|
||||
if (!num)
|
||||
elog(WARN, "ftoi4: unable to convert null", NULL);
|
||||
@@ -890,7 +890,7 @@ ftoi4(float32 num)
|
||||
int16
|
||||
ftoi2(float32 num)
|
||||
{
|
||||
int16 result;
|
||||
int16 result;
|
||||
|
||||
if (!num)
|
||||
elog(WARN, "ftoi2: unable to convert null", NULL);
|
||||
@@ -909,7 +909,7 @@ ftoi2(float32 num)
|
||||
float32
|
||||
i4tof(int32 num)
|
||||
{
|
||||
float32 result;
|
||||
float32 result;
|
||||
|
||||
result = (float32) palloc(sizeof(float32data));
|
||||
|
||||
@@ -924,7 +924,7 @@ i4tof(int32 num)
|
||||
float32
|
||||
i2tof(int16 num)
|
||||
{
|
||||
float32 result;
|
||||
float32 result;
|
||||
|
||||
result = (float32) palloc(sizeof(float32data));
|
||||
|
||||
@@ -945,8 +945,8 @@ i2tof(int16 num)
|
||||
float64
|
||||
dround(float64 arg1)
|
||||
{
|
||||
float64 result;
|
||||
double tmp;
|
||||
float64 result;
|
||||
double tmp;
|
||||
|
||||
if (!arg1)
|
||||
return (float64) NULL;
|
||||
@@ -969,8 +969,8 @@ dround(float64 arg1)
|
||||
float64
|
||||
dtrunc(float64 arg1)
|
||||
{
|
||||
float64 result;
|
||||
double tmp;
|
||||
float64 result;
|
||||
double tmp;
|
||||
|
||||
if (!arg1)
|
||||
return (float64) NULL;
|
||||
@@ -992,8 +992,8 @@ dtrunc(float64 arg1)
|
||||
float64
|
||||
dsqrt(float64 arg1)
|
||||
{
|
||||
float64 result;
|
||||
double tmp;
|
||||
float64 result;
|
||||
double tmp;
|
||||
|
||||
if (!arg1)
|
||||
return (float64) NULL;
|
||||
@@ -1012,8 +1012,8 @@ dsqrt(float64 arg1)
|
||||
float64
|
||||
dcbrt(float64 arg1)
|
||||
{
|
||||
float64 result;
|
||||
double tmp;
|
||||
float64 result;
|
||||
double tmp;
|
||||
|
||||
if (!arg1)
|
||||
return (float64) NULL;
|
||||
@@ -1032,9 +1032,9 @@ dcbrt(float64 arg1)
|
||||
float64
|
||||
dpow(float64 arg1, float64 arg2)
|
||||
{
|
||||
float64 result;
|
||||
double tmp1,
|
||||
tmp2;
|
||||
float64 result;
|
||||
double tmp1,
|
||||
tmp2;
|
||||
|
||||
if (!arg1 || !arg2)
|
||||
return (float64) NULL;
|
||||
@@ -1065,8 +1065,8 @@ dpow(float64 arg1, float64 arg2)
|
||||
float64
|
||||
dexp(float64 arg1)
|
||||
{
|
||||
float64 result;
|
||||
double tmp;
|
||||
float64 result;
|
||||
double tmp;
|
||||
|
||||
if (!arg1)
|
||||
return (float64) NULL;
|
||||
@@ -1097,8 +1097,8 @@ dexp(float64 arg1)
|
||||
float64
|
||||
dlog1(float64 arg1)
|
||||
{
|
||||
float64 result;
|
||||
double tmp;
|
||||
float64 result;
|
||||
double tmp;
|
||||
|
||||
if (!arg1)
|
||||
return (float64) NULL;
|
||||
@@ -1132,7 +1132,7 @@ dlog1(float64 arg1)
|
||||
float64
|
||||
float48pl(float32 arg1, float64 arg2)
|
||||
{
|
||||
float64 result;
|
||||
float64 result;
|
||||
|
||||
if (!arg1 || !arg2)
|
||||
return (float64) NULL;
|
||||
@@ -1147,7 +1147,7 @@ float48pl(float32 arg1, float64 arg2)
|
||||
float64
|
||||
float48mi(float32 arg1, float64 arg2)
|
||||
{
|
||||
float64 result;
|
||||
float64 result;
|
||||
|
||||
if (!arg1 || !arg2)
|
||||
return (float64) NULL;
|
||||
@@ -1162,7 +1162,7 @@ float48mi(float32 arg1, float64 arg2)
|
||||
float64
|
||||
float48mul(float32 arg1, float64 arg2)
|
||||
{
|
||||
float64 result;
|
||||
float64 result;
|
||||
|
||||
if (!arg1 || !arg2)
|
||||
return (float64) NULL;
|
||||
@@ -1177,7 +1177,7 @@ float48mul(float32 arg1, float64 arg2)
|
||||
float64
|
||||
float48div(float32 arg1, float64 arg2)
|
||||
{
|
||||
float64 result;
|
||||
float64 result;
|
||||
|
||||
if (!arg1 || !arg2)
|
||||
return (float64) NULL;
|
||||
@@ -1201,7 +1201,7 @@ float48div(float32 arg1, float64 arg2)
|
||||
float64
|
||||
float84pl(float64 arg1, float32 arg2)
|
||||
{
|
||||
float64 result;
|
||||
float64 result;
|
||||
|
||||
if (!arg1 || !arg2)
|
||||
return (float64) NULL;
|
||||
@@ -1216,7 +1216,7 @@ float84pl(float64 arg1, float32 arg2)
|
||||
float64
|
||||
float84mi(float64 arg1, float32 arg2)
|
||||
{
|
||||
float64 result;
|
||||
float64 result;
|
||||
|
||||
if (!arg1 || !arg2)
|
||||
return (float64) NULL;
|
||||
@@ -1232,7 +1232,7 @@ float64
|
||||
float84mul(float64 arg1, float32 arg2)
|
||||
{
|
||||
|
||||
float64 result;
|
||||
float64 result;
|
||||
|
||||
if (!arg1 || !arg2)
|
||||
return (float64) NULL;
|
||||
@@ -1247,7 +1247,7 @@ float84mul(float64 arg1, float32 arg2)
|
||||
float64
|
||||
float84div(float64 arg1, float32 arg2)
|
||||
{
|
||||
float64 result;
|
||||
float64 result;
|
||||
|
||||
if (!arg1 || !arg2)
|
||||
return (float64) NULL;
|
||||
@@ -1415,8 +1415,8 @@ static const double
|
||||
#else
|
||||
static double
|
||||
#endif
|
||||
one = 1.0,
|
||||
TWO52[2] = {
|
||||
one = 1.0,
|
||||
TWO52[2] = {
|
||||
4.50359962737049600000e+15, /* 0x43300000, 0x00000000 */
|
||||
-4.50359962737049600000e+15,/* 0xC3300000, 0x00000000 */
|
||||
};
|
||||
@@ -1427,18 +1427,18 @@ rint(double x)
|
||||
#else
|
||||
static double
|
||||
rint(x)
|
||||
double x;
|
||||
double x;
|
||||
|
||||
#endif
|
||||
{
|
||||
int i0,
|
||||
n0,
|
||||
j0,
|
||||
sx;
|
||||
unsigned i,
|
||||
i1;
|
||||
double w,
|
||||
t;
|
||||
int i0,
|
||||
n0,
|
||||
j0,
|
||||
sx;
|
||||
unsigned i,
|
||||
i1;
|
||||
double w,
|
||||
t;
|
||||
|
||||
n0 = (*((int *) &one) >> 29) ^ 1;
|
||||
i0 = *(n0 + (int *) &x);
|
||||
@@ -1505,10 +1505,10 @@ double x;
|
||||
static
|
||||
double
|
||||
cbrt(x)
|
||||
double x;
|
||||
double x;
|
||||
{
|
||||
int isneg = (x < 0.0);
|
||||
double tmpres = pow(fabs(x), (double) 1.0 / (double) 3.0);
|
||||
int isneg = (x < 0.0);
|
||||
double tmpres = pow(fabs(x), (double) 1.0 / (double) 3.0);
|
||||
|
||||
return (isneg ? -tmpres : tmpres);
|
||||
}
|
||||
@@ -1525,9 +1525,9 @@ double x;
|
||||
|
||||
static int
|
||||
isinf(x)
|
||||
double x;
|
||||
double x;
|
||||
{
|
||||
int fpclass = class(x);
|
||||
int fpclass = class(x);
|
||||
|
||||
if (fpclass == FP_PLUS_INF)
|
||||
return (1);
|
||||
@@ -1542,9 +1542,9 @@ double x;
|
||||
#include <fp_class.h>
|
||||
static int
|
||||
isinf(x)
|
||||
double x;
|
||||
double x;
|
||||
{
|
||||
int fpclass = fp_class_d(x);
|
||||
int fpclass = fp_class_d(x);
|
||||
|
||||
if (fpclass == FP_POS_INF)
|
||||
return (1);
|
||||
@@ -1559,9 +1559,9 @@ double x;
|
||||
#include <fp_class.h>
|
||||
static int
|
||||
isinf(x)
|
||||
double x;
|
||||
double x;
|
||||
{
|
||||
int fpclass = fp_class(x);
|
||||
int fpclass = fp_class(x);
|
||||
|
||||
if (fpclass == FP_POS_INF)
|
||||
return (1);
|
||||
@@ -1577,19 +1577,19 @@ double x;
|
||||
#include <ieeefp.h>
|
||||
static int
|
||||
isinf(d)
|
||||
double d;
|
||||
double d;
|
||||
{
|
||||
fpclass_t type = fpclass(d);
|
||||
fpclass_t type = fpclass(d);
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case FP_SNAN:
|
||||
case FP_QNAN:
|
||||
case FP_NINF:
|
||||
case FP_PINF:
|
||||
return (1);
|
||||
default:
|
||||
break;
|
||||
case FP_SNAN:
|
||||
case FP_QNAN:
|
||||
case FP_NINF:
|
||||
case FP_PINF:
|
||||
return (1);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return (0);
|
||||
@@ -1601,19 +1601,19 @@ double d;
|
||||
#include <ieeefp.h>
|
||||
static int
|
||||
isinf(d)
|
||||
double d;
|
||||
double d;
|
||||
{
|
||||
fpclass_t type = fpclass(d);
|
||||
fpclass_t type = fpclass(d);
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case FP_SNAN:
|
||||
case FP_QNAN:
|
||||
case FP_NINF:
|
||||
case FP_PINF:
|
||||
return (1);
|
||||
default:
|
||||
break;
|
||||
case FP_SNAN:
|
||||
case FP_QNAN:
|
||||
case FP_NINF:
|
||||
case FP_PINF:
|
||||
return (1);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return (0);
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/geo_selfuncs.c,v 1.4 1997/09/07 04:50:20 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/geo_selfuncs.c,v 1.5 1997/09/08 02:30:44 momjian Exp $
|
||||
*
|
||||
* XXX These are totally bogus.
|
||||
*
|
||||
@@ -28,7 +28,7 @@ areasel(Oid opid,
|
||||
char *value,
|
||||
int32 flag)
|
||||
{
|
||||
float64 result;
|
||||
float64 result;
|
||||
|
||||
result = (float64) palloc(sizeof(float64data));
|
||||
*result = 1.0 / 4.0;
|
||||
@@ -42,7 +42,7 @@ areajoinsel(Oid opid,
|
||||
char *value,
|
||||
int32 flag)
|
||||
{
|
||||
float64 result;
|
||||
float64 result;
|
||||
|
||||
result = (float64) palloc(sizeof(float64data));
|
||||
*result = 1.0 / 4.0;
|
||||
@@ -73,7 +73,7 @@ leftsel(Oid opid,
|
||||
char *value,
|
||||
int32 flag)
|
||||
{
|
||||
float64 result;
|
||||
float64 result;
|
||||
|
||||
result = (float64) palloc(sizeof(float64data));
|
||||
*result = 1.0 / 6.0;
|
||||
@@ -90,7 +90,7 @@ leftjoinsel(Oid opid,
|
||||
char *value,
|
||||
int32 flag)
|
||||
{
|
||||
float64 result;
|
||||
float64 result;
|
||||
|
||||
result = (float64) palloc(sizeof(float64data));
|
||||
*result = 1.0 / 6.0;
|
||||
@@ -110,7 +110,7 @@ contsel(Oid opid,
|
||||
char *value,
|
||||
int32 flag)
|
||||
{
|
||||
float64 result;
|
||||
float64 result;
|
||||
|
||||
result = (float64) palloc(sizeof(float64data));
|
||||
*result = 1.0 / 10.0;
|
||||
@@ -127,7 +127,7 @@ contjoinsel(Oid opid,
|
||||
char *value,
|
||||
int32 flag)
|
||||
{
|
||||
float64 result;
|
||||
float64 result;
|
||||
|
||||
result = (float64) palloc(sizeof(float64data));
|
||||
*result = 1.0 / 10.0;
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/int.c,v 1.5 1997/09/07 04:50:21 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/int.c,v 1.6 1997/09/08 02:30:45 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -50,10 +50,10 @@ int2in(char *num)
|
||||
/*
|
||||
* int2out - converts short to "num"
|
||||
*/
|
||||
char *
|
||||
char *
|
||||
int2out(int16 sh)
|
||||
{
|
||||
char *result;
|
||||
char *result;
|
||||
|
||||
result = (char *) palloc(7);/* assumes sign, 5 digits, '\0' */
|
||||
itoa((int) sh, result);
|
||||
@@ -66,11 +66,11 @@ int2out(int16 sh)
|
||||
* Note:
|
||||
* Fills any nonexistent digits with NULLs.
|
||||
*/
|
||||
int16 *
|
||||
int16 *
|
||||
int28in(char *shs)
|
||||
{
|
||||
register int16(*result)[];
|
||||
int nums;
|
||||
register int16(*result)[];
|
||||
int nums;
|
||||
|
||||
if (shs == NULL)
|
||||
return (NULL);
|
||||
@@ -95,13 +95,13 @@ int28in(char *shs)
|
||||
/*
|
||||
* int28out - converts internal form to "num num ..."
|
||||
*/
|
||||
char *
|
||||
char *
|
||||
int28out(int16(*shs)[])
|
||||
{
|
||||
register int num;
|
||||
register int num;
|
||||
register int16 *sp;
|
||||
register char *rp;
|
||||
char *result;
|
||||
register char *rp;
|
||||
char *result;
|
||||
|
||||
if (shs == NULL)
|
||||
{
|
||||
@@ -130,11 +130,11 @@ int28out(int16(*shs)[])
|
||||
* Note:
|
||||
* Fills any nonexistent digits with NULLs.
|
||||
*/
|
||||
int32 *
|
||||
int32 *
|
||||
int44in(char *input_string)
|
||||
{
|
||||
int32 *foo = (int32 *) palloc(4 * sizeof(int32));
|
||||
register int i = 0;
|
||||
int32 *foo = (int32 *) palloc(4 * sizeof(int32));
|
||||
register int i = 0;
|
||||
|
||||
i = sscanf(input_string,
|
||||
"%d, %d, %d, %d",
|
||||
@@ -151,16 +151,16 @@ int44in(char *input_string)
|
||||
/*
|
||||
* int28out - converts internal form to "num num ..."
|
||||
*/
|
||||
char *
|
||||
char *
|
||||
int44out(int32 an_array[])
|
||||
{
|
||||
int temp = 4;
|
||||
char *output_string = NULL;
|
||||
int i;
|
||||
int temp = 4;
|
||||
char *output_string = NULL;
|
||||
int i;
|
||||
|
||||
if (temp > 0)
|
||||
{
|
||||
char *walk;
|
||||
char *walk;
|
||||
|
||||
output_string = (char *) palloc(16 * temp); /* assume 15 digits +
|
||||
* sign */
|
||||
@@ -194,10 +194,10 @@ int4in(char *num)
|
||||
/*
|
||||
* int4out - converts int4 to "num"
|
||||
*/
|
||||
char *
|
||||
char *
|
||||
int4out(int32 l)
|
||||
{
|
||||
char *result;
|
||||
char *result;
|
||||
|
||||
result = (char *) palloc(12); /* assumes sign, 10 digits, '\0' */
|
||||
ltoa(l, result);
|
||||
@@ -243,108 +243,133 @@ i4toi2(int32 arg1)
|
||||
* intgt - returns 1 iff arg1 > arg2
|
||||
* intge - returns 1 iff arg1 >= arg2
|
||||
*/
|
||||
bool int4eq(int32 arg1, int32 arg2)
|
||||
bool
|
||||
int4eq(int32 arg1, int32 arg2)
|
||||
{
|
||||
return (arg1 == arg2);
|
||||
}
|
||||
bool int4ne(int32 arg1, int32 arg2)
|
||||
bool
|
||||
int4ne(int32 arg1, int32 arg2)
|
||||
{
|
||||
return (arg1 != arg2);
|
||||
}
|
||||
bool int4lt(int32 arg1, int32 arg2)
|
||||
bool
|
||||
int4lt(int32 arg1, int32 arg2)
|
||||
{
|
||||
return (arg1 < arg2);
|
||||
}
|
||||
bool int4le(int32 arg1, int32 arg2)
|
||||
bool
|
||||
int4le(int32 arg1, int32 arg2)
|
||||
{
|
||||
return (arg1 <= arg2);
|
||||
}
|
||||
bool int4gt(int32 arg1, int32 arg2)
|
||||
bool
|
||||
int4gt(int32 arg1, int32 arg2)
|
||||
{
|
||||
return (arg1 > arg2);
|
||||
}
|
||||
bool int4ge(int32 arg1, int32 arg2)
|
||||
bool
|
||||
int4ge(int32 arg1, int32 arg2)
|
||||
{
|
||||
return (arg1 >= arg2);
|
||||
}
|
||||
|
||||
bool int2eq(int16 arg1, int16 arg2)
|
||||
bool
|
||||
int2eq(int16 arg1, int16 arg2)
|
||||
{
|
||||
return (arg1 == arg2);
|
||||
}
|
||||
bool int2ne(int16 arg1, int16 arg2)
|
||||
bool
|
||||
int2ne(int16 arg1, int16 arg2)
|
||||
{
|
||||
return (arg1 != arg2);
|
||||
}
|
||||
bool int2lt(int16 arg1, int16 arg2)
|
||||
bool
|
||||
int2lt(int16 arg1, int16 arg2)
|
||||
{
|
||||
return (arg1 < arg2);
|
||||
}
|
||||
bool int2le(int16 arg1, int16 arg2)
|
||||
bool
|
||||
int2le(int16 arg1, int16 arg2)
|
||||
{
|
||||
return (arg1 <= arg2);
|
||||
}
|
||||
bool int2gt(int16 arg1, int16 arg2)
|
||||
bool
|
||||
int2gt(int16 arg1, int16 arg2)
|
||||
{
|
||||
return (arg1 > arg2);
|
||||
}
|
||||
bool int2ge(int16 arg1, int16 arg2)
|
||||
bool
|
||||
int2ge(int16 arg1, int16 arg2)
|
||||
{
|
||||
return (arg1 >= arg2);
|
||||
}
|
||||
|
||||
bool int24eq(int32 arg1, int32 arg2)
|
||||
bool
|
||||
int24eq(int32 arg1, int32 arg2)
|
||||
{
|
||||
return (arg1 == arg2);
|
||||
}
|
||||
bool int24ne(int32 arg1, int32 arg2)
|
||||
bool
|
||||
int24ne(int32 arg1, int32 arg2)
|
||||
{
|
||||
return (arg1 != arg2);
|
||||
}
|
||||
bool int24lt(int32 arg1, int32 arg2)
|
||||
bool
|
||||
int24lt(int32 arg1, int32 arg2)
|
||||
{
|
||||
return (arg1 < arg2);
|
||||
}
|
||||
bool int24le(int32 arg1, int32 arg2)
|
||||
bool
|
||||
int24le(int32 arg1, int32 arg2)
|
||||
{
|
||||
return (arg1 <= arg2);
|
||||
}
|
||||
bool int24gt(int32 arg1, int32 arg2)
|
||||
bool
|
||||
int24gt(int32 arg1, int32 arg2)
|
||||
{
|
||||
return (arg1 > arg2);
|
||||
}
|
||||
bool int24ge(int32 arg1, int32 arg2)
|
||||
bool
|
||||
int24ge(int32 arg1, int32 arg2)
|
||||
{
|
||||
return (arg1 >= arg2);
|
||||
}
|
||||
|
||||
bool int42eq(int32 arg1, int32 arg2)
|
||||
bool
|
||||
int42eq(int32 arg1, int32 arg2)
|
||||
{
|
||||
return (arg1 == arg2);
|
||||
}
|
||||
bool int42ne(int32 arg1, int32 arg2)
|
||||
bool
|
||||
int42ne(int32 arg1, int32 arg2)
|
||||
{
|
||||
return (arg1 != arg2);
|
||||
}
|
||||
bool int42lt(int32 arg1, int32 arg2)
|
||||
bool
|
||||
int42lt(int32 arg1, int32 arg2)
|
||||
{
|
||||
return (arg1 < arg2);
|
||||
}
|
||||
bool int42le(int32 arg1, int32 arg2)
|
||||
bool
|
||||
int42le(int32 arg1, int32 arg2)
|
||||
{
|
||||
return (arg1 <= arg2);
|
||||
}
|
||||
bool int42gt(int32 arg1, int32 arg2)
|
||||
bool
|
||||
int42gt(int32 arg1, int32 arg2)
|
||||
{
|
||||
return (arg1 > arg2);
|
||||
}
|
||||
bool int42ge(int32 arg1, int32 arg2)
|
||||
bool
|
||||
int42ge(int32 arg1, int32 arg2)
|
||||
{
|
||||
return (arg1 >= arg2);
|
||||
}
|
||||
|
||||
|
||||
bool keyfirsteq(int16 * arg1, int16 arg2)
|
||||
bool
|
||||
keyfirsteq(int16 * arg1, int16 arg2)
|
||||
{
|
||||
return (*arg1 == arg2);
|
||||
}
|
||||
@@ -355,86 +380,106 @@ bool keyfirsteq(int16 * arg1, int16 arg2)
|
||||
* int[24]mul - returns arg1 * arg2
|
||||
* int[24]div - returns arg1 / arg2
|
||||
*/
|
||||
int32 int4um(int32 arg)
|
||||
int32
|
||||
int4um(int32 arg)
|
||||
{
|
||||
return (-arg);
|
||||
}
|
||||
int32 int4pl(int32 arg1, int32 arg2)
|
||||
int32
|
||||
int4pl(int32 arg1, int32 arg2)
|
||||
{
|
||||
return (arg1 + arg2);
|
||||
}
|
||||
int32 int4mi(int32 arg1, int32 arg2)
|
||||
int32
|
||||
int4mi(int32 arg1, int32 arg2)
|
||||
{
|
||||
return (arg1 - arg2);
|
||||
}
|
||||
int32 int4mul(int32 arg1, int32 arg2)
|
||||
int32
|
||||
int4mul(int32 arg1, int32 arg2)
|
||||
{
|
||||
return (arg1 * arg2);
|
||||
}
|
||||
int32 int4div(int32 arg1, int32 arg2)
|
||||
int32
|
||||
int4div(int32 arg1, int32 arg2)
|
||||
{
|
||||
return (arg1 / arg2);
|
||||
}
|
||||
int32 int4inc(int32 arg)
|
||||
int32
|
||||
int4inc(int32 arg)
|
||||
{
|
||||
return (arg + (int32) 1);
|
||||
}
|
||||
|
||||
int16 int2um(int16 arg)
|
||||
int16
|
||||
int2um(int16 arg)
|
||||
{
|
||||
return (-arg);
|
||||
}
|
||||
int16 int2pl(int16 arg1, int16 arg2)
|
||||
int16
|
||||
int2pl(int16 arg1, int16 arg2)
|
||||
{
|
||||
return (arg1 + arg2);
|
||||
}
|
||||
int16 int2mi(int16 arg1, int16 arg2)
|
||||
int16
|
||||
int2mi(int16 arg1, int16 arg2)
|
||||
{
|
||||
return (arg1 - arg2);
|
||||
}
|
||||
int16 int2mul(int16 arg1, int16 arg2)
|
||||
int16
|
||||
int2mul(int16 arg1, int16 arg2)
|
||||
{
|
||||
return (arg1 * arg2);
|
||||
}
|
||||
int16 int2div(int16 arg1, int16 arg2)
|
||||
int16
|
||||
int2div(int16 arg1, int16 arg2)
|
||||
{
|
||||
return (arg1 / arg2);
|
||||
}
|
||||
int16 int2inc(int16 arg)
|
||||
int16
|
||||
int2inc(int16 arg)
|
||||
{
|
||||
return (arg + (int16) 1);
|
||||
}
|
||||
|
||||
int32 int24pl(int32 arg1, int32 arg2)
|
||||
int32
|
||||
int24pl(int32 arg1, int32 arg2)
|
||||
{
|
||||
return (arg1 + arg2);
|
||||
}
|
||||
int32 int24mi(int32 arg1, int32 arg2)
|
||||
int32
|
||||
int24mi(int32 arg1, int32 arg2)
|
||||
{
|
||||
return (arg1 - arg2);
|
||||
}
|
||||
int32 int24mul(int32 arg1, int32 arg2)
|
||||
int32
|
||||
int24mul(int32 arg1, int32 arg2)
|
||||
{
|
||||
return (arg1 * arg2);
|
||||
}
|
||||
int32 int24div(int32 arg1, int32 arg2)
|
||||
int32
|
||||
int24div(int32 arg1, int32 arg2)
|
||||
{
|
||||
return (arg1 / arg2);
|
||||
}
|
||||
|
||||
int32 int42pl(int32 arg1, int32 arg2)
|
||||
int32
|
||||
int42pl(int32 arg1, int32 arg2)
|
||||
{
|
||||
return (arg1 + arg2);
|
||||
}
|
||||
int32 int42mi(int32 arg1, int32 arg2)
|
||||
int32
|
||||
int42mi(int32 arg1, int32 arg2)
|
||||
{
|
||||
return (arg1 - arg2);
|
||||
}
|
||||
int32 int42mul(int32 arg1, int32 arg2)
|
||||
int32
|
||||
int42mul(int32 arg1, int32 arg2)
|
||||
{
|
||||
return (arg1 * arg2);
|
||||
}
|
||||
int32 int42div(int32 arg1, int32 arg2)
|
||||
int32
|
||||
int42div(int32 arg1, int32 arg2)
|
||||
{
|
||||
return (arg1 / arg2);
|
||||
}
|
||||
@@ -442,19 +487,23 @@ int32 int42div(int32 arg1, int32 arg2)
|
||||
/*
|
||||
* int[24]mod - returns arg1 mod arg2
|
||||
*/
|
||||
int32 int4mod(int32 arg1, int32 arg2)
|
||||
int32
|
||||
int4mod(int32 arg1, int32 arg2)
|
||||
{
|
||||
return (arg1 % arg2);
|
||||
}
|
||||
int32 int2mod(int16 arg1, int16 arg2)
|
||||
int32
|
||||
int2mod(int16 arg1, int16 arg2)
|
||||
{
|
||||
return (arg1 % arg2);
|
||||
}
|
||||
int32 int24mod(int32 arg1, int32 arg2)
|
||||
int32
|
||||
int24mod(int32 arg1, int32 arg2)
|
||||
{
|
||||
return (arg1 % arg2);
|
||||
}
|
||||
int32 int42mod(int32 arg1, int32 arg2)
|
||||
int32
|
||||
int42mod(int32 arg1, int32 arg2)
|
||||
{
|
||||
return (arg1 % arg2);
|
||||
}
|
||||
@@ -465,7 +514,7 @@ int32 int42mod(int32 arg1, int32 arg2)
|
||||
int32
|
||||
int4fac(int32 arg1)
|
||||
{
|
||||
int32 result;
|
||||
int32 result;
|
||||
|
||||
if (arg1 < 1)
|
||||
result = 0;
|
||||
@@ -478,7 +527,7 @@ int4fac(int32 arg1)
|
||||
int32
|
||||
int2fac(int16 arg1)
|
||||
{
|
||||
int16 result;
|
||||
int16 result;
|
||||
|
||||
if (arg1 < 1)
|
||||
result = 0;
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
#include "utils/palloc.h"
|
||||
#include "utils/builtins.h" /* where the function declarations go */
|
||||
|
||||
static int like(char *text, char *p);
|
||||
static int like(char *text, char *p);
|
||||
|
||||
/*
|
||||
* interface routines called by the function manager
|
||||
@@ -36,12 +36,12 @@ static int like(char *text, char *p);
|
||||
p - the pattern
|
||||
charlen - the length of the string
|
||||
*/
|
||||
static bool
|
||||
static bool
|
||||
fixedlen_like(char *s, struct varlena * p, int charlen)
|
||||
{
|
||||
char *sterm,
|
||||
*pterm;
|
||||
int result;
|
||||
char *sterm,
|
||||
*pterm;
|
||||
int result;
|
||||
|
||||
if (!s || !p)
|
||||
return FALSE;
|
||||
@@ -72,7 +72,7 @@ fixedlen_like(char *s, struct varlena * p, int charlen)
|
||||
bool
|
||||
char2like(uint16 arg1, struct varlena * p)
|
||||
{
|
||||
char *s = (char *) &arg1;
|
||||
char *s = (char *) &arg1;
|
||||
|
||||
return (fixedlen_like(s, p, 2));
|
||||
}
|
||||
@@ -86,7 +86,7 @@ char2nlike(uint16 arg1, struct varlena * p)
|
||||
bool
|
||||
char4like(uint32 arg1, struct varlena * p)
|
||||
{
|
||||
char *s = (char *) &arg1;
|
||||
char *s = (char *) &arg1;
|
||||
|
||||
return (fixedlen_like(s, p, 4));
|
||||
}
|
||||
@@ -150,7 +150,7 @@ textnlike(struct varlena * s, struct varlena * p)
|
||||
}
|
||||
|
||||
|
||||
/* $Revision: 1.7 $
|
||||
/* $Revision: 1.8 $
|
||||
** "like.c" A first attempt at a LIKE operator for Postgres95.
|
||||
**
|
||||
** Originally written by Rich $alz, mirror!rs, Wed Nov 26 19:03:17 EST 1986.
|
||||
@@ -187,7 +187,7 @@ textnlike(struct varlena * s, struct varlena * p)
|
||||
static int
|
||||
DoMatch(register char *text, register char *p)
|
||||
{
|
||||
register int matched;
|
||||
register int matched;
|
||||
|
||||
for (; *p; text++, p++)
|
||||
{
|
||||
@@ -195,28 +195,28 @@ DoMatch(register char *text, register char *p)
|
||||
return LIKE_ABORT;
|
||||
switch (*p)
|
||||
{
|
||||
case '\\':
|
||||
/* Literal match with following character. */
|
||||
p++;
|
||||
/* FALLTHROUGH */
|
||||
default:
|
||||
if (*text != *p)
|
||||
return LIKE_FALSE;
|
||||
continue;
|
||||
case '_':
|
||||
/* Match anything. */
|
||||
continue;
|
||||
case '%':
|
||||
while (*++p == '%')
|
||||
/* Consecutive percents act just like one. */
|
||||
case '\\':
|
||||
/* Literal match with following character. */
|
||||
p++;
|
||||
/* FALLTHROUGH */
|
||||
default:
|
||||
if (*text != *p)
|
||||
return LIKE_FALSE;
|
||||
continue;
|
||||
if (*p == '\0')
|
||||
/* Trailing percent matches everything. */
|
||||
return LIKE_TRUE;
|
||||
while (*text)
|
||||
if ((matched = DoMatch(text++, p)) != LIKE_FALSE)
|
||||
return matched;
|
||||
return LIKE_ABORT;
|
||||
case '_':
|
||||
/* Match anything. */
|
||||
continue;
|
||||
case '%':
|
||||
while (*++p == '%')
|
||||
/* Consecutive percents act just like one. */
|
||||
continue;
|
||||
if (*p == '\0')
|
||||
/* Trailing percent matches everything. */
|
||||
return LIKE_TRUE;
|
||||
while (*text)
|
||||
if ((matched = DoMatch(text++, p)) != LIKE_FALSE)
|
||||
return matched;
|
||||
return LIKE_ABORT;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/misc.c,v 1.8 1997/09/07 04:50:23 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/misc.c,v 1.9 1997/09/08 02:30:48 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -66,7 +66,7 @@ nonnullvalue(Datum value, bool * isNull)
|
||||
bool
|
||||
oidrand(Oid o, int32 X)
|
||||
{
|
||||
bool result;
|
||||
bool result;
|
||||
|
||||
if (X == 0)
|
||||
return true;
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/nabstime.c,v 1.32 1997/09/07 04:50:24 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/nabstime.c,v 1.33 1997/09/08 02:30:49 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -45,14 +45,14 @@ static AbsoluteTime tm2abstime(struct tm * tm, int tz);
|
||||
AbsoluteTime
|
||||
GetCurrentAbsoluteTime(void)
|
||||
{
|
||||
time_t now;
|
||||
time_t now;
|
||||
|
||||
#ifdef USE_POSIX_TIME
|
||||
struct tm *tm;
|
||||
struct tm *tm;
|
||||
|
||||
now = time(NULL);
|
||||
#else /* ! USE_POSIX_TIME */
|
||||
struct timeb tb; /* the old V7-ism */
|
||||
struct timeb tb; /* the old V7-ism */
|
||||
|
||||
ftime(&tb);
|
||||
now = tb.time;
|
||||
@@ -109,7 +109,7 @@ GetCurrentAbsoluteTime(void)
|
||||
void
|
||||
GetCurrentTime(struct tm * tm)
|
||||
{
|
||||
int tz;
|
||||
int tz;
|
||||
|
||||
abstime2tm(GetCurrentTransactionStartTime(), &tz, tm, NULL);
|
||||
|
||||
@@ -121,10 +121,10 @@ void
|
||||
abstime2tm(AbsoluteTime time, int *tzp, struct tm * tm, char *tzn)
|
||||
{
|
||||
#ifdef USE_POSIX_TIME
|
||||
struct tm *tx;
|
||||
struct tm *tx;
|
||||
|
||||
#else /* ! USE_POSIX_TIME */
|
||||
struct timeb tb; /* the old V7-ism */
|
||||
struct timeb tb; /* the old V7-ism */
|
||||
|
||||
ftime(&tb);
|
||||
#endif
|
||||
@@ -198,11 +198,11 @@ abstime2tm(AbsoluteTime time, int *tzp, struct tm * tm, char *tzn)
|
||||
* Convert a tm structure to abstime.
|
||||
* Note that tm has full year (not 1900-based) and 1-based month.
|
||||
*/
|
||||
static AbsoluteTime
|
||||
static AbsoluteTime
|
||||
tm2abstime(struct tm * tm, int tz)
|
||||
{
|
||||
int day,
|
||||
sec;
|
||||
int day,
|
||||
sec;
|
||||
|
||||
/* validate, before going out of range on some members */
|
||||
if (tm->tm_year < 1901 || tm->tm_year > 2038
|
||||
@@ -241,18 +241,18 @@ tm2abstime(struct tm * tm, int tz)
|
||||
AbsoluteTime
|
||||
nabstimein(char *str)
|
||||
{
|
||||
AbsoluteTime result;
|
||||
AbsoluteTime result;
|
||||
|
||||
double fsec;
|
||||
int tz = 0;
|
||||
struct tm date,
|
||||
*tm = &date;
|
||||
double fsec;
|
||||
int tz = 0;
|
||||
struct tm date,
|
||||
*tm = &date;
|
||||
|
||||
char *field[MAXDATEFIELDS];
|
||||
char lowstr[MAXDATELEN + 1];
|
||||
int dtype;
|
||||
int nf,
|
||||
ftype[MAXDATEFIELDS];
|
||||
char *field[MAXDATEFIELDS];
|
||||
char lowstr[MAXDATELEN + 1];
|
||||
int dtype;
|
||||
int nf,
|
||||
ftype[MAXDATEFIELDS];
|
||||
|
||||
if (!PointerIsValid(str))
|
||||
elog(WARN, "Bad (null) abstime external representation", NULL);
|
||||
@@ -270,34 +270,34 @@ nabstimein(char *str)
|
||||
|
||||
switch (dtype)
|
||||
{
|
||||
case DTK_DATE:
|
||||
result = tm2abstime(tm, tz);
|
||||
break;
|
||||
case DTK_DATE:
|
||||
result = tm2abstime(tm, tz);
|
||||
break;
|
||||
|
||||
case DTK_EPOCH:
|
||||
result = EPOCH_ABSTIME;
|
||||
break;
|
||||
case DTK_EPOCH:
|
||||
result = EPOCH_ABSTIME;
|
||||
break;
|
||||
|
||||
case DTK_CURRENT:
|
||||
result = CURRENT_ABSTIME;
|
||||
break;
|
||||
case DTK_CURRENT:
|
||||
result = CURRENT_ABSTIME;
|
||||
break;
|
||||
|
||||
case DTK_LATE:
|
||||
result = NOEND_ABSTIME;
|
||||
break;
|
||||
case DTK_LATE:
|
||||
result = NOEND_ABSTIME;
|
||||
break;
|
||||
|
||||
case DTK_EARLY:
|
||||
result = NOSTART_ABSTIME;
|
||||
break;
|
||||
case DTK_EARLY:
|
||||
result = NOSTART_ABSTIME;
|
||||
break;
|
||||
|
||||
case DTK_INVALID:
|
||||
result = INVALID_ABSTIME;
|
||||
break;
|
||||
case DTK_INVALID:
|
||||
result = INVALID_ABSTIME;
|
||||
break;
|
||||
|
||||
default:
|
||||
elog(WARN, "Bad abstime (internal coding error) '%s'", str);
|
||||
result = INVALID_ABSTIME;
|
||||
break;
|
||||
default:
|
||||
elog(WARN, "Bad abstime (internal coding error) '%s'", str);
|
||||
result = INVALID_ABSTIME;
|
||||
break;
|
||||
};
|
||||
|
||||
return result;
|
||||
@@ -307,41 +307,41 @@ nabstimein(char *str)
|
||||
/* nabstimeout()
|
||||
* Given an AbsoluteTime return the English text version of the date
|
||||
*/
|
||||
char *
|
||||
char *
|
||||
nabstimeout(AbsoluteTime time)
|
||||
{
|
||||
char *result;
|
||||
int tz;
|
||||
double fsec = 0;
|
||||
struct tm tt,
|
||||
*tm = &tt;
|
||||
char buf[MAXDATELEN + 1];
|
||||
char zone[MAXDATELEN + 1],
|
||||
*tzn = zone;
|
||||
char *result;
|
||||
int tz;
|
||||
double fsec = 0;
|
||||
struct tm tt,
|
||||
*tm = &tt;
|
||||
char buf[MAXDATELEN + 1];
|
||||
char zone[MAXDATELEN + 1],
|
||||
*tzn = zone;
|
||||
|
||||
switch (time)
|
||||
{
|
||||
case EPOCH_ABSTIME:
|
||||
strcpy(buf, EPOCH);
|
||||
break;
|
||||
case INVALID_ABSTIME:
|
||||
strcpy(buf, INVALID);
|
||||
break;
|
||||
case CURRENT_ABSTIME:
|
||||
strcpy(buf, DCURRENT);
|
||||
break;
|
||||
case NOEND_ABSTIME:
|
||||
strcpy(buf, LATE);
|
||||
break;
|
||||
case NOSTART_ABSTIME:
|
||||
strcpy(buf, EARLY);
|
||||
break;
|
||||
default:
|
||||
abstime2tm(time, &tz, tm, tzn);
|
||||
case EPOCH_ABSTIME:
|
||||
strcpy(buf, EPOCH);
|
||||
break;
|
||||
case INVALID_ABSTIME:
|
||||
strcpy(buf, INVALID);
|
||||
break;
|
||||
case CURRENT_ABSTIME:
|
||||
strcpy(buf, DCURRENT);
|
||||
break;
|
||||
case NOEND_ABSTIME:
|
||||
strcpy(buf, LATE);
|
||||
break;
|
||||
case NOSTART_ABSTIME:
|
||||
strcpy(buf, EARLY);
|
||||
break;
|
||||
default:
|
||||
abstime2tm(time, &tz, tm, tzn);
|
||||
#if DATEDEBUG
|
||||
#endif
|
||||
EncodeDateTime(tm, fsec, &tz, &tzn, DateStyle, buf);
|
||||
break;
|
||||
EncodeDateTime(tm, fsec, &tz, &tzn, DateStyle, buf);
|
||||
break;
|
||||
}
|
||||
|
||||
result = PALLOC(strlen(buf) + 1);
|
||||
@@ -489,11 +489,11 @@ abstimege(AbsoluteTime t1, AbsoluteTime t2)
|
||||
AbsoluteTime
|
||||
datetime_abstime(DateTime * datetime)
|
||||
{
|
||||
AbsoluteTime result;
|
||||
AbsoluteTime result;
|
||||
|
||||
double fsec;
|
||||
struct tm tt,
|
||||
*tm = &tt;
|
||||
double fsec;
|
||||
struct tm tt,
|
||||
*tm = &tt;
|
||||
|
||||
if (!PointerIsValid(datetime))
|
||||
{
|
||||
@@ -540,39 +540,39 @@ datetime_abstime(DateTime * datetime)
|
||||
/* abstime_datetime()
|
||||
* Convert datetime to abstime.
|
||||
*/
|
||||
DateTime *
|
||||
DateTime *
|
||||
abstime_datetime(AbsoluteTime abstime)
|
||||
{
|
||||
DateTime *result;
|
||||
DateTime *result;
|
||||
|
||||
if (!PointerIsValid(result = PALLOCTYPE(DateTime)))
|
||||
elog(WARN, "Unable to allocate space to convert abstime to datetime", NULL);
|
||||
|
||||
switch (abstime)
|
||||
{
|
||||
case INVALID_ABSTIME:
|
||||
DATETIME_INVALID(*result);
|
||||
break;
|
||||
case INVALID_ABSTIME:
|
||||
DATETIME_INVALID(*result);
|
||||
break;
|
||||
|
||||
case NOSTART_ABSTIME:
|
||||
DATETIME_NOBEGIN(*result);
|
||||
break;
|
||||
case NOSTART_ABSTIME:
|
||||
DATETIME_NOBEGIN(*result);
|
||||
break;
|
||||
|
||||
case NOEND_ABSTIME:
|
||||
DATETIME_NOEND(*result);
|
||||
break;
|
||||
case NOEND_ABSTIME:
|
||||
DATETIME_NOEND(*result);
|
||||
break;
|
||||
|
||||
case EPOCH_ABSTIME:
|
||||
DATETIME_EPOCH(*result);
|
||||
break;
|
||||
case EPOCH_ABSTIME:
|
||||
DATETIME_EPOCH(*result);
|
||||
break;
|
||||
|
||||
case CURRENT_ABSTIME:
|
||||
DATETIME_CURRENT(*result);
|
||||
break;
|
||||
case CURRENT_ABSTIME:
|
||||
DATETIME_CURRENT(*result);
|
||||
break;
|
||||
|
||||
default:
|
||||
*result = abstime + ((date2j(1970, 1, 1) - date2j(2000, 1, 1)) * 86400);
|
||||
break;
|
||||
default:
|
||||
*result = abstime + ((date2j(1970, 1, 1) - date2j(2000, 1, 1)) * 86400);
|
||||
break;
|
||||
};
|
||||
|
||||
return (result);
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/name.c,v 1.7 1997/09/07 04:50:27 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/name.c,v 1.8 1997/09/08 02:30:50 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -32,10 +32,10 @@
|
||||
* [Old] Currently if strlen(s) < NAMEDATALEN, the extra chars are nulls
|
||||
* Now, always NULL terminated
|
||||
*/
|
||||
NameData *
|
||||
NameData *
|
||||
namein(char *s)
|
||||
{
|
||||
NameData *result;
|
||||
NameData *result;
|
||||
|
||||
if (s == NULL)
|
||||
return (NULL);
|
||||
@@ -48,7 +48,7 @@ namein(char *s)
|
||||
/*
|
||||
* nameout - converts internal reprsentation to "..."
|
||||
*/
|
||||
char *
|
||||
char *
|
||||
nameout(NameData * s)
|
||||
{
|
||||
if (s == NULL)
|
||||
@@ -167,9 +167,9 @@ namestrcpy(Name name, char *str)
|
||||
int
|
||||
namestrcat(Name name, char *str)
|
||||
{
|
||||
int i;
|
||||
char *p,
|
||||
*q;
|
||||
int i;
|
||||
char *p,
|
||||
*q;
|
||||
|
||||
if (!name || !str)
|
||||
return (-1);
|
||||
@@ -206,8 +206,8 @@ namestrcmp(Name name, char *str)
|
||||
uint32
|
||||
NameComputeLength(Name name)
|
||||
{
|
||||
char *charP;
|
||||
int length;
|
||||
char *charP;
|
||||
int length;
|
||||
|
||||
for (length = 0, charP = name->data;
|
||||
length < NAMEDATALEN && *charP != '\0';
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/not_in.c,v 1.4 1997/09/07 04:50:29 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/not_in.c,v 1.5 1997/09/08 02:30:52 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -29,7 +29,7 @@
|
||||
#include "access/relscan.h"
|
||||
#include "utils/builtins.h" /* where function decls go */
|
||||
|
||||
static int my_varattno(Relation rd, char *a);
|
||||
static int my_varattno(Relation rd, char *a);
|
||||
|
||||
/* ----------------------------------------------------------------
|
||||
*
|
||||
@@ -38,20 +38,20 @@ static int my_varattno(Relation rd, char *a);
|
||||
bool
|
||||
int4notin(int16 not_in_arg, char *relation_and_attr)
|
||||
{
|
||||
Relation relation_to_scan;
|
||||
int left_side_argument,
|
||||
integer_value;
|
||||
HeapTuple current_tuple;
|
||||
HeapScanDesc scan_descriptor;
|
||||
bool dummy,
|
||||
retval;
|
||||
int attrid;
|
||||
char *relation,
|
||||
*attribute;
|
||||
char my_copy[32];
|
||||
Datum value;
|
||||
NameData relNameData;
|
||||
ScanKeyData skeyData;
|
||||
Relation relation_to_scan;
|
||||
int left_side_argument,
|
||||
integer_value;
|
||||
HeapTuple current_tuple;
|
||||
HeapScanDesc scan_descriptor;
|
||||
bool dummy,
|
||||
retval;
|
||||
int attrid;
|
||||
char *relation,
|
||||
*attribute;
|
||||
char my_copy[32];
|
||||
Datum value;
|
||||
NameData relNameData;
|
||||
ScanKeyData skeyData;
|
||||
|
||||
strcpy(my_copy, relation_and_attr);
|
||||
|
||||
@@ -116,7 +116,7 @@ oidnotin(Oid the_oid, char *compare)
|
||||
static int
|
||||
my_varattno(Relation rd, char *a)
|
||||
{
|
||||
int i;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < rd->rd_rel->relnatts; i++)
|
||||
{
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/numutils.c,v 1.14 1997/09/07 04:50:33 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/numutils.c,v 1.15 1997/09/08 02:30:53 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -29,8 +29,8 @@
|
||||
int32
|
||||
pg_atoi(char *s, int size, int c)
|
||||
{
|
||||
long l;
|
||||
char *badp = (char *) NULL;
|
||||
long l;
|
||||
char *badp = (char *) NULL;
|
||||
|
||||
Assert(s);
|
||||
|
||||
@@ -43,47 +43,47 @@ pg_atoi(char *s, int size, int c)
|
||||
|
||||
switch (size)
|
||||
{
|
||||
case sizeof(int32):
|
||||
case sizeof(int32):
|
||||
#ifdef HAS_LONG_LONG
|
||||
/* won't get ERANGE on these with 64-bit longs... */
|
||||
if (l < -0x80000000L)
|
||||
{
|
||||
errno = ERANGE;
|
||||
elog(WARN, "pg_atoi: error reading \"%s\": %m", s);
|
||||
}
|
||||
if (l > 0x7fffffffL)
|
||||
{
|
||||
errno = ERANGE;
|
||||
elog(WARN, "pg_atoi: error reading \"%s\": %m", s);
|
||||
}
|
||||
/* won't get ERANGE on these with 64-bit longs... */
|
||||
if (l < -0x80000000L)
|
||||
{
|
||||
errno = ERANGE;
|
||||
elog(WARN, "pg_atoi: error reading \"%s\": %m", s);
|
||||
}
|
||||
if (l > 0x7fffffffL)
|
||||
{
|
||||
errno = ERANGE;
|
||||
elog(WARN, "pg_atoi: error reading \"%s\": %m", s);
|
||||
}
|
||||
#endif /* HAS_LONG_LONG */
|
||||
break;
|
||||
case sizeof(int16):
|
||||
if (l < -0x8000)
|
||||
{
|
||||
errno = ERANGE;
|
||||
elog(WARN, "pg_atoi: error reading \"%s\": %m", s);
|
||||
}
|
||||
if (l > 0x7fff)
|
||||
{
|
||||
errno = ERANGE;
|
||||
elog(WARN, "pg_atoi: error reading \"%s\": %m", s);
|
||||
}
|
||||
break;
|
||||
case sizeof(int8):
|
||||
if (l < -0x80)
|
||||
{
|
||||
errno = ERANGE;
|
||||
elog(WARN, "pg_atoi: error reading \"%s\": %m", s);
|
||||
}
|
||||
if (l > 0x7f)
|
||||
{
|
||||
errno = ERANGE;
|
||||
elog(WARN, "pg_atoi: error reading \"%s\": %m", s);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
elog(WARN, "pg_atoi: invalid result size: %d", size);
|
||||
break;
|
||||
case sizeof(int16):
|
||||
if (l < -0x8000)
|
||||
{
|
||||
errno = ERANGE;
|
||||
elog(WARN, "pg_atoi: error reading \"%s\": %m", s);
|
||||
}
|
||||
if (l > 0x7fff)
|
||||
{
|
||||
errno = ERANGE;
|
||||
elog(WARN, "pg_atoi: error reading \"%s\": %m", s);
|
||||
}
|
||||
break;
|
||||
case sizeof(int8):
|
||||
if (l < -0x80)
|
||||
{
|
||||
errno = ERANGE;
|
||||
elog(WARN, "pg_atoi: error reading \"%s\": %m", s);
|
||||
}
|
||||
if (l > 0x7f)
|
||||
{
|
||||
errno = ERANGE;
|
||||
elog(WARN, "pg_atoi: error reading \"%s\": %m", s);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
elog(WARN, "pg_atoi: invalid result size: %d", size);
|
||||
}
|
||||
return ((int32) l);
|
||||
}
|
||||
@@ -146,9 +146,9 @@ int
|
||||
ftoa(double value, char *ascii, int width, int prec1, char format)
|
||||
{
|
||||
#ifndef HAVE_FCVT
|
||||
char out[256];
|
||||
char fmt[256];
|
||||
int ret;
|
||||
char out[256];
|
||||
char fmt[256];
|
||||
int ret;
|
||||
|
||||
sprintf(fmt, "%%%d.%d%c", width, prec1, format);
|
||||
sprintf(out, fmt, value);
|
||||
@@ -161,14 +161,14 @@ ftoa(double value, char *ascii, int width, int prec1, char format)
|
||||
strcpy(ascii, out);
|
||||
return (ret);
|
||||
#else
|
||||
auto int expon;
|
||||
auto int sign;
|
||||
register int avail = 0;
|
||||
register char *a = NULL;
|
||||
register char *p = NULL;
|
||||
char mode;
|
||||
int lowercase;
|
||||
int prec;
|
||||
auto int expon;
|
||||
auto int sign;
|
||||
register int avail = 0;
|
||||
register char *a = NULL;
|
||||
register char *p = NULL;
|
||||
char mode;
|
||||
int lowercase;
|
||||
int prec;
|
||||
|
||||
/* extern char *ecvt(), *fcvt();*/
|
||||
|
||||
@@ -349,13 +349,13 @@ frac_out:
|
||||
int
|
||||
atof1(char *str, double *val)
|
||||
{
|
||||
register char *p;
|
||||
double v;
|
||||
double fact;
|
||||
int minus;
|
||||
register char c;
|
||||
int expon;
|
||||
register int gotmant;
|
||||
register char *p;
|
||||
double v;
|
||||
double fact;
|
||||
int minus;
|
||||
register char c;
|
||||
int expon;
|
||||
register int gotmant;
|
||||
|
||||
v = 0.0;
|
||||
p = str;
|
||||
@@ -372,11 +372,11 @@ atof1(char *str, double *val)
|
||||
/* handle possible sign */
|
||||
switch (c)
|
||||
{
|
||||
case '-':
|
||||
minus++;
|
||||
case '-':
|
||||
minus++;
|
||||
|
||||
case '+':
|
||||
p++;
|
||||
case '+':
|
||||
p++;
|
||||
}
|
||||
|
||||
/* skip blanks after sign */
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/oid.c,v 1.9 1997/09/07 04:50:34 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/oid.c,v 1.10 1997/09/08 02:30:54 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -28,11 +28,11 @@
|
||||
* Note:
|
||||
* Fills any nonexistent digits with NULL oids.
|
||||
*/
|
||||
Oid *
|
||||
Oid *
|
||||
oid8in(char *oidString)
|
||||
{
|
||||
register Oid(*result)[];
|
||||
int nums;
|
||||
register Oid(*result)[];
|
||||
int nums;
|
||||
|
||||
if (oidString == NULL)
|
||||
return (NULL);
|
||||
@@ -57,13 +57,13 @@ oid8in(char *oidString)
|
||||
/*
|
||||
* oid8out - converts internal form to "num num ..."
|
||||
*/
|
||||
char *
|
||||
char *
|
||||
oid8out(Oid(*oidArray)[])
|
||||
{
|
||||
register int num;
|
||||
register Oid *sp;
|
||||
register char *rp;
|
||||
char *result;
|
||||
register int num;
|
||||
register Oid *sp;
|
||||
register char *rp;
|
||||
char *result;
|
||||
|
||||
if (oidArray == NULL)
|
||||
{
|
||||
@@ -93,7 +93,7 @@ oidin(char *s)
|
||||
return (int4in(s));
|
||||
}
|
||||
|
||||
char *
|
||||
char *
|
||||
oidout(Oid o)
|
||||
{
|
||||
return (int4out(o));
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/oidint2.c,v 1.2 1997/09/07 04:50:35 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/oidint2.c,v 1.3 1997/09/08 02:30:54 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -21,8 +21,8 @@
|
||||
OidInt2
|
||||
oidint2in(char *o)
|
||||
{
|
||||
OidInt2 oi;
|
||||
char *p;
|
||||
OidInt2 oi;
|
||||
char *p;
|
||||
|
||||
oi = (OidInt2) palloc(sizeof(OidInt2Data));
|
||||
|
||||
@@ -42,10 +42,10 @@ oidint2in(char *o)
|
||||
return (oi);
|
||||
}
|
||||
|
||||
char *
|
||||
char *
|
||||
oidint2out(OidInt2 o)
|
||||
{
|
||||
char *r;
|
||||
char *r;
|
||||
|
||||
/*
|
||||
* -2147483647/-32767 0 1 1234567890123456789
|
||||
@@ -111,7 +111,7 @@ oidint2cmp(OidInt2 o1, OidInt2 o2)
|
||||
OidInt2
|
||||
mkoidint2(Oid v_oid, uint16 v_int2)
|
||||
{
|
||||
OidInt2 o;
|
||||
OidInt2 o;
|
||||
|
||||
o = (OidInt2) palloc(sizeof(OidInt2Data));
|
||||
o->oi_oid = v_oid;
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/oidint4.c,v 1.2 1997/09/07 04:50:36 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/oidint4.c,v 1.3 1997/09/08 02:30:55 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -20,8 +20,8 @@
|
||||
OidInt4
|
||||
oidint4in(char *o)
|
||||
{
|
||||
OidInt4 oi;
|
||||
char *p;
|
||||
OidInt4 oi;
|
||||
char *p;
|
||||
|
||||
oi = (OidInt4) palloc(sizeof(OidInt4Data));
|
||||
|
||||
@@ -41,10 +41,10 @@ oidint4in(char *o)
|
||||
return (oi);
|
||||
}
|
||||
|
||||
char *
|
||||
char *
|
||||
oidint4out(OidInt4 o)
|
||||
{
|
||||
char *r;
|
||||
char *r;
|
||||
|
||||
/*
|
||||
* -2147483647/-2147483647 0 1 2
|
||||
@@ -60,8 +60,8 @@ bool
|
||||
oidint4lt(OidInt4 o1, OidInt4 o2)
|
||||
{
|
||||
return
|
||||
((bool) (o1->oi_oid < o2->oi_oid ||
|
||||
(o1->oi_oid == o2->oi_oid && o1->oi_int4 < o2->oi_int4)));
|
||||
((bool) (o1->oi_oid < o2->oi_oid ||
|
||||
(o1->oi_oid == o2->oi_oid && o1->oi_int4 < o2->oi_int4)));
|
||||
}
|
||||
|
||||
bool
|
||||
@@ -111,7 +111,7 @@ oidint4cmp(OidInt4 o1, OidInt4 o2)
|
||||
OidInt4
|
||||
mkoidint4(Oid v_oid, uint32 v_int4)
|
||||
{
|
||||
OidInt4 o;
|
||||
OidInt4 o;
|
||||
|
||||
o = (OidInt4) palloc(sizeof(OidInt4Data));
|
||||
o->oi_oid = v_oid;
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/oidname.c,v 1.5 1997/09/07 04:50:36 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/oidname.c,v 1.6 1997/09/08 02:30:56 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -23,8 +23,8 @@
|
||||
OidName
|
||||
oidnamein(char *inStr)
|
||||
{
|
||||
OidName oc;
|
||||
char *inptr;
|
||||
OidName oc;
|
||||
char *inptr;
|
||||
|
||||
oc = (OidName) palloc(sizeof(OidNameData));
|
||||
|
||||
@@ -45,12 +45,12 @@ oidnamein(char *inStr)
|
||||
return oc;
|
||||
}
|
||||
|
||||
char *
|
||||
char *
|
||||
oidnameout(OidName oidname)
|
||||
{
|
||||
char buf[30 + NAMEDATALEN]; /* oidname length + oid
|
||||
* length + some safety */
|
||||
char *res;
|
||||
char buf[30 + NAMEDATALEN]; /* oidname length + oid length +
|
||||
* some safety */
|
||||
char *res;
|
||||
|
||||
sprintf(buf, "%d,%s", oidname->id, oidname->name.data);
|
||||
res = pstrdup(buf);
|
||||
@@ -115,7 +115,7 @@ oidnamecmp(OidName o1, OidName o2)
|
||||
OidName
|
||||
mkoidname(Oid id, char *name)
|
||||
{
|
||||
OidName oidname;
|
||||
OidName oidname;
|
||||
|
||||
oidname = (OidName) palloc(sizeof(Oid) + NAMEDATALEN);
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* Edmund Mergl <E.Mergl@bawue.de>
|
||||
*
|
||||
* $Id: oracle_compat.c,v 1.8 1997/09/07 04:50:38 momjian Exp $
|
||||
* $Id: oracle_compat.c,v 1.9 1997/09/08 02:30:57 momjian Exp $
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -10,16 +10,16 @@
|
||||
#include "postgres.h"
|
||||
|
||||
|
||||
text *lower(text * string);
|
||||
text *upper(text * string);
|
||||
text *initcap(text * string);
|
||||
text *lpad(text * string1, int4 len, text * string2);
|
||||
text *rpad(text * string1, int4 len, text * string2);
|
||||
text *btrim(text * string, text * set);
|
||||
text *ltrim(text * string, text * set);
|
||||
text *rtrim(text * string, text * set);
|
||||
text *substr(text * string, int4 m, int4 n);
|
||||
text *translate(text * string, char from, char to);
|
||||
text *lower(text * string);
|
||||
text *upper(text * string);
|
||||
text *initcap(text * string);
|
||||
text *lpad(text * string1, int4 len, text * string2);
|
||||
text *rpad(text * string1, int4 len, text * string2);
|
||||
text *btrim(text * string, text * set);
|
||||
text *ltrim(text * string, text * set);
|
||||
text *rtrim(text * string, text * set);
|
||||
text *substr(text * string, int4 m, int4 n);
|
||||
text *translate(text * string, char from, char to);
|
||||
|
||||
|
||||
/********************************************************************
|
||||
@@ -36,13 +36,13 @@ text *translate(text * string, char from, char to);
|
||||
*
|
||||
********************************************************************/
|
||||
|
||||
text *
|
||||
text *
|
||||
lower(text * string)
|
||||
{
|
||||
text *ret;
|
||||
char *ptr,
|
||||
*ptr_ret;
|
||||
int m;
|
||||
text *ret;
|
||||
char *ptr,
|
||||
*ptr_ret;
|
||||
int m;
|
||||
|
||||
if ((string == (text *) NULL) || ((m = VARSIZE(string) - VARHDRSZ) <= 0))
|
||||
return string;
|
||||
@@ -76,13 +76,13 @@ lower(text * string)
|
||||
*
|
||||
********************************************************************/
|
||||
|
||||
text *
|
||||
text *
|
||||
upper(text * string)
|
||||
{
|
||||
text *ret;
|
||||
char *ptr,
|
||||
*ptr_ret;
|
||||
int m;
|
||||
text *ret;
|
||||
char *ptr,
|
||||
*ptr_ret;
|
||||
int m;
|
||||
|
||||
if ((string == (text *) NULL) || ((m = VARSIZE(string) - VARHDRSZ) <= 0))
|
||||
return string;
|
||||
@@ -118,13 +118,13 @@ upper(text * string)
|
||||
*
|
||||
********************************************************************/
|
||||
|
||||
text *
|
||||
text *
|
||||
initcap(text * string)
|
||||
{
|
||||
text *ret;
|
||||
char *ptr,
|
||||
*ptr_ret;
|
||||
int m;
|
||||
text *ret;
|
||||
char *ptr,
|
||||
*ptr_ret;
|
||||
int m;
|
||||
|
||||
if ((string == (text *) NULL) || ((m = VARSIZE(string) - VARHDRSZ) <= 0))
|
||||
return string;
|
||||
@@ -169,15 +169,15 @@ initcap(text * string)
|
||||
*
|
||||
********************************************************************/
|
||||
|
||||
text *
|
||||
text *
|
||||
lpad(text * string1, int4 len, text * string2)
|
||||
{
|
||||
text *ret;
|
||||
char *ptr1,
|
||||
*ptr2,
|
||||
*ptr_ret;
|
||||
int m,
|
||||
n;
|
||||
text *ret;
|
||||
char *ptr1,
|
||||
*ptr2,
|
||||
*ptr_ret;
|
||||
int m,
|
||||
n;
|
||||
|
||||
if ((string1 == (text *) NULL) ||
|
||||
(len <= (VARSIZE(string1) - VARHDRSZ)) ||
|
||||
@@ -225,15 +225,15 @@ lpad(text * string1, int4 len, text * string2)
|
||||
*
|
||||
********************************************************************/
|
||||
|
||||
text *
|
||||
text *
|
||||
rpad(text * string1, int4 len, text * string2)
|
||||
{
|
||||
text *ret;
|
||||
char *ptr1,
|
||||
*ptr2,
|
||||
*ptr_ret;
|
||||
int m,
|
||||
n;
|
||||
text *ret;
|
||||
char *ptr1,
|
||||
*ptr2,
|
||||
*ptr_ret;
|
||||
int m,
|
||||
n;
|
||||
|
||||
if ((string1 == (text *) NULL) ||
|
||||
(len <= (VARSIZE(string1) - VARHDRSZ)) ||
|
||||
@@ -281,15 +281,15 @@ rpad(text * string1, int4 len, text * string2)
|
||||
*
|
||||
********************************************************************/
|
||||
|
||||
text *
|
||||
text *
|
||||
btrim(text * string, text * set)
|
||||
{
|
||||
text *ret;
|
||||
char *ptr,
|
||||
*end,
|
||||
*ptr2,
|
||||
*end2;
|
||||
int m;
|
||||
text *ret;
|
||||
char *ptr,
|
||||
*end,
|
||||
*ptr2,
|
||||
*end2;
|
||||
int m;
|
||||
|
||||
if ((string == (text *) NULL) ||
|
||||
((m = VARSIZE(string) - VARHDRSZ) <= 0) ||
|
||||
@@ -367,14 +367,14 @@ btrim(text * string, text * set)
|
||||
*
|
||||
********************************************************************/
|
||||
|
||||
text *
|
||||
text *
|
||||
ltrim(text * string, text * set)
|
||||
{
|
||||
text *ret;
|
||||
char *ptr,
|
||||
*ptr2,
|
||||
*end2;
|
||||
int m;
|
||||
text *ret;
|
||||
char *ptr,
|
||||
*ptr2,
|
||||
*end2;
|
||||
int m;
|
||||
|
||||
if ((string == (text *) NULL) ||
|
||||
((m = VARSIZE(string) - VARHDRSZ) <= 0) ||
|
||||
@@ -430,15 +430,15 @@ ltrim(text * string, text * set)
|
||||
*
|
||||
********************************************************************/
|
||||
|
||||
text *
|
||||
text *
|
||||
rtrim(text * string, text * set)
|
||||
{
|
||||
text *ret;
|
||||
char *ptr,
|
||||
*ptr2,
|
||||
*end2,
|
||||
*ptr_ret;
|
||||
int m;
|
||||
text *ret;
|
||||
char *ptr,
|
||||
*ptr2,
|
||||
*end2,
|
||||
*ptr_ret;
|
||||
int m;
|
||||
|
||||
if ((string == (text *) NULL) ||
|
||||
((m = VARSIZE(string) - VARHDRSZ) <= 0) ||
|
||||
@@ -502,13 +502,13 @@ rtrim(text * string, text * set)
|
||||
*
|
||||
********************************************************************/
|
||||
|
||||
text *
|
||||
text *
|
||||
substr(text * string, int4 m, int4 n)
|
||||
{
|
||||
text *ret;
|
||||
char *ptr,
|
||||
*ptr_ret;
|
||||
int len;
|
||||
text *ret;
|
||||
char *ptr,
|
||||
*ptr_ret;
|
||||
int len;
|
||||
|
||||
if ((string == (text *) NULL) ||
|
||||
(m <= 0) || (n <= 0) ||
|
||||
@@ -548,13 +548,13 @@ substr(text * string, int4 m, int4 n)
|
||||
*
|
||||
********************************************************************/
|
||||
|
||||
text *
|
||||
text *
|
||||
translate(text * string, char from, char to)
|
||||
{
|
||||
text *ret;
|
||||
char *ptr,
|
||||
*ptr_ret;
|
||||
int m;
|
||||
text *ret;
|
||||
char *ptr,
|
||||
*ptr_ret;
|
||||
int m;
|
||||
|
||||
if ((string == (text *) NULL) ||
|
||||
((m = VARSIZE(string) - VARHDRSZ) <= 0))
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/regexp.c,v 1.8 1997/09/07 04:50:39 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/regexp.c,v 1.9 1997/09/08 02:30:58 momjian Exp $
|
||||
*
|
||||
* Alistair Crooks added the code for the regex caching
|
||||
* agc - cached the regular expressions used - there's a good chance
|
||||
@@ -47,13 +47,13 @@
|
||||
struct cached_re_str
|
||||
{
|
||||
struct varlena *cre_text; /* pattern as a text* */
|
||||
char *cre_s; /* pattern as null-terminated string */
|
||||
int cre_type; /* compiled-type: extended,icase etc */
|
||||
regex_t cre_re; /* the compiled regular expression */
|
||||
unsigned long cre_lru; /* lru tag */
|
||||
char *cre_s; /* pattern as null-terminated string */
|
||||
int cre_type; /* compiled-type: extended,icase etc */
|
||||
regex_t cre_re; /* the compiled regular expression */
|
||||
unsigned long cre_lru; /* lru tag */
|
||||
};
|
||||
|
||||
static int rec = 0; /* # of cached re's */
|
||||
static int rec = 0; /* # of cached re's */
|
||||
static struct cached_re_str rev[MAX_CACHED_RES]; /* cached re's */
|
||||
static unsigned long lru; /* system lru tag */
|
||||
|
||||
@@ -62,11 +62,11 @@ static unsigned long lru; /* system lru tag */
|
||||
static int
|
||||
RE_compile_and_execute(struct varlena * text_re, char *text, int cflags)
|
||||
{
|
||||
int oldest;
|
||||
int n;
|
||||
int i;
|
||||
char *re;
|
||||
int regcomp_result;
|
||||
int oldest;
|
||||
int n;
|
||||
int i;
|
||||
char *re;
|
||||
int regcomp_result;
|
||||
|
||||
re = textout(text_re);
|
||||
/* find a previously compiled regular expression */
|
||||
@@ -151,7 +151,7 @@ RE_compile_and_execute(struct varlena * text_re, char *text, int cflags)
|
||||
}
|
||||
else
|
||||
{
|
||||
char errMsg[1000];
|
||||
char errMsg[1000];
|
||||
|
||||
/* re didn't compile */
|
||||
rev[oldest].cre_s = (char *) NULL;
|
||||
@@ -178,11 +178,11 @@ RE_compile_and_execute(struct varlena * text_re, char *text, int cflags)
|
||||
p - the pattern
|
||||
charlen - the length of the string
|
||||
*/
|
||||
static bool
|
||||
static bool
|
||||
fixedlen_regexeq(char *s, struct varlena * p, int charlen, int cflags)
|
||||
{
|
||||
char *sterm;
|
||||
int result;
|
||||
char *sterm;
|
||||
int result;
|
||||
|
||||
if (!s || !p)
|
||||
return FALSE;
|
||||
@@ -206,7 +206,7 @@ fixedlen_regexeq(char *s, struct varlena * p, int charlen, int cflags)
|
||||
bool
|
||||
char2regexeq(uint16 arg1, struct varlena * p)
|
||||
{
|
||||
char *s = (char *) &arg1;
|
||||
char *s = (char *) &arg1;
|
||||
|
||||
return (fixedlen_regexeq(s, p, 2, REG_EXTENDED));
|
||||
}
|
||||
@@ -220,7 +220,7 @@ char2regexne(uint16 arg1, struct varlena * p)
|
||||
bool
|
||||
char4regexeq(uint32 arg1, struct varlena * p)
|
||||
{
|
||||
char *s = (char *) &arg1;
|
||||
char *s = (char *) &arg1;
|
||||
|
||||
return (fixedlen_regexeq(s, p, 4, REG_EXTENDED));
|
||||
}
|
||||
@@ -291,7 +291,7 @@ textregexne(struct varlena * s, struct varlena * p)
|
||||
bool
|
||||
char2icregexeq(uint16 arg1, struct varlena * p)
|
||||
{
|
||||
char *s = (char *) &arg1;
|
||||
char *s = (char *) &arg1;
|
||||
|
||||
return (fixedlen_regexeq(s, p, 2, REG_ICASE | REG_EXTENDED));
|
||||
}
|
||||
@@ -306,7 +306,7 @@ char2icregexne(uint16 arg1, struct varlena * p)
|
||||
bool
|
||||
char4icregexeq(uint32 arg1, struct varlena * p)
|
||||
{
|
||||
char *s = (char *) &arg1;
|
||||
char *s = (char *) &arg1;
|
||||
|
||||
return (fixedlen_regexeq(s, p, 4, REG_ICASE | REG_EXTENDED));
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/regproc.c,v 1.6 1997/09/07 04:50:41 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/regproc.c,v 1.7 1997/09/08 02:30:58 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -33,12 +33,12 @@
|
||||
int32
|
||||
regprocin(char *proname)
|
||||
{
|
||||
Relation proc;
|
||||
HeapScanDesc procscan;
|
||||
HeapTuple proctup;
|
||||
ScanKeyData key;
|
||||
RegProcedure result = (Oid) 0;
|
||||
bool isnull;
|
||||
Relation proc;
|
||||
HeapScanDesc procscan;
|
||||
HeapTuple proctup;
|
||||
ScanKeyData key;
|
||||
RegProcedure result = (Oid) 0;
|
||||
bool isnull;
|
||||
|
||||
if (proname == NULL)
|
||||
return (0);
|
||||
@@ -66,21 +66,21 @@ regprocin(char *proname)
|
||||
proctup = heap_getnext(procscan, 0, (Buffer *) NULL);
|
||||
switch (HeapTupleIsValid(proctup))
|
||||
{
|
||||
case 1:
|
||||
result = (RegProcedure) heap_getattr(proctup,
|
||||
InvalidBuffer,
|
||||
ObjectIdAttributeNumber,
|
||||
case 1:
|
||||
result = (RegProcedure) heap_getattr(proctup,
|
||||
InvalidBuffer,
|
||||
ObjectIdAttributeNumber,
|
||||
RelationGetTupleDescriptor(proc),
|
||||
&isnull);
|
||||
if (isnull)
|
||||
{
|
||||
elog(FATAL, "regprocin: null procedure %s", proname);
|
||||
}
|
||||
break;
|
||||
case 0:
|
||||
result = (RegProcedure) 0;
|
||||
&isnull);
|
||||
if (isnull)
|
||||
{
|
||||
elog(FATAL, "regprocin: null procedure %s", proname);
|
||||
}
|
||||
break;
|
||||
case 0:
|
||||
result = (RegProcedure) 0;
|
||||
#ifdef EBUG
|
||||
elog(DEBUG, "regprocin: no such procedure %s", proname);
|
||||
elog(DEBUG, "regprocin: no such procedure %s", proname);
|
||||
#endif /* defined(EBUG) */
|
||||
}
|
||||
heap_endscan(procscan);
|
||||
@@ -91,14 +91,14 @@ regprocin(char *proname)
|
||||
/*
|
||||
* regprocout - converts proid to "proname"
|
||||
*/
|
||||
char *
|
||||
char *
|
||||
regprocout(RegProcedure proid)
|
||||
{
|
||||
Relation proc;
|
||||
HeapScanDesc procscan;
|
||||
HeapTuple proctup;
|
||||
char *result;
|
||||
ScanKeyData key;
|
||||
Relation proc;
|
||||
HeapScanDesc procscan;
|
||||
HeapTuple proctup;
|
||||
char *result;
|
||||
ScanKeyData key;
|
||||
|
||||
result = (char *) palloc(NAMEDATALEN);
|
||||
proc = heap_openr(ProcedureRelationName);
|
||||
@@ -125,24 +125,24 @@ regprocout(RegProcedure proid)
|
||||
proctup = heap_getnext(procscan, 0, (Buffer *) NULL);
|
||||
switch (HeapTupleIsValid(proctup))
|
||||
{
|
||||
char *s;
|
||||
bool isnull;
|
||||
char *s;
|
||||
bool isnull;
|
||||
|
||||
case 1:
|
||||
s = (char *) heap_getattr(proctup, InvalidBuffer, 1,
|
||||
case 1:
|
||||
s = (char *) heap_getattr(proctup, InvalidBuffer, 1,
|
||||
RelationGetTupleDescriptor(proc), &isnull);
|
||||
if (!isnull)
|
||||
{
|
||||
strNcpy(result, s, 16);
|
||||
break;
|
||||
}
|
||||
elog(FATAL, "regprocout: null procedure %d", proid);
|
||||
/* FALLTHROUGH */
|
||||
case 0:
|
||||
result[0] = '-';
|
||||
result[1] = '\0';
|
||||
if (!isnull)
|
||||
{
|
||||
strNcpy(result, s, 16);
|
||||
break;
|
||||
}
|
||||
elog(FATAL, "regprocout: null procedure %d", proid);
|
||||
/* FALLTHROUGH */
|
||||
case 0:
|
||||
result[0] = '-';
|
||||
result[1] = '\0';
|
||||
#ifdef EBUG
|
||||
elog(DEBUG, "regprocout: no such procedure %d", proid);
|
||||
elog(DEBUG, "regprocout: no such procedure %d", proid);
|
||||
#endif /* defined(EBUG) */
|
||||
}
|
||||
heap_endscan(procscan);
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/selfuncs.c,v 1.9 1997/09/07 04:50:42 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/selfuncs.c,v 1.10 1997/09/08 02:31:00 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -57,7 +57,7 @@ eqsel(Oid opid,
|
||||
char *value,
|
||||
int32 flag)
|
||||
{
|
||||
float64 result;
|
||||
float64 result;
|
||||
|
||||
result = (float64) palloc(sizeof(float64data));
|
||||
if (NONVALUE(attno) || NONVALUE(relid))
|
||||
@@ -77,7 +77,7 @@ neqsel(Oid opid,
|
||||
char *value,
|
||||
int32 flag)
|
||||
{
|
||||
float64 result;
|
||||
float64 result;
|
||||
|
||||
result = eqsel(opid, relid, attno, value, flag);
|
||||
*result = 1.0 - *result;
|
||||
@@ -95,14 +95,14 @@ intltsel(Oid opid,
|
||||
int32 value,
|
||||
int32 flag)
|
||||
{
|
||||
float64 result;
|
||||
char *highchar,
|
||||
*lowchar;
|
||||
long val,
|
||||
high,
|
||||
low,
|
||||
top,
|
||||
bottom;
|
||||
float64 result;
|
||||
char *highchar,
|
||||
*lowchar;
|
||||
long val,
|
||||
high,
|
||||
low,
|
||||
top,
|
||||
bottom;
|
||||
|
||||
result = (float64) palloc(sizeof(float64data));
|
||||
if (NONVALUE(attno) || NONVALUE(relid))
|
||||
@@ -122,7 +122,7 @@ intltsel(Oid opid,
|
||||
if ((flag & SEL_RIGHT && val < low) ||
|
||||
(!(flag & SEL_RIGHT) && val > high))
|
||||
{
|
||||
float32data nvals;
|
||||
float32data nvals;
|
||||
|
||||
nvals = getattdisbursion(relid, (int) attno);
|
||||
if (nvals == 0)
|
||||
@@ -167,8 +167,8 @@ intgtsel(Oid opid,
|
||||
int32 value,
|
||||
int32 flag)
|
||||
{
|
||||
float64 result;
|
||||
int notflag;
|
||||
float64 result;
|
||||
int notflag;
|
||||
|
||||
if (flag & 0)
|
||||
notflag = flag & ~SEL_RIGHT;
|
||||
@@ -188,10 +188,10 @@ eqjoinsel(Oid opid,
|
||||
Oid relid2,
|
||||
AttrNumber attno2)
|
||||
{
|
||||
float64 result;
|
||||
float32data num1,
|
||||
num2,
|
||||
max;
|
||||
float64 result;
|
||||
float32data num1,
|
||||
num2,
|
||||
max;
|
||||
|
||||
result = (float64) palloc(sizeof(float64data));
|
||||
if (NONVALUE(attno1) || NONVALUE(relid1) ||
|
||||
@@ -220,7 +220,7 @@ neqjoinsel(Oid opid,
|
||||
Oid relid2,
|
||||
AttrNumber attno2)
|
||||
{
|
||||
float64 result;
|
||||
float64 result;
|
||||
|
||||
result = eqjoinsel(opid, relid1, attno1, relid2, attno2);
|
||||
*result = 1.0 - *result;
|
||||
@@ -237,7 +237,7 @@ intltjoinsel(Oid opid,
|
||||
Oid relid2,
|
||||
AttrNumber attno2)
|
||||
{
|
||||
float64 result;
|
||||
float64 result;
|
||||
|
||||
result = (float64) palloc(sizeof(float64data));
|
||||
*result = 1.0 / 3.0;
|
||||
@@ -254,7 +254,7 @@ intgtjoinsel(Oid opid,
|
||||
Oid relid2,
|
||||
AttrNumber attno2)
|
||||
{
|
||||
float64 result;
|
||||
float64 result;
|
||||
|
||||
result = (float64) palloc(sizeof(float64data));
|
||||
*result = 1.0 / 3.0;
|
||||
@@ -275,12 +275,12 @@ intgtjoinsel(Oid opid,
|
||||
* more efficient. However, the cast will not work
|
||||
* for gethilokey which accesses stahikey in struct statistic.
|
||||
*/
|
||||
static float32data
|
||||
static float32data
|
||||
getattdisbursion(Oid relid, AttrNumber attnum)
|
||||
{
|
||||
HeapTuple atp;
|
||||
float32data nvals;
|
||||
int32 ntuples;
|
||||
HeapTuple atp;
|
||||
float32data nvals;
|
||||
int32 ntuples;
|
||||
|
||||
atp = SearchSysCacheTuple(ATTNUM,
|
||||
ObjectIdGetDatum(relid),
|
||||
@@ -342,8 +342,8 @@ gethilokey(Oid relid,
|
||||
{0, Anum_pg_statistic_staattnum, F_INT2EQ},
|
||||
{0, Anum_pg_statistic_staop, F_OIDEQ}
|
||||
};
|
||||
bool isnull;
|
||||
HeapTuple tuple;
|
||||
bool isnull;
|
||||
HeapTuple tuple;
|
||||
|
||||
rdesc = heap_openr(StatisticRelationName);
|
||||
|
||||
@@ -392,8 +392,8 @@ btreesel(Oid operatorObjectId,
|
||||
int32 nIndexKeys,
|
||||
Oid indexrelid)
|
||||
{
|
||||
float64 result;
|
||||
float64data resultData;
|
||||
float64 result;
|
||||
float64data resultData;
|
||||
|
||||
if (FunctionalSelectivity(nIndexKeys, attributeNumber))
|
||||
{
|
||||
@@ -434,11 +434,11 @@ btreenpage(Oid operatorObjectId,
|
||||
int32 nIndexKeys,
|
||||
Oid indexrelid)
|
||||
{
|
||||
float64 temp,
|
||||
result;
|
||||
float64data tempData;
|
||||
HeapTuple atp;
|
||||
int npage;
|
||||
float64 temp,
|
||||
result;
|
||||
float64data tempData;
|
||||
HeapTuple atp;
|
||||
int npage;
|
||||
|
||||
if (FunctionalSelectivity(nIndexKeys, attributeNumber))
|
||||
{
|
||||
@@ -486,10 +486,10 @@ hashsel(Oid operatorObjectId,
|
||||
Oid indexrelid)
|
||||
{
|
||||
|
||||
float64 result;
|
||||
float64data resultData;
|
||||
HeapTuple atp;
|
||||
int ntuples;
|
||||
float64 result;
|
||||
float64data resultData;
|
||||
HeapTuple atp;
|
||||
int ntuples;
|
||||
|
||||
if (FunctionalSelectivity(nIndexKeys, attributeNumber))
|
||||
{
|
||||
@@ -549,12 +549,12 @@ hashnpage(Oid operatorObjectId,
|
||||
int32 nIndexKeys,
|
||||
Oid indexrelid)
|
||||
{
|
||||
float64 temp,
|
||||
result;
|
||||
float64data tempData;
|
||||
HeapTuple atp;
|
||||
int npage;
|
||||
int ntuples;
|
||||
float64 temp,
|
||||
result;
|
||||
float64data tempData;
|
||||
HeapTuple atp;
|
||||
int npage;
|
||||
int ntuples;
|
||||
|
||||
atp = SearchSysCacheTuple(RELOID, ObjectIdGetDatum(indexrelid),
|
||||
0, 0, 0);
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/sets.c,v 1.6 1997/09/07 04:50:43 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/sets.c,v 1.7 1997/09/08 02:31:01 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -42,20 +42,20 @@ extern CommandDest whereToSendOutput; /* defined in tcop/postgres.c */
|
||||
Oid
|
||||
SetDefine(char *querystr, char *typename)
|
||||
{
|
||||
Oid setoid;
|
||||
char *procname = GENERICSETNAME;
|
||||
char *fileName = "-";
|
||||
char realprocname[16];
|
||||
HeapTuple tup,
|
||||
newtup = NULL;
|
||||
Form_pg_proc proc;
|
||||
Relation procrel;
|
||||
int i;
|
||||
Datum replValue[Natts_pg_proc];
|
||||
char replNull[Natts_pg_proc];
|
||||
char repl[Natts_pg_proc];
|
||||
HeapScanDesc pg_proc_scan;
|
||||
Buffer buffer;
|
||||
Oid setoid;
|
||||
char *procname = GENERICSETNAME;
|
||||
char *fileName = "-";
|
||||
char realprocname[16];
|
||||
HeapTuple tup,
|
||||
newtup = NULL;
|
||||
Form_pg_proc proc;
|
||||
Relation procrel;
|
||||
int i;
|
||||
Datum replValue[Natts_pg_proc];
|
||||
char replNull[Natts_pg_proc];
|
||||
char repl[Natts_pg_proc];
|
||||
HeapScanDesc pg_proc_scan;
|
||||
Buffer buffer;
|
||||
ItemPointerData ipdata;
|
||||
|
||||
static ScanKeyData oidKey[1] = {
|
||||
@@ -149,7 +149,7 @@ SetDefine(char *querystr, char *typename)
|
||||
|
||||
if (RelationGetRelationTupleForm(procrel)->relhasindex)
|
||||
{
|
||||
Relation idescs[Num_pg_proc_indices];
|
||||
Relation idescs[Num_pg_proc_indices];
|
||||
|
||||
CatalogOpenIndices(Num_pg_proc_indices, Name_pg_proc_indices, idescs);
|
||||
CatalogIndexInsert(idescs, Num_pg_proc_indices, procrel, newtup);
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/tid.c,v 1.3 1997/09/07 04:50:46 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/tid.c,v 1.4 1997/09/08 02:31:03 momjian Exp $
|
||||
*
|
||||
* NOTES
|
||||
* input routine largely stolen from boxin().
|
||||
@@ -35,13 +35,13 @@
|
||||
ItemPointer
|
||||
tidin(char *str)
|
||||
{
|
||||
char *p,
|
||||
*coord[NTIDARGS];
|
||||
int i;
|
||||
ItemPointer result;
|
||||
char *p,
|
||||
*coord[NTIDARGS];
|
||||
int i;
|
||||
ItemPointer result;
|
||||
|
||||
BlockNumber blockNumber;
|
||||
OffsetNumber offsetNumber;
|
||||
BlockNumber blockNumber;
|
||||
OffsetNumber offsetNumber;
|
||||
|
||||
if (str == NULL)
|
||||
return NULL;
|
||||
@@ -67,14 +67,14 @@ tidin(char *str)
|
||||
* tidout
|
||||
* ----------------------------------------------------------------
|
||||
*/
|
||||
char *
|
||||
char *
|
||||
tidout(ItemPointer itemPtr)
|
||||
{
|
||||
BlockNumber blockNumber;
|
||||
OffsetNumber offsetNumber;
|
||||
BlockId blockId;
|
||||
char buf[32];
|
||||
char *str;
|
||||
BlockNumber blockNumber;
|
||||
OffsetNumber offsetNumber;
|
||||
BlockId blockId;
|
||||
char buf[32];
|
||||
char *str;
|
||||
|
||||
blockId = &(itemPtr->ip_blkid);
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
static const char *
|
||||
cpstr(const char *s, char *buf)
|
||||
{
|
||||
char in = 0;
|
||||
char in = 0;
|
||||
|
||||
while (isspace(*s))
|
||||
s++;
|
||||
@@ -43,12 +43,12 @@ cpstr(const char *s, char *buf)
|
||||
time_t
|
||||
timestamp_in(const char *timestamp_str)
|
||||
{
|
||||
int4 result;
|
||||
int4 result;
|
||||
|
||||
#if FALSE
|
||||
struct tm input_time;
|
||||
char buf[18];
|
||||
const char *p;
|
||||
struct tm input_time;
|
||||
char buf[18];
|
||||
const char *p;
|
||||
static const char *mstr[] = {
|
||||
"january", "february", "march", "april", "may", "june",
|
||||
"july", "august", "september", "october", "november", "december"
|
||||
@@ -72,7 +72,7 @@ timestamp_in(const char *timestamp_str)
|
||||
}
|
||||
else
|
||||
{
|
||||
int i;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 12; i++)
|
||||
if (strncmp(mstr[i], buf, strlen(buf)) == 0)
|
||||
@@ -86,7 +86,7 @@ timestamp_in(const char *timestamp_str)
|
||||
else
|
||||
/* must be month/dd/yyyy */
|
||||
{
|
||||
int i;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 12; i++)
|
||||
if (strncmp(mstr[i], buf, strlen(buf)) == 0)
|
||||
@@ -126,17 +126,17 @@ timestamp_in(const char *timestamp_str)
|
||||
return result;
|
||||
}
|
||||
|
||||
char *
|
||||
char *
|
||||
timestamp_out(time_t timestamp)
|
||||
{
|
||||
char *result;
|
||||
int tz;
|
||||
double fsec = 0;
|
||||
struct tm tt,
|
||||
*tm = &tt;
|
||||
char buf[MAXDATELEN + 1];
|
||||
char zone[MAXDATELEN + 1],
|
||||
*tzn = zone;
|
||||
char *result;
|
||||
int tz;
|
||||
double fsec = 0;
|
||||
struct tm tt,
|
||||
*tm = &tt;
|
||||
char buf[MAXDATELEN + 1];
|
||||
char zone[MAXDATELEN + 1],
|
||||
*tzn = zone;
|
||||
|
||||
#if FALSE
|
||||
time = localtime(×tamp);
|
||||
@@ -156,7 +156,7 @@ timestamp_out(time_t timestamp)
|
||||
time_t
|
||||
now(void)
|
||||
{
|
||||
time_t sec;
|
||||
time_t sec;
|
||||
|
||||
time(&sec);
|
||||
return (sec);
|
||||
@@ -198,13 +198,13 @@ timestampge(time_t t1, time_t t2)
|
||||
return difftime(t1, t2) <= 0;
|
||||
}
|
||||
|
||||
DateTime *
|
||||
DateTime *
|
||||
timestamp_datetime(time_t timestamp)
|
||||
{
|
||||
DateTime *result;
|
||||
DateTime *result;
|
||||
|
||||
double fsec = 0;
|
||||
struct tm *tm;
|
||||
double fsec = 0;
|
||||
struct tm *tm;
|
||||
|
||||
if (!PointerIsValid(result = PALLOCTYPE(DateTime)))
|
||||
elog(WARN, "Memory allocation failed, can't convert timestamp to datetime", NULL);
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.9 1997/09/07 04:52:53 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.10 1997/09/08 02:31:05 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -49,13 +49,13 @@
|
||||
* len is the length specified in () plus 4 bytes. (XXX dummy is here
|
||||
* because we pass typelem as the second argument for array_in.)
|
||||
*/
|
||||
char *
|
||||
char *
|
||||
bpcharin(char *s, int dummy, int typlen)
|
||||
{
|
||||
char *result,
|
||||
*r;
|
||||
int len = typlen - 4;
|
||||
int i;
|
||||
char *result,
|
||||
*r;
|
||||
int len = typlen - 4;
|
||||
int i;
|
||||
|
||||
if (s == NULL)
|
||||
return ((char *) NULL);
|
||||
@@ -90,11 +90,11 @@ bpcharin(char *s, int dummy, int typlen)
|
||||
return (result);
|
||||
}
|
||||
|
||||
char *
|
||||
char *
|
||||
bpcharout(char *s)
|
||||
{
|
||||
char *result;
|
||||
int len;
|
||||
char *result;
|
||||
int len;
|
||||
|
||||
if (s == NULL)
|
||||
{
|
||||
@@ -121,11 +121,11 @@ bpcharout(char *s)
|
||||
* len is the length specified in () plus 4 bytes. (XXX dummy is here
|
||||
* because we pass typelem as the second argument for array_in.)
|
||||
*/
|
||||
char *
|
||||
char *
|
||||
varcharin(char *s, int dummy, int typlen)
|
||||
{
|
||||
char *result;
|
||||
int len = typlen - 4;
|
||||
char *result;
|
||||
int len = typlen - 4;
|
||||
|
||||
if (s == NULL)
|
||||
return ((char *) NULL);
|
||||
@@ -150,11 +150,11 @@ varcharin(char *s, int dummy, int typlen)
|
||||
return (result);
|
||||
}
|
||||
|
||||
char *
|
||||
char *
|
||||
varcharout(char *s)
|
||||
{
|
||||
char *result;
|
||||
int len;
|
||||
char *result;
|
||||
int len;
|
||||
|
||||
if (s == NULL)
|
||||
{
|
||||
@@ -178,9 +178,9 @@ varcharout(char *s)
|
||||
static int
|
||||
bcTruelen(char *arg)
|
||||
{
|
||||
char *s = arg + 4;
|
||||
int i;
|
||||
int len;
|
||||
char *s = arg + 4;
|
||||
int i;
|
||||
int len;
|
||||
|
||||
len = *(int32 *) arg - 4;
|
||||
for (i = len - 1; i >= 0; i--)
|
||||
@@ -194,8 +194,8 @@ bcTruelen(char *arg)
|
||||
bool
|
||||
bpchareq(char *arg1, char *arg2)
|
||||
{
|
||||
int len1,
|
||||
len2;
|
||||
int len1,
|
||||
len2;
|
||||
|
||||
if (arg1 == NULL || arg2 == NULL)
|
||||
return ((bool) 0);
|
||||
@@ -211,8 +211,8 @@ bpchareq(char *arg1, char *arg2)
|
||||
bool
|
||||
bpcharne(char *arg1, char *arg2)
|
||||
{
|
||||
int len1,
|
||||
len2;
|
||||
int len1,
|
||||
len2;
|
||||
|
||||
if (arg1 == NULL || arg2 == NULL)
|
||||
return ((bool) 0);
|
||||
@@ -228,9 +228,9 @@ bpcharne(char *arg1, char *arg2)
|
||||
bool
|
||||
bpcharlt(char *arg1, char *arg2)
|
||||
{
|
||||
int len1,
|
||||
len2;
|
||||
int cmp;
|
||||
int len1,
|
||||
len2;
|
||||
int cmp;
|
||||
|
||||
if (arg1 == NULL || arg2 == NULL)
|
||||
return ((bool) 0);
|
||||
@@ -247,9 +247,9 @@ bpcharlt(char *arg1, char *arg2)
|
||||
bool
|
||||
bpcharle(char *arg1, char *arg2)
|
||||
{
|
||||
int len1,
|
||||
len2;
|
||||
int cmp;
|
||||
int len1,
|
||||
len2;
|
||||
int cmp;
|
||||
|
||||
if (arg1 == NULL || arg2 == NULL)
|
||||
return ((bool) 0);
|
||||
@@ -266,9 +266,9 @@ bpcharle(char *arg1, char *arg2)
|
||||
bool
|
||||
bpchargt(char *arg1, char *arg2)
|
||||
{
|
||||
int len1,
|
||||
len2;
|
||||
int cmp;
|
||||
int len1,
|
||||
len2;
|
||||
int cmp;
|
||||
|
||||
if (arg1 == NULL || arg2 == NULL)
|
||||
return ((bool) 0);
|
||||
@@ -285,9 +285,9 @@ bpchargt(char *arg1, char *arg2)
|
||||
bool
|
||||
bpcharge(char *arg1, char *arg2)
|
||||
{
|
||||
int len1,
|
||||
len2;
|
||||
int cmp;
|
||||
int len1,
|
||||
len2;
|
||||
int cmp;
|
||||
|
||||
if (arg1 == NULL || arg2 == NULL)
|
||||
return ((bool) 0);
|
||||
@@ -304,9 +304,9 @@ bpcharge(char *arg1, char *arg2)
|
||||
int32
|
||||
bpcharcmp(char *arg1, char *arg2)
|
||||
{
|
||||
int len1,
|
||||
len2;
|
||||
int cmp;
|
||||
int len1,
|
||||
len2;
|
||||
int cmp;
|
||||
|
||||
len1 = bcTruelen(arg1);
|
||||
len2 = bcTruelen(arg2);
|
||||
@@ -325,9 +325,9 @@ bpcharcmp(char *arg1, char *arg2)
|
||||
static int
|
||||
vcTruelen(char *arg)
|
||||
{
|
||||
char *s = arg + 4;
|
||||
int i;
|
||||
int len;
|
||||
char *s = arg + 4;
|
||||
int i;
|
||||
int len;
|
||||
|
||||
len = *(int32 *) arg - 4;
|
||||
for (i = 0; i < len; i++)
|
||||
@@ -341,8 +341,8 @@ vcTruelen(char *arg)
|
||||
bool
|
||||
varchareq(char *arg1, char *arg2)
|
||||
{
|
||||
int len1,
|
||||
len2;
|
||||
int len1,
|
||||
len2;
|
||||
|
||||
if (arg1 == NULL || arg2 == NULL)
|
||||
return ((bool) 0);
|
||||
@@ -358,8 +358,8 @@ varchareq(char *arg1, char *arg2)
|
||||
bool
|
||||
varcharne(char *arg1, char *arg2)
|
||||
{
|
||||
int len1,
|
||||
len2;
|
||||
int len1,
|
||||
len2;
|
||||
|
||||
if (arg1 == NULL || arg2 == NULL)
|
||||
return ((bool) 0);
|
||||
@@ -375,9 +375,9 @@ varcharne(char *arg1, char *arg2)
|
||||
bool
|
||||
varcharlt(char *arg1, char *arg2)
|
||||
{
|
||||
int len1,
|
||||
len2;
|
||||
int cmp;
|
||||
int len1,
|
||||
len2;
|
||||
int cmp;
|
||||
|
||||
if (arg1 == NULL || arg2 == NULL)
|
||||
return ((bool) 0);
|
||||
@@ -394,9 +394,9 @@ varcharlt(char *arg1, char *arg2)
|
||||
bool
|
||||
varcharle(char *arg1, char *arg2)
|
||||
{
|
||||
int len1,
|
||||
len2;
|
||||
int cmp;
|
||||
int len1,
|
||||
len2;
|
||||
int cmp;
|
||||
|
||||
if (arg1 == NULL || arg2 == NULL)
|
||||
return ((bool) 0);
|
||||
@@ -413,9 +413,9 @@ varcharle(char *arg1, char *arg2)
|
||||
bool
|
||||
varchargt(char *arg1, char *arg2)
|
||||
{
|
||||
int len1,
|
||||
len2;
|
||||
int cmp;
|
||||
int len1,
|
||||
len2;
|
||||
int cmp;
|
||||
|
||||
if (arg1 == NULL || arg2 == NULL)
|
||||
return ((bool) 0);
|
||||
@@ -432,9 +432,9 @@ varchargt(char *arg1, char *arg2)
|
||||
bool
|
||||
varcharge(char *arg1, char *arg2)
|
||||
{
|
||||
int len1,
|
||||
len2;
|
||||
int cmp;
|
||||
int len1,
|
||||
len2;
|
||||
int cmp;
|
||||
|
||||
if (arg1 == NULL || arg2 == NULL)
|
||||
return ((bool) 0);
|
||||
@@ -452,9 +452,9 @@ varcharge(char *arg1, char *arg2)
|
||||
int32
|
||||
varcharcmp(char *arg1, char *arg2)
|
||||
{
|
||||
int len1,
|
||||
len2;
|
||||
int cmp;
|
||||
int len1,
|
||||
len2;
|
||||
int cmp;
|
||||
|
||||
len1 = vcTruelen(arg1);
|
||||
len2 = vcTruelen(arg2);
|
||||
@@ -472,10 +472,10 @@ varcharcmp(char *arg1, char *arg2)
|
||||
uint32
|
||||
hashbpchar(struct varlena * key)
|
||||
{
|
||||
int keylen;
|
||||
char *keydata;
|
||||
uint32 n;
|
||||
int loop;
|
||||
int keylen;
|
||||
char *keydata;
|
||||
uint32 n;
|
||||
int loop;
|
||||
|
||||
keydata = VARDATA(key);
|
||||
keylen = bcTruelen((char *) key);
|
||||
@@ -489,25 +489,25 @@ hashbpchar(struct varlena * key)
|
||||
|
||||
switch (keylen & (8 - 1))
|
||||
{
|
||||
case 0:
|
||||
do
|
||||
{ /* All fall throughs */
|
||||
HASHC;
|
||||
case 7:
|
||||
HASHC;
|
||||
case 6:
|
||||
HASHC;
|
||||
case 5:
|
||||
HASHC;
|
||||
case 4:
|
||||
HASHC;
|
||||
case 3:
|
||||
HASHC;
|
||||
case 2:
|
||||
HASHC;
|
||||
case 1:
|
||||
HASHC;
|
||||
} while (--loop);
|
||||
case 0:
|
||||
do
|
||||
{ /* All fall throughs */
|
||||
HASHC;
|
||||
case 7:
|
||||
HASHC;
|
||||
case 6:
|
||||
HASHC;
|
||||
case 5:
|
||||
HASHC;
|
||||
case 4:
|
||||
HASHC;
|
||||
case 3:
|
||||
HASHC;
|
||||
case 2:
|
||||
HASHC;
|
||||
case 1:
|
||||
HASHC;
|
||||
} while (--loop);
|
||||
}
|
||||
}
|
||||
return (n);
|
||||
@@ -516,10 +516,10 @@ hashbpchar(struct varlena * key)
|
||||
uint32
|
||||
hashvarchar(struct varlena * key)
|
||||
{
|
||||
int keylen;
|
||||
char *keydata;
|
||||
uint32 n;
|
||||
int loop;
|
||||
int keylen;
|
||||
char *keydata;
|
||||
uint32 n;
|
||||
int loop;
|
||||
|
||||
keydata = VARDATA(key);
|
||||
keylen = vcTruelen((char *) key);
|
||||
@@ -533,25 +533,25 @@ hashvarchar(struct varlena * key)
|
||||
|
||||
switch (keylen & (8 - 1))
|
||||
{
|
||||
case 0:
|
||||
do
|
||||
{ /* All fall throughs */
|
||||
HASHC;
|
||||
case 7:
|
||||
HASHC;
|
||||
case 6:
|
||||
HASHC;
|
||||
case 5:
|
||||
HASHC;
|
||||
case 4:
|
||||
HASHC;
|
||||
case 3:
|
||||
HASHC;
|
||||
case 2:
|
||||
HASHC;
|
||||
case 1:
|
||||
HASHC;
|
||||
} while (--loop);
|
||||
case 0:
|
||||
do
|
||||
{ /* All fall throughs */
|
||||
HASHC;
|
||||
case 7:
|
||||
HASHC;
|
||||
case 6:
|
||||
HASHC;
|
||||
case 5:
|
||||
HASHC;
|
||||
case 4:
|
||||
HASHC;
|
||||
case 3:
|
||||
HASHC;
|
||||
case 2:
|
||||
HASHC;
|
||||
case 1:
|
||||
HASHC;
|
||||
} while (--loop);
|
||||
}
|
||||
}
|
||||
return (n);
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/varlena.c,v 1.19 1997/09/07 04:52:54 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/varlena.c,v 1.20 1997/09/08 02:31:06 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -40,9 +40,9 @@
|
||||
struct varlena *
|
||||
byteain(char *inputText)
|
||||
{
|
||||
register char *tp;
|
||||
register char *rp;
|
||||
register int byte;
|
||||
register char *tp;
|
||||
register char *rp;
|
||||
register int byte;
|
||||
struct varlena *result;
|
||||
|
||||
if (inputText == NULL)
|
||||
@@ -107,15 +107,15 @@ shove_bytes(unsigned char *stuff, int len)
|
||||
*
|
||||
* NULL vlena should be an error--returning string with NULL for now.
|
||||
*/
|
||||
char *
|
||||
char *
|
||||
byteaout(struct varlena * vlena)
|
||||
{
|
||||
register char *vp;
|
||||
register char *rp;
|
||||
register int val; /* holds unprintable chars */
|
||||
int i;
|
||||
int len;
|
||||
static char *result;
|
||||
register char *vp;
|
||||
register char *rp;
|
||||
register int val; /* holds unprintable chars */
|
||||
int i;
|
||||
int len;
|
||||
static char *result;
|
||||
|
||||
if (vlena == NULL)
|
||||
{
|
||||
@@ -168,7 +168,7 @@ struct varlena *
|
||||
textin(char *inputText)
|
||||
{
|
||||
struct varlena *result;
|
||||
int len;
|
||||
int len;
|
||||
|
||||
if (inputText == NULL)
|
||||
return (NULL);
|
||||
@@ -182,11 +182,11 @@ textin(char *inputText)
|
||||
/*
|
||||
* textout - converts internal representation to "..."
|
||||
*/
|
||||
char *
|
||||
char *
|
||||
textout(struct varlena * vlena)
|
||||
{
|
||||
int len;
|
||||
char *result;
|
||||
int len;
|
||||
char *result;
|
||||
|
||||
if (vlena == NULL)
|
||||
{
|
||||
@@ -214,9 +214,9 @@ textout(struct varlena * vlena)
|
||||
int
|
||||
textlen(text * t)
|
||||
{
|
||||
int i = 0;
|
||||
int max = VARSIZE(t) - VARHDRSZ;
|
||||
char *ptr = VARDATA(t);
|
||||
int i = 0;
|
||||
int max = VARSIZE(t) - VARHDRSZ;
|
||||
char *ptr = VARDATA(t);
|
||||
|
||||
while (i < max && *ptr++)
|
||||
i++;
|
||||
@@ -238,14 +238,14 @@ textlen(text * t)
|
||||
* Is this OK?
|
||||
*/
|
||||
|
||||
text *
|
||||
text *
|
||||
textcat(text * t1, text * t2)
|
||||
{
|
||||
int len1,
|
||||
len2,
|
||||
len;
|
||||
char *ptr;
|
||||
text *result;
|
||||
int len1,
|
||||
len2,
|
||||
len;
|
||||
char *ptr;
|
||||
text *result;
|
||||
|
||||
if (!PointerIsValid(t1) && !PointerIsValid(t2))
|
||||
return (NULL);
|
||||
@@ -283,13 +283,13 @@ textcat(text * t1, text * t2)
|
||||
int32
|
||||
textpos(text * t1, text * t2)
|
||||
{
|
||||
int pos;
|
||||
int px,
|
||||
p;
|
||||
int len1,
|
||||
len2;
|
||||
char *p1,
|
||||
*p2;
|
||||
int pos;
|
||||
int px,
|
||||
p;
|
||||
int len1,
|
||||
len2;
|
||||
char *p1,
|
||||
*p2;
|
||||
|
||||
if (!PointerIsValid(t1) || !PointerIsValid(t2))
|
||||
return (0);
|
||||
@@ -322,9 +322,9 @@ textpos(text * t1, text * t2)
|
||||
bool
|
||||
texteq(struct varlena * arg1, struct varlena * arg2)
|
||||
{
|
||||
register int len;
|
||||
register char *a1p,
|
||||
*a2p;
|
||||
register int len;
|
||||
register char *a1p,
|
||||
*a2p;
|
||||
|
||||
if (arg1 == NULL || arg2 == NULL)
|
||||
return ((bool) NULL);
|
||||
@@ -361,15 +361,15 @@ textne(struct varlena * arg1, struct varlena * arg2)
|
||||
bool
|
||||
text_lt(struct varlena * arg1, struct varlena * arg2)
|
||||
{
|
||||
bool result;
|
||||
bool result;
|
||||
|
||||
#ifdef USE_LOCALE
|
||||
int cval;
|
||||
int cval;
|
||||
|
||||
#endif
|
||||
int len;
|
||||
unsigned char *a1p,
|
||||
*a2p;
|
||||
int len;
|
||||
unsigned char *a1p,
|
||||
*a2p;
|
||||
|
||||
if (arg1 == NULL || arg2 == NULL)
|
||||
return ((bool) FALSE);
|
||||
@@ -417,15 +417,15 @@ text_lt(struct varlena * arg1, struct varlena * arg2)
|
||||
bool
|
||||
text_le(struct varlena * arg1, struct varlena * arg2)
|
||||
{
|
||||
bool result;
|
||||
bool result;
|
||||
|
||||
#ifdef USE_LOCALE
|
||||
int cval;
|
||||
int cval;
|
||||
|
||||
#endif
|
||||
int len;
|
||||
unsigned char *a1p,
|
||||
*a2p;
|
||||
int len;
|
||||
unsigned char *a1p,
|
||||
*a2p;
|
||||
|
||||
if (arg1 == NULL || arg2 == NULL)
|
||||
return ((bool) 0);
|
||||
@@ -484,7 +484,7 @@ text_ge(struct varlena * arg1, struct varlena * arg2)
|
||||
int32
|
||||
byteaGetSize(struct varlena * v)
|
||||
{
|
||||
register int len;
|
||||
register int len;
|
||||
|
||||
len = v->vl_len - sizeof(v->vl_len);
|
||||
|
||||
@@ -502,8 +502,8 @@ byteaGetSize(struct varlena * v)
|
||||
int32
|
||||
byteaGetByte(struct varlena * v, int32 n)
|
||||
{
|
||||
int len;
|
||||
int byte;
|
||||
int len;
|
||||
int byte;
|
||||
|
||||
len = byteaGetSize(v);
|
||||
|
||||
@@ -530,9 +530,9 @@ byteaGetByte(struct varlena * v, int32 n)
|
||||
int32
|
||||
byteaGetBit(struct varlena * v, int32 n)
|
||||
{
|
||||
int byteNo,
|
||||
bitNo;
|
||||
int byte;
|
||||
int byteNo,
|
||||
bitNo;
|
||||
int byte;
|
||||
|
||||
byteNo = n / 8;
|
||||
bitNo = n % 8;
|
||||
@@ -560,7 +560,7 @@ byteaGetBit(struct varlena * v, int32 n)
|
||||
struct varlena *
|
||||
byteaSetByte(struct varlena * v, int32 n, int32 newByte)
|
||||
{
|
||||
int len;
|
||||
int len;
|
||||
struct varlena *res;
|
||||
|
||||
len = byteaGetSize(v);
|
||||
@@ -603,10 +603,10 @@ struct varlena *
|
||||
byteaSetBit(struct varlena * v, int32 n, int32 newBit)
|
||||
{
|
||||
struct varlena *res;
|
||||
int oldByte,
|
||||
newByte;
|
||||
int byteNo,
|
||||
bitNo;
|
||||
int oldByte,
|
||||
newByte;
|
||||
int byteNo,
|
||||
bitNo;
|
||||
|
||||
/*
|
||||
* sanity check!
|
||||
|
||||
Reference in New Issue
Block a user