Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Gpdb
提交
4b4ac7c1
G
Gpdb
项目概览
Greenplum
/
Gpdb
通知
7
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
Gpdb
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
4b4ac7c1
编写于
3月 16, 1997
作者:
M
Marc G. Fournier
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
oracle_compat.c fixed for function overloading...
By: From: Edmund Mergl <mergl@nadia.s.bawue.de>
上级
5ea01d62
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
63 addition
and
296 deletion
+63
-296
src/backend/utils/adt/oracle_compat.c
src/backend/utils/adt/oracle_compat.c
+48
-286
src/include/catalog/pg_proc.h
src/include/catalog/pg_proc.h
+15
-10
未找到文件。
src/backend/utils/adt/oracle_compat.c
浏览文件 @
4b4ac7c1
/*
* Edmund Mergl <E.Mergl@bawue.de>
*
* $Id: oracle_compat.c,v 1.
4 1997/03/16 01:17:4
9 scrappy Exp $
* $Id: oracle_compat.c,v 1.
5 1997/03/16 20:40:3
9 scrappy Exp $
*
*/
...
...
@@ -10,13 +10,24 @@
#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
*
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
);
/********************************************************************
*
*
LOWER
*
lower
*
* Syntax:
*
* text *
LOWER
(text *string)
* text *
lower
(text *string)
*
* Purpose:
*
...
...
@@ -25,7 +36,7 @@
********************************************************************/
text
*
LOWER
(
text
*
string
)
lower
(
text
*
string
)
{
text
*
ret
;
char
*
ptr
,
*
ptr_ret
;
...
...
@@ -37,7 +48,7 @@ LOWER(text *string)
return
string
;
}
ret
=
(
text
*
)
m
alloc
(
VARSIZE
(
string
));
ret
=
(
text
*
)
p
alloc
(
VARSIZE
(
string
));
VARSIZE
(
ret
)
=
VARSIZE
(
string
);
ptr
=
VARDATA
(
string
);
...
...
@@ -53,11 +64,11 @@ LOWER(text *string)
/********************************************************************
*
*
UPPER
*
upper
*
* Syntax:
*
* text *
UPPER
(text *string)
* text *
upper
(text *string)
*
* Purpose:
*
...
...
@@ -66,7 +77,7 @@ LOWER(text *string)
********************************************************************/
text
*
UPPER
(
text
*
string
)
upper
(
text
*
string
)
{
text
*
ret
;
char
*
ptr
,
*
ptr_ret
;
...
...
@@ -78,7 +89,7 @@ UPPER(text *string)
return
string
;
}
ret
=
(
text
*
)
m
alloc
(
VARSIZE
(
string
));
ret
=
(
text
*
)
p
alloc
(
VARSIZE
(
string
));
VARSIZE
(
ret
)
=
VARSIZE
(
string
);
ptr
=
VARDATA
(
string
);
...
...
@@ -94,11 +105,11 @@ UPPER(text *string)
/********************************************************************
*
*
INITCAP
*
initcap
*
* Syntax:
*
* text *
INITCAP
(text *string)
* text *
initcap
(text *string)
*
* Purpose:
*
...
...
@@ -109,7 +120,7 @@ UPPER(text *string)
********************************************************************/
text
*
INITCAP
(
text
*
string
)
initcap
(
text
*
string
)
{
text
*
ret
;
char
*
ptr
,
*
ptr_ret
;
...
...
@@ -121,7 +132,7 @@ INITCAP(text *string)
return
string
;
}
ret
=
(
text
*
)
m
alloc
(
VARSIZE
(
string
));
ret
=
(
text
*
)
p
alloc
(
VARSIZE
(
string
));
VARSIZE
(
ret
)
=
VARSIZE
(
string
);
ptr
=
VARDATA
(
string
);
...
...
@@ -144,11 +155,11 @@ INITCAP(text *string)
/********************************************************************
*
*
LPAD
*
lpad
*
* Syntax:
*
* text *
LPAD
(text *string1, int4 len, text *string2)
* text *
lpad
(text *string1, int4 len, text *string2)
*
* Purpose:
*
...
...
@@ -158,7 +169,7 @@ INITCAP(text *string)
********************************************************************/
text
*
LPAD
(
text
*
string1
,
int4
len
,
text
*
string2
)
lpad
(
text
*
string1
,
int4
len
,
text
*
string2
)
{
text
*
ret
;
char
*
ptr1
,
*
ptr2
,
*
ptr_ret
;
...
...
@@ -170,7 +181,7 @@ LPAD(text *string1, int4 len, text *string2)
return
string1
;
}
ret
=
(
text
*
)
m
alloc
(
VARHDRSZ
+
len
);
ret
=
(
text
*
)
p
alloc
(
VARHDRSZ
+
len
);
VARSIZE
(
ret
)
=
VARHDRSZ
+
len
;
ptr2
=
VARDATA
(
string2
);
...
...
@@ -194,11 +205,11 @@ LPAD(text *string1, int4 len, text *string2)
/********************************************************************
*
*
RPAD
*
rpad
*
* Syntax:
*
* text *
RPAD
(text *string1, int4 len, text *string2)
* text *
rpad
(text *string1, int4 len, text *string2)
*
* Purpose:
*
...
...
@@ -208,7 +219,7 @@ LPAD(text *string1, int4 len, text *string2)
********************************************************************/
text
*
RPAD
(
text
*
string1
,
int4
len
,
text
*
string2
)
rpad
(
text
*
string1
,
int4
len
,
text
*
string2
)
{
text
*
ret
;
char
*
ptr1
,
*
ptr2
,
*
ptr_ret
;
...
...
@@ -220,7 +231,7 @@ RPAD(text *string1, int4 len, text *string2)
return
string1
;
}
ret
=
(
text
*
)
m
alloc
(
VARHDRSZ
+
len
);
ret
=
(
text
*
)
p
alloc
(
VARHDRSZ
+
len
);
VARSIZE
(
ret
)
=
VARHDRSZ
+
len
;
n
=
VARSIZE
(
string1
)
-
VARHDRSZ
;
...
...
@@ -244,11 +255,11 @@ RPAD(text *string1, int4 len, text *string2)
/********************************************************************
*
*
LTRIM
*
ltrim
*
* Syntax:
*
* text *
LTRIM
(text *string, text *set)
* text *
ltrim
(text *string, text *set)
*
* Purpose:
*
...
...
@@ -258,7 +269,7 @@ RPAD(text *string1, int4 len, text *string2)
********************************************************************/
text
*
LTRIM
(
text
*
string
,
text
*
set
)
ltrim
(
text
*
string
,
text
*
set
)
{
text
*
ret
;
char
*
ptr
,
*
ptr2
,
*
end2
,
*
ptr_ret
;
...
...
@@ -290,7 +301,7 @@ LTRIM(text *string, text *set)
++
m
;
ret
=
(
text
*
)
m
alloc
(
VARHDRSZ
+
m
);
ret
=
(
text
*
)
p
alloc
(
VARHDRSZ
+
m
);
VARSIZE
(
ret
)
=
VARHDRSZ
+
m
;
ptr_ret
=
VARDATA
(
ret
);
...
...
@@ -305,11 +316,11 @@ LTRIM(text *string, text *set)
/********************************************************************
*
*
RTRIM
*
rtrim
*
* Syntax:
*
* text *
RTRIM
(text *string, text *set)
* text *
rtrim
(text *string, text *set)
*
* Purpose:
*
...
...
@@ -319,7 +330,7 @@ LTRIM(text *string, text *set)
********************************************************************/
text
*
RTRIM
(
text
*
string
,
text
*
set
)
rtrim
(
text
*
string
,
text
*
set
)
{
text
*
ret
;
char
*
ptr
,
*
ptr2
,
*
end2
,
*
ptr_ret
;
...
...
@@ -351,7 +362,7 @@ RTRIM(text *string, text *set)
++
m
;
ret
=
(
text
*
)
m
alloc
(
VARHDRSZ
+
m
);
ret
=
(
text
*
)
p
alloc
(
VARHDRSZ
+
m
);
VARSIZE
(
ret
)
=
VARHDRSZ
+
m
;
ptr_ret
=
VARDATA
(
ret
)
+
m
-
1
;
...
...
@@ -366,11 +377,11 @@ RTRIM(text *string, text *set)
/********************************************************************
*
*
SUBSTR
*
substr
*
* Syntax:
*
* text *
SUBSTR
(text *string, int4 m, int4 n)
* text *
substr
(text *string, int4 m, int4 n)
*
* Purpose:
*
...
...
@@ -380,7 +391,7 @@ RTRIM(text *string, text *set)
********************************************************************/
text
*
SUBSTR
(
text
*
string
,
int4
m
,
int4
n
)
substr
(
text
*
string
,
int4
m
,
int4
n
)
{
text
*
ret
;
char
*
ptr
,
*
ptr_ret
;
...
...
@@ -394,7 +405,7 @@ SUBSTR(text *string, int4 m, int4 n)
len
=
len
+
1
<
n
?
len
+
1
:
n
;
ret
=
(
text
*
)
m
alloc
(
VARHDRSZ
+
len
);
ret
=
(
text
*
)
p
alloc
(
VARHDRSZ
+
len
);
VARSIZE
(
ret
)
=
VARHDRSZ
+
len
;
ptr
=
VARDATA
(
string
)
+
m
-
1
;
...
...
@@ -410,11 +421,11 @@ SUBSTR(text *string, int4 m, int4 n)
/********************************************************************
*
*
TRANSLATE
*
translate
*
* Syntax:
*
* text *
TRANSLATE
(text *string, char from, char to)
* text *
translate
(text *string, char from, char to)
*
* Purpose:
*
...
...
@@ -425,7 +436,7 @@ SUBSTR(text *string, int4 m, int4 n)
********************************************************************/
text
*
TRANSLATE
(
text
*
string
,
char
from
,
char
to
)
translate
(
text
*
string
,
char
from
,
char
to
)
{
text
*
ret
;
char
*
ptr
,
*
ptr_ret
;
...
...
@@ -437,7 +448,7 @@ TRANSLATE(text *string, char from, char to)
return
string
;
}
ret
=
(
text
*
)
m
alloc
(
VARSIZE
(
string
));
ret
=
(
text
*
)
p
alloc
(
VARSIZE
(
string
));
VARSIZE
(
ret
)
=
VARSIZE
(
string
);
ptr
=
VARDATA
(
string
);
...
...
@@ -451,254 +462,5 @@ TRANSLATE(text *string, char from, char to)
return
ret
;
}
#if 0
/********************************************************************
*
* Functions in lower case are the equivalents with the last
* parameter beeing set to a reasonable default.
*
********************************************************************/
/********************************************************************
*
* lpad
*
* Syntax:
*
* text *lpad(text *string1, int4 len)
*
* Purpose:
*
* Returns string1, left-padded to length len with blanks.
*
********************************************************************/
text *
lpad(text *string1, int4 len)
{
text *ret;
char *ptr1, *ptr_ret;
int m, n;
m = len - VARSIZE(string1) + VARHDRSZ;
if (m <= 0) {
return string1;
}
ret = (text *)malloc(VARHDRSZ + len);
VARSIZE(ret) = VARHDRSZ + len;
ptr_ret = VARDATA(ret);
while (m--) {
*ptr_ret++ = ' ';
}
n = VARSIZE(string1) - VARHDRSZ;
ptr1 = VARDATA(string1);
while (n--) {
*ptr_ret++ = *ptr1++;
}
return ret;
}
/********************************************************************
*
* rpad
*
* Syntax:
*
* text *rpad(text *string1, int4 len)
*
* Purpose:
*
* Returns string1, right-padded to length len with blanks.
*
********************************************************************/
text *
rpad(text *string1, int4 len)
{
text *ret;
char *ptr1, *ptr_ret;
int m, n;
m = len - VARSIZE(string1) + VARHDRSZ;
if (m <= 0) {
return string1;
}
ret = (text *)malloc(VARHDRSZ + len);
VARSIZE(ret) = VARHDRSZ + len;
n = VARSIZE(string1) - VARHDRSZ;
ptr1 = VARDATA(string1);
ptr_ret = VARDATA(ret);
while (n--) {
*ptr_ret++ = *ptr1++;
}
while (m--) {
*ptr_ret++ = ' ';
}
return ret;
}
/********************************************************************
*
* ltrim
*
* Syntax:
*
* text *ltrim(text *string)
*
* Purpose:
*
* Returns string with initial blanks removed.
*
********************************************************************/
text *
ltrim(text *string)
{
text *ret;
char *ptr, *ptr_ret;
int m;
m = VARSIZE(string) - VARHDRSZ;
if (m <= 0) {
return string;
}
ptr = VARDATA(string);
while (m--) {
if (*ptr != ' ') {
break;
}
++ptr;
}
++m;
ret = (text *)malloc(VARHDRSZ + m);
VARSIZE(ret) = VARHDRSZ + m;
ptr_ret = VARDATA(ret);
while (m--) {
*ptr_ret++ = *ptr++;
}
return ret;
}
/********************************************************************
*
* rtrim
*
* Syntax:
*
* text *rtrim(text *string)
*
* Purpose:
*
* Returns string with final blanks removed.
*
********************************************************************/
text *
rtrim(text *string)
{
text *ret;
char *ptr, *ptr_ret;
int m;
m = VARSIZE(string) - VARHDRSZ;
if (m <= 0) {
return string;
}
ptr = VARDATA(string) + VARSIZE(string) - VARHDRSZ - 1;
while (m--) {
if (*ptr != ' ') {
break;
}
--ptr;
}
++m;
ret = (text *)malloc(VARHDRSZ + m);
VARSIZE(ret) = VARHDRSZ + m;
ptr_ret = VARDATA(ret) + m - 1;
while (m--) {
*ptr_ret-- = *ptr--;
}
return ret;
}
/********************************************************************
*
* substr
*
* Syntax:
*
* text *substr(text *string, int4 m)
*
* Purpose:
*
* Returns a portion of string, beginning at character m, up to
* the end of string. The first position of string is 1.
*
********************************************************************/
text *
substr(text *string, int4 m)
{
text *ret;
char *ptr, *ptr_ret;
int len;
len = VARSIZE(string) - VARHDRSZ - m;
if (m <= 0 || len <= 0) {
return string;
}
len = len + 1;
ret = (text *)malloc(VARHDRSZ + len);
VARSIZE(ret) = VARHDRSZ + len;
ptr = VARDATA(string) + m - 1;
ptr_ret = VARDATA(ret);
while (len--) {
*ptr_ret++ = *ptr++;
}
return ret;
}
#endif
/* EOF */
src/include/catalog/pg_proc.h
浏览文件 @
4b4ac7c1
...
...
@@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
* $Id: pg_proc.h,v 1.1
1 1997/03/16 01:16:31
scrappy Exp $
* $Id: pg_proc.h,v 1.1
2 1997/03/16 20:40:52
scrappy Exp $
*
* NOTES
* The script catalog/genbki.sh reads this file and generates .bki
...
...
@@ -768,15 +768,20 @@ DATA(insert OID = 1310 ( timestample PGUID 11 f t f 2 f 16 "1296 1296" 10
DATA
(
insert
OID
=
1311
(
timestampge
PGUID
11
f
t
f
2
f
16
"1296 1296"
100
0
0
100
foo
bar
));
/* Oracle Compatibility Related Functions - By Edmund Mergl <E.Mergl@bawue.de> */
DATA
(
insert
OID
=
870
(
LOWER
PGUID
11
f
t
f
1
f
25
"25"
100
0
0
100
foo
bar
));
DATA
(
insert
OID
=
871
(
UPPER
PGUID
11
f
t
f
1
f
25
"25"
100
0
0
100
foo
bar
));
DATA
(
insert
OID
=
872
(
INITCAP
PGUID
11
f
t
f
1
f
25
"25"
100
0
0
100
foo
bar
));
DATA
(
insert
OID
=
873
(
LPAD
PGUID
11
f
t
f
3
f
25
"25 23 25"
100
0
0
100
foo
bar
));
DATA
(
insert
OID
=
874
(
RPAD
PGUID
11
f
t
f
3
f
25
"25 23 25"
100
0
0
100
foo
bar
));
DATA
(
insert
OID
=
875
(
LTRIM
PGUID
11
f
t
f
2
f
25
"25 25"
100
0
0
100
foo
bar
));
DATA
(
insert
OID
=
876
(
RTRIM
PGUID
11
f
t
f
2
f
25
"25 25"
100
0
0
100
foo
bar
));
DATA
(
insert
OID
=
877
(
SUBSTR
PGUID
11
f
t
f
3
f
25
"25 23 23"
100
0
0
100
foo
bar
));
DATA
(
insert
OID
=
878
(
TRANSLATE
PGUID
11
f
t
f
3
f
25
"25 18 18"
100
0
0
100
foo
bar
));
DATA
(
insert
OID
=
870
(
lower
PGUID
11
f
t
f
1
f
25
"25"
100
0
0
100
foo
bar
));
DATA
(
insert
OID
=
871
(
upper
PGUID
11
f
t
f
1
f
25
"25"
100
0
0
100
foo
bar
));
DATA
(
insert
OID
=
872
(
initcap
PGUID
11
f
t
f
1
f
25
"25"
100
0
0
100
foo
bar
));
DATA
(
insert
OID
=
873
(
lpad
PGUID
11
f
t
f
3
f
25
"25 23 25"
100
0
0
100
foo
bar
));
DATA
(
insert
OID
=
874
(
rpad
PGUID
11
f
t
f
3
f
25
"25 23 25"
100
0
0
100
foo
bar
));
DATA
(
insert
OID
=
875
(
ltrim
PGUID
11
f
t
f
2
f
25
"25 25"
100
0
0
100
foo
bar
));
DATA
(
insert
OID
=
876
(
rtrim
PGUID
11
f
t
f
2
f
25
"25 25"
100
0
0
100
foo
bar
));
DATA
(
insert
OID
=
877
(
substr
PGUID
11
f
t
f
3
f
25
"25 23 23"
100
0
0
100
foo
bar
));
DATA
(
insert
OID
=
878
(
translate
PGUID
11
f
t
f
3
f
25
"25 18 18"
100
0
0
100
foo
bar
));
DATA
(
insert
OID
=
879
(
lpad
PGUID
14
f
t
f
2
f
25
"25 23"
100
0
0
100
"select lpad($1, $2,
\'
\'
)"
-
));
DATA
(
insert
OID
=
880
(
rpad
PGUID
14
f
t
f
2
f
25
"25 23"
100
0
0
100
"select rpad($1, $2,
\'
\'
)"
-
));
DATA
(
insert
OID
=
881
(
ltrim
PGUID
14
f
t
f
1
f
25
"25"
100
0
0
100
"select ltrim($1,
\'
\'
)"
-
));
DATA
(
insert
OID
=
882
(
rtrim
PGUID
14
f
t
f
1
f
25
"25"
100
0
0
100
"select rtrim($1,
\'
\'
)"
-
));
DATA
(
insert
OID
=
883
(
substr
PGUID
14
f
t
f
2
f
25
"25 23"
100
0
0
100
"select substr($1, $2, 10000)"
-
));
/*
* prototypes for functions pg_proc.c
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录