Daniel García Aubert
39625e044b
Set defaults to avoid error when confing is not provided
2019-07-08 11:48:32 +02:00
Daniel García Aubert
987f8f942a
Remove old abort checker and use a Node-ish mechanism to achieve the same goal
2019-07-05 15:41:26 +02:00
Daniel García Aubert
dbccd762ed
Improve condition readability
2019-07-04 16:52:18 +02:00
Daniel García Aubert
ccb0bbfb86
Set directive 'max-age' to 5 min when there are affacted tables where we can't know when were updated for the last time, e.g: non cartodified tables or foreing tables without cartodb support
2019-07-04 10:45:35 +02:00
Rafa de la Torre
0ee426172f
Log warnings from COPY TO
2019-06-04 16:40:25 +02:00
Daniel García Aubert
f6073c0729
Includes raster
2019-06-03 20:47:59 +02:00
Daniel García Aubert
bd9de97b79
Add tests
2019-06-03 20:42:49 +02:00
Daniel García Aubert
a6a4889cce
Please jshint
2019-06-03 17:45:38 +02:00
Daniel García Aubert
6417a734a0
Retrieve exact Pg field type information in JSON format
2019-06-03 17:37:40 +02:00
Daniel García Aubert
3b9f5a523d
Ensure query exists before returning the sql property
2019-05-31 12:35:37 +02:00
Daniel García Aubert
e991511434
Extract filename default vaule to a middleware
2019-05-31 12:08:18 +02:00
Daniel García Aubert
8ab98f705d
Going green, be able to handle post method for copyto endpoint
2019-05-31 11:54:20 +02:00
Daniel García Aubert
d37aef21a0
Use copy from protocal to cancel the copy query
2019-05-30 11:36:57 +02:00
Daniel García Aubert
06cb514ece
Remove unused reference
2019-05-30 11:36:14 +02:00
Daniel García Aubert
33e659c142
Please, linter
2019-05-29 11:38:25 +02:00
Daniel García Aubert
e6b9325b77
Extract class
2019-05-29 11:20:18 +02:00
Daniel García Aubert
6676260b17
Implement a throttler stream to check input data speed
2019-05-28 19:24:29 +02:00
Daniel García Aubert
5a116c69e9
Draft for copy from throttle
2019-05-27 19:32:43 +02:00
Daniel García Aubert
7a3e4d617d
Encapsulate cancel
2019-05-27 19:24:48 +02:00
Daniel García Aubert
73eb9656cd
Removing unpipe calls, regarding documentation, unpipe is emitted when error.
2019-05-27 15:26:44 +02:00
Daniel García Aubert
c0b5997745
Terminate backend when cancel did not work
2019-05-27 15:11:52 +02:00
Daniel García Aubert
19b9aab042
Do not resume internal connection stream (handled properly in the pg-copy-stream module)
2019-05-24 17:31:56 +02:00
Daniel García Aubert
c52dbb7a40
Release connection to the pool depending on the action
2019-05-24 15:53:09 +02:00
Daniel García Aubert
9c0e76bb4a
decouple cancel from the stream
2019-05-24 15:39:56 +02:00
Daniel García Aubert
7519037333
de-tab
2019-05-24 13:07:34 +02:00
Daniel García Aubert
b297005ebb
Do not pass unecessary parameter
2019-05-24 12:45:27 +02:00
Daniel García Aubert
e743fefe37
Don't use console.log to log errors
2019-05-16 17:46:59 +02:00
Daniel García Aubert
17de6e8d4f
Unpipe streams when error
2019-05-16 17:24:21 +02:00
Daniel García Aubert
9b21b813be
Do not pass error for emitting cancel events
2019-05-16 15:07:26 +02:00
Daniel García Aubert
62dc063677
Create stream at the begining
2019-05-16 15:06:27 +02:00
Daniel García Aubert
f7f96f004a
Be more specific with arguments
2019-05-16 12:19:03 +02:00
Daniel García Aubert
2208fb9764
Implement a cancel backend through query instead of node-postgres protocol
2019-05-14 15:39:54 +02:00
Raul Marin
915d86ab50
Update doc ref
2019-04-10 12:03:26 +02:00
Raul Marin
6be8f591bf
Add missing error codes
2019-04-10 12:01:40 +02:00
Daniel García Aubert
ce04cbcb45
Use callback properly
2019-04-04 18:21:49 +02:00
Daniel García Aubert
f2b5921ade
Flush batch logger to not lose info
2019-04-04 18:15:21 +02:00
Daniel García Aubert
2e2e233b68
Use 'bunyan' logger instead of 'debug' to log debug messages
2019-04-04 14:31:41 +02:00
Simon Martín
3b06161c04
jshint
2019-02-28 16:57:23 +01:00
Simon Martín
6c0d040b9b
improving logic with Batch API fallback query
2019-02-28 16:42:24 +01:00
Simon Martín
52e4dfa728
using the new TYPES
2019-02-28 11:49:05 +01:00
Simon Martín
a97c25e914
adding TYPES in middleware
2019-02-28 11:48:51 +01:00
Simon Martín
68aebe6b3f
Merge branch 'master' into log-queries
2019-02-27 16:14:12 +01:00
Simon Martín
27dbf65372
copy_from and copy_to params defaults
2019-02-27 13:14:16 +01:00
Simon Martín
c8eb265bd9
using config parametes in middleware
2019-02-27 12:51:01 +01:00
Simon Martín
25e54dc267
jshint
2019-02-27 11:59:04 +01:00
Simon Martín
0848b5e759
refactor to clone object and not modify the original
2019-02-27 11:57:28 +01:00
Simon Martín
e829df6367
using stringifyForLogs
2019-02-27 10:40:49 +01:00
Simon Martín
932420e21b
extracting stringifyForLogs function
2019-02-27 10:40:39 +01:00
Simon Martín
9e25cc9501
accept multiple values types in queries log
2019-02-27 10:07:56 +01:00
Simon Martín
feb3a21dfd
remove log code from query endpoints
2019-02-27 10:07:19 +01:00
Simon Martín
254d804f0c
fix log middleware folder
2019-02-27 09:04:43 +01:00
Simon Martín
09dcb6f2fa
log copy endpoint
2019-02-27 09:02:49 +01:00
Simon Martín
2066115002
log query and job endpoints
2019-02-27 09:02:31 +01:00
Simon Martín
2c1ce33e34
log middleware
2019-02-27 09:01:51 +01:00
Simon Martín
6768baa0ae
ensuring req.body
2019-02-26 17:11:11 +01:00
Simon Martín
b618691af9
splitting behavior batch & not batch handling query
2019-02-26 17:09:36 +01:00
Simon Martín
f925863534
using handle query middleware in copy endpoint
2019-02-26 16:43:18 +01:00
Simon Martín
90b693f050
handling job queries with middleware
2019-02-26 16:40:20 +01:00
Simon Martín
7b5a118c7e
renaming from q to sql in middleware
2019-02-26 16:34:26 +01:00
Simon Martín
a6eddef252
same things together
2019-02-26 15:05:14 +01:00
Simon Martín
69e2aaf748
using handleQueryMiddleware in query controller
2019-02-26 14:47:23 +01:00
Simon Martín
143af82b8b
semicolon
2019-02-26 14:40:41 +01:00
Simon Martín
0a5fc471c1
handleQueryMiddleware
2019-02-26 14:36:11 +01:00
Simon Martín
799b767505
remove old query log system
2019-02-26 13:58:01 +01:00
Daniel García Aubert
23d76393cd
Lint
2019-01-16 15:58:11 +01:00
Simon Martín
60702faa57
adding Authorization to Access-Control-Allow-Headers
2019-01-10 15:55:08 +01:00
Simon Martín
f947fd7cd5
Merge branch 'master' into unique-query-ratelimit
2019-01-09 08:50:41 +01:00
Raul Marin
df4732ff94
Consider cancelled queries as platform limits
2019-01-03 15:17:47 +01:00
Raul Marin
03701ae695
Set platform limits message on streaming responses too
2019-01-02 16:21:33 +01:00
Simon Martín
254896e666
remove query_format rate limit
2018-12-10 18:20:10 +01:00
Simon Martín
498ddc58b7
unique rate limit fot both query endpoints
2018-12-10 18:19:56 +01:00
Rafa de la Torre
aeec1922ee
Fix test and add const #543
2018-12-05 19:15:57 +01:00
Simon Martín
1293acca48
cancel query when Quota exceeded or max POST size
2018-11-29 18:15:14 +01:00
Daniel García Aubert
e0e011e806
Do not use assert to throw erros as in Node.js > 6 wraps the original error, the keyword 'throw' does the trick and it's backwards compatible
2018-11-07 18:05:39 +01:00
Daniel García Aubert
121a19eafb
Prevent: Octal literals are not allowed in strict mode.
2018-10-24 15:42:54 +02:00
Daniel García Aubert
a616982ec3
Use strict mode
2018-10-24 15:42:33 +02:00
Rafa de la Torre
d5a7f6d2d6
Fix paused stream (DB socket) after copy to #590
...
Ideally, the CopyToQueryStream would take care o piping, unpiping and
resuming the connection with the DB.
For some reason it does not always work when trying that from the
_transform callback.
Since there's no better callback (at least in node6), this patch is
required to make sure that such connection can be returned to the pool
and reused by some other query.
2018-09-17 16:54:51 +02:00
Simon Martín
32ff1e7a8e
ensure tmpDir folder
2018-08-30 12:27:34 +02:00
Simon Martín
9365986272
better message
2018-08-14 15:30:51 +02:00
Simon Martín
0a1f7c6ba5
copyto adding gzip to log
2018-08-14 15:14:22 +02:00
Simon Martín
735033faee
jshint
2018-08-10 14:39:32 +02:00
Simon Martín
c0ea5be5d3
Improve gzip error message
2018-08-10 14:38:50 +02:00
Simon Martín
9eeeadbc07
maintain req error handler
2018-08-10 14:38:24 +02:00
Rafa de la Torre
8a76df8884
Fix for unhandled gunzip/zlib errors #528
2018-08-10 12:37:49 +02:00
Rafa de la Torre
a709e8f26f
Set the default copy_from_max_post_size to 2 GB
...
Set the default copy_from_max_post_size to exactly 2 GB, as the nginx
limitation has been removed for that endpoint. So, the application is
now in control and this keeps the code clear and clean.
2018-07-26 12:52:20 +02:00
Rafa de la Torre
82348a79a5
Remove unnecessary metrics.end(null, err)
...
As per comment in PR
2018-07-24 14:36:39 +02:00
Rafa de la Torre
19c9c15969
Replace let by const in pseudo-constant conditional assignment
2018-07-23 18:41:27 +02:00
Rafa de la Torre
151bffaad4
return to avoid further errors
...
As per a PR comment: `return done(err);` should prevent further errors
and make sure the request is over.
2018-07-23 18:39:30 +02:00
Rafa de la Torre
21295a2d93
Use pgstream.emit('error', myError)
...
As suggested in PR, emit our own error to deal with the quota and max
POST size checks, to do proper error handling.
2018-07-23 18:29:41 +02:00
Rafa de la Torre
a35a519702
Use CAPITALS for constants (as suggested in PR)
2018-07-23 18:24:48 +02:00
Rafa de la Torre
bac9e94428
Please jshint
2018-07-23 17:15:21 +02:00
Rafa de la Torre
774c144837
Implementation of the max POST size check
2018-07-23 16:59:05 +02:00
Rafa de la Torre
8ec7e0e309
Fix for "Can't set headers after they are sent"
2018-07-23 16:15:11 +02:00
Rafa de la Torre
a5046f58de
Add dbRemainingQuota check to COPY FROM
2018-07-23 15:05:22 +02:00
Rafa de la Torre
84d88f91fb
Better implementation of dbQuotaMiddleware
2018-07-23 15:02:20 +02:00
Rafa de la Torre
7e54912ee4
First version of the dbQuotaMiddleware
2018-07-23 14:38:56 +02:00
Rafa de la Torre
ea46db5923
Remove uneeded timeout middleware
2018-07-20 17:48:56 +02:00
Rafa de la Torre
cc348f3725
Make the SET statement_timeout async
2018-07-20 16:25:47 +02:00
Rafa de la Torre
17c8cbc723
Add a timeout setting for COPY commands
2018-07-20 15:32:32 +02:00
Rafa de la Torre
763134437b
Use the db_batch_port for copy
2018-07-20 10:22:54 +02:00