mirror of
https://github.com/postgres/postgres.git
synced 2026-06-13 18:50:17 -04:00
pply quote_literal to the start_with argument of connectby. Fixes problem
reported by David Garamond when working with bytea parent and child keys.
This commit is contained in:
parent
d301dcbe30
commit
7ce7e3f036
1 changed files with 21 additions and 2 deletions
|
|
@ -66,6 +66,7 @@ static Tuplestorestate *build_tuplestore_recursively(char *key_fld,
|
|||
MemoryContext per_query_ctx,
|
||||
AttInMetadata *attinmeta,
|
||||
Tuplestorestate *tupstore);
|
||||
static char *quote_literal_cstr(char *rawstr);
|
||||
|
||||
typedef struct
|
||||
{
|
||||
|
|
@ -779,12 +780,12 @@ build_tuplestore_recursively(char *key_fld,
|
|||
return tupstore;
|
||||
|
||||
/* Build initial sql statement */
|
||||
appendStringInfo(sql, "SELECT %s, %s FROM %s WHERE %s = '%s' AND %s IS NOT NULL",
|
||||
appendStringInfo(sql, "SELECT %s, %s FROM %s WHERE %s = %s AND %s IS NOT NULL",
|
||||
key_fld,
|
||||
parent_key_fld,
|
||||
relname,
|
||||
parent_key_fld,
|
||||
start_with,
|
||||
quote_literal_cstr(start_with),
|
||||
key_fld);
|
||||
|
||||
/* Retrieve the desired rows */
|
||||
|
|
@ -1087,3 +1088,21 @@ make_crosstab_tupledesc(TupleDesc spi_tupdesc, int num_catagories)
|
|||
|
||||
return tupdesc;
|
||||
}
|
||||
|
||||
/*
|
||||
* Return a properly quoted literal value.
|
||||
* Uses quote_literal in quote.c
|
||||
*/
|
||||
static char *
|
||||
quote_literal_cstr(char *rawstr)
|
||||
{
|
||||
text *rawstr_text;
|
||||
text *result_text;
|
||||
char *result;
|
||||
|
||||
rawstr_text = DatumGetTextP(DirectFunctionCall1(textin, CStringGetDatum(rawstr)));
|
||||
result_text = DatumGetTextP(DirectFunctionCall1(quote_literal, PointerGetDatum(rawstr_text)));
|
||||
result = DatumGetCString(DirectFunctionCall1(textout, PointerGetDatum(result_text)));
|
||||
|
||||
return result;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue