2025-11-10 10:16:00,406 - INFO - ya.test - pytest_runtest_setup: ####################################################################################################
2025-11-10 10:16:00,406 - INFO - ya.test - pytest_runtest_setup: test_projection_date_type_validation[v2-true-client4-year Int64-False]
2025-11-10 10:16:00,406 - INFO - ya.test - pytest_runtest_setup: ####################################################################################################
2025-11-10 10:16:00,407 - INFO - ya.test - pytest_runtest_setup: Test setup
2025-11-10 10:16:00,525 - INFO - ya.test - pytest_runtest_call: Test call (class_name: test_explicit_partitioning_1.py::TestS3, test_name: test_projection_date_type_validation[v2-true-client4-year Int64-False])
2025-11-10 10:16:00,526 - DEBUG - botocore.hooks - _emit: Event choose-service-name: calling handler <function handle_service_name_alias at 0x7ffaa4d35850>
2025-11-10 10:16:00,530 - DEBUG - botocore.hooks - _emit: Event creating-client-class.s3: calling handler <function add_generate_presigned_post at 0x7ffaa4e69010>
2025-11-10 10:16:00,530 - DEBUG - botocore.hooks - _emit: Event creating-client-class.s3: calling handler <function lazy_call.<locals>._handler at 0x7ffaa4ab0890>
2025-11-10 10:16:00,530 - DEBUG - botocore.hooks - _emit: Event creating-client-class.s3: calling handler <function add_generate_presigned_url at 0x7ffaa4e68d10>
2025-11-10 10:16:00,535 - DEBUG - botocore.endpoint - create_endpoint: Setting s3 timeout as (60, 60)
2025-11-10 10:16:00,541 - DEBUG - botocore.client - _register_legacy_retries: Registering retry handlers for service: s3
2025-11-10 10:16:00,542 - DEBUG - botocore.utils - register: Registering S3 region redirector handler
2025-11-10 10:16:00,544 - DEBUG - botocore.utils - register: Registering S3Express Identity Resolver
2025-11-10 10:16:00,545 - DEBUG - boto3.resources.factory - load_from_definition: Loading s3:s3
2025-11-10 10:16:00,548 - DEBUG - boto3.resources.factory - load_from_definition: Loading s3:Bucket
2025-11-10 10:16:00,548 - DEBUG - boto3.resources.model - _load_name_with_category: Renaming Bucket attribute name
2025-11-10 10:16:00,550 - DEBUG - botocore.hooks - _emit: Event creating-resource-class.s3.Bucket: calling handler <function lazy_call.<locals>._handler at 0x7ffaa4ab13d0>
2025-11-10 10:16:00,550 - DEBUG - boto3.resources.action - __call__: Calling s3:create_bucket with {'Bucket': 'test_projection_date_type_invalid_validation', 'ACL': 'public-read'}
2025-11-10 10:16:00,552 - DEBUG - botocore.hooks - _emit: Event before-parameter-build.s3.CreateBucket: calling handler <function validate_bucket_name at 0x7ffaa4d37710>
2025-11-10 10:16:00,552 - DEBUG - botocore.hooks - _emit: Event before-parameter-build.s3.CreateBucket: calling handler <function remove_bucket_from_url_paths_from_model at 0x7ffaa4d61fd0>
2025-11-10 10:16:00,552 - DEBUG - botocore.hooks - _emit: Event before-parameter-build.s3.CreateBucket: calling handler <bound method S3RegionRedirectorv2.annotate_request_context of <botocore.utils.S3RegionRedirectorv2 object at 0x7ffa87bfd550>>
2025-11-10 10:16:00,552 - DEBUG - botocore.hooks - _emit: Event before-parameter-build.s3.CreateBucket: calling handler <bound method ClientCreator._inject_s3_input_parameters of <botocore.client.ClientCreator object at 0x7ffa89510830>>
2025-11-10 10:16:00,553 - DEBUG - botocore.hooks - _emit: Event before-parameter-build.s3.CreateBucket: calling handler <function generate_idempotent_uuid at 0x7ffaa4d374d0>
2025-11-10 10:16:00,553 - DEBUG - botocore.hooks - _emit: Event before-endpoint-resolution.s3: calling handler <function customize_endpoint_resolver_builtins at 0x7ffaa4d62210>
2025-11-10 10:16:00,553 - DEBUG - botocore.hooks - _emit: Event before-endpoint-resolution.s3: calling handler <bound method S3RegionRedirectorv2.redirect_from_cache of <botocore.utils.S3RegionRedirectorv2 object at 0x7ffa87bfd550>>
2025-11-10 10:16:00,554 - DEBUG - botocore.regions - construct_endpoint: Calling endpoint provider with parameters: {'Bucket': 'test_projection_date_type_invalid_validation', 'Region': 'yandex', 'UseFIPS': False, 'UseDualStack': False, 'Endpoint': 'http://localhost:11934', 'ForcePathStyle': True, 'Accelerate': False, 'UseGlobalEndpoint': False, 'DisableAccessPoints': True, 'DisableMultiRegionAccessPoints': False, 'UseArnRegion': True, 'UseS3ExpressControlEndpoint': True}
2025-11-10 10:16:00,555 - DEBUG - botocore.regions - construct_endpoint: Endpoint provider result: http://localhost:11934/test_projection_date_type_invalid_validation
2025-11-10 10:16:00,556 - DEBUG - botocore.regions - auth_schemes_to_signing_ctx: Selecting from endpoint provider's list of auth schemes: "sigv4". User selected auth scheme is: "None"
2025-11-10 10:16:00,556 - DEBUG - botocore.regions - auth_schemes_to_signing_ctx: Selected auth type "v4" as "v4" with signing context params: {'region': 'yandex', 'signing_name': 's3', 'disableDoubleEncoding': True}
2025-11-10 10:16:00,557 - DEBUG - botocore.hooks - _emit: Event before-call.s3.CreateBucket: calling handler <function add_expect_header at 0x7ffaa4d37b90>
2025-11-10 10:16:00,557 - DEBUG - botocore.hooks - _emit: Event before-call.s3.CreateBucket: calling handler <bound method S3ExpressIdentityResolver.apply_signing_cache_key of <botocore.utils.S3ExpressIdentityResolver object at 0x7ffa87778150>>
2025-11-10 10:16:00,561 - DEBUG - botocore.hooks - _emit: Event before-call.s3.CreateBucket: calling handler <function add_recursion_detection_header at 0x7ffaa4d35a90>
2025-11-10 10:16:00,562 - DEBUG - botocore.hooks - _emit: Event before-call.s3.CreateBucket: calling handler <function inject_api_version_header_if_needed at 0x7ffaa4d61610>
2025-11-10 10:16:00,562 - DEBUG - botocore.endpoint - make_request: Making request for OperationModel(name=CreateBucket) with params: {'url_path': '', 'query_string': {}, 'method': 'PUT', 'headers': {'x-amz-acl': 'public-read', 'User-Agent': 'Boto3/1.34.89 md/Botocore#1.34.89 ua/2.0 os/linux#5.15.0-157-generic md/arch#x86_64 lang/python#3.12.12 md/pyimpl#CPython cfg/retry-mode#legacy Botocore/1.34.89 Resource'}, 'body': b'', 'auth_path': '/test_projection_date_type_invalid_validation/', 'url': 'http://localhost:11934/test_projection_date_type_invalid_validation', 'context': {'client_region': 'yandex', 'client_config': <botocore.config.Config object at 0x7ffa90921780>, 'has_streaming_input': False, 'auth_type': 'v4', 's3_redirect': {'redirected': False, 'bucket': 'test_projection_date_type_invalid_validation', 'params': {'Bucket': 'test_projection_date_type_invalid_validation', 'ACL': 'public-read'}}, 'input_params': {'Bucket': 'test_projection_date_type_invalid_validation'}, 'signing': {'region': 'yandex', 'signing_name': 's3', 'disableDoubleEncoding': True}, 'endpoint_properties': {'authSchemes': [{'disableDoubleEncoding': True, 'name': 'sigv4', 'signingName': 's3', 'signingRegion': 'yandex'}]}}}
2025-11-10 10:16:00,564 - DEBUG - botocore.hooks - _emit: Event request-created.s3.CreateBucket: calling handler <bound method RequestSigner.handler of <botocore.signers.RequestSigner object at 0x7ffa909219b0>>
2025-11-10 10:16:00,565 - DEBUG - botocore.hooks - _emit: Event choose-signer.s3.CreateBucket: calling handler <bound method ClientCreator._default_s3_presign_to_sigv2 of <botocore.client.ClientCreator object at 0x7ffa89510830>>
2025-11-10 10:16:00,565 - DEBUG - botocore.hooks - _emit: Event choose-signer.s3.CreateBucket: calling handler <function set_operation_specific_signer at 0x7ffaa4d37350>
2025-11-10 10:16:00,566 - DEBUG - botocore.hooks - _emit: Event before-sign.s3.CreateBucket: calling handler <function remove_arn_from_signing_path at 0x7ffaa4d62150>
2025-11-10 10:16:00,566 - DEBUG - botocore.hooks - _emit: Event before-sign.s3.CreateBucket: calling handler <bound method S3ExpressIdentityResolver.resolve_s3express_identity of <botocore.utils.S3ExpressIdentityResolver object at 0x7ffa87778150>>
2025-11-10 10:16:00,567 - DEBUG - botocore.auth - add_auth: Calculating signature using v4 auth.
2025-11-10 10:16:00,567 - DEBUG - botocore.auth - add_auth: CanonicalRequest:
PUT
/test_projection_date_type_invalid_validation

host:localhost:11934
x-amz-acl:public-read
x-amz-content-sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
x-amz-date:20251110T101600Z

