Skip to content

Commit

Permalink
Restore retrived_attrs / target_attrs difference by postgres_fdw.
Browse files Browse the repository at this point in the history
  • Loading branch information
mkgrgis committed Jan 2, 2025
1 parent e4592d2 commit c855341
Show file tree
Hide file tree
Showing 11 changed files with 81 additions and 61 deletions.
22 changes: 13 additions & 9 deletions expected/13.15/extra/returning.out
Original file line number Diff line number Diff line change
Expand Up @@ -523,26 +523,30 @@ INSERT INTO typetest VALUES (4, 'j', 'k', 'l', '2020.11.06 12:34:56.789', '2020.

--Testcase 72:
INSERT INTO typetest VALUES (4, 'j', 'k', 'l', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING ti c_timestamp;
ERROR: SQLite value is not compatible with PostgreSQL column data type
HINT: SQLite value with "text" affinity (23 bytes) : '2020-11-05 12:34:56.789'
CONTEXT: foreign table "typetest" foreign column "i" have data type "bigint" (usual affinity "integer"), processing expression at position 0 in select list
c_timestamp
-------------------------
2020-11-05 12:34:56.789
(1 row)

--Testcase 73:
EXPLAIN (VERBOSE, COSTS OFF)
INSERT INTO typetest VALUES (5, 'm', 'n', 'opqrs', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING substr(c, 2) sst;
INSERT INTO typetest VALUES (5, 'm', 'n', 'opqrs', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING substr(t, 2) sst;
QUERY PLAN
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Insert on public.typetest
Output: substr((typetest.c)::text, 2)
Output: substr(typetest.t, 2)
Batch Size: 1
-> Result
Output: '5'::bigint, 'm'::character varying(10), 'n '::character(10), 'opqrs'::text, '2020-11-06 12:34:56.789'::timestamp without time zone, '2020-11-05 12:34:56.789'::timestamp without time zone
(5 rows)

--Testcase 74:
INSERT INTO typetest VALUES (5, 'm', 'n', 'opqrs', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING substr(c, 2) sst;
ERROR: SQLite value is not compatible with PostgreSQL column data type
HINT: SQLite value with "text" affinity (10 bytes) : 'n '
CONTEXT: foreign table "typetest" foreign column "i" have data type "bigint" (usual affinity "integer"), processing expression at position 0 in select list
INSERT INTO typetest VALUES (5, 'm', 'n', 'opqrs', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING substr(t, 2) sst;
sst
------
pqrs
(1 row)

--Testcase 75: (i integer, v varchar(10), c char(10), t text, d datetime, ti timestamp);
EXPLAIN (VERBOSE, COSTS OFF)
UPDATE typetest SET t='upd' WHERE i=1 RETURNING *;
Expand Down
22 changes: 13 additions & 9 deletions expected/14.12/extra/returning.out
Original file line number Diff line number Diff line change
Expand Up @@ -523,26 +523,30 @@ INSERT INTO typetest VALUES (4, 'j', 'k', 'l', '2020.11.06 12:34:56.789', '2020.

--Testcase 72:
INSERT INTO typetest VALUES (4, 'j', 'k', 'l', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING ti c_timestamp;
ERROR: SQLite value is not compatible with PostgreSQL column data type
HINT: SQLite value with "text" affinity (23 bytes) : '2020-11-05 12:34:56.789'
CONTEXT: foreign table "typetest" foreign column "i" have data type "bigint" (usual affinity "integer"), processing expression at position 0 in select list
c_timestamp
-------------------------
2020-11-05 12:34:56.789
(1 row)

--Testcase 73:
EXPLAIN (VERBOSE, COSTS OFF)
INSERT INTO typetest VALUES (5, 'm', 'n', 'opqrs', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING substr(c, 2) sst;
INSERT INTO typetest VALUES (5, 'm', 'n', 'opqrs', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING substr(t, 2) sst;
QUERY PLAN
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Insert on public.typetest
Output: substr((typetest.c)::text, 2)
Output: substr(typetest.t, 2)
Batch Size: 1
-> Result
Output: '5'::bigint, 'm'::character varying(10), 'n '::character(10), 'opqrs'::text, '2020-11-06 12:34:56.789'::timestamp without time zone, '2020-11-05 12:34:56.789'::timestamp without time zone
(5 rows)

--Testcase 74:
INSERT INTO typetest VALUES (5, 'm', 'n', 'opqrs', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING substr(c, 2) sst;
ERROR: SQLite value is not compatible with PostgreSQL column data type
HINT: SQLite value with "text" affinity (10 bytes) : 'n '
CONTEXT: foreign table "typetest" foreign column "i" have data type "bigint" (usual affinity "integer"), processing expression at position 0 in select list
INSERT INTO typetest VALUES (5, 'm', 'n', 'opqrs', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING substr(t, 2) sst;
sst
------
pqrs
(1 row)

--Testcase 75: (i integer, v varchar(10), c char(10), t text, d datetime, ti timestamp);
EXPLAIN (VERBOSE, COSTS OFF)
UPDATE typetest SET t='upd' WHERE i=1 RETURNING *;
Expand Down
22 changes: 13 additions & 9 deletions expected/15.7/extra/returning.out
Original file line number Diff line number Diff line change
Expand Up @@ -523,26 +523,30 @@ INSERT INTO typetest VALUES (4, 'j', 'k', 'l', '2020.11.06 12:34:56.789', '2020.

--Testcase 72:
INSERT INTO typetest VALUES (4, 'j', 'k', 'l', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING ti c_timestamp;
ERROR: SQLite value is not compatible with PostgreSQL column data type
HINT: SQLite value with "text" affinity (23 bytes) : '2020-11-05 12:34:56.789'
CONTEXT: foreign table "typetest" foreign column "i" have data type "bigint" (usual affinity "integer"), processing expression at position 0 in select list
c_timestamp
-------------------------
2020-11-05 12:34:56.789
(1 row)

--Testcase 73:
EXPLAIN (VERBOSE, COSTS OFF)
INSERT INTO typetest VALUES (5, 'm', 'n', 'opqrs', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING substr(c, 2) sst;
INSERT INTO typetest VALUES (5, 'm', 'n', 'opqrs', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING substr(t, 2) sst;
QUERY PLAN
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Insert on public.typetest
Output: substr((typetest.c)::text, 2)
Output: substr(typetest.t, 2)
Batch Size: 1
-> Result
Output: '5'::bigint, 'm'::character varying(10), 'n '::character(10), 'opqrs'::text, '2020-11-06 12:34:56.789'::timestamp without time zone, '2020-11-05 12:34:56.789'::timestamp without time zone
(5 rows)

--Testcase 74:
INSERT INTO typetest VALUES (5, 'm', 'n', 'opqrs', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING substr(c, 2) sst;
ERROR: SQLite value is not compatible with PostgreSQL column data type
HINT: SQLite value with "text" affinity (10 bytes) : 'n '
CONTEXT: foreign table "typetest" foreign column "i" have data type "bigint" (usual affinity "integer"), processing expression at position 0 in select list
INSERT INTO typetest VALUES (5, 'm', 'n', 'opqrs', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING substr(t, 2) sst;
sst
------
pqrs
(1 row)

--Testcase 75: (i integer, v varchar(10), c char(10), t text, d datetime, ti timestamp);
EXPLAIN (VERBOSE, COSTS OFF)
UPDATE typetest SET t='upd' WHERE i=1 RETURNING *;
Expand Down
22 changes: 13 additions & 9 deletions expected/16.3/extra/returning.out
Original file line number Diff line number Diff line change
Expand Up @@ -523,26 +523,30 @@ INSERT INTO typetest VALUES (4, 'j', 'k', 'l', '2020.11.06 12:34:56.789', '2020.

--Testcase 72:
INSERT INTO typetest VALUES (4, 'j', 'k', 'l', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING ti c_timestamp;
ERROR: SQLite value is not compatible with PostgreSQL column data type
HINT: SQLite value with "text" affinity (23 bytes) : '2020-11-05 12:34:56.789'
CONTEXT: foreign table "typetest" foreign column "i" have data type "bigint" (usual affinity "integer"), processing expression at position 0 in select list
c_timestamp
-------------------------
2020-11-05 12:34:56.789
(1 row)

--Testcase 73:
EXPLAIN (VERBOSE, COSTS OFF)
INSERT INTO typetest VALUES (5, 'm', 'n', 'opqrs', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING substr(c, 2) sst;
INSERT INTO typetest VALUES (5, 'm', 'n', 'opqrs', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING substr(t, 2) sst;
QUERY PLAN
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Insert on public.typetest
Output: substr((typetest.c)::text, 2)
Output: substr(typetest.t, 2)
Batch Size: 1
-> Result
Output: '5'::bigint, 'm'::character varying(10), 'n '::character(10), 'opqrs'::text, '2020-11-06 12:34:56.789'::timestamp without time zone, '2020-11-05 12:34:56.789'::timestamp without time zone
(5 rows)

--Testcase 74:
INSERT INTO typetest VALUES (5, 'm', 'n', 'opqrs', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING substr(c, 2) sst;
ERROR: SQLite value is not compatible with PostgreSQL column data type
HINT: SQLite value with "text" affinity (10 bytes) : 'n '
CONTEXT: foreign table "typetest" foreign column "i" have data type "bigint" (usual affinity "integer"), processing expression at position 0 in select list
INSERT INTO typetest VALUES (5, 'm', 'n', 'opqrs', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING substr(t, 2) sst;
sst
------
pqrs
(1 row)

--Testcase 75: (i integer, v varchar(10), c char(10), t text, d datetime, ti timestamp);
EXPLAIN (VERBOSE, COSTS OFF)
UPDATE typetest SET t='upd' WHERE i=1 RETURNING *;
Expand Down
22 changes: 13 additions & 9 deletions expected/17.0/extra/returning.out
Original file line number Diff line number Diff line change
Expand Up @@ -523,26 +523,30 @@ INSERT INTO typetest VALUES (4, 'j', 'k', 'l', '2020.11.06 12:34:56.789', '2020.

--Testcase 72:
INSERT INTO typetest VALUES (4, 'j', 'k', 'l', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING ti c_timestamp;
ERROR: SQLite value is not compatible with PostgreSQL column data type
HINT: SQLite value with "text" affinity (23 bytes) : '2020-11-05 12:34:56.789'
CONTEXT: foreign table "typetest" foreign column "i" have data type "bigint" (usual affinity "integer"), processing expression at position 0 in select list
c_timestamp
-------------------------
2020-11-05 12:34:56.789
(1 row)

--Testcase 73:
EXPLAIN (VERBOSE, COSTS OFF)
INSERT INTO typetest VALUES (5, 'm', 'n', 'opqrs', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING substr(c, 2) sst;
INSERT INTO typetest VALUES (5, 'm', 'n', 'opqrs', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING substr(t, 2) sst;
QUERY PLAN
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Insert on public.typetest
Output: substr((typetest.c)::text, 2)
Output: substr(typetest.t, 2)
Batch Size: 1
-> Result
Output: '5'::bigint, 'm'::character varying(10), 'n '::character(10), 'opqrs'::text, '2020-11-06 12:34:56.789'::timestamp without time zone, '2020-11-05 12:34:56.789'::timestamp without time zone
(5 rows)

--Testcase 74:
INSERT INTO typetest VALUES (5, 'm', 'n', 'opqrs', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING substr(c, 2) sst;
ERROR: SQLite value is not compatible with PostgreSQL column data type
HINT: SQLite value with "text" affinity (10 bytes) : 'n '
CONTEXT: foreign table "typetest" foreign column "i" have data type "bigint" (usual affinity "integer"), processing expression at position 0 in select list
INSERT INTO typetest VALUES (5, 'm', 'n', 'opqrs', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING substr(t, 2) sst;
sst
------
pqrs
(1 row)

--Testcase 75: (i integer, v varchar(10), c char(10), t text, d datetime, ti timestamp);
EXPLAIN (VERBOSE, COSTS OFF)
UPDATE typetest SET t='upd' WHERE i=1 RETURNING *;
Expand Down
4 changes: 2 additions & 2 deletions sql/13.15/extra/returning.sql
Original file line number Diff line number Diff line change
Expand Up @@ -170,9 +170,9 @@ INSERT INTO typetest VALUES (4, 'j', 'k', 'l', '2020.11.06 12:34:56.789', '2020.
INSERT INTO typetest VALUES (4, 'j', 'k', 'l', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING ti c_timestamp;
--Testcase 73:
EXPLAIN (VERBOSE, COSTS OFF)
INSERT INTO typetest VALUES (5, 'm', 'n', 'opqrs', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING substr(c, 2) sst;
INSERT INTO typetest VALUES (5, 'm', 'n', 'opqrs', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING substr(t, 2) sst;
--Testcase 74:
INSERT INTO typetest VALUES (5, 'm', 'n', 'opqrs', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING substr(c, 2) sst;
INSERT INTO typetest VALUES (5, 'm', 'n', 'opqrs', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING substr(t, 2) sst;

--Testcase 75: (i integer, v varchar(10), c char(10), t text, d datetime, ti timestamp);
EXPLAIN (VERBOSE, COSTS OFF)
Expand Down
4 changes: 2 additions & 2 deletions sql/14.12/extra/returning.sql
Original file line number Diff line number Diff line change
Expand Up @@ -170,9 +170,9 @@ INSERT INTO typetest VALUES (4, 'j', 'k', 'l', '2020.11.06 12:34:56.789', '2020.
INSERT INTO typetest VALUES (4, 'j', 'k', 'l', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING ti c_timestamp;
--Testcase 73:
EXPLAIN (VERBOSE, COSTS OFF)
INSERT INTO typetest VALUES (5, 'm', 'n', 'opqrs', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING substr(c, 2) sst;
INSERT INTO typetest VALUES (5, 'm', 'n', 'opqrs', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING substr(t, 2) sst;
--Testcase 74:
INSERT INTO typetest VALUES (5, 'm', 'n', 'opqrs', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING substr(c, 2) sst;
INSERT INTO typetest VALUES (5, 'm', 'n', 'opqrs', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING substr(t, 2) sst;

--Testcase 75: (i integer, v varchar(10), c char(10), t text, d datetime, ti timestamp);
EXPLAIN (VERBOSE, COSTS OFF)
Expand Down
4 changes: 2 additions & 2 deletions sql/15.7/extra/returning.sql
Original file line number Diff line number Diff line change
Expand Up @@ -170,9 +170,9 @@ INSERT INTO typetest VALUES (4, 'j', 'k', 'l', '2020.11.06 12:34:56.789', '2020.
INSERT INTO typetest VALUES (4, 'j', 'k', 'l', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING ti c_timestamp;
--Testcase 73:
EXPLAIN (VERBOSE, COSTS OFF)
INSERT INTO typetest VALUES (5, 'm', 'n', 'opqrs', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING substr(c, 2) sst;
INSERT INTO typetest VALUES (5, 'm', 'n', 'opqrs', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING substr(t, 2) sst;
--Testcase 74:
INSERT INTO typetest VALUES (5, 'm', 'n', 'opqrs', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING substr(c, 2) sst;
INSERT INTO typetest VALUES (5, 'm', 'n', 'opqrs', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING substr(t, 2) sst;

--Testcase 75: (i integer, v varchar(10), c char(10), t text, d datetime, ti timestamp);
EXPLAIN (VERBOSE, COSTS OFF)
Expand Down
4 changes: 2 additions & 2 deletions sql/16.3/extra/returning.sql
Original file line number Diff line number Diff line change
Expand Up @@ -170,9 +170,9 @@ INSERT INTO typetest VALUES (4, 'j', 'k', 'l', '2020.11.06 12:34:56.789', '2020.
INSERT INTO typetest VALUES (4, 'j', 'k', 'l', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING ti c_timestamp;
--Testcase 73:
EXPLAIN (VERBOSE, COSTS OFF)
INSERT INTO typetest VALUES (5, 'm', 'n', 'opqrs', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING substr(c, 2) sst;
INSERT INTO typetest VALUES (5, 'm', 'n', 'opqrs', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING substr(t, 2) sst;
--Testcase 74:
INSERT INTO typetest VALUES (5, 'm', 'n', 'opqrs', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING substr(c, 2) sst;
INSERT INTO typetest VALUES (5, 'm', 'n', 'opqrs', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING substr(t, 2) sst;

--Testcase 75: (i integer, v varchar(10), c char(10), t text, d datetime, ti timestamp);
EXPLAIN (VERBOSE, COSTS OFF)
Expand Down
4 changes: 2 additions & 2 deletions sql/17.0/extra/returning.sql
Original file line number Diff line number Diff line change
Expand Up @@ -170,9 +170,9 @@ INSERT INTO typetest VALUES (4, 'j', 'k', 'l', '2020.11.06 12:34:56.789', '2020.
INSERT INTO typetest VALUES (4, 'j', 'k', 'l', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING ti c_timestamp;
--Testcase 73:
EXPLAIN (VERBOSE, COSTS OFF)
INSERT INTO typetest VALUES (5, 'm', 'n', 'opqrs', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING substr(c, 2) sst;
INSERT INTO typetest VALUES (5, 'm', 'n', 'opqrs', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING substr(t, 2) sst;
--Testcase 74:
INSERT INTO typetest VALUES (5, 'm', 'n', 'opqrs', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING substr(c, 2) sst;
INSERT INTO typetest VALUES (5, 'm', 'n', 'opqrs', '2020.11.06 12:34:56.789', '2020.11.05 12:34:56.789') RETURNING substr(t, 2) sst;

--Testcase 75: (i integer, v varchar(10), c char(10), t text, d datetime, ti timestamp);
EXPLAIN (VERBOSE, COSTS OFF)
Expand Down
12 changes: 6 additions & 6 deletions sqlite_fdw.c
Original file line number Diff line number Diff line change
Expand Up @@ -1896,15 +1896,15 @@ sqliteBeginForeignModify(ModifyTableState *mtstate,
#else
fmstate->has_returning = intVal(list_nth(fdw_private, FdwModifyPrivateHasReturning));
#endif
fmstate->retrieved_attrs = (List *) list_nth(fdw_private, FdwModifyPrivateTargetAttnums);
fmstate->retrieved_attrs = (List *) list_nth(fdw_private, FdwModifyPrivateRetrievedAttrs);
#if PG_VERSION_NUM >= 140000
fmstate->values_end = intVal(list_nth(fdw_private, FdwModifyPrivateLen));
#else
fmstate->values_end = -1;
#endif
fmstate->orig_query = pstrdup(fmstate->query);

n_params = list_length(fmstate->retrieved_attrs) + 1;
n_params = list_length(fmstate->target_attrs) + 1;
fmstate->p_flinfo = (FmgrInfo *) palloc0(sizeof(FmgrInfo) * n_params);
fmstate->p_nums = 0;
fmstate->temp_cxt = AllocSetContextCreate(estate->es_query_cxt,
Expand All @@ -1918,7 +1918,7 @@ sqliteBeginForeignModify(ModifyTableState *mtstate,
fmstate->attinmeta = TupleDescGetAttInMetadata(tupdesc);

/* Set up for remaining transmittable parameters */
foreach(lc, fmstate->retrieved_attrs)
foreach(lc, fmstate->target_attrs)
{
int attnum = lfirst_int(lc);
Form_pg_attribute attr = TupleDescAttr(RelationGetDescr(rel), attnum - 1);
Expand All @@ -1928,7 +1928,7 @@ sqliteBeginForeignModify(ModifyTableState *mtstate,
/* Ignore generated columns; */
if (attr->attgenerated)
{
if (list_length(fmstate->retrieved_attrs) >= 1)
if (list_length(fmstate->target_attrs) >= 1)
fmstate->p_nums = 1;
continue;
}
Expand All @@ -1944,7 +1944,7 @@ sqliteBeginForeignModify(ModifyTableState *mtstate,
fmstate->batch_size = sqlite_get_batch_size_option(rel);
#endif

n_params = list_length(fmstate->retrieved_attrs);
n_params = list_length(fmstate->target_attrs);
/* Initialize sqlite statment */
fmstate->stmt = NULL;

Expand Down Expand Up @@ -5389,7 +5389,7 @@ static int sqlite_foreign_modify_bind (SqliteFdwExecState *fmstate, TupleTableSl
int bindnum = 0;
Oid foreignTableId = RelationGetRelid(rel);
/* Bind the values */
foreach(lc, fmstate->retrieved_attrs)
foreach(lc, fmstate->target_attrs)
{
int attnum = lfirst_int(lc);
Form_pg_attribute att = TupleDescAttr(slot->tts_tupleDescriptor, attnum - 1);
Expand Down

0 comments on commit c855341

Please sign in to comment.