@@ -1286,6 +1286,97 @@ def test_vec_function(self):
12861286 assert [tuple (x ) for x in self .cur ] == [(50.0 ,)]
12871287
12881288 def test_vec_function_ints (self ):
1289- self .cur .execute ('select vec_function(5, 10) as res' )
1289+ self .cur .execute ('select vec_function_ints(5, 10) as res' )
1290+
1291+ assert [tuple (x ) for x in self .cur ] == [(50 ,)]
1292+
1293+ def test_vec_function_df (self ):
1294+ self .cur .execute ('select * from vec_function_df(5, 10)' )
1295+
1296+ out = list (self .cur )
1297+
1298+ assert out == [
1299+ (1 , 1.1 ),
1300+ (2 , 2.2 ),
1301+ (3 , 3.3 ),
1302+ ]
1303+
1304+ desc = self .cur .description
1305+ assert len (desc ) == 2
1306+ assert desc [0 ].name == 'res'
1307+ assert desc [0 ].type_code == ft .SHORT
1308+ assert desc [0 ].null_ok is False
1309+ assert desc [1 ].name == 'res2'
1310+ assert desc [1 ].type_code == ft .DOUBLE
1311+ assert desc [1 ].null_ok is False
1312+
1313+ def test_vec_function_ints_masked (self ):
1314+ self .cur .execute ('select * from vec_function_ints_masked(5, 10)' )
12901315
12911316 assert [tuple (x ) for x in self .cur ] == [(50 ,)]
1317+
1318+ desc = self .cur .description
1319+ assert len (desc ) == 1
1320+ assert desc [0 ].name == 'res'
1321+ assert desc [0 ].type_code == ft .SHORT
1322+ assert desc [0 ].null_ok is True
1323+
1324+ self .cur .execute ('select * from vec_function_ints_masked(NULL, 10)' )
1325+
1326+ assert [tuple (x ) for x in self .cur ] == [(None ,)]
1327+
1328+ desc = self .cur .description
1329+ assert len (desc ) == 1
1330+ assert desc [0 ].name == 'res'
1331+ assert desc [0 ].type_code == ft .SHORT
1332+ assert desc [0 ].null_ok is True
1333+
1334+ self .cur .execute ('select * from vec_function_ints_masked(5, NULL)' )
1335+
1336+ assert [tuple (x ) for x in self .cur ] == [(None ,)]
1337+
1338+ desc = self .cur .description
1339+ assert len (desc ) == 1
1340+ assert desc [0 ].name == 'res'
1341+ assert desc [0 ].type_code == ft .SHORT
1342+ assert desc [0 ].null_ok is True
1343+
1344+ def test_vec_function_ints_masked2 (self ):
1345+ self .cur .execute ('select * from vec_function_ints_masked2(5, 10)' )
1346+
1347+ assert [tuple (x ) for x in self .cur ] == [(50 , 50 )]
1348+
1349+ desc = self .cur .description
1350+ assert len (desc ) == 2
1351+ assert desc [0 ].name == 'res'
1352+ assert desc [0 ].type_code == ft .SHORT
1353+ assert desc [0 ].null_ok is True
1354+ assert desc [1 ].name == 'res2'
1355+ assert desc [1 ].type_code == ft .SHORT
1356+ assert desc [1 ].null_ok is True
1357+
1358+ self .cur .execute ('select * from vec_function_ints_masked2(NULL, 10)' )
1359+
1360+ assert [tuple (x ) for x in self .cur ] == [(None , None )]
1361+
1362+ desc = self .cur .description
1363+ assert len (desc ) == 2
1364+ assert desc [0 ].name == 'res'
1365+ assert desc [0 ].type_code == ft .SHORT
1366+ assert desc [0 ].null_ok is True
1367+ assert desc [1 ].name == 'res2'
1368+ assert desc [1 ].type_code == ft .SHORT
1369+ assert desc [1 ].null_ok is True
1370+
1371+ self .cur .execute ('select * from vec_function_ints_masked2(5, NULL)' )
1372+
1373+ assert [tuple (x ) for x in self .cur ] == [(None , None )]
1374+
1375+ desc = self .cur .description
1376+ assert len (desc ) == 2
1377+ assert desc [0 ].name == 'res'
1378+ assert desc [0 ].type_code == ft .SHORT
1379+ assert desc [0 ].null_ok is True
1380+ assert desc [1 ].name == 'res2'
1381+ assert desc [1 ].type_code == ft .SHORT
1382+ assert desc [1 ].null_ok is True
0 commit comments