host;x-amz-acl;x-amz-content-sha256;x-amz-date
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
2025-11-10 10:16:00,567 - DEBUG - botocore.auth - add_auth: StringToSign:
AWS4-HMAC-SHA256
20251110T101600Z
20251110/yandex/s3/aws4_request
3c48f0cd2c811ba928d6d41d9b6d5e3e70b35131fb5f99c3eab7ffd86c624970
2025-11-10 10:16:00,568 - DEBUG - botocore.auth - add_auth: Signature:
ee3b893f98b537b4b788324c9d1917bca1aab0423546c6c12320d679f25a316d
2025-11-10 10:16:00,568 - DEBUG - botocore.hooks - _emit: Event request-created.s3.CreateBucket: calling handler <function add_retry_headers at 0x7ffaa4d61f10>
2025-11-10 10:16:00,572 - DEBUG - botocore.endpoint - _do_get_response: Sending http request: <AWSPreparedRequest stream_output=False, method=PUT, url=http://localhost:11934/test_projection_date_type_invalid_validation, headers={'x-amz-acl': b'public-read', 'User-Agent': b'Boto3/1.34.89 md/Botocore#1.34.89 ua/2.0 os/linux#5.15.0-157-generic md/arch#x86_64 lang/python#3.12.12 md/pyimpl#CPython cfg/retry-mode#legacy Botocore/1.34.89 Resource', 'X-Amz-Date': b'20251110T101600Z', 'X-Amz-Content-SHA256': b'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', 'Authorization': b'AWS4-HMAC-SHA256 Credential=key/20251110/yandex/s3/aws4_request, SignedHeaders=host;x-amz-acl;x-amz-content-sha256;x-amz-date, Signature=ee3b893f98b537b4b788324c9d1917bca1aab0423546c6c12320d679f25a316d', 'amz-sdk-invocation-id': b'8177f7c2-738f-41d3-8d51-0d34eafff165', 'amz-sdk-request': b'attempt=1', 'Content-Length': '0'}>
2025-11-10 10:16:00,597 - DEBUG - botocore.parsers - parse: Response headers: {'Server': 'Werkzeug/2.2.3 Python/3.12.12', 'Date': 'Mon, 10 Nov 2025 10:16:00 GMT', 'x-amzn-requestid': 'hW8VExK8XyvSWWdbxB6neFCXiHgjpnJXYmrw30RZPHkZ4MLqZ92O', 'Content-Type': 'text/html; charset=utf-8', 'Content-Length': '198', 'Access-Control-Allow-Origin': '*', 'Connection': 'close'}
2025-11-10 10:16:00,597 - DEBUG - botocore.parsers - parse: Response body:
b'<CreateBucketResponse xmlns="http://s3.amazonaws.com/doc/2006-03-01"><CreateBucketResponse><Bucket>test_projection_date_type_invalid_validation</Bucket></CreateBucketResponse></CreateBucketResponse>'
2025-11-10 10:16:00,599 - DEBUG - botocore.hooks - _emit: Event needs-retry.s3.CreateBucket: calling handler <botocore.retryhandler.RetryHandler object at 0x7ffa876a0c40>
2025-11-10 10:16:00,599 - DEBUG - botocore.retryhandler - __call__: No retry needed.
2025-11-10 10:16:00,600 - DEBUG - botocore.hooks - _emit: Event needs-retry.s3.CreateBucket: calling handler <bound method S3RegionRedirectorv2.redirect_from_error of <botocore.utils.S3RegionRedirectorv2 object at 0x7ffa87bfd550>>
2025-11-10 10:16:00,604 - DEBUG - boto3.resources.action - __call__: Response: {'ResponseMetadata': {'RequestId': 'hW8VExK8XyvSWWdbxB6neFCXiHgjpnJXYmrw30RZPHkZ4MLqZ92O', 'HTTPStatusCode': 200, 'HTTPHeaders': {'server': 'Werkzeug/2.2.3 Python/3.12.12', 'date': 'Mon, 10 Nov 2025 10:16:00 GMT', 'x-amzn-requestid': 'hW8VExK8XyvSWWdbxB6neFCXiHgjpnJXYmrw30RZPHkZ4MLqZ92O', 'content-type': 'text/html; charset=utf-8', 'content-length': '198', 'access-control-allow-origin': '*', 'connection': 'close'}, 'RetryAttempts': 0}}
2025-11-10 10:16:00,605 - DEBUG - botocore.hooks - _emit: Event choose-service-name: calling handler <function handle_service_name_alias at 0x7ffaa4d35850>
2025-11-10 10:16:00,615 - DEBUG - botocore.hooks - _emit: Event creating-client-class.s3: calling handler <function add_generate_presigned_post at 0x7ffaa4e69010>
2025-11-10 10:16:00,616 - DEBUG - botocore.hooks - _emit: Event creating-client-class.s3: calling handler <function lazy_call.<locals>._handler at 0x7ffaa4ab0890>
2025-11-10 10:16:00,616 - DEBUG - botocore.hooks - _emit: Event creating-client-class.s3: calling handler <function add_generate_presigned_url at 0x7ffaa4e68d10>
2025-11-10 10:16:00,621 - DEBUG - botocore.endpoint - create_endpoint: Setting s3 timeout as (60, 60)
2025-11-10 10:16:00,634 - DEBUG - botocore.client - _register_legacy_retries: Registering retry handlers for service: s3
2025-11-10 10:16:00,635 - DEBUG - botocore.utils - register: Registering S3 region redirector handler
2025-11-10 10:16:00,636 - DEBUG - botocore.utils - register: Registering S3Express Identity Resolver
2025-11-10 10:16:00,639 - DEBUG - botocore.hooks - _emit: Event before-parameter-build.s3.PutObject: calling handler <function validate_ascii_metadata at 0x7ffaa4d607d0>
2025-11-10 10:16:00,639 - DEBUG - botocore.hooks - _emit: Event before-parameter-build.s3.PutObject: calling handler <function sse_md5 at 0x7ffaa4d377d0>
2025-11-10 10:16:00,640 - DEBUG - botocore.hooks - _emit: Event before-parameter-build.s3.PutObject: calling handler <function convert_body_to_file_like_object at 0x7ffaa4d61490>
2025-11-10 10:16:00,640 - DEBUG - botocore.hooks - _emit: Event before-parameter-build.s3.PutObject: calling handler <function validate_bucket_name at 0x7ffaa4d37710>
2025-11-10 10:16:00,640 - DEBUG - botocore.hooks - _emit: Event before-parameter-build.s3.PutObject: calling handler <function remove_bucket_from_url_paths_from_model at 0x7ffaa4d61fd0>
2025-11-10 10:16:00,641 - DEBUG - botocore.hooks - _emit: Event before-parameter-build.s3.PutObject: calling handler <bound method S3RegionRedirectorv2.annotate_request_context of <botocore.utils.S3RegionRedirectorv2 object at 0x7ffaa4157710>>
2025-11-10 10:16:00,641 - DEBUG - botocore.hooks - _emit: Event before-parameter-build.s3.PutObject: calling handler <bound method ClientCreator._inject_s3_input_parameters of <botocore.client.ClientCreator object at 0x7ffa89575d70>>
2025-11-10 10:16:00,641 - DEBUG - botocore.hooks - _emit: Event before-parameter-build.s3.PutObject: calling handler <function generate_idempotent_uuid at 0x7ffaa4d374d0>
2025-11-10 10:16:00,642 - DEBUG - botocore.hooks - _emit: Event before-endpoint-resolution.s3: calling handler <function customize_endpoint_resolver_builtins at 0x7ffaa4d62210>
2025-11-10 10:16:00,642 - DEBUG - botocore.hooks - _emit: Event before-endpoint-resolution.s3: calling handler <bound method S3RegionRedirectorv2.redirect_from_cache of <botocore.utils.S3RegionRedirectorv2 object at 0x7ffaa4157710>>
2025-11-10 10:16:00,643 - DEBUG - botocore.regions - construct_endpoint: Calling endpoint provider with parameters: {'Bucket': 'test_projection_date_type_invalid_validation', 'Region': 'yandex', 'UseFIPS': False, 'UseDualStack': False, 'Endpoint': 'http://localhost:11934', 'ForcePathStyle': True, 'Accelerate': False, 'UseGlobalEndpoint': False, 'Key': '2022-03-05/fruits.csv', 'DisableMultiRegionAccessPoints': False, 'UseArnRegion': True}
2025-11-10 10:16:00,645 - DEBUG - botocore.regions - construct_endpoint: Endpoint provider result: http://localhost:11934/test_projection_date_type_invalid_validation
2025-11-10 10:16:00,645 - DEBUG - botocore.regions - auth_schemes_to_signing_ctx: Selecting from endpoint provider's list of auth schemes: "sigv4". User selected auth scheme is: "None"
2025-11-10 10:16:00,646 - DEBUG - botocore.regions - auth_schemes_to_signing_ctx: Selected auth type "v4" as "v4" with signing context params: {'region': 'yandex', 'signing_name': 's3', 'disableDoubleEncoding': True}
2025-11-10 10:16:00,647 - DEBUG - botocore.hooks - _emit: Event before-call.s3.PutObject: calling handler <function conditionally_calculate_checksum at 0x7ffaa4f5f350>
2025-11-10 10:16:00,648 - DEBUG - botocore.hooks - _emit: Event before-call.s3.PutObject: calling handler <function add_expect_header at 0x7ffaa4d37b90>
2025-11-10 10:16:00,649 - DEBUG - botocore.handlers - add_expect_header: Adding expect 100 continue header to request.
2025-11-10 10:16:00,649 - DEBUG - botocore.hooks - _emit: Event before-call.s3.PutObject: calling handler <bound method S3ExpressIdentityResolver.apply_signing_cache_key of <botocore.utils.S3ExpressIdentityResolver object at 0x7ffa909ce900>>
2025-11-10 10:16:00,649 - DEBUG - botocore.hooks - _emit: Event before-call.s3.PutObject: calling handler <function add_recursion_detection_header at 0x7ffaa4d35a90>
2025-11-10 10:16:00,649 - DEBUG - botocore.hooks - _emit: Event before-call.s3.PutObject: calling handler <function inject_api_version_header_if_needed at 0x7ffaa4d61610>
2025-11-10 10:16:00,650 - DEBUG - botocore.endpoint - make_request: Making request for OperationModel(name=PutObject) with params: {'url_path': '/2022-03-05/fruits.csv', 'query_string': {}, 'method': 'PUT', 'headers': {'Content-Type': 'text/plain', 'User-Agent': 'Boto3/1.34.89 md/Botocore#1.34.89 ua/2.0 os/linux#5.15.0-157-generic md/arch#x86_64 lang/python#3.12.12 md/pyimpl#CPython cfg/retry-mode#legacy Botocore/1.34.89', 'Content-MD5': 'N3CmbcSU7yYXwHhfTRLclg==', 'Expect': '100-continue'}, 'body': <_io.BytesIO object at 0x7ffa877ad1d0>, 'auth_path': '/test_projection_date_type_invalid_validation/2022-03-05/fruits.csv', 'url': 'http://localhost:11934/test_projection_date_type_invalid_validation/2022-03-05/fruits.csv', 'context': {'client_region': 'yandex', 'client_config': <botocore.config.Config object at 0x7ffa8768f030>, 'has_streaming_input': True, 'auth_type': 'v4', 's3_redirect': {'redirected': False, 'bucket': 'test_projection_date_type_invalid_validation', 'params': {'Body': <_io.BytesIO object at 0x7ffa877ad1d0>, 'Bucket': 'test_projection_date_type_invalid_validation', 'Key': '2022-03-05/fruits.csv', 'ContentType': 'text/plain'}}, 'input_params': {'Bucket': 'test_projection_date_type_invalid_validation', 'Key': '2022-03-05/fruits.csv'}, 'signing': {'region': 'yandex', 'signing_name': 's3', 'disableDoubleEncoding': True}, 'endpoint_properties': {'authSchemes': [{'disableDoubleEncoding': True, 'name': 'sigv4', 'signingName': 's3', 'signingRegion': 'yandex'}]}}}
2025-11-10 10:16:00,653 - DEBUG - botocore.hooks - _emit: Event request-created.s3.PutObject: calling handler <bound method RequestSigner.handler of <botocore.signers.RequestSigner object at 0x7ffa8768f300>>
2025-11-10 10:16:00,654 - DEBUG - botocore.hooks - _emit: Event choose-signer.s3.PutObject: calling handler <bound method ClientCreator._default_s3_presign_to_sigv2 of <botocore.client.ClientCreator object at 0x7ffa89575d70>>
2025-11-10 10:16:00,654 - DEBUG - botocore.hooks - _emit: Event choose-signer.s3.PutObject: calling handler <function set_operation_specific_signer at 0x7ffaa4d37350>
2025-11-10 10:16:00,655 - DEBUG - botocore.hooks - _emit: Event before-sign.s3.PutObject: calling handler <function remove_arn_from_signing_path at 0x7ffaa4d62150>
2025-11-10 10:16:00,656 - DEBUG - botocore.hooks - _emit: Event before-sign.s3.PutObject: calling handler <bound method S3ExpressIdentityResolver.resolve_s3express_identity of <botocore.utils.S3ExpressIdentityResolver object at 0x7ffa909ce900>>
2025-11-10 10:16:00,656 - DEBUG - botocore.auth - add_auth: Calculating signature using v4 auth.
2025-11-10 10:16:00,657 - DEBUG - botocore.auth - add_auth: CanonicalRequest:
PUT
/test_projection_date_type_invalid_validation/2022-03-05/fruits.csv

