summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane2016-10-11 16:19:18 +0000
committerTom Lane2016-10-11 16:19:18 +0000
commit2f1eaf87e868a1c42f2b159958623daa6a666de4 (patch)
tree268fb38d3a2e276496734f91f116836d3bb18862
parent2b860f52ed1b1784cdf3f03886805f5bf250ea74 (diff)
Drop server support for FE/BE protocol version 1.0.
While this isn't a lot of code, it's been essentially untestable for a very long time, because libpq doesn't support anything older than protocol 2.0, and has not since release 6.3. There's no reason to believe any other client-side code still uses that protocol, either. Discussion: <[email protected]>
-rw-r--r--src/backend/access/common/printtup.c4
-rw-r--r--src/backend/commands/copy.c28
-rw-r--r--src/backend/tcop/dest.c6
-rw-r--r--src/backend/tcop/postgres.c3
-rw-r--r--src/include/libpq/pqcomm.h2
5 files changed, 8 insertions, 35 deletions
diff --git a/src/backend/access/common/printtup.c b/src/backend/access/common/printtup.c
index d213af9074..e2b1050c96 100644
--- a/src/backend/access/common/printtup.c
+++ b/src/backend/access/common/printtup.c
@@ -229,9 +229,7 @@ SendRowDescriptionMessage(TupleDesc typeinfo, List *targetlist, int16 *formats)
atttypid = getBaseTypeAndTypmod(atttypid, &atttypmod);
pq_sendint(&buf, (int) atttypid, sizeof(atttypid));
pq_sendint(&buf, attrs[i]->attlen, sizeof(attrs[i]->attlen));
- /* typmod appears in protocol 2.0 and up */
- if (proto >= 2)
- pq_sendint(&buf, atttypmod, sizeof(atttypmod));
+ pq_sendint(&buf, atttypmod, sizeof(atttypmod));
/* format info appears in protocol 3.0 and up */
if (proto >= 3)
{
diff --git a/src/backend/commands/copy.c b/src/backend/commands/copy.c
index 457c9bbd74..b4140eb68a 100644
--- a/src/backend/commands/copy.c
+++ b/src/backend/commands/copy.c
@@ -353,7 +353,7 @@ SendCopyBegin(CopyState cstate)
pq_endmessage(&buf);
cstate->copy_dest = COPY_NEW_FE;
}
- else if (PG_PROTOCOL_MAJOR(FrontendProtocol) >= 2)
+ else
{
/* old way */
if (cstate->binary)
@@ -365,18 +365,6 @@ SendCopyBegin(CopyState cstate)
pq_startcopyout();
cstate->copy_dest = COPY_OLD_FE;
}
- else
- {
- /* very old way */
- if (cstate->binary)
- ereport(ERROR,
- (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
- errmsg("COPY BINARY is not supported to stdout or from stdin")));
- pq_putemptymessage('B');
- /* grottiness needed for old COPY OUT protocol */
- pq_startcopyout();
- cstate->copy_dest = COPY_OLD_FE;
- }
}
static void
@@ -399,7 +387,7 @@ ReceiveCopyBegin(CopyState cstate)
cstate->copy_dest = COPY_NEW_FE;
cstate->fe_msgbuf = makeStringInfo();
}
- else if (PG_PROTOCOL_MAJOR(FrontendProtocol) >= 2)
+ else
{
/* old way */
if (cstate->binary)
@@ -411,18 +399,6 @@ ReceiveCopyBegin(CopyState cstate)
pq_startmsgread();
cstate->copy_dest = COPY_OLD_FE;
}
- else
- {
- /* very old way */
- if (cstate->binary)
- ereport(ERROR,
- (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
- errmsg("COPY BINARY is not supported to stdout or from stdin")));
- pq_putemptymessage('D');
- /* any error in old protocol will make us lose sync */
- pq_startmsgread();
- cstate->copy_dest = COPY_OLD_FE;
- }
/* We *must* flush here to ensure FE knows it can send. */
pq_flush();
}
diff --git a/src/backend/tcop/dest.c b/src/backend/tcop/dest.c
index de45cbc4fb..60a92801f1 100644
--- a/src/backend/tcop/dest.c
+++ b/src/backend/tcop/dest.c
@@ -218,8 +218,8 @@ NullCommand(CommandDest dest)
/* ----------------
* ReadyForQuery - tell dest that we are ready for a new query
*
- * The ReadyForQuery message is sent in protocol versions 2.0 and up
- * so that the FE can tell when we are done processing a query string.
+ * The ReadyForQuery message is sent so that the FE can tell when
+ * we are done processing a query string.
* In versions 3.0 and up, it also carries a transaction state indicator.
*
* Note that by flushing the stdio buffer here, we can avoid doing it
@@ -241,7 +241,7 @@ ReadyForQuery(CommandDest dest)
pq_sendbyte(&buf, TransactionBlockStatusCode());
pq_endmessage(&buf);
}
- else if (PG_PROTOCOL_MAJOR(FrontendProtocol) >= 2)
+ else
pq_putemptymessage('Z');
/* Flush output at end of cycle in any case. */
pq_flush();
diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c
index 98ccbbb4d1..2347f1bcdc 100644
--- a/src/backend/tcop/postgres.c
+++ b/src/backend/tcop/postgres.c
@@ -3768,8 +3768,7 @@ PostgresMain(int argc, char *argv[],
/*
* Send this backend's cancellation info to the frontend.
*/
- if (whereToSendOutput == DestRemote &&
- PG_PROTOCOL_MAJOR(FrontendProtocol) >= 2)
+ if (whereToSendOutput == DestRemote)
{
StringInfoData buf;
diff --git a/src/include/libpq/pqcomm.h b/src/include/libpq/pqcomm.h
index c6bbfc2377..96484227f7 100644
--- a/src/include/libpq/pqcomm.h
+++ b/src/include/libpq/pqcomm.h
@@ -107,7 +107,7 @@ typedef struct
/* The earliest and latest frontend/backend protocol version supported. */
-#define PG_PROTOCOL_EARLIEST PG_PROTOCOL(1,0)
+#define PG_PROTOCOL_EARLIEST PG_PROTOCOL(2,0)
#define PG_PROTOCOL_LATEST PG_PROTOCOL(3,0)
typedef uint32 ProtocolVersion; /* FE/BE protocol version number */