mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-02-17 19:30:00 +08:00
*** empty log message ***
This commit is contained in:
parent
3f68139373
commit
864e1e9d0e
@ -622,3 +622,12 @@ Sun Aug 1 13:31:19 CEST 1999
|
||||
|
||||
- Synced preproc.y with gram.y.
|
||||
- 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.
|
||||
|
||||
Missing statements:
|
||||
- exec slq ifdef
|
||||
- exec sql allocate
|
||||
- exec sql deallocate
|
||||
- SQLSTATE
|
||||
|
@ -19,7 +19,7 @@ extern "C"
|
||||
char sqlerrp[8];
|
||||
long sqlerrd[6];
|
||||
/* Element 0: empty */
|
||||
/* 1: empty */
|
||||
/* 1: OID of processed tuple if applicable */
|
||||
/* 2: number of rows processed */
|
||||
/* after an INSERT, UPDATE or */
|
||||
/* DELETE statement */
|
||||
|
@ -6,13 +6,13 @@
|
||||
# Copyright (c) 1994, Regents of the University of California
|
||||
#
|
||||
# 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
|
||||
SO_MAJOR_VERSION= 3
|
||||
SO_MINOR_VERSION= 0.1
|
||||
SO_MINOR_VERSION= 0.2
|
||||
|
||||
SRCDIR= @top_srcdir@
|
||||
include $(SRCDIR)/Makefile.global
|
||||
|
@ -368,7 +368,7 @@ next_insert(char *text)
|
||||
bool string = false;
|
||||
|
||||
for (; *ptr != '\0' && (*ptr != '?' || string); ptr++)
|
||||
if (*ptr == '\'')
|
||||
if (*ptr == '\'' && *(ptr-1) != '\\')
|
||||
string = string ? false : true;
|
||||
|
||||
return (*ptr == '\0') ? NULL : ptr;
|
||||
@ -977,6 +977,7 @@ ECPGexecute(struct statement * stmt)
|
||||
break;
|
||||
case PGRES_COMMAND_OK:
|
||||
status = true;
|
||||
sqlca.sqlerrd[1] = atol(PQoidStatus(results));
|
||||
sqlca.sqlerrd[2] = atol(PQcmdTuples(results));
|
||||
ECPGlog("ECPGexecute line %d Ok: %s\n", stmt->lineno, PQcmdStatus(results));
|
||||
break;
|
||||
|
@ -3,7 +3,7 @@ include $(SRCDIR)/Makefile.global
|
||||
|
||||
MAJOR_VERSION=2
|
||||
MINOR_VERSION=6
|
||||
PATCHLEVEL=2
|
||||
PATCHLEVEL=3
|
||||
|
||||
CFLAGS+=-I../include -DMAJOR_VERSION=$(MAJOR_VERSION) \
|
||||
-DMINOR_VERSION=$(MINOR_VERSION) -DPATCHLEVEL=$(PATCHLEVEL) \
|
||||
|
@ -239,7 +239,7 @@ cppline {space}*#.*(\\{space}*\n)*\n*
|
||||
}
|
||||
<xq>{xqstop} {
|
||||
BEGIN(SQL);
|
||||
/* yylval.str = scanstr(literal); */
|
||||
/* yylval.str = mm_strdup(scanstr(literal));*/
|
||||
yylval.str = mm_strdup(literal);
|
||||
return SCONST;
|
||||
}
|
||||
@ -601,7 +601,7 @@ cppline {space}*#.*(\\{space}*\n)*\n*
|
||||
if (strcmp(old, ptr->old) == 0)
|
||||
{
|
||||
free(ptr->new);
|
||||
/* ptr->new = scanstr(literal); */
|
||||
/* ptr->new = mm_strdup(scanstr(literal));*/
|
||||
ptr->new = mm_strdup(literal);
|
||||
}
|
||||
}
|
||||
@ -611,7 +611,7 @@ cppline {space}*#.*(\\{space}*\n)*\n*
|
||||
|
||||
/* initial definition */
|
||||
this->old = old;
|
||||
/* this->new = scanstr(literal); */
|
||||
/* this->new = mm_strdup(scanstr(literal));*/
|
||||
this->new = mm_strdup(literal);
|
||||
this->next = defines;
|
||||
defines = this;
|
||||
|
@ -1142,7 +1142,7 @@ VariableSetStmt: SET ColId TO var_value
|
||||
}
|
||||
| SET NAMES encoding
|
||||
{
|
||||
#ifdef MB
|
||||
#ifdef MULTIBYTE
|
||||
$$ = cat2_str(make1_str("set names"), $3);
|
||||
#else
|
||||
yyerror("SET NAMES is not supported");
|
||||
|
@ -48,7 +48,9 @@ exec sql end declare section;
|
||||
strcpy(msg, "execute insert 1");
|
||||
sprintf(command, "insert into test(name, amount, letter) values ('db: ''mm''', 1, 'f')");
|
||||
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;
|
||||
|
||||
strcpy(msg, "execute insert 2");
|
||||
|
Loading…
Reference in New Issue
Block a user