content-md5:N3CmbcSU7yYXwHhfTRLclg==
content-type:text/plain
host:localhost:11934
x-amz-content-sha256:d9ec952678723e7b44be7f7b160b98addbf1b6aa7e33a7bac583215ee511bbcb
x-amz-date:20251110T101600Z

content-md5;content-type;host;x-amz-content-sha256;x-amz-date
d9ec952678723e7b44be7f7b160b98addbf1b6aa7e33a7bac583215ee511bbcb
2025-11-10 10:16:00,657 - DEBUG - botocore.auth - add_auth: StringToSign:
AWS4-HMAC-SHA256
20251110T101600Z
20251110/yandex/s3/aws4_request
8571320ca603f8695985db6d912a2742e2aa59aa77b0d8777e8f9396ebff3190
2025-11-10 10:16:00,657 - DEBUG - botocore.auth - add_auth: Signature:
7bfec75fb7ef18ec56e0d68e0a854e3dbe38aeae2a36344d59f6e49cd19bcecb
2025-11-10 10:16:00,658 - DEBUG - botocore.hooks - _emit: Event request-created.s3.PutObject: calling handler <function add_retry_headers at 0x7ffaa4d61f10>
2025-11-10 10:16:00,658 - DEBUG - botocore.endpoint - _do_get_response: Sending http request: <AWSPreparedRequest stream_output=False, method=PUT, url=http://localhost:11934/test_projection_date_type_invalid_validation/2022-03-05/fruits.csv, headers={'Content-Type': b'text/plain', 'User-Agent': b'Boto3/1.34.89 md/Botocore#1.34.89 ua/2.0 os/linux#5.15.0-157-generic md/arch#x86_64 lang/python#3.12.12 md/pyimpl#CPython cfg/retry-mode#legacy Botocore/1.34.89', 'Content-MD5': b'N3CmbcSU7yYXwHhfTRLclg==', 'Expect': b'100-continue', 'X-Amz-Date': b'20251110T101600Z', 'X-Amz-Content-SHA256': b'd9ec952678723e7b44be7f7b160b98addbf1b6aa7e33a7bac583215ee511bbcb', 'Authorization': b'AWS4-HMAC-SHA256 Credential=key/20251110/yandex/s3/aws4_request, SignedHeaders=content-md5;content-type;host;x-amz-content-sha256;x-amz-date, Signature=7bfec75fb7ef18ec56e0d68e0a854e3dbe38aeae2a36344d59f6e49cd19bcecb', 'amz-sdk-invocation-id': b'a59be916-89d9-4e74-a54d-068e513cd205', 'amz-sdk-request': b'attempt=1', 'Content-Length': '33'}>
2025-11-10 10:16:00,662 - DEBUG - botocore.awsrequest - _send_output: Waiting for 100 Continue response.
2025-11-10 10:16:00,666 - DEBUG - botocore.awsrequest - _handle_expect_response: 100 Continue response seen, now sending request body.
2025-11-10 10:16:00,670 - DEBUG - botocore.parsers - parse: Response headers: {'Server': 'Werkzeug/2.2.3 Python/3.12.12', 'Date': 'Mon, 10 Nov 2025 10:16:00 GMT', 'ETag': '"3770a66dc494ef2617c0785f4d12dc96"', 'last-modified': 'Mon, 10 Nov 2025 10:16:00 GMT', 'x-amzn-requestid': 'MAu0vpVFnCsORKZyKdvFfpjebIUwiG3EkKTy4wCr2g4EXugHbC4u', 'Content-Type': 'text/html; charset=utf-8', 'Content-Length': '0', 'Access-Control-Allow-Origin': '*', 'Connection': 'close'}
2025-11-10 10:16:00,671 - DEBUG - botocore.parsers - parse: Response body:
b''
2025-11-10 10:16:00,672 - DEBUG - botocore.hooks - _emit: Event needs-retry.s3.PutObject: calling handler <botocore.retryhandler.RetryHandler object at 0x7ffa909ce810>
2025-11-10 10:16:00,672 - DEBUG - botocore.retryhandler - __call__: No retry needed.
2025-11-10 10:16:00,673 - DEBUG - botocore.hooks - _emit: Event needs-retry.s3.PutObject: calling handler <bound method S3RegionRedirectorv2.redirect_from_error of <botocore.utils.S3RegionRedirectorv2 object at 0x7ffaa4157710>>
2025-11-10 10:16:00,673 - DEBUG - root - wait_bootstrap: Wait for node 1 to bootstrap
2025-11-10 10:16:00,713 - DEBUG - root - wait_bootstrap: Node 1 has been bootstrapped
2025-11-10 10:16:00,809 - DEBUG - root - create_query_impl: Request: content {
  type: ANALYTICS
  name: "simple"
  acl {
    visibility: PRIVATE
  }
  limits {
    execution_timeout {
    }
  }
  text: "\n            pragma s3.UseRuntimeListing=\"true\";\n            \n            $projection =\n            @@\n            {\n                \"projection.enabled\" : true,\n\n                \"projection.year.type\" : \"date\",\n                \"projection.year.min\" : \"2022-01-01\",\n                \"projection.year.max\" : \"2022-01-01\",\n                \"projection.year.format\" : \"%Y\",\n                \"projection.year.interval\" : \"1\",\n                \"projection.year.unit\" : \"DAYS\",\n\n                \"storage.location.template\" : \"${year}-03-05\"\n            }\n            @@;\n            \n            SELECT *\n            FROM `h8140943887034747407_test_projection_date_type_validationfruitbucket`.`/` WITH\n            (\n                format=csv_with_names,\n                schema=\n                (\n                    Fruit String NOT NULL,\n                    year Int64\n                ),\n                partitioned_by=(year),\n                projection=$projection\n            )\n            "
  syntax: YQL_V1
}
execute_mode: RUN
idempotency_key: "7944297f-9cd7-4dcf-b166-2febe0fc116a"

2025-11-10 10:16:00,828 - DEBUG - root - create_query_impl: Result: query_id: "ptqudsokn9c1s8h4pk7b"

2025-11-10 10:16:00,836 - DEBUG - root - describe_query: Result: query {
  meta {
    common {
      id: "ptqudsokn9c1s8h4pk7b"
      created_by: "root@builtin"
      modified_by: "root@builtin"
      created_at {
        seconds: 1762769760
        nanos: 811074000
      }
      modified_at {
        seconds: 1762769760
        nanos: 811074000
      }
      revision: 1
    }
    execute_mode: RUN
    status: STARTING
    last_job_query_revision: 1
    last_job_id: "ptjudsokn9c1s0cbjev8-ptqudsokn9c1s8h4pk7b"
    started_by: "root@builtin"
    submitted_at {
      seconds: 1762769760
      nanos: 811074000
    }
  }
  content {
    type: ANALYTICS
    name: "simple"
    acl {
      visibility: PRIVATE
    }
    limits {
      execution_timeout {
      }
    }
    text: "\n            pragma s3.UseRuntimeListing=\"true\";\n            \n            $projection =\n            @@\n            {\n                \"projection.enabled\" : true,\n\n                \"projection.year.type\" : \"date\",\n                \"projection.year.min\" : \"2022-01-01\",\n                \"projection.year.max\" : \"2022-01-01\",\n                \"projection.year.format\" : \"%Y\",\n                \"projection.year.interval\" : \"1\",\n                \"projection.year.unit\" : \"DAYS\",\n\n                \"storage.location.template\" : \"${year}-03-05\"\n            }\n            @@;\n            \n            SELECT *\n            FROM `h8140943887034747407_test_projection_date_type_validationfruitbucket`.`/` WITH\n            (\n                format=csv_with_names,\n                schema=\n                (\n                    Fruit String NOT NULL,\n                    year Int64\n                ),\n                partitioned_by=(year),\n                projection=$projection\n            )\n            "
    syntax: YQL_V1
  }
}

