@@ -74,13 +74,13 @@ static HTAB *createConnHash(void);
74
74
static void createNewConnection (const char * name , remoteConn * con );
75
75
static void deleteConnection (const char * name );
76
76
static char * * get_pkey_attnames (Oid relid , int16 * numatts );
77
- static char * get_sql_insert (Oid relid , int16 * pkattnums , int16 pknumatts , char * * src_pkattvals , char * * tgt_pkattvals );
78
- static char * get_sql_delete (Oid relid , int16 * pkattnums , int16 pknumatts , char * * tgt_pkattvals );
79
- static char * get_sql_update (Oid relid , int16 * pkattnums , int16 pknumatts , char * * src_pkattvals , char * * tgt_pkattvals );
77
+ static char * get_sql_insert (Oid relid , int2vector * pkattnums , int16 pknumatts , char * * src_pkattvals , char * * tgt_pkattvals );
78
+ static char * get_sql_delete (Oid relid , int2vector * pkattnums , int16 pknumatts , char * * tgt_pkattvals );
79
+ static char * get_sql_update (Oid relid , int2vector * pkattnums , int16 pknumatts , char * * src_pkattvals , char * * tgt_pkattvals );
80
80
static char * quote_literal_cstr (char * rawstr );
81
81
static char * quote_ident_cstr (char * rawstr );
82
- static int16 get_attnum_pk_pos (int16 * pkattnums , int16 pknumatts , int16 key );
83
- static HeapTuple get_tuple_of_interest (Oid relid , int16 * pkattnums , int16 pknumatts , char * * src_pkattvals );
82
+ static int16 get_attnum_pk_pos (int2vector * pkattnums , int16 pknumatts , int16 key );
83
+ static HeapTuple get_tuple_of_interest (Oid relid , int2vector * pkattnums , int16 pknumatts , char * * src_pkattvals );
84
84
static Oid get_relid_from_relname (text * relname_text );
85
85
static char * generate_relation_name (Oid relid );
86
86
@@ -1094,7 +1094,7 @@ dblink_build_sql_insert(PG_FUNCTION_ARGS)
1094
1094
{
1095
1095
Oid relid ;
1096
1096
text * relname_text ;
1097
- int16 * pkattnums ;
1097
+ int2vector * pkattnums ;
1098
1098
int pknumatts_tmp ;
1099
1099
int16 pknumatts = 0 ;
1100
1100
char * * src_pkattvals ;
@@ -1126,7 +1126,7 @@ dblink_build_sql_insert(PG_FUNCTION_ARGS)
1126
1126
errmsg ("relation \"%s\" does not exist" ,
1127
1127
GET_STR (relname_text ))));
1128
1128
1129
- pkattnums = (int16 * ) PG_GETARG_POINTER (1 );
1129
+ pkattnums = (int2vector * ) PG_GETARG_POINTER (1 );
1130
1130
pknumatts_tmp = PG_GETARG_INT32 (2 );
1131
1131
if (pknumatts_tmp <= SHRT_MAX )
1132
1132
pknumatts = pknumatts_tmp ;
@@ -1246,7 +1246,7 @@ dblink_build_sql_delete(PG_FUNCTION_ARGS)
1246
1246
{
1247
1247
Oid relid ;
1248
1248
text * relname_text ;
1249
- int16 * pkattnums ;
1249
+ int2vector * pkattnums ;
1250
1250
int pknumatts_tmp ;
1251
1251
int16 pknumatts = 0 ;
1252
1252
char * * tgt_pkattvals ;
@@ -1273,7 +1273,7 @@ dblink_build_sql_delete(PG_FUNCTION_ARGS)
1273
1273
errmsg ("relation \"%s\" does not exist" ,
1274
1274
GET_STR (relname_text ))));
1275
1275
1276
- pkattnums = (int16 * ) PG_GETARG_POINTER (1 );
1276
+ pkattnums = (int2vector * ) PG_GETARG_POINTER (1 );
1277
1277
pknumatts_tmp = PG_GETARG_INT32 (2 );
1278
1278
if (pknumatts_tmp <= SHRT_MAX )
1279
1279
pknumatts = pknumatts_tmp ;
@@ -1363,7 +1363,7 @@ dblink_build_sql_update(PG_FUNCTION_ARGS)
1363
1363
{
1364
1364
Oid relid ;
1365
1365
text * relname_text ;
1366
- int16 * pkattnums ;
1366
+ int2vector * pkattnums ;
1367
1367
int pknumatts_tmp ;
1368
1368
int16 pknumatts = 0 ;
1369
1369
char * * src_pkattvals ;
@@ -1395,7 +1395,7 @@ dblink_build_sql_update(PG_FUNCTION_ARGS)
1395
1395
errmsg ("relation \"%s\" does not exist" ,
1396
1396
GET_STR (relname_text ))));
1397
1397
1398
- pkattnums = (int16 * ) PG_GETARG_POINTER (1 );
1398
+ pkattnums = (int2vector * ) PG_GETARG_POINTER (1 );
1399
1399
pknumatts_tmp = PG_GETARG_INT32 (2 );
1400
1400
if (pknumatts_tmp <= SHRT_MAX )
1401
1401
pknumatts = pknumatts_tmp ;
@@ -1552,16 +1552,13 @@ get_pkey_attnames(Oid relid, int16 *numatts)
1552
1552
/* we're only interested if it is the primary key */
1553
1553
if (index -> indisprimary == TRUE)
1554
1554
{
1555
- i = 0 ;
1556
- while (index -> indkey [i ++ ] != 0 )
1557
- (* numatts )++ ;
1558
-
1555
+ * numatts = index -> indnatts ;
1559
1556
if (* numatts > 0 )
1560
1557
{
1561
1558
result = (char * * ) palloc (* numatts * sizeof (char * ));
1562
1559
1563
1560
for (i = 0 ; i < * numatts ; i ++ )
1564
- result [i ] = SPI_fname (tupdesc , index -> indkey [i ]);
1561
+ result [i ] = SPI_fname (tupdesc , index -> indkey . values [i ]);
1565
1562
}
1566
1563
break ;
1567
1564
}
@@ -1574,7 +1571,7 @@ get_pkey_attnames(Oid relid, int16 *numatts)
1574
1571
}
1575
1572
1576
1573
static char *
1577
- get_sql_insert (Oid relid , int16 * pkattnums , int16 pknumatts , char * * src_pkattvals , char * * tgt_pkattvals )
1574
+ get_sql_insert (Oid relid , int2vector * pkattnums , int16 pknumatts , char * * src_pkattvals , char * * tgt_pkattvals )
1578
1575
{
1579
1576
Relation rel ;
1580
1577
char * relname ;
@@ -1664,7 +1661,7 @@ get_sql_insert(Oid relid, int16 *pkattnums, int16 pknumatts, char **src_pkattval
1664
1661
}
1665
1662
1666
1663
static char *
1667
- get_sql_delete (Oid relid , int16 * pkattnums , int16 pknumatts , char * * tgt_pkattvals )
1664
+ get_sql_delete (Oid relid , int2vector * pkattnums , int16 pknumatts , char * * tgt_pkattvals )
1668
1665
{
1669
1666
Relation rel ;
1670
1667
char * relname ;
@@ -1688,7 +1685,7 @@ get_sql_delete(Oid relid, int16 *pkattnums, int16 pknumatts, char **tgt_pkattval
1688
1685
appendStringInfo (str , "DELETE FROM %s WHERE " , relname );
1689
1686
for (i = 0 ; i < pknumatts ; i ++ )
1690
1687
{
1691
- int16 pkattnum = pkattnums [i ];
1688
+ int16 pkattnum = pkattnums -> values [i ];
1692
1689
1693
1690
if (i > 0 )
1694
1691
appendStringInfo (str , " AND " );
@@ -1720,7 +1717,7 @@ get_sql_delete(Oid relid, int16 *pkattnums, int16 pknumatts, char **tgt_pkattval
1720
1717
}
1721
1718
1722
1719
static char *
1723
- get_sql_update (Oid relid , int16 * pkattnums , int16 pknumatts , char * * src_pkattvals , char * * tgt_pkattvals )
1720
+ get_sql_update (Oid relid , int2vector * pkattnums , int16 pknumatts , char * * src_pkattvals , char * * tgt_pkattvals )
1724
1721
{
1725
1722
Relation rel ;
1726
1723
char * relname ;
@@ -1788,7 +1785,7 @@ get_sql_update(Oid relid, int16 *pkattnums, int16 pknumatts, char **src_pkattval
1788
1785
1789
1786
for (i = 0 ; i < pknumatts ; i ++ )
1790
1787
{
1791
- int16 pkattnum = pkattnums [i ];
1788
+ int16 pkattnum = pkattnums -> values [i ];
1792
1789
1793
1790
if (i > 0 )
1794
1791
appendStringInfo (str , " AND " );
@@ -1855,22 +1852,22 @@ quote_ident_cstr(char *rawstr)
1855
1852
}
1856
1853
1857
1854
static int16
1858
- get_attnum_pk_pos (int16 * pkattnums , int16 pknumatts , int16 key )
1855
+ get_attnum_pk_pos (int2vector * pkattnums , int16 pknumatts , int16 key )
1859
1856
{
1860
1857
int i ;
1861
1858
1862
1859
/*
1863
1860
* Not likely a long list anyway, so just scan for the value
1864
1861
*/
1865
1862
for (i = 0 ; i < pknumatts ; i ++ )
1866
- if (key == pkattnums [i ])
1863
+ if (key == pkattnums -> values [i ])
1867
1864
return i ;
1868
1865
1869
1866
return -1 ;
1870
1867
}
1871
1868
1872
1869
static HeapTuple
1873
- get_tuple_of_interest (Oid relid , int16 * pkattnums , int16 pknumatts , char * * src_pkattvals )
1870
+ get_tuple_of_interest (Oid relid , int2vector * pkattnums , int16 pknumatts , char * * src_pkattvals )
1874
1871
{
1875
1872
Relation rel ;
1876
1873
char * relname ;
@@ -1907,7 +1904,7 @@ get_tuple_of_interest(Oid relid, int16 *pkattnums, int16 pknumatts, char **src_p
1907
1904
1908
1905
for (i = 0 ; i < pknumatts ; i ++ )
1909
1906
{
1910
- int16 pkattnum = pkattnums [i ];
1907
+ int16 pkattnum = pkattnums -> values [i ];
1911
1908
1912
1909
if (i > 0 )
1913
1910
appendStringInfo (str , " AND " );
0 commit comments