40#define JUMBLE_SIZE 1024
55 const unsigned char *item,
Size size);
69 int query_location = *location;
73 if (query_location >= 0)
75 Assert(query_location <= strlen(query));
76 query += query_location;
79 query_len = strlen(query);
81 Assert(query_len <= strlen(query));
87 query_len = strlen(query);
101 query++, query_location++, query_len--;
105 *location = query_location;
170 unsigned char *jumble = jstate->
jumble;
188 memcpy(jumble, &start_hash,
sizeof(start_hash));
189 jumble_len =
sizeof(start_hash);
192 memcpy(jumble + jumble_len, item, part_size);
193 jumble_len += part_size;
226#define JUMBLE_NODE(item) \
227 _jumbleNode(jstate, (Node *) expr->item)
228#define JUMBLE_LOCATION(location) \
229 RecordConstLocation(jstate, expr->location)
230#define JUMBLE_FIELD(item) \
231 AppendJumble(jstate, (const unsigned char *) &(expr->item), sizeof(expr->item))
232#define JUMBLE_FIELD_SINGLE(item) \
233 AppendJumble(jstate, (const unsigned char *) &(item), sizeof(item))
234#define JUMBLE_STRING(str) \
237 AppendJumble(jstate, (const unsigned char *) (expr->str), strlen(expr->str) + 1); \
240#include "queryjumblefuncs.funcs.c"
261#include "queryjumblefuncs.switch.c"
323 elog(
ERROR,
"unrecognized list node type: %d",
356 elog(
ERROR,
"unrecognized node type: %d",
#define Assert(condition)
static Datum hash_any_extended(const unsigned char *k, int keylen, uint64 seed)
void * repalloc(void *pointer, Size size)
static uint64 DatumGetUInt64(Datum X)
static bool IsQueryIdEnabled(void)
#define JUMBLE_NODE(item)
JumbleState * JumbleQuery(Query *query)
static void _jumbleNode(JumbleState *jstate, Node *node)
static void AppendJumble(JumbleState *jstate, const unsigned char *item, Size size)
static void _jumbleVariableSetStmt(JumbleState *jstate, Node *node)
#define JUMBLE_LOCATION(location)
const char * CleanQuerytext(const char *query, int *location, int *len)
static void RecordConstLocation(JumbleState *jstate, int location)
static void _jumbleList(JumbleState *jstate, Node *node)
#define JUMBLE_STRING(str)
#define JUMBLE_FIELD_SINGLE(item)
static void _jumbleA_Const(JumbleState *jstate, Node *node)
#define JUMBLE_FIELD(item)
bool scanner_isspace(char ch)
static pg_noinline void Size size
void check_stack_depth(void)
int highest_extern_param_id