presto-client 0.4.14 → 0.4.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/ChangeLog +4 -0
- data/lib/presto/client/models.rb +204 -0
- data/lib/presto/client/statement_client.rb +22 -6
- data/lib/presto/client/version.rb +1 -1
- data/modelgen/models.rb +18 -0
- data/modelgen/presto_models.rb +5 -0
- data/spec/statement_client_spec.rb +19 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 160eac662fe5a07e72ed26e97ac08e7c315226a1
|
4
|
+
data.tar.gz: 50b4e8e1dbd4dcbe4e5990e95aaa1be5296e44b9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4b562d91bd4440c249894c8d1569e3b67705220411db41b27a950c3780312609b26a6378572778a1db4b7cacdc487022e2a59cfb42a6a4f1986d85c2eb1fa1f0
|
7
|
+
data.tar.gz: 24e48484fbafa9de9034aedbd700a3f4ef81f4fd48e4914b14f90200e54b921b1815d5552a447f189dd1c04b9a625dd1f4aafe403c63fe970a69cac1cb10be0c
|
data/ChangeLog
CHANGED
data/lib/presto/client/models.rb
CHANGED
@@ -77,6 +77,9 @@ module Presto::Client
|
|
77
77
|
|
78
78
|
module PlanNode
|
79
79
|
def self.decode(hash)
|
80
|
+
unless hash.is_a?(Hash)
|
81
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
82
|
+
end
|
80
83
|
model_class = case hash["@type"]
|
81
84
|
when "output" then OutputNode
|
82
85
|
when "project" then ProjectNode
|
@@ -122,6 +125,9 @@ module Presto::Client
|
|
122
125
|
class << DistributionSnapshot =
|
123
126
|
Base.new(:max_error, :count, :total, :p01, :p05, :p10, :p25, :p50, :p75, :p90, :p95, :p99, :min, :max)
|
124
127
|
def decode(hash)
|
128
|
+
unless hash.is_a?(Hash)
|
129
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
130
|
+
end
|
125
131
|
obj = allocate
|
126
132
|
obj.send(:initialize_struct,
|
127
133
|
hash["maxError"],
|
@@ -147,6 +153,9 @@ module Presto::Client
|
|
147
153
|
class << EquiJoinClause =
|
148
154
|
Base.new(:left, :right, :probe, :index)
|
149
155
|
def decode(hash)
|
156
|
+
unless hash.is_a?(Hash)
|
157
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
158
|
+
end
|
150
159
|
obj = allocate
|
151
160
|
obj.send(:initialize_struct,
|
152
161
|
hash["left"],
|
@@ -161,6 +170,9 @@ module Presto::Client
|
|
161
170
|
class << WriterTarget =
|
162
171
|
Base.new(:type, :handle)
|
163
172
|
def decode(hash)
|
173
|
+
unless hash.is_a?(Hash)
|
174
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
175
|
+
end
|
164
176
|
obj = allocate
|
165
177
|
model_class = case hash["@type"]
|
166
178
|
when "CreateHandle" then OutputTableHandle
|
@@ -178,6 +190,9 @@ module Presto::Client
|
|
178
190
|
class << DeleteHandle =
|
179
191
|
Base.new(:handle)
|
180
192
|
def decode(hash)
|
193
|
+
unless hash.is_a?(Hash)
|
194
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
195
|
+
end
|
181
196
|
obj = allocate
|
182
197
|
obj.send(:initialize_struct,
|
183
198
|
TableHandle.decode(hash['handle'])
|
@@ -191,6 +206,9 @@ module Presto::Client
|
|
191
206
|
class << PageBufferInfo =
|
192
207
|
Base.new(:partition, :buffered_pages, :queued_pages, :buffered_bytes, :pages_added)
|
193
208
|
def decode(hash)
|
209
|
+
unless hash.is_a?(Hash)
|
210
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
211
|
+
end
|
194
212
|
obj = allocate
|
195
213
|
obj.send(:initialize_struct,
|
196
214
|
hash["partition"],
|
@@ -210,6 +228,9 @@ module Presto::Client
|
|
210
228
|
class << AggregationNode =
|
211
229
|
Base.new(:id, :source, :group_by, :aggregations, :functions, :masks, :step, :sample_weight, :confidence, :hash_symbol)
|
212
230
|
def decode(hash)
|
231
|
+
unless hash.is_a?(Hash)
|
232
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
233
|
+
end
|
213
234
|
obj = allocate
|
214
235
|
obj.send(:initialize_struct,
|
215
236
|
hash["id"],
|
@@ -230,6 +251,9 @@ module Presto::Client
|
|
230
251
|
class << BufferInfo =
|
231
252
|
Base.new(:buffer_id, :finished, :buffered_pages, :pages_sent, :page_buffer_info)
|
232
253
|
def decode(hash)
|
254
|
+
unless hash.is_a?(Hash)
|
255
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
256
|
+
end
|
233
257
|
obj = allocate
|
234
258
|
obj.send(:initialize_struct,
|
235
259
|
hash["bufferId"] && TaskId.new(hash["bufferId"]),
|
@@ -245,6 +269,9 @@ module Presto::Client
|
|
245
269
|
class << ClientColumn =
|
246
270
|
Base.new(:name, :type, :type_signature)
|
247
271
|
def decode(hash)
|
272
|
+
unless hash.is_a?(Hash)
|
273
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
274
|
+
end
|
248
275
|
obj = allocate
|
249
276
|
obj.send(:initialize_struct,
|
250
277
|
hash["name"],
|
@@ -258,6 +285,9 @@ module Presto::Client
|
|
258
285
|
class << ClientStageStats =
|
259
286
|
Base.new(:stage_id, :state, :done, :nodes, :total_splits, :queued_splits, :running_splits, :completed_splits, :user_time_millis, :cpu_time_millis, :wall_time_millis, :processed_rows, :processed_bytes, :sub_stages)
|
260
287
|
def decode(hash)
|
288
|
+
unless hash.is_a?(Hash)
|
289
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
290
|
+
end
|
261
291
|
obj = allocate
|
262
292
|
obj.send(:initialize_struct,
|
263
293
|
hash["stageId"],
|
@@ -282,6 +312,9 @@ module Presto::Client
|
|
282
312
|
class << ClientTypeSignature =
|
283
313
|
Base.new(:raw_type, :type_arguments, :literal_arguments, :arguments)
|
284
314
|
def decode(hash)
|
315
|
+
unless hash.is_a?(Hash)
|
316
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
317
|
+
end
|
285
318
|
obj = allocate
|
286
319
|
obj.send(:initialize_struct,
|
287
320
|
hash["rawType"],
|
@@ -296,6 +329,9 @@ module Presto::Client
|
|
296
329
|
class << ClientTypeSignatureParameter =
|
297
330
|
Base.new(:kind, :value)
|
298
331
|
def decode(hash)
|
332
|
+
unless hash.is_a?(Hash)
|
333
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
334
|
+
end
|
299
335
|
obj = allocate
|
300
336
|
obj.send(:initialize_struct,
|
301
337
|
hash["kind"] && hash["kind"].downcase.to_sym,
|
@@ -308,6 +344,9 @@ module Presto::Client
|
|
308
344
|
class << Column =
|
309
345
|
Base.new(:name, :type)
|
310
346
|
def decode(hash)
|
347
|
+
unless hash.is_a?(Hash)
|
348
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
349
|
+
end
|
311
350
|
obj = allocate
|
312
351
|
obj.send(:initialize_struct,
|
313
352
|
hash["name"],
|
@@ -320,6 +359,9 @@ module Presto::Client
|
|
320
359
|
class << DeleteNode =
|
321
360
|
Base.new(:id, :source, :target, :row_id, :outputs)
|
322
361
|
def decode(hash)
|
362
|
+
unless hash.is_a?(Hash)
|
363
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
364
|
+
end
|
323
365
|
obj = allocate
|
324
366
|
obj.send(:initialize_struct,
|
325
367
|
hash["id"],
|
@@ -335,6 +377,9 @@ module Presto::Client
|
|
335
377
|
class << DistinctLimitNode =
|
336
378
|
Base.new(:id, :source, :limit, :hash_symbol)
|
337
379
|
def decode(hash)
|
380
|
+
unless hash.is_a?(Hash)
|
381
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
382
|
+
end
|
338
383
|
obj = allocate
|
339
384
|
obj.send(:initialize_struct,
|
340
385
|
hash["id"],
|
@@ -349,6 +394,9 @@ module Presto::Client
|
|
349
394
|
class << DriverStats =
|
350
395
|
Base.new(:create_time, :start_time, :end_time, :queued_time, :elapsed_time, :memory_reservation, :system_memory_reservation, :total_scheduled_time, :total_cpu_time, :total_user_time, :total_blocked_time, :fully_blocked, :blocked_reasons, :raw_input_data_size, :raw_input_positions, :raw_input_read_time, :processed_input_data_size, :processed_input_positions, :output_data_size, :output_positions, :operator_stats)
|
351
396
|
def decode(hash)
|
397
|
+
unless hash.is_a?(Hash)
|
398
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
399
|
+
end
|
352
400
|
obj = allocate
|
353
401
|
obj.send(:initialize_struct,
|
354
402
|
hash["createTime"],
|
@@ -380,6 +428,9 @@ module Presto::Client
|
|
380
428
|
class << EnforceSingleRowNode =
|
381
429
|
Base.new(:id, :source)
|
382
430
|
def decode(hash)
|
431
|
+
unless hash.is_a?(Hash)
|
432
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
433
|
+
end
|
383
434
|
obj = allocate
|
384
435
|
obj.send(:initialize_struct,
|
385
436
|
hash["id"],
|
@@ -392,6 +443,9 @@ module Presto::Client
|
|
392
443
|
class << ErrorCode =
|
393
444
|
Base.new(:code, :name)
|
394
445
|
def decode(hash)
|
446
|
+
unless hash.is_a?(Hash)
|
447
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
448
|
+
end
|
395
449
|
obj = allocate
|
396
450
|
obj.send(:initialize_struct,
|
397
451
|
hash["code"],
|
@@ -404,6 +458,9 @@ module Presto::Client
|
|
404
458
|
class << ErrorLocation =
|
405
459
|
Base.new(:line_number, :column_number)
|
406
460
|
def decode(hash)
|
461
|
+
unless hash.is_a?(Hash)
|
462
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
463
|
+
end
|
407
464
|
obj = allocate
|
408
465
|
obj.send(:initialize_struct,
|
409
466
|
hash["lineNumber"],
|
@@ -416,6 +473,9 @@ module Presto::Client
|
|
416
473
|
class << ExchangeNode =
|
417
474
|
Base.new(:id, :type, :partition_function, :sources, :outputs, :inputs)
|
418
475
|
def decode(hash)
|
476
|
+
unless hash.is_a?(Hash)
|
477
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
478
|
+
end
|
419
479
|
obj = allocate
|
420
480
|
obj.send(:initialize_struct,
|
421
481
|
hash["id"],
|
@@ -432,6 +492,9 @@ module Presto::Client
|
|
432
492
|
class << ExecutionFailureInfo =
|
433
493
|
Base.new(:type, :message, :cause, :suppressed, :stack, :error_location, :error_code)
|
434
494
|
def decode(hash)
|
495
|
+
unless hash.is_a?(Hash)
|
496
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
497
|
+
end
|
435
498
|
obj = allocate
|
436
499
|
obj.send(:initialize_struct,
|
437
500
|
hash["type"],
|
@@ -449,6 +512,9 @@ module Presto::Client
|
|
449
512
|
class << FailureInfo =
|
450
513
|
Base.new(:type, :message, :cause, :suppressed, :stack, :error_location)
|
451
514
|
def decode(hash)
|
515
|
+
unless hash.is_a?(Hash)
|
516
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
517
|
+
end
|
452
518
|
obj = allocate
|
453
519
|
obj.send(:initialize_struct,
|
454
520
|
hash["type"],
|
@@ -465,6 +531,9 @@ module Presto::Client
|
|
465
531
|
class << FilterNode =
|
466
532
|
Base.new(:id, :source, :predicate)
|
467
533
|
def decode(hash)
|
534
|
+
unless hash.is_a?(Hash)
|
535
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
536
|
+
end
|
468
537
|
obj = allocate
|
469
538
|
obj.send(:initialize_struct,
|
470
539
|
hash["id"],
|
@@ -478,6 +547,9 @@ module Presto::Client
|
|
478
547
|
class << IndexHandle =
|
479
548
|
Base.new(:connector_id, :transaction_handle, :connector_handle)
|
480
549
|
def decode(hash)
|
550
|
+
unless hash.is_a?(Hash)
|
551
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
552
|
+
end
|
481
553
|
obj = allocate
|
482
554
|
obj.send(:initialize_struct,
|
483
555
|
hash["connectorId"],
|
@@ -491,6 +563,9 @@ module Presto::Client
|
|
491
563
|
class << IndexJoinNode =
|
492
564
|
Base.new(:id, :type, :probe_source, :index_source, :criteria, :probe_hash_symbol, :index_hash_symbol)
|
493
565
|
def decode(hash)
|
566
|
+
unless hash.is_a?(Hash)
|
567
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
568
|
+
end
|
494
569
|
obj = allocate
|
495
570
|
obj.send(:initialize_struct,
|
496
571
|
hash["id"],
|
@@ -508,6 +583,9 @@ module Presto::Client
|
|
508
583
|
class << IndexSourceNode =
|
509
584
|
Base.new(:id, :index_handle, :table_handle, :lookup_symbols, :output_symbols, :assignments, :effective_tuple_domain)
|
510
585
|
def decode(hash)
|
586
|
+
unless hash.is_a?(Hash)
|
587
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
588
|
+
end
|
511
589
|
obj = allocate
|
512
590
|
obj.send(:initialize_struct,
|
513
591
|
hash["id"],
|
@@ -525,6 +603,9 @@ module Presto::Client
|
|
525
603
|
class << Input =
|
526
604
|
Base.new(:connector_id, :schema, :table, :columns)
|
527
605
|
def decode(hash)
|
606
|
+
unless hash.is_a?(Hash)
|
607
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
608
|
+
end
|
528
609
|
obj = allocate
|
529
610
|
obj.send(:initialize_struct,
|
530
611
|
hash["connectorId"],
|
@@ -539,6 +620,9 @@ module Presto::Client
|
|
539
620
|
class << InsertTableHandle =
|
540
621
|
Base.new(:connector_id, :transaction_handle, :connector_handle)
|
541
622
|
def decode(hash)
|
623
|
+
unless hash.is_a?(Hash)
|
624
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
625
|
+
end
|
542
626
|
obj = allocate
|
543
627
|
obj.send(:initialize_struct,
|
544
628
|
hash["connectorId"],
|
@@ -552,6 +636,9 @@ module Presto::Client
|
|
552
636
|
class << JoinNode =
|
553
637
|
Base.new(:id, :type, :left, :right, :criteria, :left_hash_symbol, :right_hash_symbol)
|
554
638
|
def decode(hash)
|
639
|
+
unless hash.is_a?(Hash)
|
640
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
641
|
+
end
|
555
642
|
obj = allocate
|
556
643
|
obj.send(:initialize_struct,
|
557
644
|
hash["id"],
|
@@ -569,6 +656,9 @@ module Presto::Client
|
|
569
656
|
class << LimitNode =
|
570
657
|
Base.new(:id, :source, :count)
|
571
658
|
def decode(hash)
|
659
|
+
unless hash.is_a?(Hash)
|
660
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
661
|
+
end
|
572
662
|
obj = allocate
|
573
663
|
obj.send(:initialize_struct,
|
574
664
|
hash["id"],
|
@@ -582,6 +672,9 @@ module Presto::Client
|
|
582
672
|
class << MarkDistinctNode =
|
583
673
|
Base.new(:id, :source, :marker_symbol, :distinct_symbols, :hash_symbol)
|
584
674
|
def decode(hash)
|
675
|
+
unless hash.is_a?(Hash)
|
676
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
677
|
+
end
|
585
678
|
obj = allocate
|
586
679
|
obj.send(:initialize_struct,
|
587
680
|
hash["id"],
|
@@ -597,6 +690,9 @@ module Presto::Client
|
|
597
690
|
class << MetadataDeleteNode =
|
598
691
|
Base.new(:id, :target, :output, :table_layout)
|
599
692
|
def decode(hash)
|
693
|
+
unless hash.is_a?(Hash)
|
694
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
695
|
+
end
|
600
696
|
obj = allocate
|
601
697
|
obj.send(:initialize_struct,
|
602
698
|
hash["id"],
|
@@ -611,6 +707,9 @@ module Presto::Client
|
|
611
707
|
class << OperatorStats =
|
612
708
|
Base.new(:operator_id, :plan_node_id, :operator_type, :add_input_calls, :add_input_wall, :add_input_cpu, :add_input_user, :input_data_size, :input_positions, :get_output_calls, :get_output_wall, :get_output_cpu, :get_output_user, :output_data_size, :output_positions, :blocked_wall, :finish_calls, :finish_wall, :finish_cpu, :finish_user, :memory_reservation, :system_memory_reservation, :blocked_reason, :info)
|
613
709
|
def decode(hash)
|
710
|
+
unless hash.is_a?(Hash)
|
711
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
712
|
+
end
|
614
713
|
obj = allocate
|
615
714
|
obj.send(:initialize_struct,
|
616
715
|
hash["operatorId"],
|
@@ -645,6 +744,9 @@ module Presto::Client
|
|
645
744
|
class << OutputNode =
|
646
745
|
Base.new(:id, :source, :columns, :outputs)
|
647
746
|
def decode(hash)
|
747
|
+
unless hash.is_a?(Hash)
|
748
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
749
|
+
end
|
648
750
|
obj = allocate
|
649
751
|
obj.send(:initialize_struct,
|
650
752
|
hash["id"],
|
@@ -659,6 +761,9 @@ module Presto::Client
|
|
659
761
|
class << OutputTableHandle =
|
660
762
|
Base.new(:connector_id, :transaction_handle, :connector_handle)
|
661
763
|
def decode(hash)
|
764
|
+
unless hash.is_a?(Hash)
|
765
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
766
|
+
end
|
662
767
|
obj = allocate
|
663
768
|
obj.send(:initialize_struct,
|
664
769
|
hash["connectorId"],
|
@@ -672,6 +777,9 @@ module Presto::Client
|
|
672
777
|
class << PartitionFunctionBinding =
|
673
778
|
Base.new(:function_handle, :partitioning_columns, :hash_column, :replicate_nulls, :partition_count)
|
674
779
|
def decode(hash)
|
780
|
+
unless hash.is_a?(Hash)
|
781
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
782
|
+
end
|
675
783
|
obj = allocate
|
676
784
|
obj.send(:initialize_struct,
|
677
785
|
hash["functionHandle"] && hash["functionHandle"].downcase.to_sym,
|
@@ -687,6 +795,9 @@ module Presto::Client
|
|
687
795
|
class << PipelineStats =
|
688
796
|
Base.new(:input_pipeline, :output_pipeline, :total_drivers, :queued_drivers, :queued_partitioned_drivers, :running_drivers, :running_partitioned_drivers, :completed_drivers, :memory_reservation, :system_memory_reservation, :queued_time, :elapsed_time, :total_scheduled_time, :total_cpu_time, :total_user_time, :total_blocked_time, :fully_blocked, :blocked_reasons, :raw_input_data_size, :raw_input_positions, :processed_input_data_size, :processed_input_positions, :output_data_size, :output_positions, :operator_summaries, :drivers)
|
689
797
|
def decode(hash)
|
798
|
+
unless hash.is_a?(Hash)
|
799
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
800
|
+
end
|
690
801
|
obj = allocate
|
691
802
|
obj.send(:initialize_struct,
|
692
803
|
hash["inputPipeline"],
|
@@ -723,6 +834,9 @@ module Presto::Client
|
|
723
834
|
class << PlanFragment =
|
724
835
|
Base.new(:id, :root, :symbols, :output_layout, :distribution, :partitioned_source, :partition_function)
|
725
836
|
def decode(hash)
|
837
|
+
unless hash.is_a?(Hash)
|
838
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
839
|
+
end
|
726
840
|
obj = allocate
|
727
841
|
obj.send(:initialize_struct,
|
728
842
|
hash["id"],
|
@@ -740,6 +854,9 @@ module Presto::Client
|
|
740
854
|
class << ProjectNode =
|
741
855
|
Base.new(:id, :source, :assignments)
|
742
856
|
def decode(hash)
|
857
|
+
unless hash.is_a?(Hash)
|
858
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
859
|
+
end
|
743
860
|
obj = allocate
|
744
861
|
obj.send(:initialize_struct,
|
745
862
|
hash["id"],
|
@@ -753,6 +870,9 @@ module Presto::Client
|
|
753
870
|
class << QueryError =
|
754
871
|
Base.new(:message, :sql_state, :error_code, :error_name, :error_type, :error_location, :failure_info)
|
755
872
|
def decode(hash)
|
873
|
+
unless hash.is_a?(Hash)
|
874
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
875
|
+
end
|
756
876
|
obj = allocate
|
757
877
|
obj.send(:initialize_struct,
|
758
878
|
hash["message"],
|
@@ -770,6 +890,9 @@ module Presto::Client
|
|
770
890
|
class << QueryInfo =
|
771
891
|
Base.new(:query_id, :session, :state, :memory_pool, :scheduled, :self, :field_names, :query, :query_stats, :set_session_properties, :reset_session_properties, :started_transaction_id, :clear_transaction_id, :update_type, :output_stage, :failure_info, :error_code, :inputs)
|
772
892
|
def decode(hash)
|
893
|
+
unless hash.is_a?(Hash)
|
894
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
895
|
+
end
|
773
896
|
obj = allocate
|
774
897
|
obj.send(:initialize_struct,
|
775
898
|
hash["queryId"],
|
@@ -798,6 +921,9 @@ module Presto::Client
|
|
798
921
|
class << QueryResults =
|
799
922
|
Base.new(:id, :info_uri, :partial_cancel_uri, :next_uri, :columns, :data, :stats, :error, :update_type, :update_count)
|
800
923
|
def decode(hash)
|
924
|
+
unless hash.is_a?(Hash)
|
925
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
926
|
+
end
|
801
927
|
obj = allocate
|
802
928
|
obj.send(:initialize_struct,
|
803
929
|
hash["id"],
|
@@ -818,6 +944,9 @@ module Presto::Client
|
|
818
944
|
class << QueryStats =
|
819
945
|
Base.new(:create_time, :execution_start_time, :last_heartbeat, :end_time, :elapsed_time, :queued_time, :analysis_time, :distributed_planning_time, :total_planning_time, :finishing_time, :total_tasks, :running_tasks, :completed_tasks, :total_drivers, :queued_drivers, :running_drivers, :completed_drivers, :cumulative_memory, :total_memory_reservation, :peak_memory_reservation, :total_scheduled_time, :total_cpu_time, :total_user_time, :total_blocked_time, :fully_blocked, :blocked_reasons, :raw_input_data_size, :raw_input_positions, :processed_input_data_size, :processed_input_positions, :output_data_size, :output_positions)
|
820
946
|
def decode(hash)
|
947
|
+
unless hash.is_a?(Hash)
|
948
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
949
|
+
end
|
821
950
|
obj = allocate
|
822
951
|
obj.send(:initialize_struct,
|
823
952
|
hash["createTime"],
|
@@ -860,6 +989,9 @@ module Presto::Client
|
|
860
989
|
class << RemoteSourceNode =
|
861
990
|
Base.new(:id, :source_fragment_ids, :outputs)
|
862
991
|
def decode(hash)
|
992
|
+
unless hash.is_a?(Hash)
|
993
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
994
|
+
end
|
863
995
|
obj = allocate
|
864
996
|
obj.send(:initialize_struct,
|
865
997
|
hash["id"],
|
@@ -873,6 +1005,9 @@ module Presto::Client
|
|
873
1005
|
class << RowNumberNode =
|
874
1006
|
Base.new(:id, :source, :partition_by, :row_number_symbol, :max_row_count_per_partition, :hash_symbol)
|
875
1007
|
def decode(hash)
|
1008
|
+
unless hash.is_a?(Hash)
|
1009
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
1010
|
+
end
|
876
1011
|
obj = allocate
|
877
1012
|
obj.send(:initialize_struct,
|
878
1013
|
hash["id"],
|
@@ -889,6 +1024,9 @@ module Presto::Client
|
|
889
1024
|
class << SampleNode =
|
890
1025
|
Base.new(:id, :source, :sample_ratio, :sample_type, :rescaled, :sample_weight_symbol)
|
891
1026
|
def decode(hash)
|
1027
|
+
unless hash.is_a?(Hash)
|
1028
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
1029
|
+
end
|
892
1030
|
obj = allocate
|
893
1031
|
obj.send(:initialize_struct,
|
894
1032
|
hash["id"],
|
@@ -905,6 +1043,9 @@ module Presto::Client
|
|
905
1043
|
class << SemiJoinNode =
|
906
1044
|
Base.new(:id, :source, :filtering_source, :source_join_symbol, :filtering_source_join_symbol, :semi_join_output, :source_hash_symbol, :filtering_source_hash_symbol)
|
907
1045
|
def decode(hash)
|
1046
|
+
unless hash.is_a?(Hash)
|
1047
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
1048
|
+
end
|
908
1049
|
obj = allocate
|
909
1050
|
obj.send(:initialize_struct,
|
910
1051
|
hash["id"],
|
@@ -923,6 +1064,9 @@ module Presto::Client
|
|
923
1064
|
class << SessionRepresentation =
|
924
1065
|
Base.new(:query_id, :transaction_id, :client_transaction_support, :user, :principal, :source, :catalog, :schema, :time_zone_key, :locale, :remote_user_address, :user_agent, :start_time, :system_properties, :catalog_properties)
|
925
1066
|
def decode(hash)
|
1067
|
+
unless hash.is_a?(Hash)
|
1068
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
1069
|
+
end
|
926
1070
|
obj = allocate
|
927
1071
|
obj.send(:initialize_struct,
|
928
1072
|
hash["queryId"],
|
@@ -948,6 +1092,9 @@ module Presto::Client
|
|
948
1092
|
class << SharedBufferInfo =
|
949
1093
|
Base.new(:state, :can_add_buffers, :can_add_pages, :total_buffered_bytes, :total_buffered_pages, :total_queued_pages, :total_pages_sent, :buffers)
|
950
1094
|
def decode(hash)
|
1095
|
+
unless hash.is_a?(Hash)
|
1096
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
1097
|
+
end
|
951
1098
|
obj = allocate
|
952
1099
|
obj.send(:initialize_struct,
|
953
1100
|
hash["state"] && hash["state"].downcase.to_sym,
|
@@ -966,6 +1113,9 @@ module Presto::Client
|
|
966
1113
|
class << Signature =
|
967
1114
|
Base.new(:name, :kind, :type_parameter_requirements, :return_type, :argument_types, :variable_arity)
|
968
1115
|
def decode(hash)
|
1116
|
+
unless hash.is_a?(Hash)
|
1117
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
1118
|
+
end
|
969
1119
|
obj = allocate
|
970
1120
|
obj.send(:initialize_struct,
|
971
1121
|
hash["name"],
|
@@ -982,6 +1132,9 @@ module Presto::Client
|
|
982
1132
|
class << SortNode =
|
983
1133
|
Base.new(:id, :source, :order_by, :orderings)
|
984
1134
|
def decode(hash)
|
1135
|
+
unless hash.is_a?(Hash)
|
1136
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
1137
|
+
end
|
985
1138
|
obj = allocate
|
986
1139
|
obj.send(:initialize_struct,
|
987
1140
|
hash["id"],
|
@@ -996,6 +1149,9 @@ module Presto::Client
|
|
996
1149
|
class << StageInfo =
|
997
1150
|
Base.new(:stage_id, :state, :self, :plan, :types, :stage_stats, :tasks, :sub_stages, :failure_cause)
|
998
1151
|
def decode(hash)
|
1152
|
+
unless hash.is_a?(Hash)
|
1153
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
1154
|
+
end
|
999
1155
|
obj = allocate
|
1000
1156
|
obj.send(:initialize_struct,
|
1001
1157
|
hash["stageId"] && StageId.new(hash["stageId"]),
|
@@ -1015,6 +1171,9 @@ module Presto::Client
|
|
1015
1171
|
class << StageStats =
|
1016
1172
|
Base.new(:scheduling_complete, :get_split_distribution, :schedule_task_distribution, :add_split_distribution, :total_tasks, :running_tasks, :completed_tasks, :total_drivers, :queued_drivers, :running_drivers, :completed_drivers, :cumulative_memory, :total_memory_reservation, :total_scheduled_time, :total_cpu_time, :total_user_time, :total_blocked_time, :fully_blocked, :blocked_reasons, :raw_input_data_size, :raw_input_positions, :processed_input_data_size, :processed_input_positions, :output_data_size, :output_positions)
|
1017
1173
|
def decode(hash)
|
1174
|
+
unless hash.is_a?(Hash)
|
1175
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
1176
|
+
end
|
1018
1177
|
obj = allocate
|
1019
1178
|
obj.send(:initialize_struct,
|
1020
1179
|
hash["schedulingComplete"],
|
@@ -1050,6 +1209,9 @@ module Presto::Client
|
|
1050
1209
|
class << StatementStats =
|
1051
1210
|
Base.new(:state, :scheduled, :nodes, :total_splits, :queued_splits, :running_splits, :completed_splits, :user_time_millis, :cpu_time_millis, :wall_time_millis, :processed_rows, :processed_bytes, :root_stage)
|
1052
1211
|
def decode(hash)
|
1212
|
+
unless hash.is_a?(Hash)
|
1213
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
1214
|
+
end
|
1053
1215
|
obj = allocate
|
1054
1216
|
obj.send(:initialize_struct,
|
1055
1217
|
hash["state"],
|
@@ -1073,6 +1235,9 @@ module Presto::Client
|
|
1073
1235
|
class << TableFinishNode =
|
1074
1236
|
Base.new(:id, :source, :target, :outputs)
|
1075
1237
|
def decode(hash)
|
1238
|
+
unless hash.is_a?(Hash)
|
1239
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
1240
|
+
end
|
1076
1241
|
obj = allocate
|
1077
1242
|
obj.send(:initialize_struct,
|
1078
1243
|
hash["id"],
|
@@ -1087,6 +1252,9 @@ module Presto::Client
|
|
1087
1252
|
class << TableHandle =
|
1088
1253
|
Base.new(:connector_id, :connector_handle)
|
1089
1254
|
def decode(hash)
|
1255
|
+
unless hash.is_a?(Hash)
|
1256
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
1257
|
+
end
|
1090
1258
|
obj = allocate
|
1091
1259
|
obj.send(:initialize_struct,
|
1092
1260
|
hash["connectorId"],
|
@@ -1099,6 +1267,9 @@ module Presto::Client
|
|
1099
1267
|
class << TableLayoutHandle =
|
1100
1268
|
Base.new(:connector_id, :transaction_handle, :connector_handle)
|
1101
1269
|
def decode(hash)
|
1270
|
+
unless hash.is_a?(Hash)
|
1271
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
1272
|
+
end
|
1102
1273
|
obj = allocate
|
1103
1274
|
obj.send(:initialize_struct,
|
1104
1275
|
hash["connectorId"],
|
@@ -1112,6 +1283,9 @@ module Presto::Client
|
|
1112
1283
|
class << TableScanNode =
|
1113
1284
|
Base.new(:id, :table, :output_symbols, :assignments, :layout, :current_constraint, :original_constraint)
|
1114
1285
|
def decode(hash)
|
1286
|
+
unless hash.is_a?(Hash)
|
1287
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
1288
|
+
end
|
1115
1289
|
obj = allocate
|
1116
1290
|
obj.send(:initialize_struct,
|
1117
1291
|
hash["id"],
|
@@ -1129,6 +1303,9 @@ module Presto::Client
|
|
1129
1303
|
class << TableWriterNode =
|
1130
1304
|
Base.new(:id, :source, :target, :columns, :column_names, :outputs, :sample_weight_symbol)
|
1131
1305
|
def decode(hash)
|
1306
|
+
unless hash.is_a?(Hash)
|
1307
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
1308
|
+
end
|
1132
1309
|
obj = allocate
|
1133
1310
|
obj.send(:initialize_struct,
|
1134
1311
|
hash["id"],
|
@@ -1146,6 +1323,9 @@ module Presto::Client
|
|
1146
1323
|
class << TaskInfo =
|
1147
1324
|
Base.new(:task_id, :task_instance_id, :version, :state, :self, :last_heartbeat, :output_buffers, :no_more_splits, :stats, :failures)
|
1148
1325
|
def decode(hash)
|
1326
|
+
unless hash.is_a?(Hash)
|
1327
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
1328
|
+
end
|
1149
1329
|
obj = allocate
|
1150
1330
|
obj.send(:initialize_struct,
|
1151
1331
|
hash["taskId"] && TaskId.new(hash["taskId"]),
|
@@ -1166,6 +1346,9 @@ module Presto::Client
|
|
1166
1346
|
class << TaskStats =
|
1167
1347
|
Base.new(:create_time, :first_start_time, :last_start_time, :end_time, :elapsed_time, :queued_time, :total_drivers, :queued_drivers, :queued_partitioned_drivers, :running_drivers, :running_partitioned_drivers, :completed_drivers, :cumulative_memory, :memory_reservation, :system_memory_reservation, :total_scheduled_time, :total_cpu_time, :total_user_time, :total_blocked_time, :fully_blocked, :blocked_reasons, :raw_input_data_size, :raw_input_positions, :processed_input_data_size, :processed_input_positions, :output_data_size, :output_positions, :pipelines)
|
1168
1348
|
def decode(hash)
|
1349
|
+
unless hash.is_a?(Hash)
|
1350
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
1351
|
+
end
|
1169
1352
|
obj = allocate
|
1170
1353
|
obj.send(:initialize_struct,
|
1171
1354
|
hash["createTime"],
|
@@ -1204,6 +1387,9 @@ module Presto::Client
|
|
1204
1387
|
class << TopNNode =
|
1205
1388
|
Base.new(:id, :source, :count, :order_by, :orderings, :partial)
|
1206
1389
|
def decode(hash)
|
1390
|
+
unless hash.is_a?(Hash)
|
1391
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
1392
|
+
end
|
1207
1393
|
obj = allocate
|
1208
1394
|
obj.send(:initialize_struct,
|
1209
1395
|
hash["id"],
|
@@ -1220,6 +1406,9 @@ module Presto::Client
|
|
1220
1406
|
class << TopNRowNumberNode =
|
1221
1407
|
Base.new(:id, :source, :partition_by, :order_by, :orderings, :row_number_symbol, :max_row_count_per_partition, :partial, :hash_symbol)
|
1222
1408
|
def decode(hash)
|
1409
|
+
unless hash.is_a?(Hash)
|
1410
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
1411
|
+
end
|
1223
1412
|
obj = allocate
|
1224
1413
|
obj.send(:initialize_struct,
|
1225
1414
|
hash["id"],
|
@@ -1239,6 +1428,9 @@ module Presto::Client
|
|
1239
1428
|
class << TypeParameterRequirement =
|
1240
1429
|
Base.new(:name, :comparable_required, :orderable_required, :variadic_bound)
|
1241
1430
|
def decode(hash)
|
1431
|
+
unless hash.is_a?(Hash)
|
1432
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
1433
|
+
end
|
1242
1434
|
obj = allocate
|
1243
1435
|
obj.send(:initialize_struct,
|
1244
1436
|
hash["name"],
|
@@ -1253,6 +1445,9 @@ module Presto::Client
|
|
1253
1445
|
class << UnionNode =
|
1254
1446
|
Base.new(:id, :sources, :symbol_mapping)
|
1255
1447
|
def decode(hash)
|
1448
|
+
unless hash.is_a?(Hash)
|
1449
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
1450
|
+
end
|
1256
1451
|
obj = allocate
|
1257
1452
|
obj.send(:initialize_struct,
|
1258
1453
|
hash["id"],
|
@@ -1266,6 +1461,9 @@ module Presto::Client
|
|
1266
1461
|
class << UnnestNode =
|
1267
1462
|
Base.new(:id, :source, :replicate_symbols, :unnest_symbols, :ordinality_symbol)
|
1268
1463
|
def decode(hash)
|
1464
|
+
unless hash.is_a?(Hash)
|
1465
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
1466
|
+
end
|
1269
1467
|
obj = allocate
|
1270
1468
|
obj.send(:initialize_struct,
|
1271
1469
|
hash["id"],
|
@@ -1281,6 +1479,9 @@ module Presto::Client
|
|
1281
1479
|
class << ValuesNode =
|
1282
1480
|
Base.new(:id, :output_symbols, :rows)
|
1283
1481
|
def decode(hash)
|
1482
|
+
unless hash.is_a?(Hash)
|
1483
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
1484
|
+
end
|
1284
1485
|
obj = allocate
|
1285
1486
|
obj.send(:initialize_struct,
|
1286
1487
|
hash["id"],
|
@@ -1294,6 +1495,9 @@ module Presto::Client
|
|
1294
1495
|
class << WindowNode =
|
1295
1496
|
Base.new(:id, :source, :partition_by, :order_by, :orderings, :frame, :window_functions, :signatures, :hash_symbol, :pre_partitioned_inputs, :pre_sorted_order_prefix)
|
1296
1497
|
def decode(hash)
|
1498
|
+
unless hash.is_a?(Hash)
|
1499
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
1500
|
+
end
|
1297
1501
|
obj = allocate
|
1298
1502
|
obj.send(:initialize_struct,
|
1299
1503
|
hash["id"],
|
@@ -94,8 +94,9 @@ module Presto::Client
|
|
94
94
|
private :init_request
|
95
95
|
|
96
96
|
def post_query_request!
|
97
|
+
uri = "/v1/statement"
|
97
98
|
response = @faraday.post do |req|
|
98
|
-
req.url
|
99
|
+
req.url uri
|
99
100
|
|
100
101
|
req.body = @query
|
101
102
|
init_request(req)
|
@@ -107,8 +108,7 @@ module Presto::Client
|
|
107
108
|
end
|
108
109
|
|
109
110
|
body = response.body
|
110
|
-
|
111
|
-
@results = Models::QueryResults.decode(hash)
|
111
|
+
@results = load_json(uri, body, Models::QueryResults)
|
112
112
|
end
|
113
113
|
|
114
114
|
private :post_query_request!
|
@@ -152,16 +152,32 @@ module Presto::Client
|
|
152
152
|
uri = @results.next_uri
|
153
153
|
|
154
154
|
body = faraday_get_with_retry(uri)
|
155
|
-
@results = Models::QueryResults
|
155
|
+
@results = load_json(uri, body, Models::QueryResults)
|
156
156
|
|
157
157
|
return true
|
158
158
|
end
|
159
159
|
|
160
160
|
def query_info
|
161
|
-
|
162
|
-
|
161
|
+
uri = "/v1/query/#{@results.id}"
|
162
|
+
body = faraday_get_with_retry(uri)
|
163
|
+
load_json(uri, body, Models::QueryInfo)
|
163
164
|
end
|
164
165
|
|
166
|
+
def load_json(uri, body, body_class)
|
167
|
+
hash = MultiJson.load(body)
|
168
|
+
begin
|
169
|
+
body_class.decode(hash)
|
170
|
+
rescue => e
|
171
|
+
if body.size > 1024 + 3
|
172
|
+
body = "#{body[0, 1024]}..."
|
173
|
+
end
|
174
|
+
@exception = PrestoHttpError.new(500, "Presto API returned unexpected structure at #{uri}. Expected #{body_class} but got #{body}: #{e}")
|
175
|
+
raise @exception
|
176
|
+
end
|
177
|
+
end
|
178
|
+
|
179
|
+
private :load_json
|
180
|
+
|
165
181
|
def faraday_get_with_retry(uri, &block)
|
166
182
|
start = Time.now
|
167
183
|
attempts = 0
|
data/modelgen/models.rb
CHANGED
@@ -77,6 +77,9 @@ module Presto::Client
|
|
77
77
|
|
78
78
|
module PlanNode
|
79
79
|
def self.decode(hash)
|
80
|
+
unless hash.is_a?(Hash)
|
81
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
82
|
+
end
|
80
83
|
model_class = case hash["@type"]
|
81
84
|
when "output" then OutputNode
|
82
85
|
when "project" then ProjectNode
|
@@ -122,6 +125,9 @@ module Presto::Client
|
|
122
125
|
class << DistributionSnapshot =
|
123
126
|
Base.new(:max_error, :count, :total, :p01, :p05, :p10, :p25, :p50, :p75, :p90, :p95, :p99, :min, :max)
|
124
127
|
def decode(hash)
|
128
|
+
unless hash.is_a?(Hash)
|
129
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
130
|
+
end
|
125
131
|
obj = allocate
|
126
132
|
obj.send(:initialize_struct,
|
127
133
|
hash["maxError"],
|
@@ -147,6 +153,9 @@ module Presto::Client
|
|
147
153
|
class << EquiJoinClause =
|
148
154
|
Base.new(:left, :right, :probe, :index)
|
149
155
|
def decode(hash)
|
156
|
+
unless hash.is_a?(Hash)
|
157
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
158
|
+
end
|
150
159
|
obj = allocate
|
151
160
|
obj.send(:initialize_struct,
|
152
161
|
hash["left"],
|
@@ -161,6 +170,9 @@ module Presto::Client
|
|
161
170
|
class << WriterTarget =
|
162
171
|
Base.new(:type, :handle)
|
163
172
|
def decode(hash)
|
173
|
+
unless hash.is_a?(Hash)
|
174
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
175
|
+
end
|
164
176
|
obj = allocate
|
165
177
|
model_class = case hash["@type"]
|
166
178
|
when "CreateHandle" then OutputTableHandle
|
@@ -178,6 +190,9 @@ module Presto::Client
|
|
178
190
|
class << DeleteHandle =
|
179
191
|
Base.new(:handle)
|
180
192
|
def decode(hash)
|
193
|
+
unless hash.is_a?(Hash)
|
194
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
195
|
+
end
|
181
196
|
obj = allocate
|
182
197
|
obj.send(:initialize_struct,
|
183
198
|
TableHandle.decode(hash['handle'])
|
@@ -191,6 +206,9 @@ module Presto::Client
|
|
191
206
|
class << PageBufferInfo =
|
192
207
|
Base.new(:partition, :buffered_pages, :queued_pages, :buffered_bytes, :pages_added)
|
193
208
|
def decode(hash)
|
209
|
+
unless hash.is_a?(Hash)
|
210
|
+
raise TypeError, "Can't convert #{hash.class} to Hash"
|
211
|
+
end
|
194
212
|
obj = allocate
|
195
213
|
obj.send(:initialize_struct,
|
196
214
|
hash["partition"],
|
data/modelgen/presto_models.rb
CHANGED
@@ -159,6 +159,11 @@ module PrestoModels
|
|
159
159
|
|
160
160
|
def format_decode
|
161
161
|
puts_with_indent 1, "def decode(hash)"
|
162
|
+
|
163
|
+
puts_with_indent 2, "unless hash.is_a?(Hash)"
|
164
|
+
puts_with_indent 3, "raise TypeError, \"Can't convert \#{hash.class} to Hash\""
|
165
|
+
puts_with_indent 2, "end"
|
166
|
+
|
162
167
|
if @special_struct_initialize_method
|
163
168
|
puts_with_indent 2, "obj = allocate"
|
164
169
|
puts_with_indent 2, "obj.send(:#{@special_struct_initialize_method},"
|
@@ -82,5 +82,24 @@ describe Presto::Client::StatementClient do
|
|
82
82
|
retry_p.should be_true
|
83
83
|
end
|
84
84
|
|
85
|
+
it "decodes DeleteHandle" do
|
86
|
+
dh = Models::DeleteHandle.decode({
|
87
|
+
"handle" => {
|
88
|
+
"connectorId" => "c1",
|
89
|
+
"connectorHandle" => {},
|
90
|
+
}
|
91
|
+
})
|
92
|
+
dh.handle.should be_a_kind_of Models::TableHandle
|
93
|
+
dh.handle.connector_id.should == "c1"
|
94
|
+
dh.handle.connector_handle.should == {}
|
95
|
+
end
|
96
|
+
|
97
|
+
it "validates models" do
|
98
|
+
lambda do
|
99
|
+
Models::DeleteHandle.decode({
|
100
|
+
"handle" => "invalid"
|
101
|
+
})
|
102
|
+
end.should raise_error(TypeError, /String to Hash/)
|
103
|
+
end
|
85
104
|
end
|
86
105
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: presto-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sadayuki Furuhashi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-08-
|
11
|
+
date: 2016-08-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -148,7 +148,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
148
148
|
version: '0'
|
149
149
|
requirements: []
|
150
150
|
rubyforge_project:
|
151
|
-
rubygems_version: 2.
|
151
|
+
rubygems_version: 2.4.8
|
152
152
|
signing_key:
|
153
153
|
specification_version: 4
|
154
154
|
summary: Presto client library
|