We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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
#37 の調査中に発見しました。
tcache_create_column_store()で共有メモリからColumn Store用にメモリを確保していますが、 確保する際のサイズ(tcache.c:433)と、その直後に0で初期化する際のサイズ(tcache.c:436)が異なっていおり、 tcsのcdata以降の領域が初期化されことがあります。
直後のコードで具体的な値が代入されていくため、問題がないように見えましたが、 tcache.c:456からのfor文中のbms_is_member()がfalseを返却した場合、 cdataにゴミデータが残ったままとなってしまいます。
The text was updated successfully, but these errors were encountered:
確かに。tcache_column_store は可変長なので、offsetof(tcache_column_store, cdata[tupdesc->natts]) で初期化する必要がありますね。直しておきました。 ただ、length は tcs のヘッダおよびデータ領域を含むサイズ(数MB~数十MB)なので、これ全体をゼロクリアする必要はありません。
修正したのでクローズします。
Sorry, something went wrong.
No branches or pull requests
#37 の調査中に発見しました。
tcache_create_column_store()で共有メモリからColumn Store用にメモリを確保していますが、
確保する際のサイズ(tcache.c:433)と、その直後に0で初期化する際のサイズ(tcache.c:436)が異なっていおり、
tcsのcdata以降の領域が初期化されことがあります。
直後のコードで具体的な値が代入されていくため、問題がないように見えましたが、
tcache.c:456からのfor文中のbms_is_member()がfalseを返却した場合、
cdataにゴミデータが残ったままとなってしまいます。
The text was updated successfully, but these errors were encountered: