Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Postgres FD Implementation
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Abuhujair Javed
Postgres FD Implementation
Commits
bc8a39be
Commit
bc8a39be
authored
Feb 18, 2000
by
Michael Meskes
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
*** empty log message ***
parent
ab0c8c69
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
65 additions
and
25 deletions
+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
No files found.
src/interfaces/ecpg/include/ecpglib.h
View file @
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
View file @
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
View file @
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
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment