Skip to content

Commit d10b348

Browse files
committed
fix: handle input array for extract_path
1 parent f918c71 commit d10b348

File tree

2 files changed

+31
-5
lines changed

2 files changed

+31
-5
lines changed

src/functions/extract_path.cpp

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,23 @@ namespace duckdb
99
{
1010
// Extract the input from the arguments
1111
auto &input_vector = args.data[0];
12-
auto input = input_vector.GetValue (0).ToString ();
12+
auto result_data = FlatVector::GetData<string_t> (result);
1313

14-
// Extract the path using the utility function
15-
auto path = netquack::ExtractPath (input);
14+
for (idx_t i = 0; i < args.size (); i++)
15+
{
16+
auto input = input_vector.GetValue (i).ToString ();
1617

17-
// Set the result
18-
result.SetValue (0, Value (path));
18+
try
19+
{
20+
// Extract the path using the utility function
21+
auto path = netquack::ExtractPath (input);
22+
result_data[i] = StringVector::AddString (result, path);
23+
}
24+
catch (const std::exception &e)
25+
{
26+
result_data[i] = "Error extracting path: " + std::string (e.what ());
27+
}
28+
};
1929
}
2030

2131
namespace netquack

test/sql/extract_path.test

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44

55
require netquack
66

7+
statement ok
8+
CREATE TABLE uri_list AS SELECT * FROM read_csv('test/data/examples.csv', header=false, columns={'uri': 'VARCHAR'});
9+
710
query I
811
SELECT extract_path('http://example.com.ac/path');
912
----
@@ -63,3 +66,16 @@ query I
6366
SELECT extract_path('rsync://rpki.exmple.com/path/path');
6467
----
6568
/path/path
69+
70+
query I
71+
SELECT extract_path(uri) from uri_list;
72+
----
73+
/
74+
/
75+
/
76+
/
77+
/a
78+
/a
79+
/
80+
/
81+
/path/

0 commit comments

Comments
 (0)