MCPcopy Create free account
hub / github.com/apache/arrow / TestBindColumn

Function TestBindColumn

cpp/src/arrow/flight/sql/odbc/odbc_impl/main.cc:44–79  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

42using arrow::flight::sql::odbc::Statement;
43
44void TestBindColumn(const std::shared_ptr<Connection>& connection) {
45 const std::shared_ptr<Statement>& statement = connection->CreateStatement();
46 statement->Execute("SELECT IncidntNum, Category FROM \"@apache\".Test LIMIT 10");
47
48 const std::shared_ptr<ResultSet>& result_set = statement->GetResultSet();
49
50 const int batch_size = 100;
51 const int max_str_len = 1000;
52
53 char incidnt_num[batch_size][max_str_len];
54 ssize_t incidnt_num_length[batch_size];
55
56 char category[batch_size][max_str_len];
57 ssize_t category_length[batch_size];
58
59 result_set->BindColumn(1, arrow::flight::sql::odbc::CDataType_CHAR, 0, 0, incidnt_num,
60 max_str_len, incidnt_num_length);
61 result_set->BindColumn(2, arrow::flight::sql::odbc::CDataType_CHAR, 0, 0, category,
62 max_str_len, category_length);
63
64 size_t total = 0;
65 while (true) {
66 size_t fetched_rows = result_set->Move(batch_size, 0, 0, nullptr);
67 std::cout << "Fetched " << fetched_rows << " rows." << std::endl;
68
69 total += fetched_rows;
70 std::cout << "Total:" << total << std::endl;
71
72 for (size_t i = 0; i < fetched_rows; ++i) {
73 ARROW_LOG(DEBUG) << "Row[" << i << "] incidnt_num: '" << incidnt_num[i]
74 << "', Category: '" << category[i] << "'";
75 }
76
77 if (fetched_rows < batch_size) break;
78 }
79}
80
81void TestGetData(const std::shared_ptr<Connection>& connection) {
82 const std::shared_ptr<Statement>& statement = connection->CreateStatement();

Callers

nothing calls this directly

Calls 5

GetResultSetMethod · 0.80
BindColumnMethod · 0.80
CreateStatementMethod · 0.45
ExecuteMethod · 0.45
MoveMethod · 0.45

Tested by

no test coverage detected