2025-11-10 10:16:01,357 - DEBUG - root - describe_query: Result: ... (repeated, see above) ...
2025-11-10 10:16:01,874 - DEBUG - root - describe_query: Result: query {
  meta {
    common {
      id: "ptqudsokn9c1s8h4pk7b"
      created_by: "root@builtin"
      modified_by: "root@builtin"
      created_at {
        seconds: 1762769760
        nanos: 811074000
      }
      modified_at {
        seconds: 1762769760
        nanos: 811074000
      }
      revision: 1
    }
    started_at {
      seconds: 1762769761
      nanos: 653000000
    }
    execute_mode: RUN
    status: RUNNING
    last_job_query_revision: 1
    last_job_id: "ptjudsokn9c1s0cbjev8-ptqudsokn9c1s8h4pk7b"
    started_by: "root@builtin"
    submitted_at {
      seconds: 1762769760
      nanos: 811074000
    }
  }
  content {
    type: ANALYTICS
    name: "simple"
    acl {
      visibility: PRIVATE
    }
    limits {
      execution_timeout {
      }
    }
    text: "\n            pragma s3.UseRuntimeListing=\"true\";\n            \n            $projection =\n            @@\n            {\n                \"projection.enabled\" : true,\n\n                \"projection.year.type\" : \"date\",\n                \"projection.year.min\" : \"2022-01-01\",\n                \"projection.year.max\" : \"2022-01-01\",\n                \"projection.year.format\" : \"%Y\",\n                \"projection.year.interval\" : \"1\",\n                \"projection.year.unit\" : \"DAYS\",\n\n                \"storage.location.template\" : \"${year}-03-05\"\n            }\n            @@;\n            \n            SELECT *\n            FROM `h8140943887034747407_test_projection_date_type_validationfruitbucket`.`/` WITH\n            (\n                format=csv_with_names,\n                schema=\n                (\n                    Fruit String NOT NULL,\n                    year Int64\n                ),\n                partitioned_by=(year),\n                projection=$projection\n            )\n            "
    syntax: YQL_V1
  }
  plan {
    json: "{}"
  }
  issue {
    message: "Type annotation"
    issue_code: 1030
    severity: 1
    issues {
      position {
        row: 21
        column: 18
      }
      message: "At function: S3ReadObject!"
      end_position {
        row: 21
        column: 18
      }
      severity: 1
      issues {
        position {
          row: 24
          column: 17
        }
        message: "Projection column \"year\" has invalid type Optional<Int64>"
        end_position {
          row: 24
          column: 17
        }
        severity: 1
      }
    }
  }
  statistics {
    json: "{}"
  }
  ast {
    data: "(\n(let $1 (Configure! world (DataSource \'\"s3\" \'\"$all\") \'\"Attr\" \'\"useruntimelisting\" \'\"true\"))\n(let $2 \'\"/local/h8140943887034747407_test_projection_date_type_validationfruitbucket\")\n(let $3 (OptionalType (DataType \'Int64)))\n(let $4 \'(\'\"partitionedby\" \'\"year\"))\n(let $5 \'\"\\n            {\\n                \\\"projection.enabled\\\" : true,\\n\\n                \\\"projection.year.type\\\" : \\\"date\\\",\\n                \\\"projection.year.min\\\" : \\\"2022-01-01\\\",\\n                \\\"projection.year.max\\\" : \\\"2022-01-01\\\",\\n                \\\"projection.year.format\\\" : \\\"%Y\\\",\\n                \\\"projection.year.interval\\\" : \\\"1\\\",\\n                \\\"projection.year.unit\\\" : \\\"DAYS\\\",\\n\\n                \\\"storage.location.template\\\" : \\\"${year}-03-05\\\"\\n            }\\n            \")\n(let $6 \'(\'\"projection\" $5))\n(let $7 \'($4 $6 \'(\'directories) \'(\'\"pathpattern\" \'\"*\") \'(\'\"pathpatternvariant\" \'\"FilePattern\")))\n(let $8 (S3Object \'(\'((String \'\"Paths {\\n  Name: \\\"2022-03-05\\\"\\n  Read: true\\n  IsDirectory: true\\n}\\n\") (Bool \'\"true\") (AsStruct \'(\'\"year\" (StrictCast (Date \'\"2022-01-01\") $3))))) \'\"csv_with_names\" $7))\n(let $9 (StructType \'(\'\"Fruit\" (DataType \'String)) \'(\'\"year\" (OptionalType (DataType \'Int64)))))\n(let $10 \'(\'\"Fruit\" \'\"year\"))\n(let $11 (DataSink \'result))\n(let $12 \'($4 $6 \'(\'directories) \'(\'\"pathpattern\" \'\"*\") \'(\'\"pathpatternvariant\" \'\"FilePattern\")))\n(let $13 (S3Object \'(\'((String \'\"Paths {\\n  Name: \\\"2022-03-05\\\"\\n  Read: true\\n  IsDirectory: true\\n}\\n\") (Bool \'\"true\") (AsStruct \'(\'\"year\" (StrictCast (Date \'\"2022-01-01\") $3))))) \'\"csv_with_names\" $12))\n(let $14 (Right! (S3ReadObject! $1 (DataSource \'\"s3\" $2) $13 $9 \'\"/ \" (lambda \'($17) (Bool \'\"true\")) $10)))\n(let $15 (ResWrite! (Left! (S3ReadObject! $1 (DataSource \'\"s3\" $2) $8 $9 \'\"/ \" (lambda \'($16) (Bool \'\"true\")) $10)) $11 (Key) (RemovePrefixMembers (RemoveSystemMembers (PersistableRepr (SqlProject $14 \'((SqlProjectStarItem (TypeOf $14) \'\"\" (lambda \'($18) $18) \'()))))) \'(\'_yql_sys_)) \'(\'(\'type) \'(\'autoref))))\n(return (Commit! (Commit! $15 $11) (DataSink \'\"kikimr\" \'\"db\") \'(\'(\'\"mode\" \'\"flush\"))))\n)\n"
  }
  timeline {
    svg: "<svg width=\'1280\' height=\'0\' xmlns=\'http://www.w3.org/2000/svg\'>\n<clipPath id=\'clipTextPath\'><rect x=\'0\' y=\'0\' width=\'298\' height=\'0\'/></clipPath>\n\n<defs>\n  <g id=\'icon_memory\'>\n    <path fill-rule=\'evenodd\' clip-rule=\'evenodd\' d=\'M5 3C3.89543 3 3 3.89543 3 5H1V7H3V9H1V11H3V13H1V15H3V17H1V19H3C3 20.1046 3.89543 21 5 21H9C10.1046 21 11 20.1046 11 19H13C13 20.1046 13.8954 21 15 21H19C20.1046 21 21 20.1046 21 19H23V17H21V15H23V13H21V11H23V9H21V7H23V5H21C21 3.89543 20.1046 3 19 3H15C13.8954 3 13 3.89543 13 5H11C11 3.89543 10.1046 3 9 3H5ZM11 7V9H13V7H11ZM11 11V13H13V11H11ZM11 15V17H13V15H11ZM5 5H9V19H5V5ZM15 5H19V19H15V5Z\' />\n  </g>\n\n  <g id=\'icon_cpu\'>\n    <path d=\'M13.9802 7.75H10.0102C8.76023 7.75 7.74023 8.76 7.74023 10.02V13.99C7.74023 15.24 8.75023 16.26 10.0102 16.26H13.9802C15.2302 16.26 16.2502 15.25 16.2502 13.99V10.02C16.2502 8.76 15.2402 7.75 13.9802 7.75ZM13.5002 12.98L12.6102 14.53C12.4802 14.76 12.2402 14.88 12.0002 14.88C11.8802 14.88 11.7502 14.85 11.6502 14.79C11.3102 14.6 11.1902 14.17 11.3902 13.83L12.0302 12.72H11.4702C11.0202 12.72 10.6502 12.52 10.4502 12.18C10.2502 11.84 10.2702 11.42 10.5002 11.03L11.3902 9.48C11.5902 9.14 12.0202 9.03 12.3502 9.22C12.6902 9.41 12.8102 9.84 12.6102 10.18L11.9702 11.29H12.5302C12.9802 11.29 13.3502 11.49 13.5502 11.83C13.7502 12.17 13.7302 12.59 13.5002 12.98Z\' />\n    <path d=\'M21.25 12.75C21.67 12.75 22 12.41 22 12C22 11.58 21.67 11.25 21.25 11.25H20V9.05H21.25C21.67 9.05 22 8.72 22 8.3C22 7.89 21.67 7.55 21.25 7.55H19.77C19.29 5.96 18.04 4.71 16.45 4.23V2.75C16.45 2.34 16.11 2 15.7 2C15.29 2 14.95 2.34 14.95 2.75V4H12.75V2.75C12.75 2.34 12.41 2 12 2C11.59 2 11.25 2.34 11.25 2.75V4H9.06V2.75C9.06 2.34 8.72 2 8.31 2C7.89 2 7.56 2.34 7.56 2.75V4.23C5.96 4.71 4.71 5.96 4.23 7.55H2.75C2.34 7.55 2 7.89 2 8.3C2 8.72 2.34 9.05 2.75 9.05H4V11.25H2.75C2.34 11.25 2 11.58 2 12C2 12.41 2.34 12.75 2.75 12.75H4V14.95H2.75C2.34 14.95 2 15.28 2 15.7C2 16.11 2.34 16.45 2.75 16.45H4.23C4.7 18.04 5.96 19.29 7.56 19.77V21.25C7.56 21.66 7.89 22 8.31 22C8.72 22 9.06 21.66 9.06 21.25V20H11.26V21.25C11.26 21.66 11.59 22 12.01 22C12.42 22 12.76 21.66 12.76 21.25V20H14.95V21.25C14.95 21.66 15.29 22 15.7 22C16.11 22 16.45 21.66 16.45 21.25V19.77C18.04 19.29 19.29 18.04 19.77 16.45H21.25C21.67 16.45 22 16.11 22 15.7C22 15.28 21.67 14.95 21.25 14.95H20V12.75H21.25ZM17.26 14.26C17.26 15.91 15.91 17.26 14.26 17.26H9.74C8.09 17.26 6.74 15.91 6.74 14.26V9.74C6.74 8.09 8.09 6.74 9.74 6.74H14.26C15.91 6.74 17.26 8.09 17.26 9.74V14.26Z\' />\n </g>\n\n  <g id=\'icon_ingress\'>\n    <path d=\'M3 6L6 6L6 12L10 12L10 6L13 6V5L8 0L3 5L3 6Z\' />\n    <path d=\'M2 16L14 16V14L2 14V16Z\' />\n  </g>\n\n  <g id=\'icon_egress\'>\n    <path d=\'M13 9H10V16H6V9L3 9V8L8 3L13 8V9Z\' />\n    <path d=\'M14 2H2V0H14V2Z\' />\n  </g>\n\n  <g id=\'icon_input\'>\n    <path d=\"M456.49,264.459L295.206,103.183l56.572-56.572c1.084-1.08,1.456-2.696,0.948-4.14c-0.504-1.448-1.792-2.48-3.316-2.656\n        L4.654,0.027c-1.22-0.144-2.428,0.284-3.292,1.148c-0.864,0.86-1.284,2.068-1.144,3.28L40.01,349.208\n        c0.176,1.52,1.208,2.812,2.656,3.316c1.448,0.508,3.068,0.14,4.144-0.948l56.18-56.18L264.274,456.68\n        c0.748,0.748,1.764,1.172,2.828,1.172c1.06,0,2.076-0.424,2.828-1.172l186.556-186.568\n        C458.05,268.555,458.05,266.027,456.49,264.459z\"/>\n  </g>\n\n  <g id=\'icon_output\'>\n\t<path d=\"M456.494,1.168c-0.864-0.86-2.064-1.284-3.288-1.14l-344.76,39.78c-1.524,0.18-2.812,1.216-3.32,2.656\n        c-0.504,1.456-0.132,3.068,0.948,4.148l56.572,56.576L1.362,264.464c-1.564,1.564-1.564,4.092,0,5.656l186.56,186.556\n        c0.78,0.784,1.804,1.172,2.828,1.172c1.024,0,2.048-0.388,2.828-1.172l161.28-161.28l56.18,56.18\n        c1.084,1.088,2.7,1.452,4.144,0.952c1.448-0.504,2.48-1.796,2.656-3.32L457.63,4.456C457.774,3.248,457.354,2.036,456.494,1.168z\"/>\n  </g>\n\n</defs>\n<style type=\'text/css\'>\n  rect.stage { stroke-width:0; fill:var(--stage-main, #F2F2F2); }\n  rect.clone { stroke-width:0; fill:var(--stage-clone, #D9D9D9); }\n  rect.blocks { stroke-width:0; fill:var(--block-medium, #EACB68); }\n  .texts { text-anchor:start; font-family:Verdana; font-size:8px; fill:var(--stage-text, #262626); }\n  .textm { text-anchor:middle; font-family:Verdana; font-size:8px; fill:var(--stage-text, #262626); }\n  .texte { text-anchor:end; font-family:Verdana; font-size:8px; fill:var(--stage-text, #262626); }\n  circle.stage { stroke:var(--stage-main, #F2F2F2); stroke-width:1; fill:var(--stage-clone, #D9D9D9); }\n  line.opdiv { stroke-width:1; stroke:var(--stage-grid, #B2B2B2); stroke-dasharray:1,2; }\n  text.clipped { clip-path:url(#clipTextPath); }\n  polygon.conn { stroke-width:0; fill:var(--conn-fill, #BFBFBF); }\n  path.conn { stroke-width:1; stroke:var(--conn-fill, #BFBFBF); fill:var(--conn-fill, #BFBFBF); }\n  path.conn.blocks { stroke-width:1; stroke:var(--conn-fill, #BFBFBF); fill:var(--block-medium, #EACB68); }\n  text.conn { text-anchor:middle; font-family:Verdana; font-size:6px; fill:var(--conn-text, #393939); }\n  rect.background { stroke-width:0; fill:#33FFFF; opacity:0; }\n  g.selected circle.stage { fill:#33FFFF; }\n  g.selected polygon.conn { fill:#33FFFF; }\n  g.selected path.conn { stroke:#33FFFF; fill:#33FFFF; }\n  g.selected rect.stage { fill:#33FFFF; }\n  g.selected rect.clone { fill:#33FFFF; }\n  g.selected rect.background { opacity:1; }\n  g.selected path.blocks { stroke:#33FFFF; }\n</style>\n\n<script type=\"text/ecmascript\">\n<![CDATA[\n    var selectedNode;\n\n    function find_selectable(node) {\n\t\tvar parent = node.parentElement;\n\t\tif (!parent) return;\n\t\tif (parent.classList.contains(\"selectable\")) return parent;\n\t\treturn find_selectable(parent);\n\t}\n\n    window.onload = function() {\n        selectedNode = document.querySelector(\".selected\");\n    }\n\n    window.addEventListener(\"click\", function(e) {\n\t\tvar target = find_selectable(e.target);\n        if (target) {\n            if (selectedNode) {\n                selectedNode.classList.remove(\"selected\");\n            }\n            if (target == selectedNode) {\n                selectedNode = null;\n            } else {\n                selectedNode = target;\n                selectedNode.classList.add(\"selected\");\n            }\n        }\n\t}, false)\n]]>\n</script>\n\n<line x1=\'600\' y1=\'0\' x2=\'600\' y2=\'0\' stroke-width=\'1\' stroke=\'var(--stage-grid, #B2B2B2)\' stroke-dasharray=\'1,2\'/>\n\n</svg>\n"
  }
}

