mirror of
				https://github.com/postgres/postgres.git
				synced 2025-10-30 00:04:49 -04:00 
			
		
		
		
	Remove undocumented support for copy syntax from before 7.3. Update comments to
reflect syntax actually supported, e.g. by including CSV params.
This commit is contained in:
		
							parent
							
								
									348b621894
								
							
						
					
					
						commit
						f6e3313fea
					
				| @ -3,7 +3,7 @@ | ||||
|  * | ||||
|  * Copyright (c) 2000-2007, PostgreSQL Global Development Group | ||||
|  * | ||||
|  * $PostgreSQL: pgsql/src/bin/psql/copy.c,v 1.74 2007/02/08 11:10:27 petere Exp $ | ||||
|  * $PostgreSQL: pgsql/src/bin/psql/copy.c,v 1.75 2007/03/16 13:41:21 adunstan Exp $ | ||||
|  */ | ||||
| #include "postgres_fe.h" | ||||
| #include "copy.h" | ||||
| @ -35,21 +35,19 @@ | ||||
|  * parse_slash_copy | ||||
|  * -- parses \copy command line | ||||
|  * | ||||
|  * The documented preferred syntax is: | ||||
|  * The documented syntax is: | ||||
|  *	\copy tablename [(columnlist)] from|to filename | ||||
|  *	  [ with ] [ binary ] [ oids ] [ delimiter [as] char ] [ null [as] string ] | ||||
|  *    [ csv  [ header ] [ quote [ AS ] string ]  escape [as] string  | ||||
|  *      [ force not null column [, ...] | force quote column [, ...] ] ] | ||||
|  * | ||||
|  *	\copy ( select stmt ) to filename | ||||
|  *	  [ with ] [ binary ] [ delimiter [as] char ] [ null [as] string ] | ||||
|  *    [ csv  [ header ] [ quote [ AS ] string ]  escape [as] string  | ||||
|  *      [ force quote column [, ...] ] ] | ||||
|  * | ||||
|  * The pre-7.3 syntax was: | ||||
|  *	\copy [ binary ] tablename [(columnlist)] [with oids] from|to filename | ||||
|  *		[ [using] delimiters char ] [ with null as string ] | ||||
|  * | ||||
|  * The actual accepted syntax is a rather unholy combination of these, | ||||
|  * plus some undocumented flexibility (for instance, the clauses after | ||||
|  * WITH can appear in any order).  The accepted syntax matches what | ||||
|  * the backend grammar actually accepts (see backend/parser/gram.y). | ||||
|  * Force quote only applies for copy to; force not null only applies for | ||||
|  * copy from. | ||||
|  * | ||||
|  * table name can be double-quoted and can have a schema part. | ||||
|  * column names can be double-quoted. | ||||
| @ -216,23 +214,6 @@ parse_slash_copy(const char *args) | ||||
| 			goto error; | ||||
| 	} | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * Allows old COPY syntax for backward compatibility 2002-06-19 | ||||
| 	 */ | ||||
| 	if (pg_strcasecmp(token, "with") == 0) | ||||
| 	{ | ||||
| 		token = strtokx(NULL, whitespace, NULL, NULL, | ||||
| 						0, false, false, pset.encoding); | ||||
| 		if (!token || pg_strcasecmp(token, "oids") != 0) | ||||
| 			goto error; | ||||
| 		result->oids = true; | ||||
| 
 | ||||
| 		token = strtokx(NULL, whitespace, NULL, NULL, | ||||
| 						0, false, false, pset.encoding); | ||||
| 		if (!token) | ||||
| 			goto error; | ||||
| 	} | ||||
| 
 | ||||
| 	if (pg_strcasecmp(token, "from") == 0) | ||||
| 		result->from = true; | ||||
| 	else if (pg_strcasecmp(token, "to") == 0) | ||||
| @ -267,27 +248,6 @@ parse_slash_copy(const char *args) | ||||
| 	token = strtokx(NULL, whitespace, NULL, NULL, | ||||
| 					0, false, false, pset.encoding); | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * Allows old COPY syntax for backward compatibility. | ||||
| 	 */ | ||||
| 	if (token && pg_strcasecmp(token, "using") == 0) | ||||
| 	{ | ||||
| 		token = strtokx(NULL, whitespace, NULL, NULL, | ||||
| 						0, false, false, pset.encoding); | ||||
| 		if (!(token && pg_strcasecmp(token, "delimiters") == 0)) | ||||
| 			goto error; | ||||
| 	} | ||||
| 	if (token && pg_strcasecmp(token, "delimiters") == 0) | ||||
| 	{ | ||||
| 		token = strtokx(NULL, whitespace, NULL, "'", | ||||
| 						nonstd_backslash, true, false, pset.encoding); | ||||
| 		if (!token) | ||||
| 			goto error; | ||||
| 		result->delim = pg_strdup(token); | ||||
| 		token = strtokx(NULL, whitespace, NULL, NULL, | ||||
| 						0, false, false, pset.encoding); | ||||
| 	} | ||||
| 
 | ||||
| 	if (token) | ||||
| 	{ | ||||
| 		/*
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user