@@ -212,7 +212,8 @@ def query(self,
212
212
context : QueryContext = None ,
213
213
query_tz : Optional [Union [str , tzinfo ]] = None ,
214
214
column_tzs : Optional [Dict [str , Union [str , tzinfo ]]] = None ,
215
- external_data : Optional [ExternalData ] = None ) -> QueryResult :
215
+ external_data : Optional [ExternalData ] = None ,
216
+ extra_http_headers : Optional [Dict [str , str ]] = None ) -> QueryResult :
216
217
"""
217
218
Main query method for SELECT, DESCRIBE and other SQL statements that return a result matrix. For
218
219
parameters, see the create_query_context method
@@ -228,7 +229,8 @@ def query(self,
228
229
response = self .command (query ,
229
230
parameters = query_context .parameters ,
230
231
settings = query_context .settings ,
231
- external_data = query_context .external_data )
232
+ external_data = query_context .external_data ,
233
+ extra_http_headers = query_context .extra_http_headers )
232
234
if isinstance (response , QuerySummary ):
233
235
return response .as_query_result ()
234
236
return QueryResult ([response ] if isinstance (response , list ) else [[response ]])
@@ -245,7 +247,8 @@ def query_column_block_stream(self,
245
247
context : QueryContext = None ,
246
248
query_tz : Optional [Union [str , tzinfo ]] = None ,
247
249
column_tzs : Optional [Dict [str , Union [str , tzinfo ]]] = None ,
248
- external_data : Optional [ExternalData ] = None ) -> StreamContext :
250
+ external_data : Optional [ExternalData ] = None ,
251
+ extra_http_headers : Optional [Dict [str , str ]] = None ) -> StreamContext :
249
252
"""
250
253
Variation of main query method that returns a stream of column oriented blocks. For
251
254
parameters, see the create_query_context method.
@@ -264,7 +267,8 @@ def query_row_block_stream(self,
264
267
context : QueryContext = None ,
265
268
query_tz : Optional [Union [str , tzinfo ]] = None ,
266
269
column_tzs : Optional [Dict [str , Union [str , tzinfo ]]] = None ,
267
- external_data : Optional [ExternalData ] = None ) -> StreamContext :
270
+ external_data : Optional [ExternalData ] = None ,
271
+ extra_http_headers : Optional [Dict [str , str ]] = None ) -> StreamContext :
268
272
"""
269
273
Variation of main query method that returns a stream of row oriented blocks. For
270
274
parameters, see the create_query_context method.
@@ -283,7 +287,8 @@ def query_rows_stream(self,
283
287
context : QueryContext = None ,
284
288
query_tz : Optional [Union [str , tzinfo ]] = None ,
285
289
column_tzs : Optional [Dict [str , Union [str , tzinfo ]]] = None ,
286
- external_data : Optional [ExternalData ] = None ) -> StreamContext :
290
+ external_data : Optional [ExternalData ] = None ,
291
+ extra_http_headers : Optional [Dict [str , str ]] = None ) -> StreamContext :
287
292
"""
288
293
Variation of main query method that returns a stream of row oriented blocks. For
289
294
parameters, see the create_query_context method.
@@ -297,16 +302,19 @@ def raw_query(self, query: str,
297
302
settings : Optional [Dict [str , Any ]] = None ,
298
303
fmt : str = None ,
299
304
use_database : bool = True ,
300
- external_data : Optional [ExternalData ] = None ) -> bytes :
305
+ external_data : Optional [ExternalData ] = None ,
306
+ extra_http_headers : Optional [Dict [str , str ]] = None ) -> bytes :
301
307
"""
302
308
Query method that simply returns the raw ClickHouse format bytes
303
309
:param query: Query statement/format string
304
310
:param parameters: Optional dictionary used to format the query
305
311
:param settings: Optional dictionary of ClickHouse settings (key/string values)
306
312
:param fmt: ClickHouse output format
307
- :param use_database Send the database parameter to ClickHouse so the command will be executed in the client
313
+ :param use_database: Send the database parameter to ClickHouse so the command will be executed in the client
308
314
database context.
309
- :param external_data External data to send with the query
315
+ :param external_data: External data to send with the query
316
+ :param extra_http_headers: Optional dictionary of extra HTTP headers to pass to ClickHouse,
317
+ useful if using Proxy.
310
318
:return: bytes representing raw ClickHouse return value based on format
311
319
"""
312
320
@@ -316,7 +324,8 @@ def raw_stream(self, query: str,
316
324
settings : Optional [Dict [str , Any ]] = None ,
317
325
fmt : str = None ,
318
326
use_database : bool = True ,
319
- external_data : Optional [ExternalData ] = None ) -> io .IOBase :
327
+ external_data : Optional [ExternalData ] = None ,
328
+ extra_http_headers : Optional [Dict [str , str ]] = None ) -> io .IOBase :
320
329
"""
321
330
Query method that returns the result as an io.IOBase iterator
322
331
:param query: Query statement/format string
@@ -325,7 +334,9 @@ def raw_stream(self, query: str,
325
334
:param fmt: ClickHouse output format
326
335
:param use_database Send the database parameter to ClickHouse so the command will be executed in the client
327
336
database context.
328
- :param external_data External data to send with the query
337
+ :param external_data: External data to send with the query.
338
+ :param extra_http_headers: Optional dictionary of extra HTTP headers to pass to ClickHouse,
339
+ useful if using Proxy.
329
340
:return: io.IOBase stream/iterator for the result
330
341
"""
331
342
@@ -340,7 +351,8 @@ def query_np(self,
340
351
use_none : Optional [bool ] = None ,
341
352
max_str_len : Optional [int ] = None ,
342
353
context : QueryContext = None ,
343
- external_data : Optional [ExternalData ] = None ):
354
+ external_data : Optional [ExternalData ] = None ,
355
+ extra_http_headers : Optional [Dict [str , str ]] = None ):
344
356
"""
345
357
Query method that returns the results as a numpy array. For parameter values, see the
346
358
create_query_context method
@@ -360,7 +372,8 @@ def query_np_stream(self,
360
372
use_none : Optional [bool ] = None ,
361
373
max_str_len : Optional [int ] = None ,
362
374
context : QueryContext = None ,
363
- external_data : Optional [ExternalData ] = None ) -> StreamContext :
375
+ external_data : Optional [ExternalData ] = None ,
376
+ extra_http_headers : Optional [Dict [str , str ]] = None ) -> StreamContext :
364
377
"""
365
378
Query method that returns the results as a stream of numpy arrays. For parameter values, see the
366
379
create_query_context method
@@ -384,7 +397,8 @@ def query_df(self,
384
397
column_tzs : Optional [Dict [str , Union [str , tzinfo ]]] = None ,
385
398
context : QueryContext = None ,
386
399
external_data : Optional [ExternalData ] = None ,
387
- use_extended_dtypes : Optional [bool ] = None ):
400
+ use_extended_dtypes : Optional [bool ] = None ,
401
+ extra_http_headers : Optional [Dict [str , str ]] = None ):
388
402
"""
389
403
Query method that results the results as a pandas dataframe. For parameter values, see the
390
404
create_query_context method
@@ -408,7 +422,8 @@ def query_df_stream(self,
408
422
column_tzs : Optional [Dict [str , Union [str , tzinfo ]]] = None ,
409
423
context : QueryContext = None ,
410
424
external_data : Optional [ExternalData ] = None ,
411
- use_extended_dtypes : Optional [bool ] = None ) -> StreamContext :
425
+ use_extended_dtypes : Optional [bool ] = None ,
426
+ extra_http_headers : Optional [Dict [str , str ]] = None ) -> StreamContext :
412
427
"""
413
428
Query method that returns the results as a StreamContext. For parameter values, see the
414
429
create_query_context method
@@ -437,7 +452,8 @@ def create_query_context(self,
437
452
streaming : bool = False ,
438
453
as_pandas : bool = False ,
439
454
external_data : Optional [ExternalData ] = None ,
440
- use_extended_dtypes : Optional [bool ] = None ) -> QueryContext :
455
+ use_extended_dtypes : Optional [bool ] = None ,
456
+ extra_http_headers : Optional [Dict [str , str ]] = None ) -> QueryContext :
441
457
"""
442
458
Creates or updates a reusable QueryContext object
443
459
:param query: Query statement/format string
@@ -455,10 +471,10 @@ def create_query_context(self,
455
471
structured array even with ClickHouse variable length String columns. If 0, Numpy arrays for
456
472
String columns will always be object arrays
457
473
:param context: An existing QueryContext to be updated with any provided parameter values
458
- :param query_tz Either a string or a pytz tzinfo object. (Strings will be converted to tzinfo objects).
474
+ :param query_tz: Either a string or a pytz tzinfo object. (Strings will be converted to tzinfo objects).
459
475
Values for any DateTime or DateTime64 column in the query will be converted to Python datetime.datetime
460
476
objects with the selected timezone.
461
- :param column_tzs A dictionary of column names to tzinfo objects (or strings that will be converted to
477
+ :param column_tzs: A dictionary of column names to tzinfo objects (or strings that will be converted to
462
478
tzinfo objects). The timezone will be applied to datetime objects returned in the query
463
479
:param use_na_values: Deprecated alias for use_advanced_dtypes
464
480
:param as_pandas Return the result columns as pandas.Series objects
@@ -467,6 +483,8 @@ def create_query_context(self,
467
483
:param use_extended_dtypes: Only relevant to Pandas Dataframe queries. Use Pandas "missing types", such as
468
484
pandas.NA and pandas.NaT for ClickHouse NULL values, as well as extended Pandas dtypes such as IntegerArray
469
485
and StringArray. Defaulted to True for query_df methods
486
+ :param extra_http_headers: Optional dictionary of extra HTTP headers to pass to ClickHouse,
487
+ useful if using Proxy.
470
488
:return: Reusable QueryContext
471
489
"""
472
490
if context :
@@ -510,21 +528,25 @@ def create_query_context(self,
510
528
as_pandas = as_pandas ,
511
529
streaming = streaming ,
512
530
apply_server_tz = self .apply_server_timezone ,
513
- external_data = external_data )
531
+ external_data = external_data ,
532
+ extra_http_headers = extra_http_headers )
514
533
515
534
def query_arrow (self ,
516
535
query : str ,
517
536
parameters : Optional [Union [Sequence , Dict [str , Any ]]] = None ,
518
537
settings : Optional [Dict [str , Any ]] = None ,
519
538
use_strings : Optional [bool ] = None ,
520
- external_data : Optional [ExternalData ] = None ):
539
+ external_data : Optional [ExternalData ] = None ,
540
+ extra_http_headers : Optional [Dict [str , str ]] = None ):
521
541
"""
522
542
Query method using the ClickHouse Arrow format to return a PyArrow table
523
543
:param query: Query statement/format string
524
544
:param parameters: Optional dictionary used to format the query
525
545
:param settings: Optional dictionary of ClickHouse settings (key/string values)
526
- :param use_strings: Convert ClickHouse String type to Arrow string type (instead of binary)
527
- :param external_data ClickHouse "external data" to send with query
546
+ :param use_strings: Convert ClickHouse String type to Arrow string type (instead of binary)
547
+ :param external_data: ClickHouse "external data" to send with query
548
+ :param extra_http_headers: Optional dictionary of extra HTTP headers to pass to ClickHouse,
549
+ useful if using Proxy.
528
550
:return: PyArrow.Table
529
551
"""
530
552
check_arrow ()
@@ -533,21 +555,25 @@ def query_arrow(self,
533
555
parameters ,
534
556
settings ,
535
557
fmt = 'Arrow' ,
536
- external_data = external_data ))
558
+ external_data = external_data ,
559
+ extra_http_headers = extra_http_headers ))
537
560
538
561
def query_arrow_stream (self ,
539
562
query : str ,
540
563
parameters : Optional [Union [Sequence , Dict [str , Any ]]] = None ,
541
564
settings : Optional [Dict [str , Any ]] = None ,
542
565
use_strings : Optional [bool ] = None ,
543
- external_data : Optional [ExternalData ] = None ) -> StreamContext :
566
+ external_data : Optional [ExternalData ] = None ,
567
+ extra_http_headers : Optional [Dict [str , str ]] = None ) -> StreamContext :
544
568
"""
545
569
Query method that returns the results as a stream of Arrow tables
546
570
:param query: Query statement/format string
547
571
:param parameters: Optional dictionary used to format the query
548
572
:param settings: Optional dictionary of ClickHouse settings (key/string values)
549
- :param use_strings: Convert ClickHouse String type to Arrow string type (instead of binary)
550
- :param external_data ClickHouse "external data" to send with query
573
+ :param use_strings: Convert ClickHouse String type to Arrow string type (instead of binary)
574
+ :param external_data: ClickHouse "external data" to send with query
575
+ :param extra_http_headers: Optional dictionary of extra HTTP headers to pass to ClickHouse,
576
+ useful if using Proxy.
551
577
:return: Generator that yields a PyArrow.Table for per block representing the result set
552
578
"""
553
579
check_arrow ()
@@ -556,7 +582,8 @@ def query_arrow_stream(self,
556
582
parameters ,
557
583
settings ,
558
584
fmt = 'ArrowStream' ,
559
- external_data = external_data ))
585
+ external_data = external_data ,
586
+ extra_http_headers = extra_http_headers ))
560
587
561
588
def _update_arrow_settings (self ,
562
589
settings : Optional [Dict [str , Any ]],
@@ -581,17 +608,20 @@ def command(self,
581
608
data : Union [str , bytes ] = None ,
582
609
settings : Dict [str , Any ] = None ,
583
610
use_database : bool = True ,
584
- external_data : Optional [ExternalData ] = None ) -> Union [str , int , Sequence [str ], QuerySummary ]:
611
+ external_data : Optional [ExternalData ] = None ,
612
+ extra_http_headers : Optional [Dict [str , str ]] = None ) -> Union [str , int , Sequence [str ], QuerySummary ]:
585
613
"""
586
614
Client method that returns a single value instead of a result set
587
615
:param cmd: ClickHouse query/command as a python format string
588
616
:param parameters: Optional dictionary of key/values pairs to be formatted
589
617
:param data: Optional 'data' for the command (for INSERT INTO in particular)
590
618
:param settings: Optional dictionary of ClickHouse settings (key/string values)
591
619
:param use_database: Send the database parameter to ClickHouse so the command will be executed in the client
592
- database context. Otherwise, no database will be specified with the command. This is useful for determining
620
+ database context. Otherwise, no database will be specified with the command. This is useful for determining
593
621
the default user database
594
- :param external_data ClickHouse "external data" to send with command/query
622
+ :param external_data: ClickHouse "external data" to send with command/query
623
+ :param extra_http_headers: Optional dictionary of extra HTTP headers to pass to ClickHouse,
624
+ useful if using Proxy.
595
625
:return: Decoded response from ClickHouse as either a string, int, or sequence of strings, or QuerySummary
596
626
if no data returned
597
627
"""
0 commit comments