2025-11-10 10:16:02,385 - DEBUG - root - describe_query: Result: query {
  meta {
    common {
      id: "ptqudsokn9c1s8h4pk7b"
      created_by: "root@builtin"
      modified_by: "root@builtin"
      created_at {
        seconds: 1762769760
        nanos: 811074000
      }
      modified_at {
        seconds: 1762769760
        nanos: 811074000
      }
      revision: 1
    }
    started_at {
      seconds: 1762769761
      nanos: 653000000
    }
    execute_mode: RUN
    status: FAILING
    last_job_query_revision: 1
    last_job_id: "ptjudsokn9c1s0cbjev8-ptqudsokn9c1s8h4pk7b"
    started_by: "root@builtin"
    submitted_at {
      seconds: 1762769760
      nanos: 811074000
    }
  }
  content {
    type: ANALYTICS
    name: "simple"
    acl {
      visibility: PRIVATE
    }
    limits {
      execution_timeout {
      }
    }
    text: "\n            pragma s3.UseRuntimeListing=\"true\";\n            \n            $projection =\n            @@\n            {\n                \"projection.enabled\" : true,\n\n                \"projection.year.type\" : \"date\",\n                \"projection.year.min\" : \"2022-01-01\",\n                \"projection.year.max\" : \"2022-01-01\",\n                \"projection.year.format\" : \"%Y\",\n                \"projection.year.interval\" : \"1\",\n                \"projection.year.unit\" : \"DAYS\",\n\n                \"storage.location.template\" : \"${year}-03-05\"\n            }\n            @@;\n            \n            SELECT *\n            FROM `h8140943887034747407_test_projection_date_type_validationfruitbucket`.`/` WITH\n            (\n                format=csv_with_names,\n                schema=\n                (\n                    Fruit String NOT NULL,\n                    year Int64\n                ),\n                partitioned_by=(year),\n                projection=$projection\n            )\n            "
    syntax: YQL_V1
  }
  plan {
    json: "{}"
  }
  issue {
    message: "Query failed with code GENERIC_ERROR at 2025-11-10T10:16:01.854399Z"
    severity: 1
    issues {
      message: "Type annotation"
      issue_code: 1030
      severity: 1
      issues {
        position {
          row: 21
          column: 18
        }
        message: "At function: S3ReadObject!"
        end_position {
          row: 21
          column: 18
        }
        severity: 1
        issues {
          position {
            row: 24
            column: 17
          }
          message: "Projection column \"year\" has invalid type Optional<Int64>"
          end_position {
            row: 24
            column: 17
          }
          severity: 1
        }
      }
    }
  }
  statistics {
    json: "{}"
  }
  ast {
    data: "(\n(let $1 (Configure! world (DataSource \'\"s3\" \'\"$all\") \'\"Attr\" \'\"useruntimelisting\" \'\"true\"))\n(let $2 \'\"/local/h8140943887034747407_test_projection_date_type_validationfruitbucket\")\n(let $3 (OptionalType (DataType \'Int64)))\n(let $4 \'(\'\"partitionedby\" \'\"year\"))\n(let $5 \'\"\\n            {\\n                \\\"projection.enabled\\\" : true,\\n\\n                \\\"projection.year.type\\\" : \\\"date\\\",\\n                \\\"projection.year.min\\\" : \\\"2022-01-01\\\",\\n                \\\"projection.year.max\\\" : \\\"2022-01-01\\\",\\n                \\\"projection.year.format\\\" : \\\"%Y\\\",\\n                \\\"projection.year.interval\\\" : \\\"1\\\",\\n                \\\"projection.year.unit\\\" : \\\"DAYS\\\",\\n\\n                \\\"storage.location.template\\\" : \\\"${year}-03-05\\\"\\n            }\\n            \")\n(let $6 \'(\'\"projection\" $5))\n(let $7 \'($4 $6 \'(\'directories) \'(\'\"pathpattern\" \'\"*\") \'(\'\"pathpatternvariant\" \'\"FilePattern\")))\n(let $8 (S3Object \'(\'((String \'\"Paths {\\n  Name: \\\"2022-03-05\\\"\\n  Read: true\\n  IsDirectory: true\\n}\\n\") (Bool \'\"true\") (AsStruct \'(\'\"year\" (StrictCast (Date \'\"2022-01-01\") $3))))) \'\"csv_with_names\" $7))\n(let $9 (StructType \'(\'\"Fruit\" (DataType \'String)) \'(\'\"year\" (OptionalType (DataType \'Int64)))))\n(let $10 \'(\'\"Fruit\" \'\"year\"))\n(let $11 (DataSink \'result))\n(let $12 \'($4 $6 \'(\'directories) \'(\'\"pathpattern\" \'\"*\") \'(\'\"pathpatternvariant\" \'\"FilePattern\")))\n(let $13 (S3Object \'(\'((String \'\"Paths {\\n  Name: \\\"2022-03-05\\\"\\n  Read: true\\n  IsDirectory: true\\n}\\n\") (Bool \'\"true\") (AsStruct \'(\'\"year\" (StrictCast (Date \'\"2022-01-01\") $3))))) \'\"csv_with_names\" $12))\n(let $14 (Right! (S3ReadObject! $1 (DataSource \'\"s3\" $2) $13 $9 \'\"/ \" (lambda \'($17) (Bool \'\"true\")) $10)))\n(let $15 (ResWrite! (Left! (S3ReadObject! $1 (DataSource \'\"s3\" $2) $8 $9 \'\"/ \" (lambda \'($16) (Bool \'\"true\")) $10)) $11 (Key) (RemovePrefixMembers (RemoveSystemMembers (PersistableRepr (SqlProject $14 \'((SqlProjectStarItem (TypeOf $14) \'\"\" (lambda \'($18) $18) \'()))))) \'(\'_yql_sys_)) \'(\'(\'type) \'(\'autoref))))\n(return (Commit! (Commit! $15 $11) (DataSink \'\"kikimr\" \'\"db\") \'(\'(\'\"mode\" \'\"flush\"))))\n)\n"
  }
  timeline {
    svg: "<svg width=\'1280\' height=\'0\' xmlns=\'http://www.w3.org/2000/svg\'>\n<clipPath id=\'clipTextPath\'><rect x=\'0\' y=\'0\' width=\'298\' height=\'0\'/></clipPath>\n\n<defs>\n  <g id=\'icon_memory\'>\n    <path fill-rule=\'evenodd\' clip-rule=\'evenodd\' d=\'M5 3C3.89543 3 3 3.89543 3 5H1V7H3V9H1V11H3V13H1V15H3V17H1V19H3C3 20.1046 3.89543 21 5 21H9C10.1046 21 11 20.1046 11 19H13C13 20.1046 13.8954 21 15 21H19C20.1046 21 21 20.1046 21 19H23V17H21V15H23V13H21V11H23V9H21V7H23V5H21C21 3.89543 20.1046 3 19 3H15C13.8954 3 13 3.89543 13 5H11C11 3.89543 10.1046 3 9 3H5ZM11 7V9H13V7H11ZM11 11V13H13V11H11ZM11 15V17H13V15H11ZM5 5H9V19H5V5ZM15 5H19V19H15V5Z\' />\n  </g>\n\n  <g id=\'icon_cpu\'>\n    <path d=\'M13.9802 7.75H10.0102C8.76023 7.75 7.74023 8.76 7.74023 10.02V13.99C7.74023 15.24 8.75023 16.26 10.0102 16.26H13.9802C15.2302 16.26 16.2502 15.25 16.2502 13.99V10.02C16.2502 8.76 15.2402 7.75 13.9802 7.75ZM13.5002 12.98L12.6102 14.53C12.4802 14.76 12.2402 14.88 12.0002 14.88C11.8802 14.88 11.7502 14.85 11.6502 14.79C11.3102 14.6 11.1902 14.17 11.3902 13.83L12.0302 12.72H11.4702C11.0202 12.72 10.6502 12.52 10.4502 12.18C10.2502 11.84 10.2702 11.42 10.5002 11.03L11.3902 9.48C11.5902 9.14 12.0202 9.03 12.3502 9.22C12.6902 9.41 12.8102 9.84 12.6102 10.18L11.9702 11.29H12.5302C12.9802 11.29 13.3502 11.49 13.5502 11.83C13.7502 12.17 13.7302 12.59 13.5002 12.98Z\' />\n    <path d=\'M21.25 12.75C21.67 12.75 22 12.41 22 12C22 11.58 21.67 11.25 21.25 11.25H20V9.05H21.25C21.67 9.05 22 8.72 22 8.3C22 7.89 21.67 7.55 21.25 7.55H19.77C19.29 5.96 18.04 4.71 16.45 4.23V2.75C16.45 2.34 16.11 2 15.7 2C15.29 2 14.95 2.34 14.95 2.75V4H12.75V2.75C12.75 2.34 12.41 2 12 2C11.59 2 11.25 2.34 11.25 2.75V4H9.06V2.75C9.06 2.34 8.72 2 8.31 2C7.89 2 7.56 2.34 7.56 2.75V4.23C5.96 4.71 4.71 5.96 4.23 7.55H2.75C2.34 7.55 2 7.89 2 8.3C2 8.72 2.34 9.05 2.75 9.05H4V11.25H2.75C2.34 11.25 2 11.58 2 12C2 12.41 2.34 12.75 2.75 12.75H4V14.95H2.75C2.34 14.95 2 15.28 2 15.7C2 16.11 2.34 16.45 2.75 16.45H4.23C4.7 18.04 5.96 19.29 7.56 19.77V21.25C7.56 21.66 7.89 22 8.31 22C8.72 22 9.06 21.66 9.06 21.25V20H11.26V21.25C11.26 21.66 11.59 22 12.01 22C12.42 22 12.76 21.66 12.76 21.25V20H14.95V21.25C14.95 21.66 15.29 22 15.7 22C16.11 22 16.45 21.66 16.45 21.25V19.77C18.04 19.29 19.29 18.04 19.77 16.45H21.25C21.67 16.45 22 16.11 22 15.7C22 15.28 21.67 14.95 21.25 14.95H20V12.75H21.25ZM17.26 14.26C17.26 15.91 15.91 17.26 14.26 17.26H9.74C8.09 17.26 6.74 15.91 6.74 14.26V9.74C6.74 8.09 8.09 6.74 9.74 6.74H14.26C15.91 6.74 17.26 8.09 17.26 9.74V14.26Z\' />\n </g>\n\n  <g id=\'icon_ingress\'>\n    <path d=\'M3 6L6 6L6 12L10 12L10 6L13 6V5L8 0L3 5L3 6Z\' />\n    <path d=\'M2 16L14 16V14L2 14V16Z\' />\n  </g>\n\n  <g id=\'icon_egress\'>\n    <path d=\'M13 9H10V16H6V9L3 9V8L8 3L13 8V9Z\' />\n    <path d=\'M14 2H2V0H14V2Z\' />\n  </g>\n\n  <g id=\'icon_input\'>\n    <path d=\"M456.49,264.459L295.206,103.183l56.572-56.572c1.084-1.08,1.456-2.696,0.948-4.14c-0.504-1.448-1.792-2.48-3.316-2.656\n        L4.654,0.027c-1.22-0.144-2.428,0.284-3.292,1.148c-0.864,0.86-1.284,2.068-1.144,3.28L40.01,349.208\n        c0.176,1.52,1.208,2.812,2.656,3.316c1.448,0.508,3.068,0.14,4.144-0.948l56.18-56.18L264.274,456.68\n        c0.748,0.748,1.764,1.172,2.828,1.172c1.06,0,2.076-0.424,2.828-1.172l186.556-186.568\n        C458.05,268.555,458.05,266.027,456.49,264.459z\"/>\n  </g>\n\n  <g id=\'icon_output\'>\n\t<path d=\"M456.494,1.168c-0.864-0.86-2.064-1.284-3.288-1.14l-344.76,39.78c-1.524,0.18-2.812,1.216-3.32,2.656\n        c-0.504,1.456-0.132,3.068,0.948,4.148l56.572,56.576L1.362,264.464c-1.564,1.564-1.564,4.092,0,5.656l186.56,186.556\n        c0.78,0.784,1.804,1.172,2.828,1.172c1.024,0,2.048-0.388,2.828-1.172l161.28-161.28l56.18,56.18\n        c1.084,1.088,2.7,1.452,4.144,0.952c1.448-0.504,2.48-1.796,2.656-3.32L457.63,4.456C457.774,3.248,457.354,2.036,456.494,1.168z\"/>\n  </g>\n\n</defs>\n<style type=\'text/css\'>\n  rect.stage { stroke-width:0; fill:var(--stage-main, #F2F2F2); }\n  rect.clone { stroke-width:0; fill:var(--stage-clone, #D9D9D9); }\n  rect.blocks { stroke-width:0; fill:var(--block-medium, #EACB68); }\n  .texts { text-anchor:start; font-family:Verdana; font-size:8px; fill:var(--stage-text, #262626); }\n  .textm { text-anchor:middle; font-family:Verdana; font-size:8px; fill:var(--stage-text, #262626); }\n  .texte { text-anchor:end; font-family:Verdana; font-size:8px; fill:var(--stage-text, #262626); }\n  circle.stage { stroke:var(--stage-main, #F2F2F2); stroke-width:1; fill:var(--stage-clone, #D9D9D9); }\n  line.opdiv { stroke-width:1; stroke:var(--stage-grid, #B2B2B2); stroke-dasharray:1,2; }\n  text.clipped { clip-path:url(#clipTextPath); }\n  polygon.conn { stroke-width:0; fill:var(--conn-fill, #BFBFBF); }\n  path.conn { stroke-width:1; stroke:var(--conn-fill, #BFBFBF); fill:var(--conn-fill, #BFBFBF); }\n  path.conn.blocks { stroke-width:1; stroke:var(--conn-fill, #BFBFBF); fill:var(--block-medium, #EACB68); }\n  text.conn { text-anchor:middle; font-family:Verdana; font-size:6px; fill:var(--conn-text, #393939); }\n  rect.background { stroke-width:0; fill:#33FFFF; opacity:0; }\n  g.selected circle.stage { fill:#33FFFF; }\n  g.selected polygon.conn { fill:#33FFFF; }\n  g.selected path.conn { stroke:#33FFFF; fill:#33FFFF; }\n  g.selected rect.stage { fill:#33FFFF; }\n  g.selected rect.clone { fill:#33FFFF; }\n  g.selected rect.background { opacity:1; }\n  g.selected path.blocks { stroke:#33FFFF; }\n</style>\n\n<script type=\"text/ecmascript\">\n<![CDATA[\n    var selectedNode;\n\n    function find_selectable(node) {\n\t\tvar parent = node.parentElement;\n\t\tif (!parent) return;\n\t\tif (parent.classList.contains(\"selectable\")) return parent;\n\t\treturn find_selectable(parent);\n\t}\n\n    window.onload = function() {\n        selectedNode = document.querySelector(\".selected\");\n    }\n\n    window.addEventListener(\"click\", function(e) {\n\t\tvar target = find_selectable(e.target);\n        if (target) {\n            if (selectedNode) {\n                selectedNode.classList.remove(\"selected\");\n            }\n            if (target == selectedNode) {\n                selectedNode = null;\n            } else {\n                selectedNode = target;\n                selectedNode.classList.add(\"selected\");\n            }\n        }\n\t}, false)\n]]>\n</script>\n\n<line x1=\'600\' y1=\'0\' x2=\'600\' y2=\'0\' stroke-width=\'1\' stroke=\'var(--stage-grid, #B2B2B2)\' stroke-dasharray=\'1,2\'/>\n\n</svg>\n"
  }
}

