Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Gpdb
提交
bc8a39be
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,发现更多精彩内容 >>
提交
bc8a39be
编写于
2月 18, 2000
作者:
M
Michael Meskes
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
*** empty log message ***
上级
ab0c8c69
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
65 addition
and
25 deletion
+65
-25
src/interfaces/ecpg/include/ecpglib.h
src/interfaces/ecpg/include/ecpglib.h
+1
-1
src/interfaces/ecpg/lib/dynamic.c
src/interfaces/ecpg/lib/dynamic.c
+53
-12
src/interfaces/ecpg/lib/ecpglib.c
src/interfaces/ecpg/lib/ecpglib.c
+11
-12
未找到文件。
src/interfaces/ecpg/include/ecpglib.h
浏览文件 @
bc8a39be
...
...
@@ -59,7 +59,7 @@ extern "C"
const
char
*
descriptor
,
const
char
*
query
);
bool
ECPGdeallocate_desc
(
int
line
,
const
char
*
name
);
bool
ECPGallocate_desc
(
int
line
,
const
char
*
name
);
void
ECPGraise
(
int
line
,
int
code
);
void
ECPGraise
(
int
line
,
int
code
,
const
char
*
str
);
bool
ECPGget_desc_header
(
int
,
char
*
,
int
*
);
...
...
src/interfaces/ecpg/lib/dynamic.c
浏览文件 @
bc8a39be
...
...
@@ -2,7 +2,7 @@
*
* Copyright (c) 2000, Christof Petig <christof.petig@wtal.de>
*
* $Header: /cvsroot/pgsql/src/interfaces/ecpg/lib/Attic/dynamic.c,v 1.
3 2000/02/18 14:34:05
meskes Exp $
* $Header: /cvsroot/pgsql/src/interfaces/ecpg/lib/Attic/dynamic.c,v 1.
4 2000/02/18 16:02:49
meskes Exp $
*/
/* I borrowed the include files from ecpglib.c, maybe we don't need all of them */
...
...
@@ -10,7 +10,8 @@
#include <sql3types.h>
static
struct
descriptor
{
char
*
name
;
{
char
*
name
;
PGresult
*
result
;
struct
descriptor
*
next
;
}
*
all_descriptors
=
NULL
;
...
...
@@ -18,7 +19,8 @@ static struct descriptor
PGconn
*
ECPG_internal_get_connection
(
char
*
name
);
unsigned
int
ECPGDynamicType
(
Oid
type
)
{
switch
(
type
)
{
switch
(
type
)
{
case
16
:
return
SQL3_BOOLEAN
;
/* bool */
case
21
:
return
SQL3_SMALLINT
;
/* int2 */
case
23
:
return
SQL3_INTEGER
;
/* int4 */
...
...
@@ -204,7 +206,7 @@ bool ECPGdo_descriptor(int line,const char *connection,
return
(
status
);
}
}
ECPGraise
(
line
,
ECPG_UNKNOWN_DESCRIPTOR
);
ECPGraise
(
line
,
ECPG_UNKNOWN_DESCRIPTOR
,
NULL
);
return
false
;
}
...
...
@@ -217,7 +219,7 @@ PGresult *ECPGresultByDescriptor(int line,const char *name)
if
(
!
strcmp
(
name
,
i
->
name
))
return
i
->
result
;
}
ECPGraise
(
line
,
ECPG_UNKNOWN_DESCRIPTOR
);
ECPGraise
(
line
,
ECPG_UNKNOWN_DESCRIPTOR
,
NULL
);
return
NULL
;
}
...
...
@@ -236,7 +238,7 @@ bool ECPGdeallocate_desc(int line,const char *name)
return
true
;
}
}
ECPGraise
(
line
,
ECPG_UNKNOWN_DESCRIPTOR
);
ECPGraise
(
line
,
ECPG_UNKNOWN_DESCRIPTOR
,
NULL
);
return
false
;
}
...
...
@@ -252,30 +254,69 @@ bool ECPGallocate_desc(int line,const char *name)
return
true
;
}
void
ECPGraise
(
int
line
,
int
code
)
void
ECPGraise
(
int
line
,
int
code
,
const
char
*
str
)
{
struct
auto_mem
*
am
;
sqlca
.
sqlcode
=
code
;
switch
(
code
)
{
case
ECPG_NOT_FOUND
:
snprintf
(
sqlca
.
sqlerrm
.
sqlerrmc
,
sizeof
(
sqlca
.
sqlerrm
.
sqlerrmc
),
"No data found line %d."
,
line
);
"No data found line %d."
,
line
);
break
;
case
ECPG_OUT_OF_MEMORY
:
snprintf
(
sqlca
.
sqlerrm
.
sqlerrmc
,
sizeof
(
sqlca
.
sqlerrm
.
sqlerrmc
),
"Out of memory in line %d."
,
line
);
break
;
case
ECPG_UNSUPPORTED
:
snprintf
(
sqlca
.
sqlerrm
.
sqlerrmc
,
sizeof
(
sqlca
.
sqlerrm
.
sqlerrmc
),
"Unsupported type %s in line %d."
,
str
,
line
);
break
;
case
ECPG_TOO_MANY_ARGUMENTS
:
snprintf
(
sqlca
.
sqlerrm
.
sqlerrmc
,
sizeof
(
sqlca
.
sqlerrm
.
sqlerrmc
),
"Too many arguments in line %d."
,
line
);
break
;
case
ECPG_TOO_FEW_ARGUMENTS
:
snprintf
(
sqlca
.
sqlerrm
.
sqlerrmc
,
sizeof
(
sqlca
.
sqlerrm
.
sqlerrmc
),
"Too few arguments in line %d."
,
line
);
break
;
case
ECPG_MISSING_INDICATOR
:
snprintf
(
sqlca
.
sqlerrm
.
sqlerrmc
,
sizeof
(
sqlca
.
sqlerrm
.
sqlerrmc
),
"NULL value without indicator, line %d."
,
line
);
"NULL value without indicator, line %d."
,
line
);
break
;
case
ECPG_UNKNOWN_DESCRIPTOR
:
snprintf
(
sqlca
.
sqlerrm
.
sqlerrmc
,
sizeof
(
sqlca
.
sqlerrm
.
sqlerrmc
),
"descriptor not found, line %d."
,
line
);
"descriptor not found, line %d."
,
line
);
break
;
case
ECPG_INVALID_DESCRIPTOR_INDEX
:
snprintf
(
sqlca
.
sqlerrm
.
sqlerrmc
,
sizeof
(
sqlca
.
sqlerrm
.
sqlerrmc
),
"descriptor index out of range, line %d."
,
line
);
"descriptor index out of range, line %d."
,
line
);
break
;
default:
snprintf
(
sqlca
.
sqlerrm
.
sqlerrmc
,
sizeof
(
sqlca
.
sqlerrm
.
sqlerrmc
),
"SQL error #%d, line %d."
,
code
,
line
);
"SQL error #%d, line %d."
,
code
,
line
);
break
;
}
/* free all memory we have allocated for the user */
for
(
am
=
auto_allocs
;
am
;)
{
struct
auto_mem
*
act
=
am
;
am
=
am
->
next
;
free
(
act
->
pointer
);
free
(
act
);
}
auto_allocs
=
NULL
;
}
src/interfaces/ecpg/lib/ecpglib.c
浏览文件 @
bc8a39be
...
...
@@ -190,7 +190,7 @@ ecpg_alloc(long size, int lineno)
if
(
!
new
)
{
ECPGlog
(
"out of memory
\n
"
);
register_error
(
ECPG_OUT_OF_MEMORY
,
"Out of memory in line %d"
,
lineno
);
ECPGraise
(
ECPG_OUT_OF_MEMORY
,
lineno
,
NULL
);
return
NULL
;
}
...
...
@@ -206,7 +206,7 @@ ecpg_strdup(const char *string, int lineno)
if
(
!
new
)
{
ECPGlog
(
"out of memory
\n
"
);
register_error
(
ECPG_OUT_OF_MEMORY
,
"Out of memory in line %d"
,
lineno
);
ECPGraise
(
ECPG_OUT_OF_MEMORY
,
lineno
,
NULL
);
return
NULL
;
}
...
...
@@ -634,8 +634,7 @@ ECPGexecute(struct statement * stmt)
default:
/* Not implemented yet */
register_error
(
ECPG_UNSUPPORTED
,
"Unsupported type %s on line %d."
,
ECPGtype_name
(
var
->
type
),
stmt
->
lineno
);
ECPGraise
(
ECPG_UNSUPPORTED
,
stmt
->
lineno
,
ECPGtype_name
(
var
->
type
));
return
false
;
break
;
}
...
...
@@ -658,7 +657,7 @@ ECPGexecute(struct statement * stmt)
* We have an argument but we dont have the matched up string
* in the string
*/
register_error
(
ECPG_TOO_MANY_ARGUMENTS
,
"Too many arguments line %d."
,
stmt
->
lineno
);
ECPGraise
(
ECPG_TOO_MANY_ARGUMENTS
,
stmt
->
lineno
,
NULL
);
return
false
;
}
else
...
...
@@ -695,7 +694,7 @@ ECPGexecute(struct statement * stmt)
/* Check if there are unmatched things left. */
if
(
next_insert
(
copiedquery
)
!=
NULL
)
{
register_error
(
ECPG_TOO_FEW_ARGUMENTS
,
"Too few arguments line %d."
,
stmt
->
lineno
);
ECPGraise
(
ECPG_TOO_FEW_ARGUMENTS
,
stmt
->
lineno
,
NULL
);
return
false
;
}
...
...
@@ -743,7 +742,7 @@ ECPGexecute(struct statement * stmt)
{
ECPGlog
(
"ECPGexecute line %d: Incorrect number of matches: %d
\n
"
,
stmt
->
lineno
,
ntuples
);
register_error
(
ECPG_NOT_FOUND
,
"No data found line %d."
,
stmt
->
lineno
);
ECPGraise
(
ECPG_NOT_FOUND
,
stmt
->
lineno
,
NULL
);
status
=
false
;
break
;
}
...
...
@@ -757,7 +756,7 @@ ECPGexecute(struct statement * stmt)
if
(
var
==
NULL
)
{
ECPGlog
(
"ECPGexecute line %d: Too few arguments.
\n
"
,
stmt
->
lineno
);
register_error
(
ECPG_TOO_FEW_ARGUMENTS
,
"Too few arguments line %d."
,
stmt
->
lineno
);
ECPGraise
(
ECPG_TOO_FEW_ARGUMENTS
,
stmt
->
lineno
,
NULL
);
return
(
false
);
}
...
...
@@ -779,7 +778,7 @@ ECPGexecute(struct statement * stmt)
{
ECPGlog
(
"ECPGexecute line %d: Incorrect number of matches: %d don't fit into array of %d
\n
"
,
stmt
->
lineno
,
ntuples
,
var
->
arrsize
);
register_error
(
ECPG_TOO_MANY_MATCHES
,
"Too many matches line %d."
,
stmt
->
lineno
);
ECPGraise
(
ECPG_TOO_MANY_MATCHES
,
stmt
->
lineno
,
NULL
);
status
=
false
;
break
;
}
...
...
@@ -854,7 +853,7 @@ ECPGexecute(struct statement * stmt)
}
break
;
default:
register_error
(
ECPG_UNSUPPORTED
,
"Unsupported indicator type %s on line %d."
,
ECPGtype_name
(
var
->
ind_type
),
stmt
->
lineno
);
ECPGraise
(
ECPG_UNSUPPORTED
,
stmt
->
lineno
,
ECPGtype_name
(
var
->
ind_type
)
);
status
=
false
;
break
;
}
...
...
@@ -1058,7 +1057,7 @@ ECPGexecute(struct statement * stmt)
break
;
default:
register_error
(
ECPG_UNSUPPORTED
,
"Unsupported type %s on line %d."
,
ECPGtype_name
(
var
->
type
),
stmt
->
lineno
);
ECPGraise
(
ECPG_UNSUPPORTED
,
stmt
->
lineno
,
ECPGtype_name
(
var
->
type
)
);
status
=
false
;
break
;
}
...
...
@@ -1068,7 +1067,7 @@ ECPGexecute(struct statement * stmt)
if
(
status
&&
var
!=
NULL
)
{
register_error
(
ECPG_TOO_MANY_ARGUMENTS
,
"Too many arguments line %d."
,
stmt
->
lineno
);
ECPGraise
(
ECPG_TOO_MANY_ARGUMENTS
,
stmt
->
lineno
,
NULL
);
status
=
false
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录