@@ -49,7 +49,8 @@ CREATE OR REPLACE FUNCTION aws_s3.table_import_from_s3 (
49
49
secret_key text default null ,
50
50
session_token text default null ,
51
51
endpoint_url text default null ,
52
- read_timeout integer default 60
52
+ read_timeout integer default 60 ,
53
+ tempfile_dir text default ' /var/lib/postgresql/data/'
53
54
) RETURNS int
54
55
LANGUAGE plpython3u
55
56
AS $$
@@ -112,7 +113,7 @@ AS $$
112
113
body = response[' Body' ]
113
114
user_content_encoding = response .get (' x-amz-meta-content-encoding' )
114
115
115
- with tempfile .NamedTemporaryFile () as fd:
116
+ with tempfile .NamedTemporaryFile (dir = tempfile_dir ) as fd:
116
117
if (content_encoding and content_encoding .lower () == ' gzip' ) or (user_content_encoding and user_content_encoding .lower () == ' gzip' ):
117
118
with gzip .GzipFile (fileobj= body) as gzipfile:
118
119
while fd .write (gzipfile .read (204800 )):
@@ -144,14 +145,15 @@ CREATE OR REPLACE FUNCTION aws_s3.table_import_from_s3(
144
145
s3_info aws_commons ._s3_uri_1 ,
145
146
credentials aws_commons ._aws_credentials_1 ,
146
147
endpoint_url text default null ,
147
- read_timeout integer default 60
148
+ read_timeout integer default 60 ,
149
+ tempfile_dir text default ' /var/lib/postgresql/data/'
148
150
) RETURNS INT
149
151
LANGUAGE plpython3u
150
152
AS $$
151
153
152
154
plan = plpy .prepare (
153
- ' SELECT aws_s3.table_import_from_s3($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11) AS num_rows' ,
154
- [' TEXT' , ' TEXT' , ' TEXT' , ' TEXT' , ' TEXT' , ' TEXT' , ' TEXT' , ' TEXT' , ' TEXT' , ' TEXT' , ' INTEGER' ]
155
+ ' SELECT aws_s3.table_import_from_s3($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12 ) AS num_rows' ,
156
+ [' TEXT' , ' TEXT' , ' TEXT' , ' TEXT' , ' TEXT' , ' TEXT' , ' TEXT' , ' TEXT' , ' TEXT' , ' TEXT' , ' INTEGER' , ' TEXT ' ]
155
157
)
156
158
return plan .execute (
157
159
[
@@ -182,6 +184,7 @@ CREATE OR REPLACE FUNCTION aws_s3.query_export_to_s3(
182
184
endpoint_url text default null ,
183
185
read_timeout integer default 60 ,
184
186
override boolean default false,
187
+ tempfile_dir text default ' /var/lib/postgresql/data/' ,
185
188
OUT rows_uploaded bigint ,
186
189
OUT files_uploaded bigint ,
187
190
OUT bytes_uploaded bigint
@@ -245,7 +248,7 @@ AS $$
245
248
counter + = 1
246
249
upload_file_path = get_unique_file_path(base_name, counter, extension)
247
250
248
- with tempfile .NamedTemporaryFile () as fd:
251
+ with tempfile .NamedTemporaryFile (dir = tempfile_dir ) as fd:
249
252
plan = plpy .prepare (
250
253
" COPY ({query}) TO '{filename}' {options}" .format(
251
254
query= query,
@@ -278,15 +281,16 @@ CREATE OR REPLACE FUNCTION aws_s3.query_export_to_s3(
278
281
endpoint_url text default null ,
279
282
read_timeout integer default 60 ,
280
283
override boolean default false,
284
+ tempfile_dir text default ' /var/lib/postgresql/data/' ,
281
285
OUT rows_uploaded bigint ,
282
286
OUT files_uploaded bigint ,
283
287
OUT bytes_uploaded bigint
284
288
) RETURNS SETOF RECORD
285
289
LANGUAGE plpython3u
286
290
AS $$
287
291
plan = plpy .prepare (
288
- ' SELECT * FROM aws_s3.query_export_to_s3($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11)' ,
289
- [' TEXT' , ' TEXT' , ' TEXT' , ' TEXT' , ' TEXT' , ' TEXT' , ' TEXT' , ' TEXT' , ' TEXT' , ' INTEGER' , ' BOOLEAN' ]
292
+ ' SELECT * FROM aws_s3.query_export_to_s3($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12 )' ,
293
+ [' TEXT' , ' TEXT' , ' TEXT' , ' TEXT' , ' TEXT' , ' TEXT' , ' TEXT' , ' TEXT' , ' TEXT' , ' INTEGER' , ' BOOLEAN' , ' TEXT ' ]
290
294
)
291
295
return plan .execute (
292
296
[
0 commit comments