@@ -2256,7 +2256,6 @@ TdsRecvTypeTable(const char *message, const ParameterToken token)
22562256 Datum * values = palloc (nargs * sizeof (Datum ));
22572257 char * nulls = palloc (nargs * sizeof (char ));
22582258 Oid * argtypes = palloc (nargs * sizeof (Datum ));
2259- int i = 0 ;
22602259
22612260 query = " " ;
22622261
@@ -2275,76 +2274,67 @@ TdsRecvTypeTable(const char *message, const ParameterToken token)
22752274 {
22762275 temp = & (row -> columnValues [currentColumn ]);
22772276 tempFuncInfo = TdsLookupTypeFunctionsByTdsId (colMetaData [currentColumn ].columnTdsType , colMetaData [currentColumn ].maxLen );
2278- GetPgOid (argtypes [i ], tempFuncInfo );
2277+ GetPgOid (argtypes [currentColumn ], tempFuncInfo );
22792278 if (row -> isNull [currentColumn ] == 'n' )
2280- nulls [i ] = row -> isNull [currentColumn ];
2279+ nulls [currentColumn ] = row -> isNull [currentColumn ];
22812280 else
22822281 switch (colMetaData [currentColumn ].columnTdsType )
22832282 {
22842283 case TDS_TYPE_CHAR :
22852284 case TDS_TYPE_VARCHAR :
2286- values [i ] = TdsTypeVarcharToDatum (temp , colMetaData [currentColumn ].encoding , colMetaData [currentColumn ].columnTdsType );
2285+ values [currentColumn ] = TdsTypeVarcharToDatum (temp , colMetaData [currentColumn ].encoding , colMetaData [currentColumn ].columnTdsType );
22872286 break ;
22882287 case TDS_TYPE_NCHAR :
2289- values [i ] = TdsTypeNCharToDatum (temp );
2290- break ;
22912288 case TDS_TYPE_NVARCHAR :
2292- if (!row -> isNull [currentColumn ]) /* NULL. */
2293- currentQuery = psprintf ("%s,\'NULL\'" , currentQuery );
2294- else
2295- currentQuery = psprintf ("%s,\'%s\'" , currentQuery , temp -> data );
2296- nargs -- ;
2289+ values [currentColumn ] = TdsTypeNCharToDatum (temp );
22972290 break ;
22982291 case TDS_TYPE_INTEGER :
22992292 case TDS_TYPE_BIT :
2300- values [i ] = TdsTypeIntegerToDatum (temp , colMetaData [currentColumn ].maxLen );
2293+ values [currentColumn ] = TdsTypeIntegerToDatum (temp , colMetaData [currentColumn ].maxLen );
23012294 break ;
23022295 case TDS_TYPE_FLOAT :
2303- values [i ] = TdsTypeFloatToDatum (temp , colMetaData [currentColumn ].maxLen );
2296+ values [currentColumn ] = TdsTypeFloatToDatum (temp , colMetaData [currentColumn ].maxLen );
23042297 break ;
23052298 case TDS_TYPE_NUMERICN :
23062299 case TDS_TYPE_DECIMALN :
2307- values [i ] = TdsTypeNumericToDatum (temp , colMetaData [currentColumn ].scale );
2300+ values [currentColumn ] = TdsTypeNumericToDatum (temp , colMetaData [currentColumn ].scale );
23082301 break ;
23092302 case TDS_TYPE_VARBINARY :
23102303 case TDS_TYPE_BINARY :
2311- values [i ] = TdsTypeVarbinaryToDatum (temp );
2312- argtypes [i ] = tempFuncInfo -> ttmtypeid ;
2304+ values [currentColumn ] = TdsTypeVarbinaryToDatum (temp );
2305+ argtypes [currentColumn ] = tempFuncInfo -> ttmtypeid ;
23132306 break ;
23142307 case TDS_TYPE_DATE :
2315- values [i ] = TdsTypeDateToDatum (temp );
2308+ values [currentColumn ] = TdsTypeDateToDatum (temp );
23162309 break ;
23172310 case TDS_TYPE_TIME :
2318- values [i ] = TdsTypeTimeToDatum (temp , colMetaData [currentColumn ].scale , temp -> len );
2311+ values [currentColumn ] = TdsTypeTimeToDatum (temp , colMetaData [currentColumn ].scale , temp -> len );
23192312 break ;
23202313 case TDS_TYPE_DATETIMEOFFSET :
2321- values [i ] = TdsTypeDatetimeoffsetToDatum (temp , colMetaData [currentColumn ].scale , temp -> len );
2314+ values [currentColumn ] = TdsTypeDatetimeoffsetToDatum (temp , colMetaData [currentColumn ].scale , temp -> len );
23222315 break ;
23232316 case TDS_TYPE_DATETIME2 :
2324- values [i ] = TdsTypeDatetime2ToDatum (temp , colMetaData [currentColumn ].scale , temp -> len );
2317+ values [currentColumn ] = TdsTypeDatetime2ToDatum (temp , colMetaData [currentColumn ].scale , temp -> len );
23252318 break ;
23262319 case TDS_TYPE_DATETIMEN :
2327- values [i ] = TdsTypeDatetimeToDatum (temp );
2320+ values [currentColumn ] = TdsTypeDatetimeToDatum (temp );
23282321 break ;
23292322 case TDS_TYPE_MONEYN :
2330- values [i ] = TdsTypeMoneyToDatum (temp );
2323+ values [currentColumn ] = TdsTypeMoneyToDatum (temp );
23312324 break ;
23322325 case TDS_TYPE_XML :
2333- values [i ] = TdsTypeXMLToDatum (temp );
2326+ values [currentColumn ] = TdsTypeXMLToDatum (temp );
23342327 break ;
23352328 case TDS_TYPE_UNIQUEIDENTIFIER :
2336- values [i ] = TdsTypeUIDToDatum (temp );
2329+ values [currentColumn ] = TdsTypeUIDToDatum (temp );
23372330 break ;
23382331 case TDS_TYPE_SQLVARIANT :
2339- values [i ] = TdsTypeSqlVariantToDatum (temp );
2332+ values [currentColumn ] = TdsTypeSqlVariantToDatum (temp );
23402333 break ;
23412334 }
23422335 /* Build a string for bind parameters. */
2343- if (colMetaData [currentColumn ].columnTdsType != TDS_TYPE_NVARCHAR || row -> isNull [currentColumn ] == 'n' )
2344- {
2345- currentQuery = psprintf ("%s,$%d" , currentQuery , i + 1 );
2346- i ++ ;
2347- }
2336+ currentQuery = psprintf ("%s,$%d" , currentQuery , currentColumn + 1 );
2337+ nulls [currentColumn ] = row -> isNull [currentColumn ];
23482338 currentColumn ++ ;
23492339 }
23502340 row = row -> nextRow ;
0 commit comments