Skip to content

Commit 59db9b8

Browse files
committed
release c schema and arrow, working version
1 parent 401bb17 commit 59db9b8

File tree

3 files changed

+31
-2
lines changed

3 files changed

+31
-2
lines changed

MANIFEST.in

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@ recursive-include src/snowflake/connector py.typed *.py *.pyx
77
recursive-include src/snowflake/connector/vendored LICENSE*
88

99
recursive-include src/snowflake/connector/cpp *.cpp *.hpp
10+
recursive-include src/snowflake/connector/cpp *.c *.h
1011
exclude src/snowflake/connector/arrow_iterator.cpp
12+
exclude src/snowflake/connector/cpp/ArrowIterator/arrow_iterator.cpp
1113

1214
exclude .git-blame-ignore-revs
1315
exclude .pre-commit-config.yaml
@@ -19,6 +21,7 @@ prune ci
1921
prune benchmark
2022
prune test
2123
prune tested_requirements
24+
prune stress
2225
prune src/snowflake/connector/cpp/scripts
2326
prune __pycache__
2427
prune samples

src/snowflake/connector/cpp/ArrowIterator/CArrowTableIterator.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,9 @@ void CArrowTableIterator::convertScaledFixedNumberColumnToDecimalColumn_nanoarro
336336
}
337337
}
338338
ArrowArrayFinishBuildingDefault(newArray, &error);
339+
m_nanoarrowSchemas[batchIdx]->children[colIdx]->release(m_nanoarrowSchemas[batchIdx]->children[colIdx]);
339340
ArrowSchemaMove(newSchema, m_nanoarrowSchemas[batchIdx]->children[colIdx]);
341+
m_nanoarrowTable[batchIdx]->children[colIdx]->release(m_nanoarrowTable[batchIdx]->children[colIdx]);
340342
ArrowArrayMove(newArray, m_nanoarrowTable[batchIdx]->children[colIdx]);
341343
m_newArrays[batchIdx].push_back(std::move(newUniqueArray));
342344
m_newSchemas[batchIdx].push_back(std::move(newUniqueField));
@@ -384,7 +386,9 @@ void CArrowTableIterator::convertScaledFixedNumberColumnToDoubleColumn_nanoarrow
384386
}
385387
}
386388
ArrowArrayFinishBuildingDefault(newArray, &error);
389+
m_nanoarrowSchemas[batchIdx]->children[colIdx]->release(m_nanoarrowSchemas[batchIdx]->children[colIdx]);
387390
ArrowSchemaMove(newSchema, m_nanoarrowSchemas[batchIdx]->children[colIdx]);
391+
m_nanoarrowTable[batchIdx]->children[colIdx]->release(m_nanoarrowTable[batchIdx]->children[colIdx]);
388392
ArrowArrayMove(newArray, m_nanoarrowTable[batchIdx]->children[colIdx]);
389393
m_newArrays[batchIdx].push_back(std::move(newUniqueArray));
390394
m_newSchemas[batchIdx].push_back(std::move(newUniqueField));
@@ -457,7 +461,9 @@ void CArrowTableIterator::convertTimeColumn_nanoarrow(
457461
}
458462

459463
ArrowArrayFinishBuildingDefault(newArray, &error);
464+
m_nanoarrowSchemas[batchIdx]->children[colIdx]->release(m_nanoarrowSchemas[batchIdx]->children[colIdx]);
460465
ArrowSchemaMove(newSchema, m_nanoarrowSchemas[batchIdx]->children[colIdx]);
466+
m_nanoarrowTable[batchIdx]->children[colIdx]->release(m_nanoarrowTable[batchIdx]->children[colIdx]);
461467
ArrowArrayMove(newArray, m_nanoarrowTable[batchIdx]->children[colIdx]);
462468
m_newArrays[batchIdx].push_back(std::move(newUniqueArray));
463469
m_newSchemas[batchIdx].push_back(std::move(newUniqueField));
@@ -675,7 +681,9 @@ void CArrowTableIterator::convertTimestampColumn_nanoarrow(
675681
}
676682

677683
ArrowArrayFinishBuildingDefault(newArray, &error);
684+
m_nanoarrowSchemas[batchIdx]->children[colIdx]->release(m_nanoarrowSchemas[batchIdx]->children[colIdx]);
678685
ArrowSchemaMove(newSchema, m_nanoarrowSchemas[batchIdx]->children[colIdx]);
686+
m_nanoarrowTable[batchIdx]->children[colIdx]->release(m_nanoarrowTable[batchIdx]->children[colIdx]);
679687
ArrowArrayMove(newArray, m_nanoarrowTable[batchIdx]->children[colIdx]);
680688
m_newArrays[batchIdx].push_back(std::move(newUniqueArray));
681689
m_newSchemas[batchIdx].push_back(std::move(newUniqueField));
@@ -813,7 +821,9 @@ void CArrowTableIterator::convertTimestampTZColumn_nanoarrow(
813821
}
814822

815823
ArrowArrayFinishBuildingDefault(newArray, &error);
824+
m_nanoarrowSchemas[batchIdx]->children[colIdx]->release(m_nanoarrowSchemas[batchIdx]->children[colIdx]);
816825
ArrowSchemaMove(newSchema, m_nanoarrowSchemas[batchIdx]->children[colIdx]);
826+
m_nanoarrowTable[batchIdx]->children[colIdx]->release(m_nanoarrowTable[batchIdx]->children[colIdx]);
817827
ArrowArrayMove(newArray, m_nanoarrowTable[batchIdx]->children[colIdx]);
818828
m_newArrays[batchIdx].push_back(std::move(newUniqueArray));
819829
m_newSchemas[batchIdx].push_back(std::move(newUniqueField));

stress/unit/local_iterator.py

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,20 @@ def task_for_loop_iterator(bytes_data):
3232
pass
3333

3434

35+
def task_for_loop_table_iterator(bytes_data):
36+
arrow_iter = PyArrowIterator(
37+
None,
38+
io.BytesIO(bytes_data),
39+
arrow_context,
40+
False,
41+
False,
42+
False,
43+
)
44+
arrow_iter.init_table_unit()
45+
for _ in arrow_iter:
46+
pass
47+
48+
3549
def execute_task(task, bytes_data):
3650
for _ in range(iteration_cnt):
3751
task(bytes_data)
@@ -40,9 +54,11 @@ def execute_task(task, bytes_data):
4054
if __name__ == "__main__":
4155

4256
perf_check_task_for_loop_iterator = task_time_execution_decorator(
43-
task_for_loop_iterator
57+
task_for_loop_table_iterator
58+
)
59+
memory_check_task_for_loop_iterator = task_memory_decorator(
60+
task_for_loop_table_iterator
4461
)
45-
memory_check_task_for_loop_iterator = task_memory_decorator(task_for_loop_iterator)
4662

4763
execute_task(memory_check_task_for_loop_iterator, decoded_bytes)
4864
memory_records = stress_util.collect_memory_records()

0 commit comments

Comments
 (0)