@@ -624,6 +624,50 @@ def test_inference_null_column_name(self, kikimr, s3, client, unique_prefix):
624
624
assert result_set .rows [2 ].items [1 ].int64_value == 15
625
625
assert sum (kikimr .control_plane .get_metering (1 )) == 10
626
626
627
+ @yq_v2
628
+ @pytest .mark .parametrize ("client" , [{"folder_id" : "my_folder" }], indirect = True )
629
+ def test_inference_unsupported_types (self , kikimr , s3 , client , unique_prefix ):
630
+ resource = boto3 .resource (
631
+ "s3" , endpoint_url = s3 .s3_url , aws_access_key_id = "key" , aws_secret_access_key = "secret_key"
632
+ )
633
+
634
+ bucket = resource .Bucket ("fbucket" )
635
+ bucket .create (ACL = 'public-read' )
636
+ bucket .objects .all ().delete ()
637
+
638
+ s3_client = boto3 .client (
639
+ "s3" , endpoint_url = s3 .s3_url , aws_access_key_id = "key" , aws_secret_access_key = "secret_key"
640
+ )
641
+
642
+ fruits = '''{ "a" : [10, 20, 30] , "b" : { "key" : "value" }, "c" : 10 }
643
+ { "a" : [10, 20, 30] , "b" : { "key" : "value" }, "c" : 20 }
644
+ { "a" : [10, 20, 30] , "b" : { "key" : "value" }, "c" : 30 }'''
645
+ s3_client .put_object (Body = fruits , Bucket = 'fbucket' , Key = 'fruits.json' , ContentType = 'text/plain' )
646
+ kikimr .control_plane .wait_bootstrap (1 )
647
+ storage_connection_name = unique_prefix + "fruitbucket"
648
+ client .create_storage_connection (storage_connection_name , "fbucket" )
649
+
650
+ sql = f'''
651
+ SELECT *
652
+ FROM `{ storage_connection_name } `.`fruits.json`
653
+ WITH (format=json_each_row, with_infer='true');
654
+ '''
655
+
656
+ query_id = client .create_query ("simple" , sql , type = fq .QueryContent .QueryType .ANALYTICS ).result .query_id
657
+ client .wait_query_status (query_id , fq .QueryMeta .COMPLETED )
658
+
659
+ data = client .get_result_data (query_id )
660
+ result_set = data .result .result_set
661
+ logging .debug (str (result_set ))
662
+ assert len (result_set .columns ) == 1
663
+ assert result_set .columns [0 ].name == "c"
664
+ assert result_set .columns [0 ].type .optional_type .item .type_id == ydb .Type .INT64
665
+ assert len (result_set .rows ) == 3
666
+ assert result_set .rows [0 ].items [0 ].int64_value == 10
667
+ assert result_set .rows [1 ].items [0 ].int64_value == 20
668
+ assert result_set .rows [2 ].items [0 ].int64_value == 30
669
+ assert sum (kikimr .control_plane .get_metering (1 )) == 10
670
+
627
671
@yq_all
628
672
@pytest .mark .parametrize ("client" , [{"folder_id" : "my_folder" }], indirect = True )
629
673
def test_csv_with_hopping (self , kikimr , s3 , client , unique_prefix ):
0 commit comments