static void
jsonb_exec_setup(const SubscriptingRef *sbsref,
SubscriptingRefState *sbsrefstate,
- SubscriptExecSteps * methods)
+ SubscriptExecSteps *methods)
{
JsonbSubWorkspace *workspace;
ListCell *lc;
nupper * (sizeof(Datum) + sizeof(Oid)));
workspace->expectArray = false;
ptr = ((char *) workspace) + MAXALIGN(sizeof(JsonbSubWorkspace));
- workspace->indexOid = (Oid *) ptr;
- ptr += nupper * sizeof(Oid);
+
+ /*
+ * This coding assumes sizeof(Datum) >= sizeof(Oid), else we might
+ * misalign the indexOid pointer
+ */
workspace->index = (Datum *) ptr;
+ ptr += nupper * sizeof(Datum);
+ workspace->indexOid = (Oid *) ptr;
sbsrefstate->workspace = workspace;