diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 77c394b39b9..f3ca9d17bfe 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -15,6 +15,7 @@ jobs: run: | sudo apt update --fix-missing -y sudo apt install -y libipc-run-perl + sudo apt-get install -y libreadline-dev - name: build-postgres run: | ./configure --with-icu --enable-cassert --enable-tap-tests diff --git a/src/backend/utils/adt/ri_triggers.c b/src/backend/utils/adt/ri_triggers.c index 42e4ec2db35..769fa8601da 100644 --- a/src/backend/utils/adt/ri_triggers.c +++ b/src/backend/utils/adt/ri_triggers.c @@ -430,11 +430,11 @@ RI_FKey_check(TriggerData *trigdata) * referenced side. The reason is that our snapshot must be fresh in * order for the hack in find_inheritance_children() to work. */ - ri_PerformCheck(riinfo, &qkey, qplan, + RUN_AS_PSQL(ri_PerformCheck(riinfo, &qkey, qplan, fk_rel, pk_rel, NULL, newslot, pk_rel->rd_rel->relkind == RELKIND_PARTITIONED_TABLE, - SPI_OK_SELECT); + SPI_OK_SELECT)); if (SPI_finish() != SPI_OK_FINISH) elog(ERROR, "SPI_finish failed"); @@ -557,11 +557,11 @@ ri_Check_Pk_Match(Relation pk_rel, Relation fk_rel, /* * We have a plan now. Run it. */ - result = ri_PerformCheck(riinfo, &qkey, qplan, + RUN_AS_PSQL(result = ri_PerformCheck(riinfo, &qkey, qplan, fk_rel, pk_rel, oldslot, NULL, true, /* treat like update */ - SPI_OK_SELECT); + SPI_OK_SELECT)); if (SPI_finish() != SPI_OK_FINISH) elog(ERROR, "SPI_finish failed"); @@ -749,11 +749,11 @@ ri_restrict(TriggerData *trigdata, bool is_no_action) /* * We have a plan now. Run it to check for existing references. */ - ri_PerformCheck(riinfo, &qkey, qplan, + RUN_AS_PSQL(ri_PerformCheck(riinfo, &qkey, qplan, fk_rel, pk_rel, oldslot, NULL, true, /* must detect new rows */ - SPI_OK_SELECT); + SPI_OK_SELECT)); if (SPI_finish() != SPI_OK_FINISH) elog(ERROR, "SPI_finish failed"); @@ -855,11 +855,11 @@ RI_FKey_cascade_del(PG_FUNCTION_ARGS) * We have a plan now. Build up the arguments from the key values in the * deleted PK tuple and delete the referencing rows */ - ri_PerformCheck(riinfo, &qkey, qplan, + RUN_AS_PSQL(ri_PerformCheck(riinfo, &qkey, qplan, fk_rel, pk_rel, oldslot, NULL, true, /* must detect new rows */ - SPI_OK_DELETE); + SPI_OK_DELETE)); if (SPI_finish() != SPI_OK_FINISH) elog(ERROR, "SPI_finish failed"); @@ -976,11 +976,11 @@ RI_FKey_cascade_upd(PG_FUNCTION_ARGS) /* * We have a plan now. Run it to update the existing references. */ - ri_PerformCheck(riinfo, &qkey, qplan, + RUN_AS_PSQL(ri_PerformCheck(riinfo, &qkey, qplan, fk_rel, pk_rel, oldslot, newslot, true, /* must detect new rows */ - SPI_OK_UPDATE); + SPI_OK_UPDATE)); if (SPI_finish() != SPI_OK_FINISH) elog(ERROR, "SPI_finish failed"); @@ -1208,11 +1208,11 @@ ri_set(TriggerData *trigdata, bool is_set_null, int tgkind) /* * We have a plan now. Run it to update the existing references. */ - ri_PerformCheck(riinfo, &qkey, qplan, + RUN_AS_PSQL(ri_PerformCheck(riinfo, &qkey, qplan, fk_rel, pk_rel, oldslot, NULL, true, /* must detect new rows */ - SPI_OK_UPDATE); + SPI_OK_UPDATE)); if (SPI_finish() != SPI_OK_FINISH) elog(ERROR, "SPI_finish failed"); diff --git a/src/backend/utils/misc/queryenvironment.c b/src/backend/utils/misc/queryenvironment.c index b8173b7bfec..6f09adb2bb0 100644 --- a/src/backend/utils/misc/queryenvironment.c +++ b/src/backend/utils/misc/queryenvironment.c @@ -1783,8 +1783,7 @@ bool IsTsqlTableVariable(Relation relation) { return sql_dialect == SQL_DIALECT_TSQL && relation - && relation->rd_rel->relpersistence == RELPERSISTENCE_TEMP - && relation->rd_rel->relname.data + && relation->rd_rel->relpersistence == RELPERSISTENCE_TEMP && strlen(relation->rd_rel->relname.data) >= 1 && relation->rd_rel->relname.data[0] == '@'; }