You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hawq.apache.org by rv...@apache.org on 2015/09/22 21:14:37 UTC
[34/35] incubator-hawq git commit: SGA import. Now with files
previously missing because of the .gitignore issue
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a485be47/src/backend/access/index/basedef.json
----------------------------------------------------------------------
diff --git a/src/backend/access/index/basedef.json b/src/backend/access/index/basedef.json
new file mode 100644
index 0000000..a67bb33
--- /dev/null
+++ b/src/backend/access/index/basedef.json
@@ -0,0 +1,5492 @@
+{
+ "insert into gp_distribution_policy" : {
+ "cql" : "cql",
+ "files" : {
+ "../../../..//src/backend/cdb/cdbcat.c" : 1
+ },
+ "foreign_key_tables" : {
+ "pg_class" : {
+ "(oid) <- (localoid)" : 1
+ }
+ },
+ "func" : "static\nSysScanDesc\ncaql_basic_fn_1(cqContext *pCtx, cq_list *pcql, bool bLockEntireTable)\n{\n\tRelation\trel;\n\n\tpCtx->cq_relationId = GpPolicyRelationId;\n\n\tif (!pCtx->cq_externrel)\n\t{\n\t\t\n\t\t{\n\t\t\tpCtx->cq_heap_rel = heap_open(pCtx->cq_relationId, \n\t\t\t\t\t\t\t\t\t\t pCtx->cq_lockmode);\n\t\t\tpCtx->cq_tupdesc = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\t}\n\telse\n\t{\n\t\t/* make sure the supplied relation matches the caql */\n\t\tif (RelationIsValid(pCtx->cq_heap_rel))\n\t\t{\n\t\t\tAssert(GpPolicyRelationId == \n\t\t\t\t RelationGetRelid(pCtx->cq_heap_rel));\n\t\t\tpCtx->cq_tupdesc = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\n\t}\t\t\n\n\trel = pCtx->cq_heap_rel;\n\n\treturn NULL; /* XXX XXX: don't init scan */\n}\n",
+ "func_name" : "caql_basic_fn_1",
+ "func_note" : "",
+ "func_number" : "1",
+ "indexes" : {},
+ "iud_func" : "\nstatic\nvoid caql_iud_fn_1(cqContext *pCtx, int is_iud, \n\t\t\t\t\t HeapTuple oldtup, HeapTuple newtup, bool dontWait,\n\t\t\t\t\t LOCKMODE pklockmode)\n{\n\tOid oldhash = 0;\n\tOid newhash = 0;\n\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\toldhash = 0;\n\t}\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\tnewhash = 0;\n\t}\n\n\t/*\n\t1 unique index:\n\tGpPolicyLocalOidIndexId: localoid\n\t*/\n\t/* gp_distribution_policy: do not get exclusive lock */\n\n\t/* NOTE: don't get fk locks if only needed share locks on pk */\n\tif (pklockmode != AccessExclusiveLock)\n\t\treturn;\n\n\tif (!is_iud)\n\t{\n\t\t\n\t}\n\telse\n\t{\n\t\tdontWait = true; /* never wait for share locks on foreign keys */\n\t\t/* \n\t\t if insert/update, check foreign keys against:\t\n\t\t pg_class (oid) <- (localoid) \n\t\t*/\n\n\t
\t/* No Share Locks Acquired */\n\t}\n} /* end caql_iud_fn_1 */\n",
+ "iud_func_name" : "caql_iud_fn_1",
+ "num_del_ops" : 0,
+ "num_ins_ops" : 1,
+ "num_upd_ops" : 0,
+ "tablename" : "gp_distribution_policy"
+ },
+ "insert into gp_segment_configuration" : {
+ "cql" : "cql",
+ "files" : {
+ "../../../..//src/backend/utils/gp/segadmin.c" : 1
+ },
+ "func" : "static\nSysScanDesc\ncaql_basic_fn_2(cqContext *pCtx, cq_list *pcql, bool bLockEntireTable)\n{\n\tRelation\trel;\n\n\tpCtx->cq_relationId = GpSegmentConfigRelationId;\n\n\tif (!pCtx->cq_externrel)\n\t{\n\t\t\n\t\t{\n\t\t\tpCtx->cq_heap_rel = heap_open(pCtx->cq_relationId, \n\t\t\t\t\t\t\t\t\t\t pCtx->cq_lockmode);\n\t\t\tpCtx->cq_tupdesc = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\t}\n\telse\n\t{\n\t\t/* make sure the supplied relation matches the caql */\n\t\tif (RelationIsValid(pCtx->cq_heap_rel))\n\t\t{\n\t\t\tAssert(GpSegmentConfigRelationId == \n\t\t\t\t RelationGetRelid(pCtx->cq_heap_rel));\n\t\t\tpCtx->cq_tupdesc = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\n\t}\t\t\n\n\trel = pCtx->cq_heap_rel;\n\n\treturn NULL; /* XXX XXX: don't init scan */\n}\n",
+ "func_name" : "caql_basic_fn_2",
+ "func_note" : "",
+ "func_number" : "2",
+ "indexes" : {},
+ "iud_func" : "\nstatic\nvoid caql_iud_fn_2(cqContext *pCtx, int is_iud, \n\t\t\t\t\t HeapTuple oldtup, HeapTuple newtup, bool dontWait,\n\t\t\t\t\t LOCKMODE pklockmode)\n{\n\tOid oldhash = 0;\n\tOid newhash = 0;\n\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\toldhash = 0;\n\t}\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\tnewhash = 0;\n\t}\n\n\t/*\n\t1 unique index:\n\tGpSegmentConfigRegistration_orderIndexId: registration_order\n\t*/\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\tnewhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_gp_segment_configuration_registration_order, &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, INT4OID);\n\t\n\t\tcaql_lockwell(pCtx, GpSegmentConfigRelationId, \n\t\t\t\t\t pklockmode, newtup,\n\t\t\t\t\t \"gp_segment_c
onfiguration\",\n\t\t\t\t\t \"registration_order\",\n\t\t\t\t\t GpSegmentConfigRegistration_orderIndexId,\n\t\t\t\t\t newhash,\n\t\t\t\t\t dontWait,\n\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\toldhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_gp_segment_configuration_registration_order, &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, INT4OID);\n\t\n\t\tcaql_lockwell(pCtx, GpSegmentConfigRelationId, \n\t\t\t\t\t pklockmode, oldtup,\n\t\t\t\t\t \"gp_segment_configuration\",\n\t\t\t\t\t \"registration_order\",\n\t\t\t\t\t GpSegmentConfigRegistration_orderIndexId,\n\t\t\t\t\t oldhash,\n\t\t\t\t\t dontWait,\n\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\n\n\t/* NOTE: don't get fk locks if only needed share locks on pk */\n\tif (pklockmode != AccessExclusiveLock)\n\t\treturn;\n\n\tif (!is_iud)\n\t{\n\t\t\n\t}\n\telse\n
\t{\n\t\tdontWait = true; /* never wait for share locks on foreign keys */\n\t\t/* INSERT/UPDATE/DELETE: no references\n\t\t gp_segment_configuration is unrelated to any other table */\n\t\t/* No Share Locks Acquired */\n\t}\n} /* end caql_iud_fn_2 */\n",
+ "iud_func_name" : "caql_iud_fn_2",
+ "num_del_ops" : 0,
+ "num_ins_ops" : 1,
+ "num_upd_ops" : 0,
+ "tablename" : "gp_segment_configuration"
+ },
+ "insert into pg_aggregate" : {
+ "cql" : "cql",
+ "files" : {
+ "../../../..//src/backend/catalog/pg_aggregate.c" : 1
+ },
+ "foreign_key_tables" : {
+ "pg_operator" : {
+ "(oid) <- (aggsortop)" : 1
+ },
+ "pg_proc" : {
+ "(oid) <- (aggfinalfn)" : 1,
+ "(oid) <- (aggfnoid)" : 1,
+ "(oid) <- (agginvprelimfn)" : 1,
+ "(oid) <- (agginvtransfn)" : 1,
+ "(oid) <- (aggprelimfn)" : 1,
+ "(oid) <- (aggtransfn)" : 1
+ },
+ "pg_type" : {
+ "(oid) <- (aggtranstype)" : 1
+ }
+ },
+ "func" : "static\nSysScanDesc\ncaql_basic_fn_3(cqContext *pCtx, cq_list *pcql, bool bLockEntireTable)\n{\n\tRelation\trel;\n\n\tpCtx->cq_relationId = AggregateRelationId;\n\n\tif (!pCtx->cq_externrel)\n\t{\n\t\t\n\t\t{\n\t\t\tpCtx->cq_heap_rel = heap_open(pCtx->cq_relationId, \n\t\t\t\t\t\t\t\t\t\t pCtx->cq_lockmode);\n\t\t\tpCtx->cq_tupdesc = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\t}\n\telse\n\t{\n\t\t/* make sure the supplied relation matches the caql */\n\t\tif (RelationIsValid(pCtx->cq_heap_rel))\n\t\t{\n\t\t\tAssert(AggregateRelationId == \n\t\t\t\t RelationGetRelid(pCtx->cq_heap_rel));\n\t\t\tpCtx->cq_tupdesc = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\n\t}\t\t\n\n\trel = pCtx->cq_heap_rel;\n\n\treturn NULL; /* XXX XXX: don't init scan */\n}\n",
+ "func_name" : "caql_basic_fn_3",
+ "func_note" : "",
+ "func_number" : "3",
+ "indexes" : {},
+ "iud_func" : "\nstatic\nvoid caql_iud_fn_3(cqContext *pCtx, int is_iud, \n\t\t\t\t\t HeapTuple oldtup, HeapTuple newtup, bool dontWait,\n\t\t\t\t\t LOCKMODE pklockmode)\n{\n\tOid oldhash = 0;\n\tOid newhash = 0;\n\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\toldhash = 0;\n\t}\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\tnewhash = 0;\n\t}\n\n\t/*\n\t1 unique index:\n\tAggregateAggfnoidIndexId: aggfnoid\n\t*/\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\tnewhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_aggregate_aggfnoid, &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\n\t\tcaql_lockwell(pCtx, AggregateRelationId, \n\t\t\t\t\t pklockmode, newtup,\n\t\t\t\t\t \"pg_aggregate\",\n\t\t\t\t\t \"aggfnoid\",\n\t\t\t\t\t AggregateAg
gfnoidIndexId,\n\t\t\t\t\t newhash,\n\t\t\t\t\t dontWait,\n\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\toldhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_aggregate_aggfnoid, &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\n\t\tcaql_lockwell(pCtx, AggregateRelationId, \n\t\t\t\t\t pklockmode, oldtup,\n\t\t\t\t\t \"pg_aggregate\",\n\t\t\t\t\t \"aggfnoid\",\n\t\t\t\t\t AggregateAggfnoidIndexId,\n\t\t\t\t\t oldhash,\n\t\t\t\t\t dontWait,\n\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\n\n\t/* NOTE: don't get fk locks if only needed share locks on pk */\n\tif (pklockmode != AccessExclusiveLock)\n\t\treturn;\n\n\tif (!is_iud)\n\t{\n\t\t\n\t}\n\telse\n\t{\n\t\tdontWait = true; /* never wait for share locks on foreign keys */\n\t\t/* \n\t\t if insert/update, check foreign keys against:\t\n\t\t pg_operator (o
id) <- (aggsortop)\n\t\t pg_proc (oid) <- (aggfinalfn)\n\t\t pg_proc (oid) <- (aggfnoid)\n\t\t pg_proc (oid) <- (agginvprelimfn)\n\t\t pg_proc (oid) <- (agginvtransfn)\n\t\t pg_proc (oid) <- (aggprelimfn)\n\t\t pg_proc (oid) <- (aggtransfn)\n\t\t pg_type (oid) <- (aggtranstype) \n\t\t*/\n\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_aggregate_aggsortop, &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, OperatorRelationId, \n\t\t\t\t\t\t AccessShareLock, newtup,\n\t\t\t\t\t\t \"pg_operator\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t OperatorOidIndexId,\n\t\t\t\t\t\t newhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td =
caql_getattr_internal(pCtx, oldtup, Anum_pg_aggregate_aggsortop, &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, OperatorRelationId, \n\t\t\t\t\t\t AccessShareLock, oldtup,\n\t\t\t\t\t\t \"pg_operator\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t OperatorOidIndexId,\n\t\t\t\t\t\t oldhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_aggregate_aggfinalfn, &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, ProcedureRelationId, \n\t\t\t\t\t\t AccessShareLock, newtup,\n\t\t\t\t\t\t \"pg_proc\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t ProcedureOidIndexId,\n\t\t\t\t\t\t newhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tupl
e */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_aggregate_aggfinalfn, &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, ProcedureRelationId, \n\t\t\t\t\t\t AccessShareLock, oldtup,\n\t\t\t\t\t\t \"pg_proc\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t ProcedureOidIndexId,\n\t\t\t\t\t\t oldhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_aggregate_aggfnoid, &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, ProcedureRelationId, \n\t\t\t\t\t\t AccessShareLock, newtup,\n\t\t\t\t\t\t \"pg_proc\",\n\t\t\t\t\t
\t \"oid\",\n\t\t\t\t\t\t ProcedureOidIndexId,\n\t\t\t\t\t\t newhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_aggregate_aggfnoid, &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, ProcedureRelationId, \n\t\t\t\t\t\t AccessShareLock, oldtup,\n\t\t\t\t\t\t \"pg_proc\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t ProcedureOidIndexId,\n\t\t\t\t\t\t oldhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_aggregate_agginvprelimfn, &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d,
isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, ProcedureRelationId, \n\t\t\t\t\t\t AccessShareLock, newtup,\n\t\t\t\t\t\t \"pg_proc\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t ProcedureOidIndexId,\n\t\t\t\t\t\t newhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_aggregate_agginvprelimfn, &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, ProcedureRelationId, \n\t\t\t\t\t\t AccessShareLock, oldtup,\n\t\t\t\t\t\t \"pg_proc\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t ProcedureOidIndexId,\n\t\t\t\t\t\t oldhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tn
ewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_aggregate_agginvtransfn, &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, ProcedureRelationId, \n\t\t\t\t\t\t AccessShareLock, newtup,\n\t\t\t\t\t\t \"pg_proc\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t ProcedureOidIndexId,\n\t\t\t\t\t\t newhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_aggregate_agginvtransfn, &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, ProcedureRelationId, \n\t\t\t\t\t\t AccessShareLock, oldtup,\n\t\t\t\t\t\t \"pg_proc\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t ProcedureOidIndexId,\n\t\t\t\t\t\t oldhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t f
alse /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_aggregate_aggprelimfn, &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, ProcedureRelationId, \n\t\t\t\t\t\t AccessShareLock, newtup,\n\t\t\t\t\t\t \"pg_proc\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t ProcedureOidIndexId,\n\t\t\t\t\t\t newhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_aggregate_aggprelimfn, &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, ProcedureRelationId, \n\t\t\t\t\t\t AccessShareLock, oldtup,\n\
t\t\t\t\t\t \"pg_proc\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t ProcedureOidIndexId,\n\t\t\t\t\t\t oldhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_aggregate_aggtransfn, &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, ProcedureRelationId, \n\t\t\t\t\t\t AccessShareLock, newtup,\n\t\t\t\t\t\t \"pg_proc\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t ProcedureOidIndexId,\n\t\t\t\t\t\t newhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_aggregate_aggtransfn, &isnull);\n\t\t\toldha
sh = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, ProcedureRelationId, \n\t\t\t\t\t\t AccessShareLock, oldtup,\n\t\t\t\t\t\t \"pg_proc\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t ProcedureOidIndexId,\n\t\t\t\t\t\t oldhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_aggregate_aggtranstype, &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, TypeRelationId, \n\t\t\t\t\t\t AccessShareLock, newtup,\n\t\t\t\t\t\t \"pg_type\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t TypeOidIndexId,\n\t\t\t\t\t\t newhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\
tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_aggregate_aggtranstype, &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, TypeRelationId, \n\t\t\t\t\t\t AccessShareLock, oldtup,\n\t\t\t\t\t\t \"pg_type\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t TypeOidIndexId,\n\t\t\t\t\t\t oldhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\n\t}\n} /* end caql_iud_fn_3 */\n",
+ "iud_func_name" : "caql_iud_fn_3",
+ "num_del_ops" : 0,
+ "num_ins_ops" : 1,
+ "num_upd_ops" : 0,
+ "tablename" : "pg_aggregate"
+ },
+ "insert into pg_amop" : {
+ "cql" : "cql",
+ "files" : {
+ "../../../..//src/backend/commands/opclasscmds.c" : 1
+ },
+ "foreign_key_tables" : {
+ "pg_opclass" : {
+ "(oid) <- (amopclaid)" : 1
+ },
+ "pg_operator" : {
+ "(oid) <- (amopopr)" : 1
+ },
+ "pg_type" : {
+ "(oid) <- (amopsubtype)" : 1
+ }
+ },
+ "func" : "static\nSysScanDesc\ncaql_basic_fn_4(cqContext *pCtx, cq_list *pcql, bool bLockEntireTable)\n{\n\tRelation\trel;\n\n\tpCtx->cq_relationId = AccessMethodOperatorRelationId;\n\n\tif (!pCtx->cq_externrel)\n\t{\n\t\t\n\t\t{\n\t\t\tpCtx->cq_heap_rel = heap_open(pCtx->cq_relationId, \n\t\t\t\t\t\t\t\t\t\t pCtx->cq_lockmode);\n\t\t\tpCtx->cq_tupdesc = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\t}\n\telse\n\t{\n\t\t/* make sure the supplied relation matches the caql */\n\t\tif (RelationIsValid(pCtx->cq_heap_rel))\n\t\t{\n\t\t\tAssert(AccessMethodOperatorRelationId == \n\t\t\t\t RelationGetRelid(pCtx->cq_heap_rel));\n\t\t\tpCtx->cq_tupdesc = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\n\t}\t\t\n\n\trel = pCtx->cq_heap_rel;\n\n\treturn NULL; /* XXX XXX: don't init scan */\n}\n",
+ "func_name" : "caql_basic_fn_4",
+ "func_note" : "",
+ "func_number" : "4",
+ "indexes" : {},
+ "iud_func" : "\nstatic\nvoid caql_iud_fn_4(cqContext *pCtx, int is_iud, \n\t\t\t\t\t HeapTuple oldtup, HeapTuple newtup, bool dontWait,\n\t\t\t\t\t LOCKMODE pklockmode)\n{\n\tOid oldhash = 0;\n\tOid newhash = 0;\n\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\toldhash = 0;\n\t}\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\tnewhash = 0;\n\t}\n\n\t/*\n\t2 unique indexes:\n\tAccessMethodStrategyIndexId: amopclaid, amopsubtype, amopstrategy\n\tAccessMethodOperatorIndexId: amopopr, amopclaid\n\t*/\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\tnewhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_amop_amopclaid, &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_amop_amopsubtype, &isnull)
;\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_amop_amopstrategy, &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, INT2OID);\n\t\n\t\tcaql_lockwell(pCtx, AccessMethodOperatorRelationId, \n\t\t\t\t\t pklockmode, newtup,\n\t\t\t\t\t \"pg_amop\",\n\t\t\t\t\t \"amopclaid, amopsubtype, amopstrategy\",\n\t\t\t\t\t AccessMethodStrategyIndexId,\n\t\t\t\t\t newhash,\n\t\t\t\t\t dontWait,\n\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\toldhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_amop_amopclaid, &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_amop_amopsubtype, &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_p
g_amop_amopstrategy, &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, INT2OID);\n\t\n\t\tcaql_lockwell(pCtx, AccessMethodOperatorRelationId, \n\t\t\t\t\t pklockmode, oldtup,\n\t\t\t\t\t \"pg_amop\",\n\t\t\t\t\t \"amopclaid, amopsubtype, amopstrategy\",\n\t\t\t\t\t AccessMethodStrategyIndexId,\n\t\t\t\t\t oldhash,\n\t\t\t\t\t dontWait,\n\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\tnewhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_amop_amopopr, &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_amop_amopclaid, &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\n\t\tcaql_lockwell(pCtx, AccessMethodOperatorRelationId, \n\t\t\t\t\t pklockmode, newtup,\n\t\t\t\t\t \"pg_amop\",\n\t\t\t\t\t \"amopopr, amopclaid\",\n\t\t\t\t\t AccessMetho
dOperatorIndexId,\n\t\t\t\t\t newhash,\n\t\t\t\t\t dontWait,\n\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\toldhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_amop_amopopr, &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_amop_amopclaid, &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\n\t\tcaql_lockwell(pCtx, AccessMethodOperatorRelationId, \n\t\t\t\t\t pklockmode, oldtup,\n\t\t\t\t\t \"pg_amop\",\n\t\t\t\t\t \"amopopr, amopclaid\",\n\t\t\t\t\t AccessMethodOperatorIndexId,\n\t\t\t\t\t oldhash,\n\t\t\t\t\t dontWait,\n\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\n\n\t/* NOTE: don't get fk locks if only needed share locks on pk */\n\tif (pklockmode != AccessExclusiveLock)\n\t\treturn;\n\n\tif (!is_iud)\n\t{\n\t\t\n\t}\n\tel
se\n\t{\n\t\tdontWait = true; /* never wait for share locks on foreign keys */\n\t\t/* \n\t\t if insert/update, check foreign keys against:\t\n\t\t pg_opclass (oid) <- (amopclaid)\n\t\t pg_operator (oid) <- (amopopr)\n\t\t pg_type (oid) <- (amopsubtype) \n\t\t*/\n\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_amop_amopclaid, &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, OperatorClassRelationId, \n\t\t\t\t\t\t AccessShareLock, newtup,\n\t\t\t\t\t\t \"pg_opclass\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t OpclassOidIndexId,\n\t\t\t\t\t\t newhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, o
ldtup, Anum_pg_amop_amopclaid, &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, OperatorClassRelationId, \n\t\t\t\t\t\t AccessShareLock, oldtup,\n\t\t\t\t\t\t \"pg_opclass\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t OpclassOidIndexId,\n\t\t\t\t\t\t oldhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_amop_amopopr, &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, OperatorRelationId, \n\t\t\t\t\t\t AccessShareLock, newtup,\n\t\t\t\t\t\t \"pg_operator\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t OperatorOidIndexId,\n\t\t\t\t\t\t newhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapT
upleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_amop_amopopr, &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, OperatorRelationId, \n\t\t\t\t\t\t AccessShareLock, oldtup,\n\t\t\t\t\t\t \"pg_operator\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t OperatorOidIndexId,\n\t\t\t\t\t\t oldhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_amop_amopsubtype, &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, TypeRelationId, \n\t\t\t\t\t\t AccessShareLock, newtup,\n\t\t\t\t\t\t \"pg_type\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t TypeOidIndexId,\n\t\t\t
\t\t\t newhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_amop_amopsubtype, &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, TypeRelationId, \n\t\t\t\t\t\t AccessShareLock, oldtup,\n\t\t\t\t\t\t \"pg_type\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t TypeOidIndexId,\n\t\t\t\t\t\t oldhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\n\t}\n} /* end caql_iud_fn_4 */\n",
+ "iud_func_name" : "caql_iud_fn_4",
+ "num_del_ops" : 0,
+ "num_ins_ops" : 1,
+ "num_upd_ops" : 0,
+ "tablename" : "pg_amop"
+ },
+ "insert into pg_amproc" : {
+ "cql" : "cql",
+ "files" : {
+ "../../../..//src/backend/commands/opclasscmds.c" : 1
+ },
+ "foreign_key_tables" : {
+ "pg_opclass" : {
+ "(oid) <- (amopclaid)" : 1
+ },
+ "pg_proc" : {
+ "(oid) <- (amproc)" : 1
+ },
+ "pg_type" : {
+ "(oid) <- (amprocsubtype)" : 1
+ }
+ },
+ "func" : "static\nSysScanDesc\ncaql_basic_fn_5(cqContext *pCtx, cq_list *pcql, bool bLockEntireTable)\n{\n\tRelation\trel;\n\n\tpCtx->cq_relationId = AccessMethodProcedureRelationId;\n\n\tif (!pCtx->cq_externrel)\n\t{\n\t\t\n\t\t{\n\t\t\tpCtx->cq_heap_rel = heap_open(pCtx->cq_relationId, \n\t\t\t\t\t\t\t\t\t\t pCtx->cq_lockmode);\n\t\t\tpCtx->cq_tupdesc = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\t}\n\telse\n\t{\n\t\t/* make sure the supplied relation matches the caql */\n\t\tif (RelationIsValid(pCtx->cq_heap_rel))\n\t\t{\n\t\t\tAssert(AccessMethodProcedureRelationId == \n\t\t\t\t RelationGetRelid(pCtx->cq_heap_rel));\n\t\t\tpCtx->cq_tupdesc = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\n\t}\t\t\n\n\trel = pCtx->cq_heap_rel;\n\n\treturn NULL; /* XXX XXX: don't init scan */\n}\n",
+ "func_name" : "caql_basic_fn_5",
+ "func_note" : "",
+ "func_number" : "5",
+ "indexes" : {},
+ "iud_func" : "\nstatic\nvoid caql_iud_fn_5(cqContext *pCtx, int is_iud, \n\t\t\t\t\t HeapTuple oldtup, HeapTuple newtup, bool dontWait,\n\t\t\t\t\t LOCKMODE pklockmode)\n{\n\tOid oldhash = 0;\n\tOid newhash = 0;\n\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\toldhash = 0;\n\t}\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\tnewhash = 0;\n\t}\n\n\t/*\n\t1 unique index:\n\tAccessMethodProcedureIndexId: amopclaid, amprocsubtype, amprocnum\n\t*/\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\tnewhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_amproc_amopclaid, &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_amproc_amprocsubtype, &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d,
isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_amproc_amprocnum, &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, INT2OID);\n\t\n\t\tcaql_lockwell(pCtx, AccessMethodProcedureRelationId, \n\t\t\t\t\t pklockmode, newtup,\n\t\t\t\t\t \"pg_amproc\",\n\t\t\t\t\t \"amopclaid, amprocsubtype, amprocnum\",\n\t\t\t\t\t AccessMethodProcedureIndexId,\n\t\t\t\t\t newhash,\n\t\t\t\t\t dontWait,\n\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\toldhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_amproc_amopclaid, &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_amproc_amprocsubtype, &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_amproc_amprocnum, &isnull);\n\t\told
hash = caql_pkhash(pCtx, oldhash, d, isnull, INT2OID);\n\t\n\t\tcaql_lockwell(pCtx, AccessMethodProcedureRelationId, \n\t\t\t\t\t pklockmode, oldtup,\n\t\t\t\t\t \"pg_amproc\",\n\t\t\t\t\t \"amopclaid, amprocsubtype, amprocnum\",\n\t\t\t\t\t AccessMethodProcedureIndexId,\n\t\t\t\t\t oldhash,\n\t\t\t\t\t dontWait,\n\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\n\n\t/* NOTE: don't get fk locks if only needed share locks on pk */\n\tif (pklockmode != AccessExclusiveLock)\n\t\treturn;\n\n\tif (!is_iud)\n\t{\n\t\t\n\t}\n\telse\n\t{\n\t\tdontWait = true; /* never wait for share locks on foreign keys */\n\t\t/* \n\t\t if insert/update, check foreign keys against:\t\n\t\t pg_opclass (oid) <- (amopclaid)\n\t\t pg_proc (oid) <- (amproc)\n\t\t pg_type (oid) <- (amprocsubtype) \n\t\t*/\n\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_amproc_
amopclaid, &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, OperatorClassRelationId, \n\t\t\t\t\t\t AccessShareLock, newtup,\n\t\t\t\t\t\t \"pg_opclass\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t OpclassOidIndexId,\n\t\t\t\t\t\t newhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_amproc_amopclaid, &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, OperatorClassRelationId, \n\t\t\t\t\t\t AccessShareLock, oldtup,\n\t\t\t\t\t\t \"pg_opclass\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t OpclassOidIndexId,\n\t\t\t\t\t\t oldhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(n
ewtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_amproc_amproc, &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, ProcedureRelationId, \n\t\t\t\t\t\t AccessShareLock, newtup,\n\t\t\t\t\t\t \"pg_proc\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t ProcedureOidIndexId,\n\t\t\t\t\t\t newhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_amproc_amproc, &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, ProcedureRelationId, \n\t\t\t\t\t\t AccessShareLock, oldtup,\n\t\t\t\t\t\t \"pg_proc\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t ProcedureOidIndexId,\n\t\t\t\t\t\t
oldhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_amproc_amprocsubtype, &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, TypeRelationId, \n\t\t\t\t\t\t AccessShareLock, newtup,\n\t\t\t\t\t\t \"pg_type\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t TypeOidIndexId,\n\t\t\t\t\t\t newhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_amproc_amprocsubtype, &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, TypeRelationId, \n\t\t\t\
t\t\t AccessShareLock, oldtup,\n\t\t\t\t\t\t \"pg_type\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t TypeOidIndexId,\n\t\t\t\t\t\t oldhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\n\t}\n} /* end caql_iud_fn_5 */\n",
+ "iud_func_name" : "caql_iud_fn_5",
+ "num_del_ops" : 0,
+ "num_ins_ops" : 1,
+ "num_upd_ops" : 0,
+ "tablename" : "pg_amproc"
+ },
+ "insert into pg_appendonly" : {
+ "cql" : "cql",
+ "files" : {
+ "../../../..//src/backend/catalog/pg_appendonly.c" : 1
+ },
+ "foreign_key_tables" : {
+ "pg_class" : {
+ "(oid) <- (relid)" : 1
+ }
+ },
+ "func" : "static\nSysScanDesc\ncaql_basic_fn_6(cqContext *pCtx, cq_list *pcql, bool bLockEntireTable)\n{\n\tRelation\trel;\n\n\tpCtx->cq_relationId = AppendOnlyRelationId;\n\n\tif (!pCtx->cq_externrel)\n\t{\n\t\t\n\t\t{\n\t\t\tpCtx->cq_heap_rel = heap_open(pCtx->cq_relationId, \n\t\t\t\t\t\t\t\t\t\t pCtx->cq_lockmode);\n\t\t\tpCtx->cq_tupdesc = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\t}\n\telse\n\t{\n\t\t/* make sure the supplied relation matches the caql */\n\t\tif (RelationIsValid(pCtx->cq_heap_rel))\n\t\t{\n\t\t\tAssert(AppendOnlyRelationId == \n\t\t\t\t RelationGetRelid(pCtx->cq_heap_rel));\n\t\t\tpCtx->cq_tupdesc = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\n\t}\t\t\n\n\trel = pCtx->cq_heap_rel;\n\n\treturn NULL; /* XXX XXX: don't init scan */\n}\n",
+ "func_name" : "caql_basic_fn_6",
+ "func_note" : "",
+ "func_number" : "6",
+ "indexes" : {},
+ "iud_func" : "\nstatic\nvoid caql_iud_fn_6(cqContext *pCtx, int is_iud, \n\t\t\t\t\t HeapTuple oldtup, HeapTuple newtup, bool dontWait,\n\t\t\t\t\t LOCKMODE pklockmode)\n{\n\tOid oldhash = 0;\n\tOid newhash = 0;\n\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\toldhash = 0;\n\t}\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\tnewhash = 0;\n\t}\n\n\t/*\n\t1 unique index:\n\tAppendOnlyRelidIndexId: relid\n\t*/\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\tnewhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_appendonly_relid, &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\n\t\tcaql_lockwell(pCtx, AppendOnlyRelationId, \n\t\t\t\t\t pklockmode, newtup,\n\t\t\t\t\t \"pg_appendonly\",\n\t\t\t\t\t \"relid\",\n\t\t\t\t\t AppendOnlyRelidInde
xId,\n\t\t\t\t\t newhash,\n\t\t\t\t\t dontWait,\n\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\toldhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_appendonly_relid, &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\n\t\tcaql_lockwell(pCtx, AppendOnlyRelationId, \n\t\t\t\t\t pklockmode, oldtup,\n\t\t\t\t\t \"pg_appendonly\",\n\t\t\t\t\t \"relid\",\n\t\t\t\t\t AppendOnlyRelidIndexId,\n\t\t\t\t\t oldhash,\n\t\t\t\t\t dontWait,\n\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\n\n\t/* NOTE: don't get fk locks if only needed share locks on pk */\n\tif (pklockmode != AccessExclusiveLock)\n\t\treturn;\n\n\tif (!is_iud)\n\t{\n\t\t\n\t}\n\telse\n\t{\n\t\tdontWait = true; /* never wait for share locks on foreign keys */\n\t\t/* \n\t\t if insert/update, check foreign keys against:\t\n\t\t pg_class (oid) <- (relid) \n\
t\t*/\n\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_appendonly_relid, &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, RelationRelationId, \n\t\t\t\t\t\t AccessShareLock, newtup,\n\t\t\t\t\t\t \"pg_class\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t ClassOidIndexId,\n\t\t\t\t\t\t newhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_appendonly_relid, &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, RelationRelationId, \n\t\t\t\t\t\t AccessShareLock, oldtup,\n\t\t\t\t\t\t \"pg_class\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t
ClassOidIndexId,\n\t\t\t\t\t\t oldhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\n\t}\n} /* end caql_iud_fn_6 */\n",
+ "iud_func_name" : "caql_iud_fn_6",
+ "num_del_ops" : 0,
+ "num_ins_ops" : 1,
+ "num_upd_ops" : 0,
+ "tablename" : "pg_appendonly"
+ },
+ "insert into pg_attrdef" : {
+ "cql" : "cql",
+ "files" : {
+ "../../../..//src/backend/catalog/heap.c" : 1
+ },
+ "foreign_key_tables" : {
+ "pg_attribute" : {
+ "(attrelid) <- (adrelid)" : 1
+ }
+ },
+ "func" : "static\nSysScanDesc\ncaql_basic_fn_7(cqContext *pCtx, cq_list *pcql, bool bLockEntireTable)\n{\n\tRelation\trel;\n\n\tpCtx->cq_relationId = AttrDefaultRelationId;\n\n\tif (!pCtx->cq_externrel)\n\t{\n\t\t\n\t\t{\n\t\t\tpCtx->cq_heap_rel = heap_open(pCtx->cq_relationId, \n\t\t\t\t\t\t\t\t\t\t pCtx->cq_lockmode);\n\t\t\tpCtx->cq_tupdesc = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\t}\n\telse\n\t{\n\t\t/* make sure the supplied relation matches the caql */\n\t\tif (RelationIsValid(pCtx->cq_heap_rel))\n\t\t{\n\t\t\tAssert(AttrDefaultRelationId == \n\t\t\t\t RelationGetRelid(pCtx->cq_heap_rel));\n\t\t\tpCtx->cq_tupdesc = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\n\t}\t\t\n\n\trel = pCtx->cq_heap_rel;\n\n\treturn NULL; /* XXX XXX: don't init scan */\n}\n",
+ "func_name" : "caql_basic_fn_7",
+ "func_note" : "",
+ "func_number" : "7",
+ "indexes" : {},
+ "iud_func" : "\nstatic\nvoid caql_iud_fn_7(cqContext *pCtx, int is_iud, \n\t\t\t\t\t HeapTuple oldtup, HeapTuple newtup, bool dontWait,\n\t\t\t\t\t LOCKMODE pklockmode)\n{\n\tOid oldhash = 0;\n\tOid newhash = 0;\n\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\toldhash = 0;\n\t}\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\tnewhash = 0;\n\t}\n\n\t/*\n\t2 unique indexes:\n\tAttrDefaultIndexId: adrelid, adnum\n\tAttrDefaultOidIndexId: oid\n\t*/\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\tnewhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_attrdef_adrelid, &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_attrdef_adnum, &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull,
INT2OID);\n\t\n\t\tcaql_lockwell(pCtx, AttrDefaultRelationId, \n\t\t\t\t\t pklockmode, newtup,\n\t\t\t\t\t \"pg_attrdef\",\n\t\t\t\t\t \"adrelid, adnum\",\n\t\t\t\t\t AttrDefaultIndexId,\n\t\t\t\t\t newhash,\n\t\t\t\t\t dontWait,\n\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\toldhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_attrdef_adrelid, &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_attrdef_adnum, &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, INT2OID);\n\t\n\t\tcaql_lockwell(pCtx, AttrDefaultRelationId, \n\t\t\t\t\t pklockmode, oldtup,\n\t\t\t\t\t \"pg_attrdef\",\n\t\t\t\t\t \"adrelid, adnum\",\n\t\t\t\t\t AttrDefaultIndexId,\n\t\t\t\t\t oldhash,\n\t\t\t\t\t dontWait,\n\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (
HeapTupleIsValid(newtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\tnewhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, newtup, ObjectIdAttributeNumber, &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\n\t\tcaql_lockwell(pCtx, AttrDefaultRelationId, \n\t\t\t\t\t pklockmode, newtup,\n\t\t\t\t\t \"pg_attrdef\",\n\t\t\t\t\t \"oid\",\n\t\t\t\t\t AttrDefaultOidIndexId,\n\t\t\t\t\t newhash,\n\t\t\t\t\t dontWait,\n\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\toldhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, oldtup, ObjectIdAttributeNumber, &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\n\t\tcaql_lockwell(pCtx, AttrDefaultRelationId, \n\t\t\t\t\t pklockmode, oldtup,\n\t\t\t\t\t \"pg_attrdef\",\n\t\t\t\t\t \"oid\",\n\t\t\t\t\t AttrDefaultOidIndexId,\n\t\t\t\t\t oldhash,\n\t\t\t\t\t dontWait,\n\t\t\t\t\t
false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\n\n\t/* NOTE: don't get fk locks if only needed share locks on pk */\n\tif (pklockmode != AccessExclusiveLock)\n\t\treturn;\n\n\tif (!is_iud)\n\t{\n\t\t\n\t}\n\telse\n\t{\n\t\tdontWait = true; /* never wait for share locks on foreign keys */\n\t\t/* \n\t\t if insert/update, check foreign keys against:\t\n\t\t pg_attribute (attrelid) <- (adrelid) \n\t\t*/\n\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\t{ d = 0; isnull = 0; }\n\t\t\tcaql_lockwell(pCtx, AttributeRelationId, \n\t\t\t\t\t\t AccessShareLock, newtup,\n\t\t\t\t\t\t \"pg_attribute\",\n\t\t\t\t\t\t \"attrelid\",\n\t\t\t\t\t\t InvalidOid,\n\t\t\t\t\t\t newhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\t{ d = 0;
isnull = 0; }\n\t\t\tcaql_lockwell(pCtx, AttributeRelationId, \n\t\t\t\t\t\t AccessShareLock, oldtup,\n\t\t\t\t\t\t \"pg_attribute\",\n\t\t\t\t\t\t \"attrelid\",\n\t\t\t\t\t\t InvalidOid,\n\t\t\t\t\t\t oldhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\n\t}\n} /* end caql_iud_fn_7 */\n",
+ "iud_func_name" : "caql_iud_fn_7",
+ "num_del_ops" : 0,
+ "num_ins_ops" : 1,
+ "num_upd_ops" : 0,
+ "tablename" : "pg_attrdef"
+ },
+ "insert into pg_attribute" : {
+ "cql" : "cql",
+ "files" : {
+ "../../../..//src/backend/catalog/heap.c" : 1,
+ "../../../..//src/backend/catalog/index.c" : 1,
+ "../../../..//src/backend/commands/tablecmds.c" : 1
+ },
+ "foreign_key_tables" : {
+ "pg_class" : {
+ "(oid) <- (attrelid)" : 1
+ },
+ "pg_type" : {
+ "(oid) <- (atttypid)" : 1
+ }
+ },
+ "func" : "static\nSysScanDesc\ncaql_basic_fn_8(cqContext *pCtx, cq_list *pcql, bool bLockEntireTable)\n{\n\tRelation\trel;\n\n\tpCtx->cq_relationId = AttributeRelationId;\n\n\tif (!pCtx->cq_externrel)\n\t{\n\t\t\n\t\t{\n\t\t\tpCtx->cq_heap_rel = heap_open(pCtx->cq_relationId, \n\t\t\t\t\t\t\t\t\t\t pCtx->cq_lockmode);\n\t\t\tpCtx->cq_tupdesc = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\t}\n\telse\n\t{\n\t\t/* make sure the supplied relation matches the caql */\n\t\tif (RelationIsValid(pCtx->cq_heap_rel))\n\t\t{\n\t\t\tAssert(AttributeRelationId == \n\t\t\t\t RelationGetRelid(pCtx->cq_heap_rel));\n\t\t\tpCtx->cq_tupdesc = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\n\t}\t\t\n\n\trel = pCtx->cq_heap_rel;\n\n\treturn NULL; /* XXX XXX: don't init scan */\n}\n",
+ "func_name" : "caql_basic_fn_8",
+ "func_note" : "",
+ "func_number" : "8",
+ "indexes" : {},
+ "iud_func" : "\nstatic\nvoid caql_iud_fn_8(cqContext *pCtx, int is_iud, \n\t\t\t\t\t HeapTuple oldtup, HeapTuple newtup, bool dontWait,\n\t\t\t\t\t LOCKMODE pklockmode)\n{\n\tOid oldhash = 0;\n\tOid newhash = 0;\n\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\toldhash = 0;\n\t}\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\tnewhash = 0;\n\t}\n\n\t/*\n\t2 unique indexes:\n\tAttributeRelidNameIndexId: attrelid, attname\n\tAttributeRelidNumIndexId: attrelid, attnum\n\t*/\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\tnewhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_attribute_attrelid, &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_attribute_attname, &isnull);\n\t\tnewhash = caql
_pkhash(pCtx, newhash, d, isnull, NAMEOID);\n\t\n\t\tcaql_lockwell(pCtx, AttributeRelationId, \n\t\t\t\t\t pklockmode, newtup,\n\t\t\t\t\t \"pg_attribute\",\n\t\t\t\t\t \"attrelid, attname\",\n\t\t\t\t\t AttributeRelidNameIndexId,\n\t\t\t\t\t newhash,\n\t\t\t\t\t dontWait,\n\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\toldhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_attribute_attrelid, &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_attribute_attname, &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, NAMEOID);\n\t\n\t\tcaql_lockwell(pCtx, AttributeRelationId, \n\t\t\t\t\t pklockmode, oldtup,\n\t\t\t\t\t \"pg_attribute\",\n\t\t\t\t\t \"attrelid, attname\",\n\t\t\t\t\t AttributeRelidNameIndexId,\n\t\t\t\t\t oldhash,\n\t\t\t\t\t dontWait,\n\t\t\t\t\t f
alse /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\tnewhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_attribute_attrelid, &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_attribute_attnum, &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, INT2OID);\n\t\n\t\tcaql_lockwell(pCtx, AttributeRelationId, \n\t\t\t\t\t pklockmode, newtup,\n\t\t\t\t\t \"pg_attribute\",\n\t\t\t\t\t \"attrelid, attnum\",\n\t\t\t\t\t AttributeRelidNumIndexId,\n\t\t\t\t\t newhash,\n\t\t\t\t\t dontWait,\n\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\toldhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_attribute_attrelid, &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOI
D);\n\t\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_attribute_attnum, &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, INT2OID);\n\t\n\t\tcaql_lockwell(pCtx, AttributeRelationId, \n\t\t\t\t\t pklockmode, oldtup,\n\t\t\t\t\t \"pg_attribute\",\n\t\t\t\t\t \"attrelid, attnum\",\n\t\t\t\t\t AttributeRelidNumIndexId,\n\t\t\t\t\t oldhash,\n\t\t\t\t\t dontWait,\n\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\n\n\t/* NOTE: don't get fk locks if only needed share locks on pk */\n\tif (pklockmode != AccessExclusiveLock)\n\t\treturn;\n\n\tif (!is_iud)\n\t{\n\t\t/* \n\t\t if deleting, pg_attribute primary key may be referenced in:\n\t\t pg_attrdef (adrelid) <- (attrelid)\n\t\t pg_attribute_encoding (attrelid) <- (attrelid)\n\t\t pg_rewrite (ev_class) <- (attrelid)\n\t\t pg_statistic (starelid) <- (attrelid) \n\t\t*/\n\n\t}\n\telse\n\t{\n\t\tdontWait = true; /* never wait for share locks on foreign keys */\n\t\t/* \n\t\t if insert/update
, check foreign keys against:\t\n\t\t pg_class (oid) <- (attrelid)\n\t\t pg_type (oid) <- (atttypid) \n\t\t*/\n\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_attribute_attrelid, &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, RelationRelationId, \n\t\t\t\t\t\t AccessShareLock, newtup,\n\t\t\t\t\t\t \"pg_class\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t ClassOidIndexId,\n\t\t\t\t\t\t newhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_attribute_attrelid, &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, RelationRelationI
d, \n\t\t\t\t\t\t AccessShareLock, oldtup,\n\t\t\t\t\t\t \"pg_class\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t ClassOidIndexId,\n\t\t\t\t\t\t oldhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_attribute_atttypid, &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, TypeRelationId, \n\t\t\t\t\t\t AccessShareLock, newtup,\n\t\t\t\t\t\t \"pg_type\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t TypeOidIndexId,\n\t\t\t\t\t\t newhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_attribute_attt
ypid, &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, TypeRelationId, \n\t\t\t\t\t\t AccessShareLock, oldtup,\n\t\t\t\t\t\t \"pg_type\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t TypeOidIndexId,\n\t\t\t\t\t\t oldhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\n\t}\n} /* end caql_iud_fn_8 */\n",
+ "iud_func_name" : "caql_iud_fn_8",
+ "num_del_ops" : 0,
+ "num_ins_ops" : 3,
+ "num_upd_ops" : 0,
+ "tablename" : "pg_attribute"
+ },
+ "insert into pg_attribute_encoding" : {
+ "cql" : "cql",
+ "files" : {
+ "../../../..//src/backend/catalog/pg_attribute_encoding.c" : 1
+ },
+ "foreign_key_tables" : {
+ "pg_attribute" : {
+ "(attrelid) <- (attrelid)" : 1
+ }
+ },
+ "func" : "static\nSysScanDesc\ncaql_basic_fn_9(cqContext *pCtx, cq_list *pcql, bool bLockEntireTable)\n{\n\tRelation\trel;\n\n\tpCtx->cq_relationId = AttributeEncodingRelationId;\n\n\tif (!pCtx->cq_externrel)\n\t{\n\t\t\n\t\t{\n\t\t\tpCtx->cq_heap_rel = heap_open(pCtx->cq_relationId, \n\t\t\t\t\t\t\t\t\t\t pCtx->cq_lockmode);\n\t\t\tpCtx->cq_tupdesc = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\t}\n\telse\n\t{\n\t\t/* make sure the supplied relation matches the caql */\n\t\tif (RelationIsValid(pCtx->cq_heap_rel))\n\t\t{\n\t\t\tAssert(AttributeEncodingRelationId == \n\t\t\t\t RelationGetRelid(pCtx->cq_heap_rel));\n\t\t\tpCtx->cq_tupdesc = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\n\t}\t\t\n\n\trel = pCtx->cq_heap_rel;\n\n\treturn NULL; /* XXX XXX: don't init scan */\n}\n",
+ "func_name" : "caql_basic_fn_9",
+ "func_note" : "",
+ "func_number" : "9",
+ "indexes" : {},
+ "iud_func" : "\nstatic\nvoid caql_iud_fn_9(cqContext *pCtx, int is_iud, \n\t\t\t\t\t HeapTuple oldtup, HeapTuple newtup, bool dontWait,\n\t\t\t\t\t LOCKMODE pklockmode)\n{\n\tOid oldhash = 0;\n\tOid newhash = 0;\n\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\toldhash = 0;\n\t}\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\tnewhash = 0;\n\t}\n\n\t/*\n\t1 unique index:\n\tAttributeEncodingAttrelidAttnumIndexId: attrelid, attnum\n\t*/\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\tnewhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_attribute_encoding_attrelid, &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_attribute_encoding_attnum, &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newha
sh, d, isnull, INT2OID);\n\t\n\t\tcaql_lockwell(pCtx, AttributeEncodingRelationId, \n\t\t\t\t\t pklockmode, newtup,\n\t\t\t\t\t \"pg_attribute_encoding\",\n\t\t\t\t\t \"attrelid, attnum\",\n\t\t\t\t\t AttributeEncodingAttrelidAttnumIndexId,\n\t\t\t\t\t newhash,\n\t\t\t\t\t dontWait,\n\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\toldhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_attribute_encoding_attrelid, &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_attribute_encoding_attnum, &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, INT2OID);\n\t\n\t\tcaql_lockwell(pCtx, AttributeEncodingRelationId, \n\t\t\t\t\t pklockmode, oldtup,\n\t\t\t\t\t \"pg_attribute_encoding\",\n\t\t\t\t\t \"attrelid, attnum\",\n\t\t\t\t\t AttributeEncodingAttrelidAttnumIndexId,\n\t
\t\t\t\t oldhash,\n\t\t\t\t\t dontWait,\n\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\n\n\t/* NOTE: don't get fk locks if only needed share locks on pk */\n\tif (pklockmode != AccessExclusiveLock)\n\t\treturn;\n\n\tif (!is_iud)\n\t{\n\t\t\n\t}\n\telse\n\t{\n\t\tdontWait = true; /* never wait for share locks on foreign keys */\n\t\t/* \n\t\t if insert/update, check foreign keys against:\t\n\t\t pg_attribute (attrelid) <- (attrelid) \n\t\t*/\n\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\t{ d = 0; isnull = 0; }\n\t\t\tcaql_lockwell(pCtx, AttributeRelationId, \n\t\t\t\t\t\t AccessShareLock, newtup,\n\t\t\t\t\t\t \"pg_attribute\",\n\t\t\t\t\t\t \"attrelid\",\n\t\t\t\t\t\t InvalidOid,\n\t\t\t\t\t\t newhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tis
null;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\t{ d = 0; isnull = 0; }\n\t\t\tcaql_lockwell(pCtx, AttributeRelationId, \n\t\t\t\t\t\t AccessShareLock, oldtup,\n\t\t\t\t\t\t \"pg_attribute\",\n\t\t\t\t\t\t \"attrelid\",\n\t\t\t\t\t\t InvalidOid,\n\t\t\t\t\t\t oldhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\n\t}\n} /* end caql_iud_fn_9 */\n",
+ "iud_func_name" : "caql_iud_fn_9",
+ "num_del_ops" : 0,
+ "num_ins_ops" : 1,
+ "num_upd_ops" : 0,
+ "tablename" : "pg_attribute_encoding"
+ },
+ "insert into pg_auth_members" : {
+ "cql" : "cql",
+ "files" : {
+ "../../../..//src/backend/commands/user.c" : 1
+ },
+ "foreign_key_tables" : {
+ "pg_authid" : {
+ "(oid) <- (member)" : 1,
+ "(oid) <- (roleid)" : 1
+ }
+ },
+ "func" : "static\nSysScanDesc\ncaql_basic_fn_10(cqContext *pCtx, cq_list *pcql, bool bLockEntireTable)\n{\n\tRelation\trel;\n\n\tpCtx->cq_relationId = AuthMemRelationId;\n\n\tif (!pCtx->cq_externrel)\n\t{\n\t\t\n\t\t{\n\t\t\tpCtx->cq_heap_rel = heap_open(pCtx->cq_relationId, \n\t\t\t\t\t\t\t\t\t\t pCtx->cq_lockmode);\n\t\t\tpCtx->cq_tupdesc = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\t}\n\telse\n\t{\n\t\t/* make sure the supplied relation matches the caql */\n\t\tif (RelationIsValid(pCtx->cq_heap_rel))\n\t\t{\n\t\t\tAssert(AuthMemRelationId == \n\t\t\t\t RelationGetRelid(pCtx->cq_heap_rel));\n\t\t\tpCtx->cq_tupdesc = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\n\t}\t\t\n\n\trel = pCtx->cq_heap_rel;\n\n\treturn NULL; /* XXX XXX: don't init scan */\n}\n",
+ "func_name" : "caql_basic_fn_10",
+ "func_note" : "",
+ "func_number" : "10",
+ "indexes" : {},
+ "iud_func" : "\nstatic\nvoid caql_iud_fn_10(cqContext *pCtx, int is_iud, \n\t\t\t\t\t HeapTuple oldtup, HeapTuple newtup, bool dontWait,\n\t\t\t\t\t LOCKMODE pklockmode)\n{\n\tOid oldhash = 0;\n\tOid newhash = 0;\n\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\toldhash = 0;\n\t}\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\tnewhash = 0;\n\t}\n\n\t/*\n\t2 unique indexes:\n\tAuthMemRoleMemIndexId: roleid, member\n\tAuthMemMemRoleIndexId: member, roleid\n\t*/\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\tnewhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_auth_members_roleid, &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_auth_members_member, &isnull);\n\t\tnewhash = caql_pkhash(
pCtx, newhash, d, isnull, OIDOID);\n\t\n\t\tcaql_lockwell(pCtx, AuthMemRelationId, \n\t\t\t\t\t pklockmode, newtup,\n\t\t\t\t\t \"pg_auth_members\",\n\t\t\t\t\t \"roleid, member\",\n\t\t\t\t\t AuthMemRoleMemIndexId,\n\t\t\t\t\t newhash,\n\t\t\t\t\t dontWait,\n\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\toldhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_auth_members_roleid, &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_auth_members_member, &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\n\t\tcaql_lockwell(pCtx, AuthMemRelationId, \n\t\t\t\t\t pklockmode, oldtup,\n\t\t\t\t\t \"pg_auth_members\",\n\t\t\t\t\t \"roleid, member\",\n\t\t\t\t\t AuthMemRoleMemIndexId,\n\t\t\t\t\t oldhash,\n\t\t\t\t\t dontWait,\n\t\t\t\t\t false /* don't ignor
e invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\tnewhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_auth_members_member, &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_auth_members_roleid, &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\n\t\tcaql_lockwell(pCtx, AuthMemRelationId, \n\t\t\t\t\t pklockmode, newtup,\n\t\t\t\t\t \"pg_auth_members\",\n\t\t\t\t\t \"member, roleid\",\n\t\t\t\t\t AuthMemMemRoleIndexId,\n\t\t\t\t\t newhash,\n\t\t\t\t\t dontWait,\n\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\toldhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_auth_members_member, &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\td =
caql_getattr_internal(pCtx, oldtup, Anum_pg_auth_members_roleid, &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\n\t\tcaql_lockwell(pCtx, AuthMemRelationId, \n\t\t\t\t\t pklockmode, oldtup,\n\t\t\t\t\t \"pg_auth_members\",\n\t\t\t\t\t \"member, roleid\",\n\t\t\t\t\t AuthMemMemRoleIndexId,\n\t\t\t\t\t oldhash,\n\t\t\t\t\t dontWait,\n\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\n\n\t/* NOTE: don't get fk locks if only needed share locks on pk */\n\tif (pklockmode != AccessExclusiveLock)\n\t\treturn;\n\n\tif (!is_iud)\n\t{\n\t\t\n\t}\n\telse\n\t{\n\t\tdontWait = true; /* never wait for share locks on foreign keys */\n\t\t/* \n\t\t if insert/update, check foreign keys against:\t\n\t\t pg_authid (oid) <- (member)\n\t\t pg_authid (oid) <- (roleid) \n\t\t*/\n\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_au
th_members_member, &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, AuthIdRelationId, \n\t\t\t\t\t\t AccessShareLock, newtup,\n\t\t\t\t\t\t \"pg_authid\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t AuthIdOidIndexId,\n\t\t\t\t\t\t newhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_auth_members_member, &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, AuthIdRelationId, \n\t\t\t\t\t\t AccessShareLock, oldtup,\n\t\t\t\t\t\t \"pg_authid\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t AuthIdOidIndexId,\n\t\t\t\t\t\t oldhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(newtup))
\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_auth_members_roleid, &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, AuthIdRelationId, \n\t\t\t\t\t\t AccessShareLock, newtup,\n\t\t\t\t\t\t \"pg_authid\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t AuthIdOidIndexId,\n\t\t\t\t\t\t newhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_auth_members_roleid, &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, AuthIdRelationId, \n\t\t\t\t\t\t AccessShareLock, oldtup,\n\t\t\t\t\t\t \"pg_authid\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t AuthIdOidIndexId,\n\t\t\t\t\t\t ol
dhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\n\t}\n} /* end caql_iud_fn_10 */\n",
+ "iud_func_name" : "caql_iud_fn_10",
+ "num_del_ops" : 0,
+ "num_ins_ops" : 1,
+ "num_upd_ops" : 0,
+ "tablename" : "pg_auth_members"
+ },
+ "insert into pg_auth_time_constraint" : {
+ "cql" : "cql",
+ "files" : {
+ "../../../..//src/backend/commands/user.c" : 1
+ },
+ "foreign_key_tables" : {
+ "pg_authid" : {
+ "(oid) <- (authid)" : 1
+ }
+ },
+ "func" : "static\nSysScanDesc\ncaql_basic_fn_11(cqContext *pCtx, cq_list *pcql, bool bLockEntireTable)\n{\n\tRelation\trel;\n\n\tpCtx->cq_relationId = AuthTimeConstraintRelationId;\n\n\tif (!pCtx->cq_externrel)\n\t{\n\t\t\n\t\t{\n\t\t\tpCtx->cq_heap_rel = heap_open(pCtx->cq_relationId, \n\t\t\t\t\t\t\t\t\t\t pCtx->cq_lockmode);\n\t\t\tpCtx->cq_tupdesc = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\t}\n\telse\n\t{\n\t\t/* make sure the supplied relation matches the caql */\n\t\tif (RelationIsValid(pCtx->cq_heap_rel))\n\t\t{\n\t\t\tAssert(AuthTimeConstraintRelationId == \n\t\t\t\t RelationGetRelid(pCtx->cq_heap_rel));\n\t\t\tpCtx->cq_tupdesc = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\n\t}\t\t\n\n\trel = pCtx->cq_heap_rel;\n\n\treturn NULL; /* XXX XXX: don't init scan */\n}\n",
+ "func_name" : "caql_basic_fn_11",
+ "func_note" : "",
+ "func_number" : "11",
+ "indexes" : {},
+ "iud_func" : "\nstatic\nvoid caql_iud_fn_11(cqContext *pCtx, int is_iud, \n\t\t\t\t\t HeapTuple oldtup, HeapTuple newtup, bool dontWait,\n\t\t\t\t\t LOCKMODE pklockmode)\n{\n\tOid oldhash = 0;\n\tOid newhash = 0;\n\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\toldhash = 0;\n\t}\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\tnewhash = 0;\n\t}\n\n\t/* ZERO indexes */\n\t/* Cannot obtain exclusive lock on tuple !! */\n\n\t/* NOTE: don't get fk locks if only needed share locks on pk */\n\tif (pklockmode != AccessExclusiveLock)\n\t\treturn;\n\n\tif (!is_iud)\n\t{\n\t\t\n\t}\n\telse\n\t{\n\t\tdontWait = true; /* never wait for share locks on foreign keys */\n\t\t/* \n\t\t if insert/update, check foreign keys against:\t\n\t\t pg_authid (oid) <- (authid) \n\t\t*/\n\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\t
d;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_auth_time_constraint_authid, &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, AuthIdRelationId, \n\t\t\t\t\t\t AccessShareLock, newtup,\n\t\t\t\t\t\t \"pg_authid\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t AuthIdOidIndexId,\n\t\t\t\t\t\t newhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_auth_time_constraint_authid, &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, AuthIdRelationId, \n\t\t\t\t\t\t AccessShareLock, oldtup,\n\t\t\t\t\t\t \"pg_authid\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t AuthIdOidIndexId,\n\t\t\t\t\t\t oldhash,\n
\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\n\t}\n} /* end caql_iud_fn_11 */\n",
+ "iud_func_name" : "caql_iud_fn_11",
+ "num_del_ops" : 0,
+ "num_ins_ops" : 1,
+ "num_upd_ops" : 0,
+ "tablename" : "pg_auth_time_constraint"
+ },
+ "insert into pg_authid" : {
+ "cql" : "cql",
+ "files" : {
+ "../../../..//src/backend/commands/user.c" : 1
+ },
+ "foreign_key_tables" : {
+ "pg_resqueue" : {
+ "(oid) <- (rolresqueue)" : 1
+ }
+ },
+ "func" : "static\nSysScanDesc\ncaql_basic_fn_12(cqContext *pCtx, cq_list *pcql, bool bLockEntireTable)\n{\n\tRelation\trel;\n\n\tpCtx->cq_relationId = AuthIdRelationId;\n\n\tif (!pCtx->cq_externrel)\n\t{\n\t\t\n\t\t{\n\t\t\tpCtx->cq_heap_rel = heap_open(pCtx->cq_relationId, \n\t\t\t\t\t\t\t\t\t\t pCtx->cq_lockmode);\n\t\t\tpCtx->cq_tupdesc = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\t}\n\telse\n\t{\n\t\t/* make sure the supplied relation matches the caql */\n\t\tif (RelationIsValid(pCtx->cq_heap_rel))\n\t\t{\n\t\t\tAssert(AuthIdRelationId == \n\t\t\t\t RelationGetRelid(pCtx->cq_heap_rel));\n\t\t\tpCtx->cq_tupdesc = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\n\t}\t\t\n\n\trel = pCtx->cq_heap_rel;\n\n\treturn NULL; /* XXX XXX: don't init scan */\n}\n",
+ "func_name" : "caql_basic_fn_12",
+ "func_note" : "",
+ "func_number" : "12",
+ "indexes" : {},
+ "iud_func" : "\nstatic\nvoid caql_iud_fn_12(cqContext *pCtx, int is_iud, \n\t\t\t\t\t HeapTuple oldtup, HeapTuple newtup, bool dontWait,\n\t\t\t\t\t LOCKMODE pklockmode)\n{\n\tOid oldhash = 0;\n\tOid newhash = 0;\n\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\toldhash = 0;\n\t}\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\tnewhash = 0;\n\t}\n\n\t/*\n\t2 unique indexes:\n\tAuthIdRolnameIndexId: rolname\n\tAuthIdOidIndexId: oid\n\t*/\n\t/* pg_authid: do not get exclusive lock */\n\n\t/* NOTE: don't get fk locks if only needed share locks on pk */\n\tif (pklockmode != AccessExclusiveLock)\n\t\treturn;\n\n\tif (!is_iud)\n\t{\n\t\t/* \n\t\t if deleting, pg_authid primary key may be referenced in:\n\t\t pg_auth_members (member) <- (oid)\n\t\t pg_auth_members (roleid) <- (oid)\n\t\t pg_auth_time_constraint (authid) <-
(oid)\n\t\t pg_class (relowner) <- (oid)\n\t\t pg_compression (compowner) <- (oid)\n\t\t pg_conversion (conowner) <- (oid)\n\t\t pg_database (datdba) <- (oid)\n\t\t pg_foreign_data_wrapper (fdwowner) <- (oid)\n\t\t pg_foreign_server (srvowner) <- (oid)\n\t\t pg_namespace (nspowner) <- (oid)\n\t\t pg_opclass (opcowner) <- (oid)\n\t\t pg_operator (oprowner) <- (oid)\n\t\t pg_proc (proowner) <- (oid)\n\t\t pg_remote_credentials (rcowner) <- (oid)\n\t\t pg_tablespace (spcowner) <- (oid)\n\t\t pg_type (typowner) <- (oid)\n\t\t pg_user_mapping (umuser) <- (oid) \n\t\t*/\n\n\t}\n\telse\n\t{\n\t\tdontWait = true; /* never wait for share locks on foreign keys */\n\t\t/* \n\t\t if insert/update, check foreign keys against:\t\n\t\t pg_resqueue (oid) <- (rolresqueue) \n\t\t*/\n\n\t\t/* No Share Locks Acquired */\n\t}\n} /* end caql_iud_fn_12 */\n",
+ "iud_func_name" : "caql_iud_fn_12",
+ "num_del_ops" : 0,
+ "num_ins_ops" : 1,
+ "num_upd_ops" : 0,
+ "tablename" : "pg_authid"
+ },
+ "insert into pg_cast" : {
+ "cql" : "cql",
+ "files" : {
+ "../../../..//src/backend/commands/functioncmds.c" : 1
+ },
+ "foreign_key_tables" : {
+ "pg_proc" : {
+ "(oid) <- (castfunc)" : 1
+ },
+ "pg_type" : {
+ "(oid) <- (castsource)" : 1,
+ "(oid) <- (casttarget)" : 1
+ }
+ },
+ "func" : "static\nSysScanDesc\ncaql_basic_fn_13(cqContext *pCtx, cq_list *pcql, bool bLockEntireTable)\n{\n\tRelation\trel;\n\n\tpCtx->cq_relationId = CastRelationId;\n\n\tif (!pCtx->cq_externrel)\n\t{\n\t\t\n\t\t{\n\t\t\tpCtx->cq_heap_rel = heap_open(pCtx->cq_relationId, \n\t\t\t\t\t\t\t\t\t\t pCtx->cq_lockmode);\n\t\t\tpCtx->cq_tupdesc = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\t}\n\telse\n\t{\n\t\t/* make sure the supplied relation matches the caql */\n\t\tif (RelationIsValid(pCtx->cq_heap_rel))\n\t\t{\n\t\t\tAssert(CastRelationId == \n\t\t\t\t RelationGetRelid(pCtx->cq_heap_rel));\n\t\t\tpCtx->cq_tupdesc = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\n\t}\t\t\n\n\trel = pCtx->cq_heap_rel;\n\n\treturn NULL; /* XXX XXX: don't init scan */\n}\n",
+ "func_name" : "caql_basic_fn_13",
+ "func_note" : "",
+ "func_number" : "13",
+ "indexes" : {},
+ "iud_func" : "\nstatic\nvoid caql_iud_fn_13(cqContext *pCtx, int is_iud, \n\t\t\t\t\t HeapTuple oldtup, HeapTuple newtup, bool dontWait,\n\t\t\t\t\t LOCKMODE pklockmode)\n{\n\tOid oldhash = 0;\n\tOid newhash = 0;\n\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\toldhash = 0;\n\t}\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\tnewhash = 0;\n\t}\n\n\t/*\n\t2 unique indexes:\n\tCastOidIndexId: oid\n\tCastSourceTargetIndexId: castsource, casttarget\n\t*/\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\tnewhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, newtup, ObjectIdAttributeNumber, &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\n\t\tcaql_lockwell(pCtx, CastRelationId, \n\t\t\t\t\t pklockmode, newtup,\n\t\t\t\t\t \"pg_cast\",\n\t\t\t\t\t \"oid\",\n\t
\t\t\t\t CastOidIndexId,\n\t\t\t\t\t newhash,\n\t\t\t\t\t dontWait,\n\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\toldhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, oldtup, ObjectIdAttributeNumber, &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\n\t\tcaql_lockwell(pCtx, CastRelationId, \n\t\t\t\t\t pklockmode, oldtup,\n\t\t\t\t\t \"pg_cast\",\n\t\t\t\t\t \"oid\",\n\t\t\t\t\t CastOidIndexId,\n\t\t\t\t\t oldhash,\n\t\t\t\t\t dontWait,\n\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\tnewhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_cast_castsource, &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_cast_casttarget, &isnull);\n\t\tnewhash =
caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\n\t\tcaql_lockwell(pCtx, CastRelationId, \n\t\t\t\t\t pklockmode, newtup,\n\t\t\t\t\t \"pg_cast\",\n\t\t\t\t\t \"castsource, casttarget\",\n\t\t\t\t\t CastSourceTargetIndexId,\n\t\t\t\t\t newhash,\n\t\t\t\t\t dontWait,\n\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\toldhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_cast_castsource, &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_cast_casttarget, &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\n\t\tcaql_lockwell(pCtx, CastRelationId, \n\t\t\t\t\t pklockmode, oldtup,\n\t\t\t\t\t \"pg_cast\",\n\t\t\t\t\t \"castsource, casttarget\",\n\t\t\t\t\t CastSourceTargetIndexId,\n\t\t\t\t\t oldhash,\n\t\t\t\t\t dontWait,\n\t\t\t\t\t false /* don't ig
nore invalid tuple */\n\t\t\t);\n\t}\n\n\n\t/* NOTE: don't get fk locks if only needed share locks on pk */\n\tif (pklockmode != AccessExclusiveLock)\n\t\treturn;\n\n\tif (!is_iud)\n\t{\n\t\t\n\t}\n\telse\n\t{\n\t\tdontWait = true; /* never wait for share locks on foreign keys */\n\t\t/* \n\t\t if insert/update, check foreign keys against:\t\n\t\t pg_proc (oid) <- (castfunc)\n\t\t pg_type (oid) <- (castsource)\n\t\t pg_type (oid) <- (casttarget) \n\t\t*/\n\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_cast_castfunc, &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, ProcedureRelationId, \n\t\t\t\t\t\t AccessShareLock, newtup,\n\t\t\t\t\t\t \"pg_proc\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t ProcedureOidIndexId,\n\t\t\t\t\t\t newhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore in
valid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_cast_castfunc, &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, ProcedureRelationId, \n\t\t\t\t\t\t AccessShareLock, oldtup,\n\t\t\t\t\t\t \"pg_proc\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t ProcedureOidIndexId,\n\t\t\t\t\t\t oldhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_cast_castsource, &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, TypeRelationId, \n\t\t\t\t\t\t AccessShareLock, newtup,\n\t\t\t\t\t\t \"pg_type\",\n\t\t\t\t\t\t \
"oid\",\n\t\t\t\t\t\t TypeOidIndexId,\n\t\t\t\t\t\t newhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_cast_castsource, &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, TypeRelationId, \n\t\t\t\t\t\t AccessShareLock, oldtup,\n\t\t\t\t\t\t \"pg_type\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t TypeOidIndexId,\n\t\t\t\t\t\t oldhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_cast_casttarget, &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tca
ql_lockwell(pCtx, TypeRelationId, \n\t\t\t\t\t\t AccessShareLock, newtup,\n\t\t\t\t\t\t \"pg_type\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t TypeOidIndexId,\n\t\t\t\t\t\t newhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_cast_casttarget, &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, TypeRelationId, \n\t\t\t\t\t\t AccessShareLock, oldtup,\n\t\t\t\t\t\t \"pg_type\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t TypeOidIndexId,\n\t\t\t\t\t\t oldhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\n\t}\n} /* end caql_iud_fn_13 */\n",
+ "iud_func_name" : "caql_iud_fn_13",
+ "num_del_ops" : 0,
+ "num_ins_ops" : 1,
+ "num_upd_ops" : 0,
+ "tablename" : "pg_cast"
+ },
+ "insert into pg_class" : {
+ "cql" : "cql",
+ "files" : {
+ "../../../..//src/backend/catalog/heap.c" : 1
+ },
+ "foreign_key_tables" : {
+ "pg_am" : {
+ "(oid) <- (relam)" : 1
+ },
+ "pg_authid" : {
+ "(oid) <- (relowner)" : 1
+ },
+ "pg_class" : {
+ "(oid) <- (reltoastidxid)" : 1,
+ "(oid) <- (reltoastrelid)" : 1
+ },
+ "pg_namespace" : {
+ "(oid) <- (relnamespace)" : 1
+ },
+ "pg_tablespace" : {
+ "(oid) <- (reltablespace)" : 1
+ },
+ "pg_type" : {
+ "(oid) <- (reltype)" : 1
+ }
+ },
+ "func" : "static\nSysScanDesc\ncaql_basic_fn_14(cqContext *pCtx, cq_list *pcql, bool bLockEntireTable)\n{\n\tRelation\trel;\n\n\tpCtx->cq_relationId = RelationRelationId;\n\n\tif (!pCtx->cq_externrel)\n\t{\n\t\t\n\t\t{\n\t\t\tpCtx->cq_heap_rel = heap_open(pCtx->cq_relationId, \n\t\t\t\t\t\t\t\t\t\t pCtx->cq_lockmode);\n\t\t\tpCtx->cq_tupdesc = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\t}\n\telse\n\t{\n\t\t/* make sure the supplied relation matches the caql */\n\t\tif (RelationIsValid(pCtx->cq_heap_rel))\n\t\t{\n\t\t\tAssert(RelationRelationId == \n\t\t\t\t RelationGetRelid(pCtx->cq_heap_rel));\n\t\t\tpCtx->cq_tupdesc = RelationGetDescr(pCtx->cq_heap_rel);\n\t\t}\n\n\t}\t\t\n\n\trel = pCtx->cq_heap_rel;\n\n\treturn NULL; /* XXX XXX: don't init scan */\n}\n",
+ "func_name" : "caql_basic_fn_14",
+ "func_note" : "",
+ "func_number" : "14",
+ "indexes" : {},
+ "iud_func" : "\nstatic\nvoid caql_iud_fn_14(cqContext *pCtx, int is_iud, \n\t\t\t\t\t HeapTuple oldtup, HeapTuple newtup, bool dontWait,\n\t\t\t\t\t LOCKMODE pklockmode)\n{\n\tOid oldhash = 0;\n\tOid newhash = 0;\n\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\toldhash = 0;\n\t}\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tif (!pCtx->cq_setpklock)\n\t\t\tAssert(RelationIsValid(pCtx->cq_heap_rel));\n\t\n\t\tnewhash = 0;\n\t}\n\n\t/*\n\t2 unique indexes:\n\tClassOidIndexId: oid\n\tClassNameNspIndexId: relname, relnamespace\n\t*/\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\tnewhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, newtup, ObjectIdAttributeNumber, &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\n\t\tcaql_lockwell(pCtx, RelationRelationId, \n\t\t\t\t\t pklockmode, newtup,\n\t\t\t\t\t \"pg_class\",\n\t\t\t\t\t \"oid\",\n\
t\t\t\t\t ClassOidIndexId,\n\t\t\t\t\t newhash,\n\t\t\t\t\t dontWait,\n\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\toldhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, oldtup, ObjectIdAttributeNumber, &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\n\t\tcaql_lockwell(pCtx, RelationRelationId, \n\t\t\t\t\t pklockmode, oldtup,\n\t\t\t\t\t \"pg_class\",\n\t\t\t\t\t \"oid\",\n\t\t\t\t\t ClassOidIndexId,\n\t\t\t\t\t oldhash,\n\t\t\t\t\t dontWait,\n\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(newtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\tnewhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_class_relname, &isnull);\n\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, NAMEOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, newtup, Anum_pg_class_relnamespace, &isnull);\n\t\
tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\n\t\tcaql_lockwell(pCtx, RelationRelationId, \n\t\t\t\t\t pklockmode, newtup,\n\t\t\t\t\t \"pg_class\",\n\t\t\t\t\t \"relname, relnamespace\",\n\t\t\t\t\t ClassNameNspIndexId,\n\t\t\t\t\t newhash,\n\t\t\t\t\t dontWait,\n\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\tif (HeapTupleIsValid(oldtup))\n\t{\n\t\tDatum\t\td;\n\t\tbool\t\tisnull;\n\t\n\t\toldhash = 0;\n\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_class_relname, &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, NAMEOID);\n\t\t\n\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_class_relnamespace, &isnull);\n\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\n\t\tcaql_lockwell(pCtx, RelationRelationId, \n\t\t\t\t\t pklockmode, oldtup,\n\t\t\t\t\t \"pg_class\",\n\t\t\t\t\t \"relname, relnamespace\",\n\t\t\t\t\t ClassNameNspIndexId,\n\t\t\t\t\t oldhash,\n\t\t\t\t\t dontWait,\n\t\t\t\t\t false
/* don't ignore invalid tuple */\n\t\t\t);\n\t}\n\n\n\t/* NOTE: don't get fk locks if only needed share locks on pk */\n\tif (pklockmode != AccessExclusiveLock)\n\t\treturn;\n\n\tif (!is_iud)\n\t{\n\t\t/* \n\t\t if deleting, pg_class primary key may be referenced in:\n\t\t gp_distribution_policy (localoid) <- (oid)\n\t\t gp_fastsequence (objid) <- (oid)\n\t\t gp_relfile_node (relfilenode_oid) <- (oid)\n\t\t pg_appendonly (relid) <- (oid)\n\t\t pg_appendonly_alter_column (relid) <- (oid)\n\t\t pg_attribute (attrelid) <- (oid)\n\t\t pg_class (reltoastidxid) <- (oid)\n\t\t pg_class (reltoastrelid) <- (oid)\n\t\t pg_constraint (confrelid) <- (oid)\n\t\t pg_constraint (conrelid) <- (oid)\n\t\t pg_depend (classid) <- (oid)\n\t\t pg_depend (refclassid) <- (oid)\n\t\t pg_description (classoid) <- (oid)\n\t\t pg_exttable (fmterrtbl) <- (oid)\n\t\t pg_exttable (reloid) <- (oid)\n\t\t pg_foreign_table (reloid) <- (oid)\n\t\t pg_index (indexrelid) <- (oid)\n\t\t pg_index (in
drelid) <- (oid)\n\t\t pg_inherits (inhparent) <- (oid)\n\t\t pg_inherits (inhrelid) <- (oid)\n\t\t pg_partition (parrelid) <- (oid)\n\t\t pg_partition_rule (parchildrelid) <- (oid)\n\t\t pg_shdepend (classid) <- (oid)\n\t\t pg_shdepend (refclassid) <- (oid)\n\t\t pg_shdescription (classoid) <- (oid)\n\t\t pg_trigger (tgconstrrelid) <- (oid)\n\t\t pg_trigger (tgrelid) <- (oid)\n\t\t pg_type (typrelid) <- (oid) \n\t\t*/\n\n\t}\n\telse\n\t{\n\t\tdontWait = true; /* never wait for share locks on foreign keys */\n\t\t/* \n\t\t if insert/update, check foreign keys against:\t\n\t\t pg_am (oid) <- (relam)\n\t\t pg_authid (oid) <- (relowner)\n\t\t pg_class (oid) <- (reltoastidxid)\n\t\t pg_class (oid) <- (reltoastrelid)\n\t\t pg_namespace (oid) <- (relnamespace)\n\t\t pg_tablespace (oid) <- (reltablespace)\n\t\t pg_type (oid) <- (reltype) \n\t\t*/\n\n\t\tif (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\tnewhash = 0;\n\t\t\n\t\t\td
= caql_getattr_internal(pCtx, newtup, Anum_pg_class_relam, &isnull);\n\t\t\tnewhash = caql_pkhash(pCtx, newhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, AccessMethodRelationId, \n\t\t\t\t\t\t AccessShareLock, newtup,\n\t\t\t\t\t\t \"pg_am\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t AmOidIndexId,\n\t\t\t\t\t\t newhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\tif (HeapTupleIsValid(oldtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\t\t\n\t\t\toldhash = 0;\n\t\t\n\t\t\td = caql_getattr_internal(pCtx, oldtup, Anum_pg_class_relam, &isnull);\n\t\t\toldhash = caql_pkhash(pCtx, oldhash, d, isnull, OIDOID);\n\t\t\n\t\t\tcaql_lockwell(pCtx, AccessMethodRelationId, \n\t\t\t\t\t\t AccessShareLock, oldtup,\n\t\t\t\t\t\t \"pg_am\",\n\t\t\t\t\t\t \"oid\",\n\t\t\t\t\t\t AmOidIndexId,\n\t\t\t\t\t\t oldhash,\n\t\t\t\t\t\t dontWait,\n\t\t\t\t\t\t false /* don't ignore invalid tuple */\n\t\t\t\t);\n\t\t}\n\t\ti
f (HeapTupleIsValid(newtup))\n\t\t{\n\t\t\tDatum\t\td;\n\t\t\tbool\t\tisnull;\n\
<TRUNCATED>