40 #define JUMBLE_SIZE 1024
49 const unsigned char *item,
Size size);
63 int query_location = *location;
67 if (query_location >= 0)
69 Assert(query_location <= strlen(query));
70 query += query_location;
73 query_len = strlen(query);
75 Assert(query_len <= strlen(query));
81 query_len = strlen(query);
89 query++, query_location++, query_len--;
93 *location = query_location;
127 if (query->queryId == UINT64CONST(0))
130 query->queryId = UINT64CONST(2);
132 query->queryId = UINT64CONST(1);
158 unsigned char *jumble = jstate->
jumble;
176 memcpy(jumble, &start_hash,
sizeof(start_hash));
177 jumble_len =
sizeof(start_hash);
180 memcpy(jumble + jumble_len, item, part_size);
181 jumble_len += part_size;
214 #define JUMBLE_NODE(item) \
215 _jumbleNode(jstate, (Node *) expr->item)
216 #define JUMBLE_LOCATION(location) \
217 RecordConstLocation(jstate, expr->location)
218 #define JUMBLE_FIELD(item) \
219 AppendJumble(jstate, (const unsigned char *) &(expr->item), sizeof(expr->item))
220 #define JUMBLE_FIELD_SINGLE(item) \
221 AppendJumble(jstate, (const unsigned char *) &(item), sizeof(item))
222 #define JUMBLE_STRING(str) \
225 AppendJumble(jstate, (const unsigned char *) (expr->str), strlen(expr->str) + 1); \
228 #include "queryjumblefuncs.funcs.c"
249 #include "queryjumblefuncs.switch.c"
311 elog(
ERROR,
"unrecognized list node type: %d",
344 elog(
ERROR,
"unrecognized node type: %d",
elog(ERROR, "%s: %s", p2, msg)
static Datum hash_any_extended(const unsigned char *k, int keylen, uint64 seed)
Assert(fmt[strlen(fmt) - 1] !='\n')
void * repalloc(void *pointer, Size size)
void check_stack_depth(void)
static uint64 DatumGetUInt64(Datum X)
static bool IsQueryIdEnabled(void)
JumbleState * JumbleQuery(Query *query)
#define JUMBLE_NODE(item)
static void _jumbleNode(JumbleState *jstate, Node *node)
static void AppendJumble(JumbleState *jstate, const unsigned char *item, Size size)
static void RecordConstLocation(JumbleState *jstate, int location)
static void _jumbleList(JumbleState *jstate, Node *node)
static void _jumbleRangeTblEntry(JumbleState *jstate, Node *node)
#define JUMBLE_STRING(str)
const char * CleanQuerytext(const char *query, int *location, int *len)
#define JUMBLE_FIELD_SINGLE(item)
static void _jumbleA_Const(JumbleState *jstate, Node *node)
#define JUMBLE_FIELD(item)
static const struct fns functions
bool scanner_isspace(char ch)
int highest_extern_param_id