mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-03 09:13:20 +03:00 
			
		
		
		
	Clarify comment for worst-case allocation in quote_literal_cstr()
palloc() is invoked with a specific formula for its allocation size in quote_literal_cstr(). This wastes some memory, but the size is large enough to cover even the worst-case scenarios. No explanations were given about the reasons behind these numbers. This commit adds more documentation about all that. Author: Steve Chavez <steve@supabase.io> Discussion: https://postgr.es/m/CAGRrpzZ9bToRWS+fAnjxDJrxwZN1QcJ-y1Pn2yg=Hst6rydLtw@mail.gmail.com
This commit is contained in:
		@@ -108,7 +108,12 @@ quote_literal_cstr(const char *rawstr)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	len = strlen(rawstr);
 | 
						len = strlen(rawstr);
 | 
				
			||||||
	/* We make a worst-case result area; wasting a little space is OK */
 | 
						/* We make a worst-case result area; wasting a little space is OK */
 | 
				
			||||||
	result = palloc(len * 2 + 3 + 1);
 | 
						result = palloc(
 | 
				
			||||||
 | 
										(len * 2)	/* doubling for every character if each one is
 | 
				
			||||||
 | 
													 * a quote */
 | 
				
			||||||
 | 
										+ 3			/* two outer quotes + possibly 'E' if needed */
 | 
				
			||||||
 | 
										+ 1			/* null terminator */
 | 
				
			||||||
 | 
							);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	newlen = quote_literal_internal(result, rawstr, len);
 | 
						newlen = quote_literal_internal(result, rawstr, len);
 | 
				
			||||||
	result[newlen] = '\0';
 | 
						result[newlen] = '\0';
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user