Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit7344d69

Browse files
committed
Finished merging in src/backend from Dr. George's source tree
1 parente11744e commit7344d69

File tree

9 files changed

+150
-25
lines changed

9 files changed

+150
-25
lines changed

‎src/backend/bootstrap/bootstrap.c

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* Copyright (c) 1994, Regents of the University of California
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/bootstrap/bootstrap.c,v 1.3 1996/07/16 07:12:27 scrappy Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/bootstrap/bootstrap.c,v 1.4 1996/07/23 02:23:05 scrappy Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -137,7 +137,7 @@ AttributeTupleForm attrtypes[MAXATTR]; /* points to attribute info */
137137
staticchar*values[MAXATTR];/* cooresponding attribute values */
138138
intnumattr;/* number of attributes for cur. rel */
139139
#ifdefOPENLINK_PATCHES
140-
externintfsyncOff;/* do not fsync the database */
140+
externintfsyncOff;/* do not fsync the database */
141141
#endif
142142

143143
#if defined(WIN32)|| defined(PORTNAME_next)
@@ -187,7 +187,9 @@ typedef void (*sig_func)();
187187
*error handling / abort routines
188188
* ----------------
189189
*/
190-
#if !defined(PORTNAME_bsdi)&& !defined(PORTNAME_bsdi_2_1)
190+
# if !defined(PORTNAME_BSD44_derived)&& \
191+
!defined(PORTNAME_bsdi)&& \
192+
!defined(PORTNAME_bsdi_2_1)
191193
voiderr()
192194
{
193195
Warnings++;
@@ -266,7 +268,7 @@ BootstrapMain(int argc, char *argv[])
266268
Quiet=0;
267269
Noversion=0;
268270
dbName=NULL;
269-
271+
270272
#ifdefOPENLINK_PATCHES
271273
while ((flag=getopt(argc,argv,"dCOQP:F"))!=EOF) {
272274
#else
@@ -279,6 +281,11 @@ BootstrapMain(int argc, char *argv[])
279281
case'C':
280282
Noversion=1;
281283
break;
284+
#ifdefOPENLINK_PATCHES
285+
case'F':
286+
fsyncOff=1;
287+
break;
288+
#endif
282289
case'O':
283290
override= true;
284291
break;
@@ -288,12 +295,6 @@ BootstrapMain(int argc, char *argv[])
288295
case'P':/* specify port */
289296
portFd=atoi(optarg);
290297
break;
291-
#ifdefOPENLINK_PATCHES
292-
case'F':
293-
fsyncOff=1;
294-
break;
295-
#endif
296-
break;
297298
default:
298299
usage();
299300
break;

‎src/backend/commands/copy.c

Lines changed: 100 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
*
77
*
88
* IDENTIFICATION
9-
* $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.1.1.1 1996/07/09 06:21:19 scrappy Exp $
9+
* $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.2 1996/07/23 02:23:15 scrappy Exp $
1010
*
1111
*-------------------------------------------------------------------------
1212
*/
@@ -650,6 +650,10 @@ GetIndexRelations(Oid main_relation_oid,
650650
heap_endscan(scandesc);
651651
heap_close(pg_index_rel);
652652

653+
/* We cannot trust to relhasindex of the main_relation now, so... */
654+
if (*n_indices==0 )
655+
return;
656+
653657
*index_rels= (Relation*)palloc(*n_indices*sizeof(Relation));
654658

655659
for (i=0,scan=head;i<*n_indices;i++,scan=scan->next) {
@@ -726,6 +730,67 @@ CopyReadAttribute(int attno, FILE *fp, bool *isnull, char *delim)
726730
}
727731
}elseif (c=='\\') {
728732
c=getc(fp);
733+
#ifdefESCAPE_PATCH
734+
#defineISOCTAL(c) (((c) >= '0') && ((c) <= '7'))
735+
#defineVALUE(c) ((c) - '0')
736+
if (feof(fp)) {
737+
*isnull= (bool) false;
738+
return(NULL);
739+
}
740+
switch (c) {
741+
case'0':
742+
case'1':
743+
case'2':
744+
case'3':
745+
case'4':
746+
case'5':
747+
case'6':
748+
case'7': {
749+
intval;
750+
val=VALUE(c);
751+
c=getc(fp);
752+
if (ISOCTAL(c)) {
753+
val= (val<<3)+VALUE(c);
754+
c=getc(fp);
755+
if (ISOCTAL(c)) {
756+
val= (val<<3)+VALUE(c);
757+
}else {
758+
if (feof(fp)) {
759+
*isnull= (bool) false;
760+
return(NULL);
761+
}
762+
ungetc(c,fp);
763+
}
764+
}else {
765+
if (feof(fp)) {
766+
*isnull= (bool) false;
767+
return(NULL);
768+
}
769+
ungetc(c,fp);
770+
}
771+
c=val&0377;
772+
}
773+
break;
774+
case'b':
775+
c='\b';
776+
break;
777+
case'f':
778+
c='\f';
779+
break;
780+
case'n':
781+
c='\n';
782+
break;
783+
case'r':
784+
c='\r';
785+
break;
786+
case't':
787+
c='\t';
788+
break;
789+
case'v':
790+
c='\v';
791+
break;
792+
}
793+
#endif
729794
}elseif (inString(c,delim)||c=='\n') {
730795
done=1;
731796
}
@@ -743,6 +808,39 @@ CopyReadAttribute(int attno, FILE *fp, bool *isnull, char *delim)
743808
}
744809
}
745810

