Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dispose of most uses of LogicalType and Node #290

Merged
merged 7 commits into from
Jul 21, 2022

Conversation

adamreeve
Copy link
Contributor

@adamreeve adamreeve commented Jul 4, 2022

In this PR I've tried to dispose of most internal uses of LogicalType and Node to reduce the need to run finalizers.

There is still one main place where we create logical types and nodes that aren't disposed that I'm aware of. In LogicalColumnStream, the LogicalType and SchemaNodesPath properties are initialized in the constructor rather than being getters that create new instances, so these should probably be disposed when disposing the LogicalColumnStream instance. But there's a small chance that could be a breaking change if somebody is expecting to be able to continue using those after the LogicalColumnStream is disposed, so I've currently left that as-is.

There's also RowOriented.ParquetFile.GetColumn which creates logical types that aren't disposed, and I couldn't see a straightforward way to fix that.

{
}

public ParquetFileReader(string path, ReaderProperties readerProperties)
public ParquetFileReader(string path, ReaderProperties? readerProperties)
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nullability of reference types isn't part of the binary method signature so this is ABI compatible as well as source compatible.

csharp.test/TestByteArrayReaderCache.cs Show resolved Hide resolved
csharp/ColumnDescriptor.cs Outdated Show resolved Hide resolved
csharp/Schema/GroupNode.cs Outdated Show resolved Hide resolved
csharp/Schema/GroupNode.cs Show resolved Hide resolved
adamreeve and others added 2 commits July 6, 2022 10:37
Co-authored-by: Marcin Krystianc <marcin.krystianc@gmail.com>
@adamreeve adamreeve merged commit ca001e2 into G-Research:master Jul 21, 2022
@adamreeve adamreeve deleted the handle_free branch July 21, 2022 23:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants