mirror of
https://github.com/postgres/postgres.git
synced 2025-07-28 23:42:10 +03:00
*** empty log message ***
This commit is contained in:
@ -622,3 +622,12 @@ Sun Aug 1 13:31:19 CEST 1999
|
|||||||
|
|
||||||
- Synced preproc.y with gram.y.
|
- Synced preproc.y with gram.y.
|
||||||
- Set ecpg version to 2.6.2
|
- Set ecpg version to 2.6.2
|
||||||
|
|
||||||
|
Tue Sep 14 22:26:40 CEST 1999
|
||||||
|
|
||||||
|
- Added patch by Andreas Theofilu <theofilu@eunet.at> to fix yet
|
||||||
|
another quoting bug.
|
||||||
|
- Minor bugfixes to ecpg
|
||||||
|
- Return OID in sqlca.sqlerrd[1] if possible.
|
||||||
|
- Set ecpg version to 2.6.3
|
||||||
|
- Set library version to 3.0.2
|
||||||
|
@ -14,6 +14,7 @@ support for dynamic SQL with unknown number of variables with DESCRIPTORS
|
|||||||
The line numbering is not exact.
|
The line numbering is not exact.
|
||||||
|
|
||||||
Missing statements:
|
Missing statements:
|
||||||
|
- exec slq ifdef
|
||||||
- exec sql allocate
|
- exec sql allocate
|
||||||
- exec sql deallocate
|
- exec sql deallocate
|
||||||
- SQLSTATE
|
- SQLSTATE
|
||||||
|
@ -19,7 +19,7 @@ extern "C"
|
|||||||
char sqlerrp[8];
|
char sqlerrp[8];
|
||||||
long sqlerrd[6];
|
long sqlerrd[6];
|
||||||
/* Element 0: empty */
|
/* Element 0: empty */
|
||||||
/* 1: empty */
|
/* 1: OID of processed tuple if applicable */
|
||||||
/* 2: number of rows processed */
|
/* 2: number of rows processed */
|
||||||
/* after an INSERT, UPDATE or */
|
/* after an INSERT, UPDATE or */
|
||||||
/* DELETE statement */
|
/* DELETE statement */
|
||||||
|
@ -6,13 +6,13 @@
|
|||||||
# Copyright (c) 1994, Regents of the University of California
|
# Copyright (c) 1994, Regents of the University of California
|
||||||
#
|
#
|
||||||
# IDENTIFICATION
|
# IDENTIFICATION
|
||||||
# $Header: /cvsroot/pgsql/src/interfaces/ecpg/lib/Attic/Makefile.in,v 1.45 1999/07/19 12:37:46 meskes Exp $
|
# $Header: /cvsroot/pgsql/src/interfaces/ecpg/lib/Attic/Makefile.in,v 1.46 1999/09/15 08:29:14 meskes Exp $
|
||||||
#
|
#
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
|
|
||||||
NAME= ecpg
|
NAME= ecpg
|
||||||
SO_MAJOR_VERSION= 3
|
SO_MAJOR_VERSION= 3
|
||||||
SO_MINOR_VERSION= 0.1
|
SO_MINOR_VERSION= 0.2
|
||||||
|
|
||||||
SRCDIR= @top_srcdir@
|
SRCDIR= @top_srcdir@
|
||||||
include $(SRCDIR)/Makefile.global
|
include $(SRCDIR)/Makefile.global
|
||||||
|
@ -368,7 +368,7 @@ next_insert(char *text)
|
|||||||
bool string = false;
|
bool string = false;
|
||||||
|
|
||||||
for (; *ptr != '\0' && (*ptr != '?' || string); ptr++)
|
for (; *ptr != '\0' && (*ptr != '?' || string); ptr++)
|
||||||
if (*ptr == '\'')
|
if (*ptr == '\'' && *(ptr-1) != '\\')
|
||||||
string = string ? false : true;
|
string = string ? false : true;
|
||||||
|
|
||||||
return (*ptr == '\0') ? NULL : ptr;
|
return (*ptr == '\0') ? NULL : ptr;
|
||||||
@ -977,6 +977,7 @@ ECPGexecute(struct statement * stmt)
|
|||||||
break;
|
break;
|
||||||
case PGRES_COMMAND_OK:
|
case PGRES_COMMAND_OK:
|
||||||
status = true;
|
status = true;
|
||||||
|
sqlca.sqlerrd[1] = atol(PQoidStatus(results));
|
||||||
sqlca.sqlerrd[2] = atol(PQcmdTuples(results));
|
sqlca.sqlerrd[2] = atol(PQcmdTuples(results));
|
||||||
ECPGlog("ECPGexecute line %d Ok: %s\n", stmt->lineno, PQcmdStatus(results));
|
ECPGlog("ECPGexecute line %d Ok: %s\n", stmt->lineno, PQcmdStatus(results));
|
||||||
break;
|
break;
|
||||||
|
@ -3,7 +3,7 @@ include $(SRCDIR)/Makefile.global
|
|||||||
|
|
||||||
MAJOR_VERSION=2
|
MAJOR_VERSION=2
|
||||||
MINOR_VERSION=6
|
MINOR_VERSION=6
|
||||||
PATCHLEVEL=2
|
PATCHLEVEL=3
|
||||||
|
|
||||||
CFLAGS+=-I../include -DMAJOR_VERSION=$(MAJOR_VERSION) \
|
CFLAGS+=-I../include -DMAJOR_VERSION=$(MAJOR_VERSION) \
|
||||||
-DMINOR_VERSION=$(MINOR_VERSION) -DPATCHLEVEL=$(PATCHLEVEL) \
|
-DMINOR_VERSION=$(MINOR_VERSION) -DPATCHLEVEL=$(PATCHLEVEL) \
|
||||||
|
@ -239,7 +239,7 @@ cppline {space}*#.*(\\{space}*\n)*\n*
|
|||||||
}
|
}
|
||||||
<xq>{xqstop} {
|
<xq>{xqstop} {
|
||||||
BEGIN(SQL);
|
BEGIN(SQL);
|
||||||
/* yylval.str = scanstr(literal); */
|
/* yylval.str = mm_strdup(scanstr(literal));*/
|
||||||
yylval.str = mm_strdup(literal);
|
yylval.str = mm_strdup(literal);
|
||||||
return SCONST;
|
return SCONST;
|
||||||
}
|
}
|
||||||
@ -601,7 +601,7 @@ cppline {space}*#.*(\\{space}*\n)*\n*
|
|||||||
if (strcmp(old, ptr->old) == 0)
|
if (strcmp(old, ptr->old) == 0)
|
||||||
{
|
{
|
||||||
free(ptr->new);
|
free(ptr->new);
|
||||||
/* ptr->new = scanstr(literal); */
|
/* ptr->new = mm_strdup(scanstr(literal));*/
|
||||||
ptr->new = mm_strdup(literal);
|
ptr->new = mm_strdup(literal);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -611,7 +611,7 @@ cppline {space}*#.*(\\{space}*\n)*\n*
|
|||||||
|
|
||||||
/* initial definition */
|
/* initial definition */
|
||||||
this->old = old;
|
this->old = old;
|
||||||
/* this->new = scanstr(literal); */
|
/* this->new = mm_strdup(scanstr(literal));*/
|
||||||
this->new = mm_strdup(literal);
|
this->new = mm_strdup(literal);
|
||||||
this->next = defines;
|
this->next = defines;
|
||||||
defines = this;
|
defines = this;
|
||||||
|
@ -1142,7 +1142,7 @@ VariableSetStmt: SET ColId TO var_value
|
|||||||
}
|
}
|
||||||
| SET NAMES encoding
|
| SET NAMES encoding
|
||||||
{
|
{
|
||||||
#ifdef MB
|
#ifdef MULTIBYTE
|
||||||
$$ = cat2_str(make1_str("set names"), $3);
|
$$ = cat2_str(make1_str("set names"), $3);
|
||||||
#else
|
#else
|
||||||
yyerror("SET NAMES is not supported");
|
yyerror("SET NAMES is not supported");
|
||||||
|
@ -48,7 +48,9 @@ exec sql end declare section;
|
|||||||
strcpy(msg, "execute insert 1");
|
strcpy(msg, "execute insert 1");
|
||||||
sprintf(command, "insert into test(name, amount, letter) values ('db: ''mm''', 1, 'f')");
|
sprintf(command, "insert into test(name, amount, letter) values ('db: ''mm''', 1, 'f')");
|
||||||
exec sql execute immediate :command;
|
exec sql execute immediate :command;
|
||||||
sprintf(command, "insert into test(name, amount, letter) values ('db: ''mm''', 2, 't')");
|
printf("New tuple got OID = %d\n", sqlca.sqlerrd[1]);
|
||||||
|
|
||||||
|
sprintf(command, "insert into test(name, amount, letter) values ('db: \\\'mm\\\'', 2, 't')");
|
||||||
exec sql execute immediate :command;
|
exec sql execute immediate :command;
|
||||||
|
|
||||||
strcpy(msg, "execute insert 2");
|
strcpy(msg, "execute insert 2");
|
||||||
|
Reference in New Issue
Block a user