2025-11-10 10:16:02,903 - DEBUG - root - describe_query: Result: query {
  meta {
    common {
      id: "ptqudsokn9c1s8h4pk7b"
      created_by: "root@builtin"
      modified_by: "root@builtin"
      created_at {
        seconds: 1762769760
        nanos: 811074000
      }
      modified_at {
        seconds: 1762769760
        nanos: 811074000
      }
      revision: 1
    }
    started_at {
      seconds: 1762769761
      nanos: 653000000
    }
    finished_at {
      seconds: 1762769762
      nanos: 638000000
    }
    execute_mode: RUN
    status: FAILED
    last_job_query_revision: 1
    last_job_id: "ptjudsokn9c1s0cbjev8-ptqudsokn9c1s8h4pk7b"
    started_by: "root@builtin"
    submitted_at {
      seconds: 1762769760
      nanos: 811074000
    }
  }
  content {
    type: ANALYTICS
    name: "simple"
    acl {
      visibility: PRIVATE
    }
    limits {
      execution_timeout {
      }
    }
    text: "\n            pragma s3.UseRuntimeListing=\"true\";\n            \n            $projection =\n            @@\n            {\n                \"projection.enabled\" : true,\n\n                \"projection.year.type\" : \"date\",\n                \"projection.year.min\" : \"2022-01-01\",\n                \"projection.year.max\" : \"2022-01-01\",\n                \"projection.year.format\" : \"%Y\",\n                \"projection.year.interval\" : \"1\",\n                \"projection.year.unit\" : \"DAYS\",\n\n                \"storage.location.template\" : \"${year}-03-05\"\n            }\n            @@;\n            \n            SELECT *\n            FROM `h8140943887034747407_test_projection_date_type_validationfruitbucket`.`/` WITH\n            (\n                format=csv_with_names,\n                schema=\n                (\n                    Fruit String NOT NULL,\n                    year Int64\n                ),\n                partitioned_by=(year),\n                projection=$projection\n            )\n            "
    syntax: YQL_V1
  }
  plan {
    json: "{}"
  }
  issue {
    message: "Query failed with code GENERIC_ERROR at 2025-11-10T10:16:01.854399Z"
    severity: 1
    issues {
      message: "Type annotation"
      issue_code: 1030
      severity: 1
      issues {
        position {
          row: 21
          column: 18
        }
        message: "At function: S3ReadObject!"
        end_position {
          row: 21
          column: 18
        }
        severity: 1
        issues {
          position {
            row: 24
            column: 17
          }
          message: "Projection column \"year\" has invalid type Optional<Int64>"
          end_position {
            row: 24
            column: 17
          }
          severity: 1
        }
      }
    }
  }
  statistics {
    json: "{}"
  }
  ast {
    data: "(\n(let $1 (Configure! world (DataSource \'\"s3\" \'\"$all\") \'\"Attr\" \'\"useruntimelisting\" \'\"true\"))\n(let $2 \'\"/local/h8140943887034747407_test_projection_date_type_validationfruitbucket\")\n(let $3 (OptionalType (DataType \'Int64)))\n(let $4 \'(\'\"partitionedby\" \'\"year\"))\n(let $5 \'\"\\n            {\\n                \\\"projection.enabled\\\" : true,\\n\\n                \\\"projection.year.type\\\" : \\\"date\\\",\\n                \\\"projection.year.min\\\" : \\\"2022-01-01\\\",\\n                \\\"projection.year.max\\\" : \\\"2022-01-01\\\",\\n                \\\"projection.year.format\\\" : \\\"%Y\\\",\\n                \\\"projection.year.interval\\\" : \\\"1\\\",\\n                \\\"projection.year.unit\\\" : \\\"DAYS\\\",\\n\\n                \\\"storage.location.template\\\" : \\\"${year}-03-05\\\"\\n            }\\n            \")\n(let $6 \'(\'\"projection\" $5))\n(let $7 \'($4 $6 \'(\'directories) \'(\'\"pathpattern\" \'\"*\") \'(\'\"pathpatternvariant\" \'\"FilePattern\")))\n(let $8 (S3Object \'(\'((String \'\"Paths {\\n  Name: \\\"2022-03-05\\\"\\n  Read: true\\n  IsDirectory: true\\n}\\n\") (Bool \'\"true\") (AsStruct \'(\'\"year\" (StrictCast (Date \'\"2022-01-01\") $3))))) \'\"csv_with_names\" $7))\n(let $9 (StructType \'(\'\"Fruit\" (DataType \'String)) \'(\'\"year\" (OptionalType (DataType \'Int64)))))\n(let $10 \'(\'\"Fruit\" \'\"year\"))\n(let $11 (DataSink \'result))\n(let $12 \'($4 $6 \'(\'directories) \'(\'\"pathpattern\" \'\"*\") \'(\'\"pathpatternvariant\" \'\"FilePattern\")))\n(let $13 (S3Object \'(\'((String \'\"Paths {\\n  Name: \\\"2022-03-05\\\"\\n  Read: true\\n  IsDirectory: true\\n}\\n\") (Bool \'\"true\") (AsStruct \'(\'\"year\" (StrictCast (Date \'\"2022-01-01\") $3))))) \'\"csv_with_names\" $12))\n(let $14 (Right! (S3ReadObject! $1 (DataSource \'\"s3\" $2) $13 $9 \'\"/ \" (lambda \'($17) (Bool \'\"true\")) $10)))\n(let $15 (ResWrite! (Left! (S3ReadObject! $1 (DataSource \'\"s3\" $2) $8 $9 \'\"/ \" (lambda \'($16) (Bool \'\"true\")) $10)) $11 (Key) (RemovePrefixMembers (RemoveSystemMembers (PersistableRepr (SqlProject $14 \'((SqlProjectStarItem (TypeOf $14) \'\"\" (lambda \'($18) $18) \'()))))) \'(\'_yql_sys_)) \'(\'(\'type) \'(\'autoref))))\n(return (Commit! (Commit! $15 $11) (DataSink \'\"kikimr\" \'\"db\") \'(\'(\'\"mode\" \'\"flush\"))))\n)\n"
  }
  timeline {
    svg: "<svg width=\'1280\' height=\'0\' xmlns=\'http://www.w3.org/2000/svg\'>\n<clipPath id=\'clipTextPath\'><rect x=\'0\' y=\'0\' width=\'298\' height=\'0\'/></clipPath>\n\n<defs>\n  <g id=\'icon_memory\'>\n    <path fill-rule=\'evenodd\' clip-rule=\'evenodd\' d=\'M5 3C3.89543 3 3 3.89543 3 5H1V7H3V9H1V11H3V13H1V15H3V17H1V19H3C3 20.1046 3.89543 21 5 21H9C10.1046 21 11 20.1046 11 19H13C13 20.1046 13.8954 21 15 21H19C20.1046 21 21 20.1046 21 19H23V17H21V15H23V13H21V11H23V9H21V7H23V5H21C21 3.89543 20.1046 3 19 3H15C13.8954 3 13 3.89543 13 5H11C11 3.89543 10.1046 3 9 3H5ZM11 7V9H13V7H11ZM11 11V13H13V11H11ZM11 15V17H13V15H11ZM5 5H9V19H5V5ZM15 5H19V19H15V5Z\' />\n  </g>\n\n  <g id=\'icon_cpu\'>\n    <path d=\'M13.9802 7.75H10.0102C8.76023 7.75 7.74023 8.76 7.74023 10.02V13.99C7.74023 15.24 8.75023 16.26 10.0102 16.26H13.9802C15.2302 16.26 16.2502 15.25 16.2502 13.99V10.02C16.2502 8.76 15.2402 7.75 13.9802 7.75ZM13.5002 12.98L12.6102 14.53C12.4802 14.76 12.2402 14.88 12.0002 14.88C11.8802 14.88 11.7502 14.85 11.6502 14.79C11.3102 14.6 11.1902 14.17 11.3902 13.83L12.0302 12.72H11.4702C11.0202 12.72 10.6502 12.52 10.4502 12.18C10.2502 11.84 10.2702 11.42 10.5002 11.03L11.3902 9.48C11.5902 9.14 12.0202 9.03 12.3502 9.22C12.6902 9.41 12.8102 9.84 12.6102 10.18L11.9702 11.29H12.5302C12.9802 11.29 13.3502 11.49 13.5502 11.83C13.7502 12.17 13.7302 12.59 13.5002 12.98Z\' />\n    <path d=\'M21.25 12.75C21.67 12.75 22 12.41 22 12C22 11.58 21.67 11.25 21.25 11.25H20V9.05H21.25C21.67 9.05 22 8.72 22 8.3C22 7.89 21.67 7.55 21.25 7.55H19.77C19.29 5.96 18.04 4.71 16.45 4.23V2.75C16.45 2.34 16.11 2 15.7 2C15.29 2 14.95 2.34 14.95 2.75V4H12.75V2.75C12.75 2.34 12.41 2 12 2C11.59 2 11.25 2.34 11.25 2.75V4H9.06V2.75C9.06 2.34 8.72 2 8.31 2C7.89 2 7.56 2.34 7.56 2.75V4.23C5.96 4.71 4.71 5.96 4.23 7.55H2.75C2.34 7.55 2 7.89 2 8.3C2 8.72 2.34 9.05 2.75 9.05H4V11.25H2.75C2.34 11.25 2 11.58 2 12C2 12.41 2.34 12.75 2.75 12.75H4V14.95H2.75C2.34 14.95 2 15.28 2 15.7C2 16.11 2.34 16.45 2.75 16.45H4.23C4.7 18.04 5.96 19.29 7.56 19.77V21.25C7.56 21.66 7.89 22 8.31 22C8.72 22 9.06 21.66 9.06 21.25V20H11.26V21.25C11.26 21.66 11.59 22 12.01 22C12.42 22 12.76 21.66 12.76 21.25V20H14.95V21.25C14.95 21.66 15.29 22 15.7 22C16.11 22 16.45 21.66 16.45 21.25V19.77C18.04 19.29 19.29 18.04 19.77 16.45H21.25C21.67 16.45 22 16.11 22 15.7C22 15.28 21.67 14.95 21.25 14.95H20V12.75H21.25ZM17.26 14.26C17.26 15.91 15.91 17.26 14.26 17.26H9.74C8.09 17.26 6.74 15.91 6.74 14.26V9.74C6.74 8.09 8.09 6.74 9.74 6.74H14.26C15.91 6.74 17.26 8.09 17.26 9.74V14.26Z\' />\n </g>\n\n  <g id=\'icon_ingress\'>\n    <path d=\'M3 6L6 6L6 12L10 12L10 6L13 6V5L8 0L3 5L3 6Z\' />\n    <path d=\'M2 16L14 16V14L2 14V16Z\' />\n  </g>\n\n  <g id=\'icon_egress\'>\n    <path d=\'M13 9H10V16H6V9L3 9V8L8 3L13 8V9Z\' />\n    <path d=\'M14 2H2V0H14V2Z\' />\n  </g>\n\n  <g id=\'icon_input\'>\n    <path d=\"M456.49,264.459L295.206,103.183l56.572-56.572c1.084-1.08,1.456-2.696,0.948-4.14c-0.504-1.448-1.792-2.48-3.316-2.656\n        L4.654,0.027c-1.22-0.144-2.428,0.284-3.292,1.148c-0.864,0.86-1.284,2.068-1.144,3.28L40.01,349.208\n        c0.176,1.52,1.208,2.812,2.656,3.316c1.448,0.508,3.068,0.14,4.144-0.948l56.18-56.18L264.274,456.68\n        c0.748,0.748,1.764,1.172,2.828,1.172c1.06,0,2.076-0.424,2.828-1.172l186.556-186.568\n        C458.05,268.555,458.05,266.027,456.49,264.459z\"/>\n  </g>\n\n  <g id=\'icon_output\'>\n\t<path d=\"M456.494,1.168c-0.864-0.86-2.064-1.284-3.288-1.14l-344.76,39.78c-1.524,0.18-2.812,1.216-3.32,2.656\n        c-0.504,1.456-0.132,3.068,0.948,4.148l56.572,56.576L1.362,264.464c-1.564,1.564-1.564,4.092,0,5.656l186.56,186.556\n        c0.78,0.784,1.804,1.172,2.828,1.172c1.024,0,2.048-0.388,2.828-1.172l161.28-161.28l56.18,56.18\n        c1.084,1.088,2.7,1.452,4.144,0.952c1.448-0.504,2.48-1.796,2.656-3.32L457.63,4.456C457.774,3.248,457.354,2.036,456.494,1.168z\"/>\n  </g>\n\n</defs>\n<style type=\'text/css\'>\n  rect.stage { stroke-width:0; fill:var(--stage-main, #F2F2F2); }\n  rect.clone { stroke-width:0; fill:var(--stage-clone, #D9D9D9); }\n  rect.blocks { stroke-width:0; fill:var(--block-medium, #EACB68); }\n  .texts { text-anchor:start; font-family:Verdana; font-size:8px; fill:var(--stage-text, #262626); }\n  .textm { text-anchor:middle; font-family:Verdana; font-size:8px; fill:var(--stage-text, #262626); }\n  .texte { text-anchor:end; font-family:Verdana; font-size:8px; fill:var(--stage-text, #262626); }\n  circle.stage { stroke:var(--stage-main, #F2F2F2); stroke-width:1; fill:var(--stage-clone, #D9D9D9); }\n  line.opdiv { stroke-width:1; stroke:var(--stage-grid, #B2B2B2); stroke-dasharray:1,2; }\n  text.clipped { clip-path:url(#clipTextPath); }\n  polygon.conn { stroke-width:0; fill:var(--conn-fill, #BFBFBF); }\n  path.conn { stroke-width:1; stroke:var(--conn-fill, #BFBFBF); fill:var(--conn-fill, #BFBFBF); }\n  path.conn.blocks { stroke-width:1; stroke:var(--conn-fill, #BFBFBF); fill:var(--block-medium, #EACB68); }\n  text.conn { text-anchor:middle; font-family:Verdana; font-size:6px; fill:var(--conn-text, #393939); }\n  rect.background { stroke-width:0; fill:#33FFFF; opacity:0; }\n  g.selected circle.stage { fill:#33FFFF; }\n  g.selected polygon.conn { fill:#33FFFF; }\n  g.selected path.conn { stroke:#33FFFF; fill:#33FFFF; }\n  g.selected rect.stage { fill:#33FFFF; }\n  g.selected rect.clone { fill:#33FFFF; }\n  g.selected rect.background { opacity:1; }\n  g.selected path.blocks { stroke:#33FFFF; }\n</style>\n\n<script type=\"text/ecmascript\">\n<![CDATA[\n    var selectedNode;\n\n    function find_selectable(node) {\n\t\tvar parent = node.parentElement;\n\t\tif (!parent) return;\n\t\tif (parent.classList.contains(\"selectable\")) return parent;\n\t\treturn find_selectable(parent);\n\t}\n\n    window.onload = function() {\n        selectedNode = document.querySelector(\".selected\");\n    }\n\n    window.addEventListener(\"click\", function(e) {\n\t\tvar target = find_selectable(e.target);\n        if (target) {\n            if (selectedNode) {\n                selectedNode.classList.remove(\"selected\");\n            }\n            if (target == selectedNode) {\n                selectedNode = null;\n            } else {\n                selectedNode = target;\n                selectedNode.classList.add(\"selected\");\n            }\n        }\n\t}, false)\n]]>\n</script>\n\n<line x1=\'600\' y1=\'0\' x2=\'600\' y2=\'0\' stroke-width=\'1\' stroke=\'var(--stage-grid, #B2B2B2)\' stroke-dasharray=\'1,2\'/>\n\n</svg>\n"
  }
}