811+
#ifdefESCAPE_PATCH
812+
staticvoid
813+
CopyAttributeOut(FILE*fp,char*string,char*delim)
814+
{
815+
charc;
816+
intis_array= false;
817+
intlen=strlen(string);
818+
819+
/* XXX - This is a kludge, we should check the data type */
820+
if (len&& (string[0]=='{')&& (string[len-1]=='}')) {
821+
is_array= true;
822+
}
823+
824+
for ( ;c=*string;string++) {
825+
if ((c==delim[0])|| (c=='\n')) {
826+
fputc('\\',fp);
827+
}elseif ((c=='\\')&&is_array) {
828+
if (*(string+1)=='\\') {
829+
/* translate \\ to \\\\ */
830+
fputc('\\',fp);
831+
fputc('\\',fp);
832+
fputc('\\',fp);
833+
string++;
834+
}elseif (*(string+1)=='"') {
835+
/* translate \" to \\\" */
836+
fputc('\\',fp);
837+
fputc('\\',fp);
838+
}
839+
}
840+
fputc(*string,fp);
841+
}
842+
}
843+
#else
746844
staticvoid
747845
CopyAttributeOut(FILE*fp,char*string,char*delim)
748846
{
@@ -756,6 +854,7 @@ CopyAttributeOut(FILE *fp, char *string, char *delim)
756854
fputc(string[i],fp);
757855
}
758856
}
857+
#endif
759858

760859
/*
761860
* Returns the number of tuples in a relation. Unfortunately, currently

‎src/backend/libpq/pqcomm.c

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/libpq/pqcomm.c,v 1.1.1.1 1996/07/09 06:21:31 scrappy Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/libpq/pqcomm.c,v 1.2 1996/07/23 02:23:25 scrappy Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -551,6 +551,7 @@ StreamServerPort(char *hostName, short portName, int *fdP)
551551
{
552552
structsockaddr_insin;
553553
intfd;
554+
intone=1;
554555

555556
#ifdefWIN32
556557
/* This is necessary to make it possible for a backend to use
@@ -575,7 +576,17 @@ StreamServerPort(char *hostName, short portName, int *fdP)
575576
pqdebug("%s",PQerrormsg);
576577
return(STATUS_ERROR);
577578
}
578-
579+
580+
if((setsockopt(fd,SOL_SOCKET,SO_REUSEADDR, (char*)&one,
581+
sizeof(one)))==-1) {
582+
(void)sprintf(PQerrormsg,
583+
"FATAL: StreamServerPort: setsockopt (SO_REUSEADDR) failed: errno=%d\n",
584+
errno);
585+
fputs(PQerrormsg,stderr);
586+
pqdebug("%s",PQerrormsg);
587+
return(STATUS_ERROR);
588+
}
589+
579590
sin.sin_family=AF_INET;
580591
sin.sin_port=htons(portName);
581592

‎src/backend/parser/Makefile.inc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
#
88
#
99
# IDENTIFICATION
10-
# $Header: /cvsroot/pgsql/src/backend/parser/Attic/Makefile.inc,v 1.1.1.1 1996/07/09 06:21:39 scrappy Exp $
10+
# $Header: /cvsroot/pgsql/src/backend/parser/Attic/Makefile.inc,v 1.2 1996/07/23 02:23:32 scrappy Exp $
1111
#
1212
#-------------------------------------------------------------------------
1313

@@ -34,13 +34,13 @@ $(objdir)/scan.o: scan.c
3434

3535

3636
SRCS_PARSER+= analyze.c catalog_utils.c dbcommands.c gram.c\
37-
keywords.c parser.c parse_query.c scan.c scansup.c
37+
keywords.c parser.c parse_query.c scan.c scansup.csysfunc.c
3838

3939
CLEANFILES+= scan.c ${PARSEYACCS}
4040

4141
POSTGRES_DEPEND+= scan.c$(PARSEYACCS)
4242

4343
HEADERS+= catalog_utils.h io.h parse_query.h parsetree.h\
44-
dbcommands.h keywords.h
44+
dbcommands.h keywords.h sysfunc.c
4545

4646

‎src/backend/parser/gram.y

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
*
1111
*
1212
* IDENTIFICATION
13-
* $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 1.1.1.1 1996/07/09 06:21:40 scrappy Exp $
13+
* $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 1.2 1996/07/23 02:23:33 scrappy Exp $
1414
*
1515
* HISTORY
1616
* AUTHORDATEMAJOR EVENT
@@ -515,7 +515,7 @@ fetch_how_many: Iconst
515515
{ $$ = $1;
516516
if ($1 <= 0) elog(WARN,"Please specify nonnegative count for fetch"); }
517517
| ALL{ $$ = 0; /* 0 means fetch all tuples*/}
518-
| /*EMPTY*/{ $$ =0; /*default*/ }
518+
| /*EMPTY*/{ $$ =1; /*default*/ }
519519
;
520520

