2016-03-30 4 views
1

に割り当て:これはPostgresの拡張機能の一部であり、私はコードの行は、以下の私は、このエラーを与える理由を理解しようとしているのpalloc

ERROR: invalid memory alloc request size 1073741824 

ThisコードはPostgresのためのODBC FDWです。拡張機能を使用してSQL Serverの外部テーブルを作成すると、そのエラーが発生します。丁度のpallocで何

char * buf; 

//varsize contains the max size of nvarchar(max) 

buf = (char *)palloc(sizeof(char) * (varsize + 1)); 

:SQL Serverの列がNVARCHAR(MAX)として宣言されたときに問題が始まる、thisに応じてデータ型はnvarchar(MAX)の最大サイズは1073741823ですコードは、基本的にこれを行うにしよう1073741823以上をポインタに割り当てることはできません。それはサイズが整数の範囲を超えているようではない

答えて

2

this commentで詳細を読むことができますが、TL; DRはTOASTが1GB-1Bより大きなものを格納することができないため、それをpallocしようとしていますかなり無意味です。 MemoryContextAllocHuge()を使用する場所はいくつかありますが、それはあなたには役に立ちません。

関連する問題