提交 864e1e9d 编写于 作者: M Michael Meskes

*** empty log message ***

上级 3f681393
...@@ -622,3 +622,12 @@ Sun Aug 1 13:31:19 CEST 1999 ...@@ -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 ...@@ -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" ...@@ -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 @@ ...@@ -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) ...@@ -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) ...@@ -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 ...@@ -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* ...@@ -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* ...@@ -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* ...@@ -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 ...@@ -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; ...@@ -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");
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册