2025-11-10 10:16:02,919 - DEBUG - root - describe_query: Result: ... (repeated, see above) ...
2025-11-10 10:16:02,920 - INFO - root - test_projection_date_type_validation: AST: (
(let $1 (Configure! world (DataSource '"s3" '"$all") '"Attr" '"useruntimelisting" '"true"))
(let $2 '"/local/h8140943887034747407_test_projection_date_type_validationfruitbucket")
(let $3 (OptionalType (DataType 'Int64)))
(let $4 '('"partitionedby" '"year"))
(let $5 '"\n            {\n                \"projection.enabled\" : true,\n\n                \"projection.year.type\" : \"date\",\n                \"projection.year.min\" : \"2022-01-01\",\n                \"projection.year.max\" : \"2022-01-01\",\n                \"projection.year.format\" : \"%Y\",\n                \"projection.year.interval\" : \"1\",\n                \"projection.year.unit\" : \"DAYS\",\n\n                \"storage.location.template\" : \"${year}-03-05\"\n            }\n            ")
(let $6 '('"projection" $5))
(let $7 '($4 $6 '('directories) '('"pathpattern" '"*") '('"pathpatternvariant" '"FilePattern")))
(let $8 (S3Object '('((String '"Paths {\n  Name: \"2022-03-05\"\n  Read: true\n  IsDirectory: true\n}\n") (Bool '"true") (AsStruct '('"year" (StrictCast (Date '"2022-01-01") $3))))) '"csv_with_names" $7))
(let $9 (StructType '('"Fruit" (DataType 'String)) '('"year" (OptionalType (DataType 'Int64)))))
(let $10 '('"Fruit" '"year"))
(let $11 (DataSink 'result))
(let $12 '($4 $6 '('directories) '('"pathpattern" '"*") '('"pathpatternvariant" '"FilePattern")))
(let $13 (S3Object '('((String '"Paths {\n  Name: \"2022-03-05\"\n  Read: true\n  IsDirectory: true\n}\n") (Bool '"true") (AsStruct '('"year" (StrictCast (Date '"2022-01-01") $3))))) '"csv_with_names" $12))
(let $14 (Right! (S3ReadObject! $1 (DataSource '"s3" $2) $13 $9 '"/ " (lambda '($17) (Bool '"true")) $10)))
(let $15 (ResWrite! (Left! (S3ReadObject! $1 (DataSource '"s3" $2) $8 $9 '"/ " (lambda '($16) (Bool '"true")) $10)) $11 (Key) (RemovePrefixMembers (RemoveSystemMembers (PersistableRepr (SqlProject $14 '((SqlProjectStarItem (TypeOf $14) '"" (lambda '($18) $18) '()))))) '('_yql_sys_)) '('('type) '('autoref))))
(return (Commit! (Commit! $15 $11) (DataSink '"kikimr" '"db") '('('"mode" '"flush"))))
)

2025-11-10 10:16:02,923 - INFO - ya.test - pytest_runtest_teardown: Test teardown