521521
/*****************************************************************************

‎src/backend/parser/scan.l

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*
1010
* IDENTIFICATION
11-
* $Header: /cvsroot/pgsql/src/backend/parser/scan.l,v 1.1.1.1 1996/07/09 06:21:41 scrappy Exp $
11+
* $Header: /cvsroot/pgsql/src/backend/parser/scan.l,v 1.2 1996/07/23 02:23:34 scrappy Exp $
1212
*
1313
*-------------------------------------------------------------------------
1414
*/
@@ -29,6 +29,7 @@
2929
#include"nodes/parsenodes.h"
3030
#include"parser/keywords.h"
3131
#include"parser/scansup.h"
32+
#include"parser/sysfunc.h"
3233
#include"parse.h"
3334
#include"utils/elog.h"
3435
#include"utils/palloc.h"
@@ -61,6 +62,8 @@ digit[0-9]
6162
letter[_A-Za-z]
6263
letter_or_digit[_A-Za-z0-9]
6364

65+
sysfuncSYS_{letter}{letter_or_digit}*
66+
6467
identifier{letter}{letter_or_digit}*
6568

6669
self[,()\[\].;$\:\+\-\*\/\<\>\=\|]
@@ -83,6 +86,11 @@ space[ \t\n\f]
8386
other.
8487

8588
%%
89+
{sysfunc}{
90+
yylval.str =pstrdup(SystemFunctionHandler((char *)yytext));
91+
return (SCONST);
92+
}
93+
8694
{comment}{/* ignore */}
8795

8896
"::"{return TYPECAST;}

‎src/backend/parser/scansup.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*
1010
* IDENTIFICATION
11-
* $Header: /cvsroot/pgsql/src/backend/parser/scansup.c,v 1.1.1.1 1996/07/09 06:21:41 scrappy Exp $
11+
* $Header: /cvsroot/pgsql/src/backend/parser/scansup.c,v 1.2 1996/07/23 02:23:35 scrappy Exp $
1212
*
1313
*-------------------------------------------------------------------------
1414
*/
@@ -134,7 +134,11 @@ scanstr(char *s)
134134
}
135135
}
136136
default:
137-
elog (WARN,"Bad escape sequence, s[i] = %d",s[i]);
137+
#ifdefESCAPE_PATCH
138+
newStr[j]=s[i];
139+
#else
140+
elog (WARN,"Bad escape sequence, s[i] = %d",s[i]);
141+
#endif
138142
}/* switch */
139143
}/* s[i] == '\\' */
140144
else

‎src/backend/postmaster/postmaster.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
*
1111
*
1212
* IDENTIFICATION
13-
* $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.2 1996/07/16 07:13:07 scrappy Exp $
13+
* $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.3 1996/07/23 02:23:47 scrappy Exp $
1414
*
1515
* NOTES
1616
*
@@ -49,7 +49,9 @@
4949
#defineMAXINT INT_MAX
5050
#else
5151
#include<netdb.h>/* for MAXHOSTNAMELEN on some */
52-
# if defined(PORTNAME_BSD44_derived)|| defined(PORTNAME_bsdi)|| defined(PORTNAME_bsdi_2_1)
52+
# if defined(PORTNAME_BSD44_derived)|| \
53+
defined(PORTNAME_bsdi)|| \
54+
defined(PORTNAME_bsdi_2_1)
5355
# include<machine/limits.h>
5456
# defineMAXINTINT_MAX
5557
# else

‎src/backend/rewrite/rewriteManip.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
*
77
*
88
* IDENTIFICATION
9-
* $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteManip.c,v 1.1.1.1 1996/07/09 06:21:52 scrappy Exp $
9+
* $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteManip.c,v 1.2 1996/07/23 02:23:54 scrappy Exp $
1010
*
1111
*-------------------------------------------------------------------------
1212
*/
@@ -319,7 +319,7 @@ nodeHandleRIRAttributeRule(Node **nodePtr,
319319
if (name_to_look_for.data[0]) {
320320
Node*n;
321321

322-
n=FindMatchingTLEntry(targetlist,&name_to_look_for);
322+
n=FindMatchingTLEntry(targetlist,(char*)&name_to_look_for);
323323
if (n==NULL) {
324324
*nodePtr=make_null(((Var*)node)->vartype);
325325
}else {

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp