@@ -574,6 +574,56 @@ def test_inference_projection(self, kikimr, s3, client, unique_prefix):
574
574
assert result_set .rows [2 ].items [3 ].uint32_value == 19663
575
575
assert sum (kikimr .control_plane .get_metering (1 )) == 10
576
576
577
+ @yq_v2
578
+ @pytest .mark .parametrize ("client" , [{"folder_id" : "my_folder" }], indirect = True )
579
+ def test_inference_null_column_name (self , kikimr , s3 , client , unique_prefix ):
580
+ resource = boto3 .resource (
581
+ "s3" , endpoint_url = s3 .s3_url , aws_access_key_id = "key" , aws_secret_access_key = "secret_key"
582
+ )
583
+
584
+ bucket = resource .Bucket ("fbucket" )
585
+ bucket .create (ACL = 'public-read' )
586
+ bucket .objects .all ().delete ()
587
+
588
+ s3_client = boto3 .client (
589
+ "s3" , endpoint_url = s3 .s3_url , aws_access_key_id = "key" , aws_secret_access_key = "secret_key"
590
+ )
591
+
592
+ fruits = ''',Fruit,Price
593
+ 1,Banana,3
594
+ 2,Apple,2
595
+ 3,Pear,15'''
596
+ s3_client .put_object (Body = fruits , Bucket = 'fbucket' , Key = 'fruits.csv' , ContentType = 'text/plain' )
597
+ kikimr .control_plane .wait_bootstrap (1 )
598
+ storage_connection_name = unique_prefix + "fruitbucket"
599
+ client .create_storage_connection (storage_connection_name , "fbucket" )
600
+
601
+ sql = f'''
602
+ SELECT *
603
+ FROM `{ storage_connection_name } `.`fruits.csv`
604
+ WITH (format=csv_with_names, with_infer='true');
605
+ '''
606
+
607
+ query_id = client .create_query ("simple" , sql , type = fq .QueryContent .QueryType .ANALYTICS ).result .query_id
608
+ client .wait_query_status (query_id , fq .QueryMeta .COMPLETED )
609
+
610
+ data = client .get_result_data (query_id )
611
+ result_set = data .result .result_set
612
+ logging .debug (str (result_set ))
613
+ assert len (result_set .columns ) == 2
614
+ assert result_set .columns [0 ].name == "Fruit"
615
+ assert result_set .columns [0 ].type .type_id == ydb .Type .UTF8
616
+ assert result_set .columns [1 ].name == "Price"
617
+ assert result_set .columns [1 ].type .optional_type .item .type_id == ydb .Type .INT64
618
+ assert len (result_set .rows ) == 3
619
+ assert result_set .rows [0 ].items [0 ].text_value == "Banana"
620
+ assert result_set .rows [0 ].items [1 ].int64_value == 3
621
+ assert result_set .rows [1 ].items [0 ].text_value == "Apple"
622
+ assert result_set .rows [1 ].items [1 ].int64_value == 2
623
+ assert result_set .rows [2 ].items [0 ].text_value == "Pear"
624
+ assert result_set .rows [2 ].items [1 ].int64_value == 15
625
+ assert sum (kikimr .control_plane .get_metering (1 )) == 10
626
+
577
627
@yq_all
578
628
@pytest .mark .parametrize ("client" , [{"folder_id" : "my_folder" }], indirect = True )
579
629
def test_csv_with_hopping (self , kikimr , s3 , client , unique_prefix ):
0 commit comments