summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Smirnov <[email protected]>2025-01-29 00:51:30 +0000
committerAlexander Smirnov <[email protected]>2025-01-29 00:51:30 +0000
commit8ff0f7baba855d1e4b09946cc83a74e57033a9c5 (patch)
treef6cc7c0a7521379ca66ec6a52dc79407507b3547
parenta084e85adde4c3d5b408625be14338f47b7a23d9 (diff)
parentf562d654c2fe8cfc407e8a6e596474c3975a2204 (diff)
Merge branch 'rightlib' into merge-libs-250129-0050
-rw-r--r--build/conf/java.conf15
-rw-r--r--build/conf/opensource.conf2
-rw-r--r--build/config/tests/cpp_style/config18.clang-format97
-rw-r--r--build/config/tests/cpp_style/default_configs.json2
-rw-r--r--build/config/tests/cpp_style/ya.make1
-rw-r--r--build/external_resources/flake8_py3/ya.make10
-rw-r--r--build/mapping.conf.json10
-rw-r--r--build/plugins/_dart_fields.py8
-rw-r--r--build/plugins/java.py13
-rw-r--r--build/scripts/prepare_jar_build.py18
-rw-r--r--build/scripts/resolve_java_srcs.py13
-rw-r--r--contrib/libs/cxxsupp/builtins/.yandex_meta/build.ym41
-rw-r--r--contrib/libs/cxxsupp/builtins/ya.make55
-rw-r--r--contrib/python/responses/py3/.dist-info/METADATA247
-rw-r--r--contrib/python/responses/py3/README.rst219
-rw-r--r--contrib/python/responses/py3/responses/__init__.py24
-rw-r--r--contrib/python/responses/py3/responses/_recorder.py8
-rw-r--r--contrib/python/responses/py3/responses/py.typed2
-rw-r--r--contrib/python/responses/py3/ya.make3
-rw-r--r--library/cpp/monlib/encode/unistat/unistat_decoder.cpp7
-rw-r--r--library/cpp/monlib/encode/unistat/unistat_ut.cpp31
-rw-r--r--library/cpp/tld/tlds-alpha-by-domain.txt2
-rw-r--r--tools/cpp_style_checker/__main__.py7
-rw-r--r--tools/cpp_style_checker/ya.make2
-rwxr-xr-xyql/essentials/mount/lib/yql/core.yqls8
-rw-r--r--yql/essentials/sql/v1/builtin.cpp1
-rw-r--r--yql/essentials/tests/sql/minirun/part0/canondata/result.json63
-rw-r--r--yql/essentials/tests/sql/minirun/part1/canondata/result.json42
-rw-r--r--yql/essentials/tests/sql/minirun/part2/canondata/result.json21
-rw-r--r--yql/essentials/tests/sql/minirun/part3/canondata/result.json21
-rw-r--r--yql/essentials/tests/sql/minirun/part4/canondata/result.json21
-rw-r--r--yql/essentials/tests/sql/minirun/part5/canondata/result.json84
-rw-r--r--yql/essentials/tests/sql/minirun/part6/canondata/result.json21
-rw-r--r--yql/essentials/tests/sql/minirun/part7/canondata/result.json21
-rw-r--r--yql/essentials/tests/sql/minirun/part8/canondata/result.json63
-rw-r--r--yql/essentials/tests/sql/minirun/part9/canondata/result.json42
-rw-r--r--yql/essentials/tests/sql/sql2yql/canondata/result.json228
-rw-r--r--yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-and_/formatted.sql12
-rw-r--r--yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-and_opt_/formatted.sql17
-rw-r--r--yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-and_opt_scalar_/formatted.sql31
-rw-r--r--yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-and_scalar_/formatted.sql24
-rw-r--r--yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-coalesce_/formatted.sql22
-rw-r--r--yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-coalesce_scalar_/formatted.sql27
-rw-r--r--yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-exists_/formatted.sql7
-rw-r--r--yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-if_/formatted.sql10
-rw-r--r--yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-if_scalar_/formatted.sql22
-rw-r--r--yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-not_/formatted.sql7
-rw-r--r--yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-not_opt_/formatted.sql7
-rw-r--r--yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-or_/formatted.sql12
-rw-r--r--yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-or_opt_/formatted.sql17
-rw-r--r--yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-or_opt_scalar_/formatted.sql31
-rw-r--r--yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-or_scalar_/formatted.sql24
-rw-r--r--yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-xor_/formatted.sql12
-rw-r--r--yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-xor_opt_/formatted.sql17
-rw-r--r--yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-xor_opt_scalar_/formatted.sql31
-rw-r--r--yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-xor_scalar_/formatted.sql24
-rw-r--r--yql/essentials/tests/sql/suites/blocks/and.sql8
-rw-r--r--yql/essentials/tests/sql/suites/blocks/and_opt.sql13
-rw-r--r--yql/essentials/tests/sql/suites/blocks/and_opt_scalar.sql14
-rw-r--r--yql/essentials/tests/sql/suites/blocks/and_scalar.sql9
-rw-r--r--yql/essentials/tests/sql/suites/blocks/coalesce.sql14
-rw-r--r--yql/essentials/tests/sql/suites/blocks/coalesce_scalar.sql14
-rw-r--r--yql/essentials/tests/sql/suites/blocks/exists.sql3
-rw-r--r--yql/essentials/tests/sql/suites/blocks/if.sql6
-rw-r--r--yql/essentials/tests/sql/suites/blocks/if_scalar.sql7
-rw-r--r--yql/essentials/tests/sql/suites/blocks/not.sql3
-rw-r--r--yql/essentials/tests/sql/suites/blocks/not_opt.sql3
-rw-r--r--yql/essentials/tests/sql/suites/blocks/or.sql8
-rw-r--r--yql/essentials/tests/sql/suites/blocks/or_opt.sql13
-rw-r--r--yql/essentials/tests/sql/suites/blocks/or_opt_scalar.sql14
-rw-r--r--yql/essentials/tests/sql/suites/blocks/or_scalar.sql9
-rw-r--r--yql/essentials/tests/sql/suites/blocks/xor.sql8
-rw-r--r--yql/essentials/tests/sql/suites/blocks/xor_opt.sql13
-rw-r--r--yql/essentials/tests/sql/suites/blocks/xor_opt_scalar.sql14
-rw-r--r--yql/essentials/tests/sql/suites/blocks/xor_scalar.sql9
-rw-r--r--yt/yql/providers/yt/comp_nodes/dq/dq_yt_rpc_reader.cpp4
-rw-r--r--yt/yql/providers/yt/comp_nodes/dq/dq_yt_rpc_reader.h2
-rw-r--r--yt/yql/providers/yt/comp_nodes/yql_mkql_file_input_state.cpp5
-rw-r--r--yt/yql/providers/yt/comp_nodes/yql_mkql_file_input_state.h2
-rw-r--r--yt/yql/providers/yt/comp_nodes/yql_mkql_file_list.cpp4
-rw-r--r--yt/yql/providers/yt/comp_nodes/yql_mkql_input_stream.h1
-rw-r--r--yt/yt/client/api/query_tracker_client.cpp3
-rw-r--r--yt/yt/client/api/query_tracker_client.h1
-rw-r--r--yt/yt/client/api/rpc_proxy/client_impl.cpp1
-rw-r--r--yt/yt/client/chaos_client/config.cpp2
-rw-r--r--yt/yt/client/driver/journal_commands.cpp1
-rw-r--r--yt/yt/client/table_client/schema.cpp75
-rw-r--r--yt/yt/client/table_client/schema.h27
-rw-r--r--yt/yt/client/unittests/schema_ut.cpp70
-rw-r--r--yt/yt/core/bus/tcp/dispatcher_impl.cpp48
-rw-r--r--yt/yt/core/bus/tcp/dispatcher_impl.h3
-rw-r--r--yt/yt_proto/yt/client/api/rpc_proxy/proto/api_service.proto1
92 files changed, 1839 insertions, 420 deletions
diff --git a/build/conf/java.conf b/build/conf/java.conf
index 6403346a1c4..bfcb263fe26 100644
--- a/build/conf/java.conf
+++ b/build/conf/java.conf
@@ -498,6 +498,7 @@ macro _DO_2_RUN_JAR_PROGRAM(IN_DIRS_VAR="uniq_", IN_DIRS_INPUTS[], IN{input}[],
.PEERDIR=build/platform/java/jdk $JDK_RESOURCE_PEERDIR
.CMD=${hide;kv:"p RJ"} ${hide;kv:"pc blue"} ${hide:JAVA_FAKEID} ${cwd:BINDIR} $YMAKE_PYTHON ${input:"build/scripts/mkdir.py"} ${OUT_DIR} && ${cwd:CWD} $YMAKE_PYTHON ${input:"build/scripts/setup_java_tmpdir.py"} $YMAKE_PYTHON ${input:"build/scripts/stdout2stderr.py"} ${pre=--file=:STDOUT} ${hide;output:STDOUT} ${pre=--file=:STDOUT_NOAUTO} ${hide;noauto;output:STDOUT_NOAUTO} $YMAKE_PYTHON ${input:"build/scripts/fix_java_command_file_cp.py"} --build-root ${ARCADIA_BUILD_ROOT} $JDK_RESOURCE/bin/java -Dfile.encoding=utf8 -classpath ${RUN_JAR_PROG_CP_PRE}${tool:CLASSPATH}${RUN_JAR_PROG_CP_SUF} ${Args} && $_GENTAR_HELPER($CLASSPATH $IN_DIR $IN $IN_NOPARSE $TOOL $Args OUT_DIR $OUT_DIR) ${hide;input:IN} ${hide;context=TEXT;input:IN_NOPARSE} ${hide;noauto;output:OUT_NOAUTO} ${hide;output:OUT} ${hide;tool:TOOL} ${IN_DIRS_INPUTS}
.SEM=$_SEM_RUN_JAVA_PROGRAM
+ .STRUCT_SEM=yes
}
# tag:java-specific
@@ -752,7 +753,7 @@ when ($BUILD_TYPE == "DEBUG" && $NO_DEBUGINFO != "yes") {
}
_PREPARE_SRC_JAR=
-_PREPARE_SRC_JAR_IMPL=&& $JAR_GEN_JSRCS && $LINK_JAR_JSOURCES
+_PREPARE_SRC_JAR_IMPL=$LINK_JAR_JSOURCES
_PACK_SRC_JAR_IMPL=&& ${cwd;suf=/src:BINDIR} $JDK_RESOURCE/bin/jar cfvm ${output;pre=${BINDIR}/${MODULE_PREFIX};suf=-sources.jar:REALPRJNAME} $VCS_JAVA .
_PACK_SRC_JAR=
@@ -831,6 +832,7 @@ MAVEN_DEPLOY_CMD=$YMAKE_PYTHON ${input:"build/scripts/stdout2stderr.py"} $MAVEN_
MAVEN_EXPORT_CMD=
# tag:java-specific
+JAR_BUILD_SCRIPT_FLAGS_DELIM=DELIM
JAR_BUILD_SCRIPT_FLAGS=
JAVA_COVERAGE_SRCLIST_FLAG=--coverage ${output;pre=${MODULE_PREFIX};suf=.cpsf:REALPRJNAME} --source-root ${ARCADIA_ROOT}
JAVA_COVERAGE_SRCLIST=
@@ -838,17 +840,20 @@ PREPARE_JAR_BUILD=${cwd:BINDIR} ${YMAKE_PYTHON3} ${input:"build/scripts/prepare_
${JAR_BUILD_SCRIPT_FLAGS} \
--bindir ${BINDIR} --moddir ${CURDIR} \
--java ${BINDIR}/all-java.srclst ${KT_SRSCLIST} ${JAVA_COVERAGE_SRCLIST} \
- --ya-start-command-file ${ext=.gentar:AUTO_INPUT} ${ALL_JAR_SOURCES} ${ext=.java:AUTO_INPUT} ${ext=.kt:AUTO_INPUT} --ya-end-command-file \
+ --ya-start-command-file \
+ ${ext=.gentar:AUTO_INPUT} ${ALL_JAR_SOURCES} ${ext=.java:AUTO_INPUT} ${ext=.kt:AUTO_INPUT} \
+ $JAR_GEN_SRCS $JAR_GEN_JSRCS \
+ --ya-end-command-file \
${hide;input:"build/scripts/process_command_files.py"} \
${hide;input:"build/scripts/java_pack_to_file.py"} \
- ${hide;input:"build/scripts/autotar_gendirs.py"}
+ ${hide;input:"build/scripts/autotar_gendirs.py"} \
+ ${hide;input:"build/scripts/resolve_java_srcs.py"}
COLLECT_CLASSPATH=${WRITER_PY} --file ${BINDIR}/bfg.txt -m --ya-start-command-file ${rootrel:MANAGED_PEERS_CLOSURE} $KT_CLASSPATH_ITEM --ya-end-command-file
LINK_CLASSPATH=${YMAKE_PYTHON} ${input:"build/scripts/make_manifest_from_bf.py"} ${BINDIR}/bfg.txt ${ARCADIA_BUILD_ROOT}/bfg.jar
COMPILE_JAVA_SRCLIST=$_JAVAC_RUN_HELPER($JAVAC_CMD)
PACK_JAR=$_PACK_JAR_HELPER($TARGET)
LINK_JAR=${hide:JAVA_FAKEID} ${hide;kv:"p JV"} ${hide;kv:"pc light-blue"} ${hide;kv:"show_out"} ${hide;requirements:"cpu:2"} \
&& $PREPARE_JAR_BUILD \
- && $JAR_GEN_SRCS \
&& $_PREPARE_SRC_JAR \
&& $ALL_KT_COMMANDS \
&& $COLLECT_CLASSPATH \
@@ -1065,7 +1070,7 @@ module JAR_LIBRARY: _COMPILABLE_JAR_BASE {
# See for kapt.kotlin.generated: https://github.com/JetBrains/kotlin/blob/master/plugins/kapt3/kapt3-cli/testData/integration/kotlinFileGeneration/build.txt
_KAPT_OPTS=-Xplugin=${tool:"contrib/java/org/jetbrains/kotlin/kotlin-annotation-processing/1.9.24"} $KT_KAPT_PLUGIN_OPTS
_RUN_KAPT=${YMAKE_PYTHON} ${input:"build/scripts/with_kapt_args.py"} ${pre=--ap-classpath :KT_KAPT_AP_CLASSPATH} -- $COMPILE_KT $_KAPT_OPTS
- _APPEND_KAPT_GENERATED_SRCS=$YMAKE_PYTHON ${input:"build/scripts/resolve_java_srcs.py"} -d $KT_KAPT_SOURCES_DIR --include-patterns '**/*.java' '**/*.kt' --resolve-kotlin --append -s ${BINDIR}/all-java.srclst -k $KT_SRCLIST -r ${BINDIR}/not-used.txt
+ _APPEND_KAPT_GENERATED_SRCS=$YMAKE_PYTHON3 ${input:"build/scripts/resolve_java_srcs.py"} -d $KT_KAPT_SOURCES_DIR --include-patterns '**/*.java' '**/*.kt' --resolve-kotlin --append -s ${BINDIR}/all-java.srclst -k $KT_SRCLIST -r ${BINDIR}/not-used.txt
ALL_KT_COMMANDS+=&& $_RUN_KAPT && $_APPEND_KAPT_GENERATED_SRCS
}
diff --git a/build/conf/opensource.conf b/build/conf/opensource.conf
index 7efeed46291..411e6010ad3 100644
--- a/build/conf/opensource.conf
+++ b/build/conf/opensource.conf
@@ -1,6 +1,8 @@
EXPORT_CMAKE=no
EXPORT_GRADLE=no
_SEM_IGNORED=IGNORED
+# TODO Remove
+IGNORED=IGNORED
when ($OPENSOURCE == "yes" || $OPENSOURCE_PROJECT == "ymake" || $OPENSOURCE_PROJECT == "ya") {
YA_OPENSOURCE=yes
diff --git a/build/config/tests/cpp_style/config18.clang-format b/build/config/tests/cpp_style/config18.clang-format
deleted file mode 100644
index b2d89e2e756..00000000000
--- a/build/config/tests/cpp_style/config18.clang-format
+++ /dev/null
@@ -1,97 +0,0 @@
-Language: Cpp
-AccessModifierOffset: -4
-ConstructorInitializerIndentWidth: 4
-AlignEscapedNewlinesLeft: false
-AlignEscapedNewlines: Left
-AlignTrailingComments:
- Kind: Always
- OverEmptyLines: 0
-AllowAllParametersOfDeclarationOnNextLine: true
-AllowShortBlocksOnASingleLine: false
-AllowShortIfStatementsOnASingleLine: false
-AllowShortLoopsOnASingleLine: false
-AllowShortFunctionsOnASingleLine: None
-AlwaysBreakTemplateDeclarations: true
-AlwaysBreakBeforeMultilineStrings: false
-BreakBeforeBinaryOperators: false
-BreakBeforeTernaryOperators: true
-BreakConstructorInitializersBeforeComma: true
-BinPackParameters: true
-ColumnLimit: 0
-ConstructorInitializerAllOnOneLineOrOnePerLine: false
-DerivePointerAlignment: false
-ExperimentalAutoDetectBinPacking: false
-IndentCaseLabels: true
-IndentWrappedFunctionNames: false
-IndentFunctionDeclarationAfterType: false
-MaxEmptyLinesToKeep: 1
-KeepEmptyLinesAtTheStartOfBlocks: false
-NamespaceIndentation: All
-FixNamespaceComments: true
-ShortNamespaceLines: 0
-ObjCSpaceAfterProperty: false
-ObjCSpaceBeforeProtocolList: true
-PackConstructorInitializers: Never
-PenaltyBreakBeforeFirstCallParameter: 19
-PenaltyBreakComment: 300
-PenaltyBreakString: 1000
-PenaltyBreakFirstLessLess: 120
-PenaltyExcessCharacter: 1000000
-PenaltyReturnTypeOnItsOwnLine: 60
-PointerAlignment: Left
-SpacesBeforeTrailingComments: 1
-SpacesInSquareBrackets: false
-Cpp11BracedListStyle: true
-Standard: c++20
-IndentWidth: 4
-TabWidth: 4
-UseTab: Never
-BreakBeforeBraces: Attach
-InsertBraces: true
-
-# NB: BraceWrapping has no effect unless BreakBeforeBraces is set to Custom
-BraceWrapping:
- AfterClass: false
- AfterControlStatement: false
- AfterEnum: false
- AfterFunction: false
- AfterNamespace: false
- AfterObjCDeclaration: false
- AfterStruct: false
- AfterUnion: false
- BeforeCatch: false
- BeforeElse: false
- IndentBraces: true
-
-SpacesInParentheses: false
-SpacesInAngles: false
-SpaceInEmptyParentheses: false
-SpacesInCStyleCastParentheses: false
-SpacesInContainerLiterals: true
-SpaceBeforeAssignmentOperators: true
-ContinuationIndentWidth: 4
-CommentPragmas: '^ IWYU pragma:'
-ForEachMacros: [
- foreach,
- Q_FOREACH,
- BOOST_FOREACH,
- # Is not a foreach, but correct formatting is achieved
- Y_DEFER
-]
-IfMacros: [
- with_lock # Is not an if, but correct formatting is achieved
-]
-SpaceBeforeParens: ControlStatements
-DisableFormat: false
-SortIncludes: false
-IndentPPDirectives: BeforeHash
-
-SpaceBeforeInheritanceColon: false
-NamespaceMacros: [Y_UNIT_TEST_SUITE]
-AttributeMacros: [Y_PRINTF_FORMAT, Y_NO_SANITIZE, Y_FORCE_INLINE, Y_NO_INLINE, Y_WARN_UNUSED_RESULT, Y_HIDDEN, Y_PUBLIC, Y_PURE_FUNCTION]
-IndentExternBlock: Indent
-TypenameMacros: [Y_THREAD, Y_STATIC_THREAD, Y_POD_THREAD, Y_POD_STATIC_THREAD]
-StatementAttributeLikeMacros: [ythrow]
-SpacesInLineCommentPrefix:
- Minimum: 1
- Maximum: 1
diff --git a/build/config/tests/cpp_style/default_configs.json b/build/config/tests/cpp_style/default_configs.json
index d35dc1baf81..f8749d1a012 100644
--- a/build/config/tests/cpp_style/default_configs.json
+++ b/build/config/tests/cpp_style/default_configs.json
@@ -1,3 +1,3 @@
{
- "clang_format": "build/config/tests/cpp_style/config18.clang-format"
+ "clang_format": "build/config/tests/cpp_style/config.clang-format"
}
diff --git a/build/config/tests/cpp_style/ya.make b/build/config/tests/cpp_style/ya.make
index afb406a4fc6..bb5fccd5ea4 100644
--- a/build/config/tests/cpp_style/ya.make
+++ b/build/config/tests/cpp_style/ya.make
@@ -2,7 +2,6 @@ LIBRARY()
RESOURCE_FILES(
config.clang-format
- config18.clang-format
)
END()
diff --git a/build/external_resources/flake8_py3/ya.make b/build/external_resources/flake8_py3/ya.make
index 3d89508e8e8..d831fb905bf 100644
--- a/build/external_resources/flake8_py3/ya.make
+++ b/build/external_resources/flake8_py3/ya.make
@@ -12,12 +12,12 @@ ENDIF()
DECLARE_EXTERNAL_HOST_RESOURCES_BUNDLE(
FLAKE8_PY3
- sbr:7501315930 FOR DARWIN-ARM64
- sbr:7501316202 FOR DARWIN
+ sbr:7913038653 FOR DARWIN-ARM64
+ sbr:7913040444 FOR DARWIN
sbr:6726869647 FOR LINUX-PPC64LE
- sbr:7501316756 FOR LINUX
- sbr:7501315620 FOR LINUX-AARCH64
- sbr:7501316414 FOR WIN32
+ sbr:7913043508 FOR LINUX
+ sbr:7913036782 FOR LINUX-AARCH64
+ sbr:7913041800 FOR WIN32
)
END()
diff --git a/build/mapping.conf.json b/build/mapping.conf.json
index 09375c3c77c..931a6abcd22 100644
--- a/build/mapping.conf.json
+++ b/build/mapping.conf.json
@@ -300,6 +300,7 @@
"6760720465": "https://devtools-registry.s3.yandex.net/6760720465",
"6822863322": "https://devtools-registry.s3.yandex.net/6822863322",
"7501316202": "https://devtools-registry.s3.yandex.net/7501316202",
+ "7913040444": "https://devtools-registry.s3.yandex.net/7913040444",
"6603781997": "https://devtools-registry.s3.yandex.net/6603781997",
"6652223452": "https://devtools-registry.s3.yandex.net/6652223452",
"6674733966": "https://devtools-registry.s3.yandex.net/6674733966",
@@ -307,6 +308,7 @@
"6760720256": "https://devtools-registry.s3.yandex.net/6760720256",
"6822862832": "https://devtools-registry.s3.yandex.net/6822862832",
"7501315930": "https://devtools-registry.s3.yandex.net/7501315930",
+ "7913038653": "https://devtools-registry.s3.yandex.net/7913038653",
"6603787904": "https://devtools-registry.s3.yandex.net/6603787904",
"6652225714": "https://devtools-registry.s3.yandex.net/6652225714",
"6674734993": "https://devtools-registry.s3.yandex.net/6674734993",
@@ -314,6 +316,7 @@
"6760721014": "https://devtools-registry.s3.yandex.net/6760721014",
"6822864509": "https://devtools-registry.s3.yandex.net/6822864509",
"7501316756": "https://devtools-registry.s3.yandex.net/7501316756",
+ "7913043508": "https://devtools-registry.s3.yandex.net/7913043508",
"6603780916": "https://devtools-registry.s3.yandex.net/6603780916",
"6652222817": "https://devtools-registry.s3.yandex.net/6652222817",
"6674733653": "https://devtools-registry.s3.yandex.net/6674733653",
@@ -321,6 +324,7 @@
"6760720046": "https://devtools-registry.s3.yandex.net/6760720046",
"6822862341": "https://devtools-registry.s3.yandex.net/6822862341",
"7501315620": "https://devtools-registry.s3.yandex.net/7501315620",
+ "7913036782": "https://devtools-registry.s3.yandex.net/7913036782",
"6603783079": "https://devtools-registry.s3.yandex.net/6603783079",
"6652224021": "https://devtools-registry.s3.yandex.net/6652224021",
"6674734285": "https://devtools-registry.s3.yandex.net/6674734285",
@@ -332,6 +336,7 @@
"6760720811": "https://devtools-registry.s3.yandex.net/6760720811",
"6822864007": "https://devtools-registry.s3.yandex.net/6822864007",
"7501316414": "https://devtools-registry.s3.yandex.net/7501316414",
+ "7913041800": "https://devtools-registry.s3.yandex.net/7913041800",
"3961412335": "https://devtools-registry.s3.yandex.net/3961412335",
"3961411314": "https://devtools-registry.s3.yandex.net/3961411314",
"3961413236": "https://devtools-registry.s3.yandex.net/3961413236",
@@ -1500,6 +1505,7 @@
"6760720465": "devtools/ya/test/programs/flake8/flake8 for darwin",
"6822863322": "devtools/ya/test/programs/flake8/flake8 for darwin",
"7501316202": "devtools/ya/test/programs/flake8/flake8 for darwin",
+ "7913040444": "devtools/ya/test/programs/flake8/flake8 for darwin",
"6603781997": "devtools/ya/test/programs/flake8/flake8 for darwin-arm64",
"6652223452": "devtools/ya/test/programs/flake8/flake8 for darwin-arm64",
"6674733966": "devtools/ya/test/programs/flake8/flake8 for darwin-arm64",
@@ -1507,6 +1513,7 @@
"6760720256": "devtools/ya/test/programs/flake8/flake8 for darwin-arm64",
"6822862832": "devtools/ya/test/programs/flake8/flake8 for darwin-arm64",
"7501315930": "devtools/ya/test/programs/flake8/flake8 for darwin-arm64",
+ "7913038653": "devtools/ya/test/programs/flake8/flake8 for darwin-arm64",
"6603787904": "devtools/ya/test/programs/flake8/flake8 for linux",
"6652225714": "devtools/ya/test/programs/flake8/flake8 for linux",
"6674734993": "devtools/ya/test/programs/flake8/flake8 for linux",
@@ -1514,6 +1521,7 @@
"6760721014": "devtools/ya/test/programs/flake8/flake8 for linux",
"6822864509": "devtools/ya/test/programs/flake8/flake8 for linux",
"7501316756": "devtools/ya/test/programs/flake8/flake8 for linux",
+ "7913043508": "devtools/ya/test/programs/flake8/flake8 for linux",
"6603780916": "devtools/ya/test/programs/flake8/flake8 for linux-aarch64",
"6652222817": "devtools/ya/test/programs/flake8/flake8 for linux-aarch64",
"6674733653": "devtools/ya/test/programs/flake8/flake8 for linux-aarch64",
@@ -1521,6 +1529,7 @@
"6760720046": "devtools/ya/test/programs/flake8/flake8 for linux-aarch64",
"6822862341": "devtools/ya/test/programs/flake8/flake8 for linux-aarch64",
"7501315620": "devtools/ya/test/programs/flake8/flake8 for linux-aarch64",
+ "7913036782": "devtools/ya/test/programs/flake8/flake8 for linux-aarch64",
"6603783079": "devtools/ya/test/programs/flake8/flake8 for linux-ppc64le",
"6652224021": "devtools/ya/test/programs/flake8/flake8 for linux-ppc64le",
"6674734285": "devtools/ya/test/programs/flake8/flake8 for linux-ppc64le",
@@ -1532,6 +1541,7 @@
"6760720811": "devtools/ya/test/programs/flake8/flake8 for win32",
"6822864007": "devtools/ya/test/programs/flake8/flake8 for win32",
"7501316414": "devtools/ya/test/programs/flake8/flake8 for win32",
+ "7913041800": "devtools/ya/test/programs/flake8/flake8 for win32",
"3961412335": "devtools/ya/test/programs/flake8/py2/flake8 for darwin",
"3961411314": "devtools/ya/test/programs/flake8/py2/flake8 for darwin-arm64",
"3961413236": "devtools/ya/test/programs/flake8/py2/flake8 for linux",
diff --git a/build/plugins/_dart_fields.py b/build/plugins/_dart_fields.py
index d7d0fa5737e..49c49f345f4 100644
--- a/build/plugins/_dart_fields.py
+++ b/build/plugins/_dart_fields.py
@@ -662,6 +662,8 @@ class LintConfigs:
class LintExtraParams:
KEY = 'LINT-EXTRA-PARAMS'
+ _CUSTOM_CLANG_FORMAT_BIN_ALLOWED_PATHS = ('ads', 'bigrt', 'grut')
+
@classmethod
def from_macro_args(cls, unit, flat_args, spec_args):
extra_params = spec_args.get('EXTRA_PARAMS', [])
@@ -670,6 +672,12 @@ class LintExtraParams:
message = 'Wrong EXTRA_PARAMS value: "{}". Values must have format "name=value".'.format(arg)
ymake.report_configure_error(message)
raise DartValueError()
+ if 'clang_format_bin' in arg:
+ upath = unit.path()[3:]
+ if not upath.startswith(cls._CUSTOM_CLANG_FORMAT_BIN_ALLOWED_PATHS):
+ message = f'Custom clang-format is not allowed in upath: {upath}'
+ ymake.report_configure_error(message)
+ raise DartValueError()
return {cls.KEY: serialize_list(extra_params)}
diff --git a/build/plugins/java.py b/build/plugins/java.py
index a424b163501..d58b5f9d6c3 100644
--- a/build/plugins/java.py
+++ b/build/plugins/java.py
@@ -256,18 +256,19 @@ def on_fill_jar_gen_srcs(unit, *args):
resolved_srcdir = unit.resolve_arc_path(srcdir)
if not resolved_srcdir.startswith('$') or resolved_srcdir.startswith('$S'):
return
+ if jar_type == 'SRC_JAR' and unit.get('SOURCES_JAR') != 'yes':
+ return
+ args_delim = unit.get('JAR_BUILD_SCRIPT_FLAGS_DELIM')
exclude_pos = args.index('EXCLUDE')
- globs = args[7:exclude_pos]
- excludes = args[exclude_pos + 1 :]
+ globs = ' '.join(args[7:exclude_pos])
+ excludes = ' '.join(args[exclude_pos + 1 :])
var = unit.get(varname)
- var += ' && ${{cwd:BINDIR}} $YMAKE_PYTHON ${{input:"build/scripts/resolve_java_srcs.py"}} --append -d {} -s {} -k {} -r {} --include-patterns {}'.format(
- srcdir, java_list, kt_list, res_list, ' '.join(globs)
- )
+ var += f' {args_delim} --append -d {srcdir} -s {java_list} -k {kt_list} -r {res_list} --include-patterns {globs}'
if jar_type == 'SRC_JAR':
var += ' --all-resources'
if len(excludes) > 0:
- var += ' --exclude-patterns {}'.format(' '.join(excludes))
+ var += f' --exclude-patterns {excludes}'
if unit.get('WITH_KOTLIN_VALUE') == 'yes':
var += ' --resolve-kotlin'
unit.set([varname, var])
diff --git a/build/scripts/prepare_jar_build.py b/build/scripts/prepare_jar_build.py
index 17caba727e9..7c7a47fab18 100644
--- a/build/scripts/prepare_jar_build.py
+++ b/build/scripts/prepare_jar_build.py
@@ -7,8 +7,10 @@ import argparse
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
import process_command_files as pcf
import java_pack_to_file as jcov
+import resolve_java_srcs as resolve
from autotar_gendirs import unpack_dir
+
def writelines(f, rng):
f.writelines(item + '\n' for item in rng)
@@ -121,8 +123,19 @@ def prepare_build_dirs(bindir, with_sources_jar):
os.makedirs(dir)
+def split_cmd_by_delim(cmd, delim='DELIM'):
+ result = [[]]
+ for arg in cmd:
+ if arg == delim:
+ result.append([])
+ else:
+ result[-1].append(arg)
+ return result[0], result[1:]
+
+
def main():
- args = pcf.get_args(sys.argv[1:])
+ args, resolve_args = split_cmd_by_delim(pcf.get_args(sys.argv[1:]))
+
parser = argparse.ArgumentParser()
parser.add_argument('--with-sources-jar', action='store_true')
parser.add_argument('--moddir')
@@ -157,6 +170,9 @@ def main():
if args.coverage:
jcov.write_coverage_sources(args.coverage, args.source_root, src_consumer.coverage)
+ for rargs in resolve_args:
+ resolve.cli_main(rargs, force_skip_source_jars=not args.with_sources_jar)
+
return 0
diff --git a/build/scripts/resolve_java_srcs.py b/build/scripts/resolve_java_srcs.py
index 446bb554762..4cce49136f3 100644
--- a/build/scripts/resolve_java_srcs.py
+++ b/build/scripts/resolve_java_srcs.py
@@ -22,7 +22,7 @@ def pattern_to_regexp(p):
'^'
+ ('/' if not p.startswith('**') else '')
+ re.escape(p)
- .replace(r'\*\*\/', '[_DIR_]')
+ .replace(r'\*\*/', '[_DIR_]')
.replace(r'\*', '[_FILE_]')
.replace('[_DIR_]', '(.*/)?')
.replace('[_FILE_]', '([^/]*)')
@@ -99,7 +99,7 @@ def do_it(
open(kotlin_sources_file, mode).writelines(i + '\n' for i in k + j)
-if __name__ == '__main__':
+def cli_main(argv, force_skip_source_jars=False):
parser = argparse.ArgumentParser()
parser.add_argument('-d', '--directory', required=True)
parser.add_argument('-s', '--sources-file', required=True)
@@ -110,6 +110,13 @@ if __name__ == '__main__':
parser.add_argument('--resolve-kotlin', action='store_true', default=False)
parser.add_argument('--include-patterns', nargs='*', default=[])
parser.add_argument('--exclude-patterns', nargs='*', default=[])
- args = parser.parse_args()
+ args = parser.parse_args(argv)
+
+ if force_skip_source_jars and args.all_resources:
+ return
do_it(**vars(args))
+
+
+if __name__ == '__main__':
+ cli_main(sys.argv[1:])
diff --git a/contrib/libs/cxxsupp/builtins/.yandex_meta/build.ym b/contrib/libs/cxxsupp/builtins/.yandex_meta/build.ym
index ac76bc2e97b..55fe016a3e0 100644
--- a/contrib/libs/cxxsupp/builtins/.yandex_meta/build.ym
+++ b/contrib/libs/cxxsupp/builtins/.yandex_meta/build.ym
@@ -93,13 +93,15 @@ other_not_emscripten = frozenset([
'emutls',
'enable_execute_stack',
'eprintf',
- 'truncdfbf2',
- 'truncsfbf2',
])
def it_srcs():
for x in common:
n = name(x)
+
+ if n.startswith("atomic_") or n.endswith("bf2") or n == "extendbfsf2":
+ # these are handled explicitly below
+ continue
if n in scrt:
continue
if arch != 'x86_64_not_win' and n in x86_not_win:
@@ -120,18 +122,51 @@ EOF
ls *.c > common
+cat << EOF
+IF (OS_DARWIN OR OS_IOS)
+ SRCS(
+ atomic_flag_clear.c
+ atomic_flag_clear_explicit.c
+ atomic_flag_test_and_set.c
+ atomic_flag_test_and_set_explicit.c
+ atomic_signal_fence.c
+ atomic_thread_fence.c
+ )
+ENDIF()
+
+IF (ARCH_ARM64 OR ARCH_X86_64)
+ # As of r25b, clang-for-android does not have bf16 support.
+ # These can be built using r27 and above.
+ IF (NOT OS_ANDROID)
+ SRCS(
+ # NB: sources that were commented out were added in llvm-20
+ extendbfsf2.c
+ truncdfbf2.c
+ # truncxfbf2.c
+ truncsfbf2.c
+ # trunctfbf2.c
+ )
+ ENDIF()
+ENDIF()
+EOF
+
echo 'IF (ARCH_AARCH64)'
echo 'SRCS('
ls aarch64/*.c cpu_model/aarch64.*c aarch64/*.S > special
python3 join.py common special aarch
echo ')'
+
echo 'IF(NOT OS_DARWIN) SRCS(aarch64/sme-libc-routines.c) ENDIF()'
echo 'ELSEIF (ARCH_X86_64)'
echo 'SRCS('
ls x86_64/*.c cpu_model/x86.*c x86_64/*.S > special
python3 join.py common special x86_64
echo ')'
-echo 'IF(NOT OS_WINDOWS) SRCS(x86_64/floatdixf.c'
+
+# As llvm/compiler-rt/lib/builtins says:
+# Implement extended-precision builtins, assuming long double is 80 bits.
+# long double is not 80 bits on Android or MSVC.
+echo 'IF(NOT OS_WINDOWS AND NOT OS_ANDROID) SRCS(x86_64/floatdixf.c'
echo '' > special
python3 join.py common special x86_64_not_win
echo ') ENDIF()'
diff --git a/contrib/libs/cxxsupp/builtins/ya.make b/contrib/libs/cxxsupp/builtins/ya.make
index b6d7a872abd..46976f6b352 100644
--- a/contrib/libs/cxxsupp/builtins/ya.make
+++ b/contrib/libs/cxxsupp/builtins/ya.make
@@ -60,6 +60,32 @@ IF (GCC OR CLANG)
NO_LTO()
ENDIF()
+IF (OS_DARWIN OR OS_IOS)
+ SRCS(
+ atomic_flag_clear.c
+ atomic_flag_clear_explicit.c
+ atomic_flag_test_and_set.c
+ atomic_flag_test_and_set_explicit.c
+ atomic_signal_fence.c
+ atomic_thread_fence.c
+ )
+ENDIF()
+
+IF (ARCH_ARM64 OR ARCH_X86_64)
+ # As of r25b, clang-for-android does not have bf16 support.
+ # These can be built using r27 and above.
+ IF (NOT OS_ANDROID)
+ SRCS(
+ # NB: sources that were commented out were added in llvm-20
+ extendbfsf2.c
+ truncdfbf2.c
+ # truncxfbf2.c
+ truncsfbf2.c
+ # trunctfbf2.c
+ )
+ ENDIF()
+ENDIF()
+
IF (ARCH_AARCH64)
SRCS(
aarch64/chkstk.S
@@ -83,12 +109,6 @@ IF (ARCH_AARCH64)
ashrdi3.c
ashrti3.c
atomic.c
- atomic_flag_clear.c
- atomic_flag_clear_explicit.c
- atomic_flag_test_and_set.c
- atomic_flag_test_and_set_explicit.c
- atomic_signal_fence.c
- atomic_thread_fence.c
bswapdi2.c
bswapsi2.c
clear_cache.c
@@ -119,7 +139,6 @@ IF (ARCH_AARCH64)
emutls.c
enable_execute_stack.c
eprintf.c
- extendbfsf2.c
extenddftf2.c
extendhfsf2.c
extendhftf2.c
@@ -209,10 +228,8 @@ IF (ARCH_AARCH64)
subvsi3.c
subvti3.c
trampoline_setup.c
- truncdfbf2.c
truncdfhf2.c
truncdfsf2.c
- truncsfbf2.c
truncsfhf2.c
trunctfdf2.c
trunctfhf2.c
@@ -251,12 +268,6 @@ ELSEIF (ARCH_X86_64)
ashrdi3.c
ashrti3.c
atomic.c
- atomic_flag_clear.c
- atomic_flag_clear_explicit.c
- atomic_flag_test_and_set.c
- atomic_flag_test_and_set_explicit.c
- atomic_signal_fence.c
- atomic_thread_fence.c
bswapdi2.c
bswapsi2.c
clear_cache.c
@@ -287,7 +298,6 @@ ELSEIF (ARCH_X86_64)
emutls.c
enable_execute_stack.c
eprintf.c
- extendbfsf2.c
extenddftf2.c
extendhfsf2.c
extendhftf2.c
@@ -374,10 +384,8 @@ ELSEIF (ARCH_X86_64)
subvsi3.c
subvti3.c
trampoline_setup.c
- truncdfbf2.c
truncdfhf2.c
truncdfsf2.c
- truncsfbf2.c
truncsfhf2.c
trunctfdf2.c
trunctfhf2.c
@@ -400,7 +408,7 @@ ELSEIF (ARCH_X86_64)
x86_64/floatundisf.S
x86_64/floatundixf.S
)
- IF (NOT OS_WINDOWS)
+ IF (NOT OS_WINDOWS AND NOT OS_ANDROID)
SRCS(
x86_64/floatdixf.c
divxc3.c
@@ -434,12 +442,6 @@ ELSE()
ashrdi3.c
ashrti3.c
atomic.c
- atomic_flag_clear.c
- atomic_flag_clear_explicit.c
- atomic_flag_test_and_set.c
- atomic_flag_test_and_set_explicit.c
- atomic_signal_fence.c
- atomic_thread_fence.c
bswapdi2.c
bswapsi2.c
clzdi2.c
@@ -465,7 +467,6 @@ ELSE()
divtc3.c
divtf3.c
divti3.c
- extendbfsf2.c
extenddftf2.c
extendhfsf2.c
extendhftf2.c
@@ -580,8 +581,6 @@ ELSE()
emutls.c
enable_execute_stack.c
eprintf.c
- truncdfbf2.c
- truncsfbf2.c
)
ENDIF()
ENDIF()
diff --git a/contrib/python/responses/py3/.dist-info/METADATA b/contrib/python/responses/py3/.dist-info/METADATA
index 7085a1a9f06..0b507faad26 100644
--- a/contrib/python/responses/py3/.dist-info/METADATA
+++ b/contrib/python/responses/py3/.dist-info/METADATA
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: responses
-Version: 0.25.3
+Version: 0.25.5
Summary: A utility library for mocking out the `requests` Python library.
Home-page: https://github.com/getsentry/responses
Author: David Cramer
@@ -24,21 +24,21 @@ Classifier: Topic :: Software Development
Requires-Python: >=3.8
Description-Content-Type: text/x-rst
License-File: LICENSE
-Requires-Dist: requests <3.0,>=2.30.0
-Requires-Dist: urllib3 <3.0,>=1.25.10
+Requires-Dist: requests<3.0,>=2.30.0
+Requires-Dist: urllib3<3.0,>=1.25.10
Requires-Dist: pyyaml
Provides-Extra: tests
-Requires-Dist: pytest >=7.0.0 ; extra == 'tests'
-Requires-Dist: coverage >=6.0.0 ; extra == 'tests'
-Requires-Dist: pytest-cov ; extra == 'tests'
-Requires-Dist: pytest-asyncio ; extra == 'tests'
-Requires-Dist: pytest-httpserver ; extra == 'tests'
-Requires-Dist: flake8 ; extra == 'tests'
-Requires-Dist: types-PyYAML ; extra == 'tests'
-Requires-Dist: types-requests ; extra == 'tests'
-Requires-Dist: mypy ; extra == 'tests'
-Requires-Dist: tomli-w ; extra == 'tests'
-Requires-Dist: tomli ; (python_version < "3.11") and extra == 'tests'
+Requires-Dist: pytest>=7.0.0; extra == "tests"
+Requires-Dist: coverage>=6.0.0; extra == "tests"
+Requires-Dist: pytest-cov; extra == "tests"
+Requires-Dist: pytest-asyncio; extra == "tests"
+Requires-Dist: pytest-httpserver; extra == "tests"
+Requires-Dist: flake8; extra == "tests"
+Requires-Dist: types-PyYAML; extra == "tests"
+Requires-Dist: types-requests; extra == "tests"
+Requires-Dist: mypy; extra == "tests"
+Requires-Dist: tomli-w; extra == "tests"
+Requires-Dist: tomli; python_version < "3.11" and extra == "tests"
Responses
=========
@@ -104,100 +104,6 @@ Please ensure to update your code according to the guidance.
- Use ``responses.mock.assert_all_requests_are_fired``,
``responses.mock.passthru_prefixes``, ``responses.mock.target`` instead.
-BETA Features
--------------
-Below you can find a list of BETA features. Although we will try to keep the API backwards compatible
-with released version, we reserve the right to change these APIs before they are considered stable. Please share your feedback via
-`GitHub Issues <https://github.com/getsentry/responses/issues>`_.
-
-Record Responses to files
-^^^^^^^^^^^^^^^^^^^^^^^^^
-
-You can perform real requests to the server and ``responses`` will automatically record the output to the
-file. Recorded data is stored in `YAML <https://yaml.org>`_ format.
-
-Apply ``@responses._recorder.record(file_path="out.yaml")`` decorator to any function where you perform
-requests to record responses to ``out.yaml`` file.
-
-Following code
-
-.. code-block:: python
-
- import requests
- from responses import _recorder
-
-
- def another():
- rsp = requests.get("https://httpstat.us/500")
- rsp = requests.get("https://httpstat.us/202")
-
-
- @_recorder.record(file_path="out.yaml")
- def test_recorder():
- rsp = requests.get("https://httpstat.us/404")
- rsp = requests.get("https://httpbin.org/status/wrong")
- another()
-
-will produce next output:
-
-.. code-block:: yaml
-
- responses:
- - response:
- auto_calculate_content_length: false
- body: 404 Not Found
- content_type: text/plain
- method: GET
- status: 404
- url: https://httpstat.us/404
- - response:
- auto_calculate_content_length: false
- body: Invalid status code
- content_type: text/plain
- method: GET
- status: 400
- url: https://httpbin.org/status/wrong
- - response:
- auto_calculate_content_length: false
- body: 500 Internal Server Error
- content_type: text/plain
- method: GET
- status: 500
- url: https://httpstat.us/500
- - response:
- auto_calculate_content_length: false
- body: 202 Accepted
- content_type: text/plain
- method: GET
- status: 202
- url: https://httpstat.us/202
-
-
-Replay responses (populate registry) from files
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-You can populate your active registry from a ``yaml`` file with recorded responses.
-(See `Record Responses to files`_ to understand how to obtain a file).
-To do that you need to execute ``responses._add_from_file(file_path="out.yaml")`` within
-an activated decorator or a context manager.
-
-The following code example registers a ``patch`` response, then all responses present in
-``out.yaml`` file and a ``post`` response at the end.
-
-.. code-block:: python
-
- import responses
-
-
- @responses.activate
- def run():
- responses.patch("http://httpbin.org")
- responses._add_from_file(file_path="out.yaml")
- responses.post("http://httpbin.org/form")
-
-
- run()
-
Basics
------
@@ -941,16 +847,19 @@ Integration with unit test frameworks
Responses as a ``pytest`` fixture
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Use the pytest-responses package to export ``responses`` as a pytest fixture.
+
+``pip install pytest-responses``
+
+You can then access it in a pytest script using:
+
.. code-block:: python
- @pytest.fixture
- def mocked_responses():
- with responses.RequestsMock() as rsps:
- yield rsps
+ import pytest_responses
- def test_api(mocked_responses):
- mocked_responses.get(
+ def test_api(responses):
+ responses.get(
"http://twitter.com/api/1/foobar",
body="{}",
status=200,
@@ -1441,6 +1350,116 @@ single thread to access it.
await run()
+BETA Features
+-------------
+Below you can find a list of BETA features. Although we will try to keep the API backwards compatible
+with released version, we reserve the right to change these APIs before they are considered stable. Please share your feedback via
+`GitHub Issues <https://github.com/getsentry/responses/issues>`_.
+
+Record Responses to files
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+You can perform real requests to the server and ``responses`` will automatically record the output to the
+file. Recorded data is stored in `YAML <https://yaml.org>`_ format.
+
+Apply ``@responses._recorder.record(file_path="out.yaml")`` decorator to any function where you perform
+requests to record responses to ``out.yaml`` file.
+
+Following code
+
+.. code-block:: python
+
+ import requests
+ from responses import _recorder
+
+
+ def another():
+ rsp = requests.get("https://httpstat.us/500")
+ rsp = requests.get("https://httpstat.us/202")
+
+
+ @_recorder.record(file_path="out.yaml")
+ def test_recorder():
+ rsp = requests.get("https://httpstat.us/404")
+ rsp = requests.get("https://httpbin.org/status/wrong")
+ another()
+
+will produce next output:
+
+.. code-block:: yaml
+
+ responses:
+ - response:
+ auto_calculate_content_length: false
+ body: 404 Not Found
+ content_type: text/plain
+ method: GET
+ status: 404
+ url: https://httpstat.us/404
+ - response:
+ auto_calculate_content_length: false
+ body: Invalid status code
+ content_type: text/plain
+ method: GET
+ status: 400
+ url: https://httpbin.org/status/wrong
+ - response:
+ auto_calculate_content_length: false
+ body: 500 Internal Server Error
+ content_type: text/plain
+ method: GET
+ status: 500
+ url: https://httpstat.us/500
+ - response:
+ auto_calculate_content_length: false
+ body: 202 Accepted
+ content_type: text/plain
+ method: GET
+ status: 202
+ url: https://httpstat.us/202
+
+If you are in the REPL, you can also activete the recorder for all following responses:
+
+.. code-block:: python
+
+ import requests
+ from responses import _recorder
+
+ _recorder.recorder.start()
+
+ requests.get("https://httpstat.us/500")
+
+ _recorder.recorder.dump_to_file("out.yaml")
+
+ # you can stop or reset the recorder
+ _recorder.recorder.stop()
+ _recorder.recorder.reset()
+
+Replay responses (populate registry) from files
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+You can populate your active registry from a ``yaml`` file with recorded responses.
+(See `Record Responses to files`_ to understand how to obtain a file).
+To do that you need to execute ``responses._add_from_file(file_path="out.yaml")`` within
+an activated decorator or a context manager.
+
+The following code example registers a ``patch`` response, then all responses present in
+``out.yaml`` file and a ``post`` response at the end.
+
+.. code-block:: python
+
+ import responses
+
+
+ @responses.activate
+ def run():
+ responses.patch("http://httpbin.org")
+ responses._add_from_file(file_path="out.yaml")
+ responses.post("http://httpbin.org/form")
+
+
+ run()
+
Contributing
------------
diff --git a/contrib/python/responses/py3/README.rst b/contrib/python/responses/py3/README.rst
index 9b255076b76..a9c73e7de41 100644
--- a/contrib/python/responses/py3/README.rst
+++ b/contrib/python/responses/py3/README.rst
@@ -62,100 +62,6 @@ Please ensure to update your code according to the guidance.
- Use ``responses.mock.assert_all_requests_are_fired``,
``responses.mock.passthru_prefixes``, ``responses.mock.target`` instead.
-BETA Features
--------------
-Below you can find a list of BETA features. Although we will try to keep the API backwards compatible
-with released version, we reserve the right to change these APIs before they are considered stable. Please share your feedback via
-`GitHub Issues <https://github.com/getsentry/responses/issues>`_.
-
-Record Responses to files
-^^^^^^^^^^^^^^^^^^^^^^^^^
-
-You can perform real requests to the server and ``responses`` will automatically record the output to the
-file. Recorded data is stored in `YAML <https://yaml.org>`_ format.
-
-Apply ``@responses._recorder.record(file_path="out.yaml")`` decorator to any function where you perform
-requests to record responses to ``out.yaml`` file.
-
-Following code
-
-.. code-block:: python
-
- import requests
- from responses import _recorder
-
-
- def another():
- rsp = requests.get("https://httpstat.us/500")
- rsp = requests.get("https://httpstat.us/202")
-
-
- @_recorder.record(file_path="out.yaml")
- def test_recorder():
- rsp = requests.get("https://httpstat.us/404")
- rsp = requests.get("https://httpbin.org/status/wrong")
- another()
-
-will produce next output:
-
-.. code-block:: yaml
-
- responses:
- - response:
- auto_calculate_content_length: false
- body: 404 Not Found
- content_type: text/plain
- method: GET
- status: 404
- url: https://httpstat.us/404
- - response:
- auto_calculate_content_length: false
- body: Invalid status code
- content_type: text/plain
- method: GET
- status: 400
- url: https://httpbin.org/status/wrong
- - response:
- auto_calculate_content_length: false
- body: 500 Internal Server Error
- content_type: text/plain
- method: GET
- status: 500
- url: https://httpstat.us/500
- - response:
- auto_calculate_content_length: false
- body: 202 Accepted
- content_type: text/plain
- method: GET
- status: 202
- url: https://httpstat.us/202
-
-
-Replay responses (populate registry) from files
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-You can populate your active registry from a ``yaml`` file with recorded responses.
-(See `Record Responses to files`_ to understand how to obtain a file).
-To do that you need to execute ``responses._add_from_file(file_path="out.yaml")`` within
-an activated decorator or a context manager.
-
-The following code example registers a ``patch`` response, then all responses present in
-``out.yaml`` file and a ``post`` response at the end.
-
-.. code-block:: python
-
- import responses
-
-
- @responses.activate
- def run():
- responses.patch("http://httpbin.org")
- responses._add_from_file(file_path="out.yaml")
- responses.post("http://httpbin.org/form")
-
-
- run()
-
Basics
------
@@ -899,16 +805,19 @@ Integration with unit test frameworks
Responses as a ``pytest`` fixture
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Use the pytest-responses package to export ``responses`` as a pytest fixture.
+
+``pip install pytest-responses``
+
+You can then access it in a pytest script using:
+
.. code-block:: python
- @pytest.fixture
- def mocked_responses():
- with responses.RequestsMock() as rsps:
- yield rsps
+ import pytest_responses
- def test_api(mocked_responses):
- mocked_responses.get(
+ def test_api(responses):
+ responses.get(
"http://twitter.com/api/1/foobar",
body="{}",
status=200,
@@ -1399,6 +1308,116 @@ single thread to access it.
await run()
+BETA Features
+-------------
+Below you can find a list of BETA features. Although we will try to keep the API backwards compatible
+with released version, we reserve the right to change these APIs before they are considered stable. Please share your feedback via
+`GitHub Issues <https://github.com/getsentry/responses/issues>`_.
+
+Record Responses to files
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+You can perform real requests to the server and ``responses`` will automatically record the output to the
+file. Recorded data is stored in `YAML <https://yaml.org>`_ format.
+
+Apply ``@responses._recorder.record(file_path="out.yaml")`` decorator to any function where you perform
+requests to record responses to ``out.yaml`` file.
+
+Following code
+
+.. code-block:: python
+
+ import requests
+ from responses import _recorder
+
+
+ def another():
+ rsp = requests.get("https://httpstat.us/500")
+ rsp = requests.get("https://httpstat.us/202")
+
+
+ @_recorder.record(file_path="out.yaml")
+ def test_recorder():
+ rsp = requests.get("https://httpstat.us/404")
+ rsp = requests.get("https://httpbin.org/status/wrong")
+ another()
+
+will produce next output:
+
+.. code-block:: yaml
+
+ responses:
+ - response:
+ auto_calculate_content_length: false
+ body: 404 Not Found
+ content_type: text/plain
+ method: GET
+ status: 404
+ url: https://httpstat.us/404
+ - response:
+ auto_calculate_content_length: false
+ body: Invalid status code
+ content_type: text/plain
+ method: GET
+ status: 400
+ url: https://httpbin.org/status/wrong
+ - response:
+ auto_calculate_content_length: false
+ body: 500 Internal Server Error
+ content_type: text/plain
+ method: GET
+ status: 500
+ url: https://httpstat.us/500
+ - response:
+ auto_calculate_content_length: false
+ body: 202 Accepted
+ content_type: text/plain
+ method: GET
+ status: 202
+ url: https://httpstat.us/202
+
+If you are in the REPL, you can also activete the recorder for all following responses:
+
+.. code-block:: python
+
+ import requests
+ from responses import _recorder
+
+ _recorder.recorder.start()
+
+ requests.get("https://httpstat.us/500")
+
+ _recorder.recorder.dump_to_file("out.yaml")
+
+ # you can stop or reset the recorder
+ _recorder.recorder.stop()
+ _recorder.recorder.reset()
+
+Replay responses (populate registry) from files
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+You can populate your active registry from a ``yaml`` file with recorded responses.
+(See `Record Responses to files`_ to understand how to obtain a file).
+To do that you need to execute ``responses._add_from_file(file_path="out.yaml")`` within
+an activated decorator or a context manager.
+
+The following code example registers a ``patch`` response, then all responses present in
+``out.yaml`` file and a ``post`` response at the end.
+
+.. code-block:: python
+
+ import responses
+
+
+ @responses.activate
+ def run():
+ responses.patch("http://httpbin.org")
+ responses._add_from_file(file_path="out.yaml")
+ responses.post("http://httpbin.org/form")
+
+
+ run()
+
Contributing
------------
diff --git a/contrib/python/responses/py3/responses/__init__.py b/contrib/python/responses/py3/responses/__init__.py
index 097e61ee997..69aa1cd9abe 100644
--- a/contrib/python/responses/py3/responses/__init__.py
+++ b/contrib/python/responses/py3/responses/__init__.py
@@ -249,7 +249,7 @@ class CallList(Sequence[Any], Sized):
...
@overload
- def __getitem__(self, idx: slice) -> List[Call]:
+ def __getitem__(self, idx: "slice[int, int, Optional[int]]") -> List[Call]:
...
def __getitem__(self, idx: Union[int, slice]) -> Union[Call, List[Call]]:
@@ -714,6 +714,11 @@ class RequestsMock:
POST: Literal["POST"] = "POST"
PUT: Literal["PUT"] = "PUT"
+ Response: Type[Response] = Response
+
+ # Make the `matchers` name available under a RequestsMock instance
+ from responses import matchers
+
response_callback: Optional[Callable[[Any], Any]] = None
def __init__(
@@ -1054,6 +1059,22 @@ class RequestsMock:
params[key] = values
return params
+ def _read_filelike_body(
+ self, body: Union[str, bytes, BufferedReader, None]
+ ) -> Union[str, bytes, None]:
+ # Requests/urllib support multiple types of body, including file-like objects.
+ # Read from the file if it's a file-like object to avoid storing a closed file
+ # in the call list and allow the user to compare against the data that was in the
+ # request.
+ # See GH #719
+ if isinstance(body, str) or isinstance(body, bytes) or body is None:
+ return body
+ # Based on
+ # https://github.com/urllib3/urllib3/blob/abbfbcb1dd274fc54b4f0a7785fd04d59b634195/src/urllib3/util/request.py#L220
+ if hasattr(body, "read") or isinstance(body, BufferedReader):
+ return body.read()
+ return body
+
def _on_request(
self,
adapter: "HTTPAdapter",
@@ -1067,6 +1088,7 @@ class RequestsMock:
request.params = self._parse_request_params(request.path_url) # type: ignore[attr-defined]
request.req_kwargs = kwargs # type: ignore[attr-defined]
request_url = str(request.url)
+ request.body = self._read_filelike_body(request.body)
match, match_failed_reasons = self._find_match(request)
resp_callback = self.response_callback
diff --git a/contrib/python/responses/py3/responses/_recorder.py b/contrib/python/responses/py3/responses/_recorder.py
index 64533e29720..151e47aa092 100644
--- a/contrib/python/responses/py3/responses/_recorder.py
+++ b/contrib/python/responses/py3/responses/_recorder.py
@@ -9,6 +9,7 @@ if TYPE_CHECKING: # pragma: no cover
from typing import Callable
from typing import Dict
from typing import List
+ from typing import Optional
from typing import Type
from typing import Union
from responses import FirstMatchRegistry
@@ -122,10 +123,13 @@ class Recorder(RequestsMock):
def dump_to_file(
self,
- *,
file_path: "Union[str, bytes, os.PathLike[Any]]",
- registered: "List[BaseResponse]",
+ *,
+ registered: "Optional[List[BaseResponse]]" = None,
) -> None:
+ """Dump the recorded responses to a file."""
+ if registered is None:
+ registered = self.get_registry().registered
with open(file_path, "w") as file:
_dump(registered, file, yaml.dump)
diff --git a/contrib/python/responses/py3/responses/py.typed b/contrib/python/responses/py3/responses/py.typed
deleted file mode 100644
index 6fb4e473fa4..00000000000
--- a/contrib/python/responses/py3/responses/py.typed
+++ /dev/null
@@ -1,2 +0,0 @@
-# Marker file for PEP 561. The mypy package uses inline types.
-# file must be here according to https://peps.python.org/pep-0561/#packaging-type-information
diff --git a/contrib/python/responses/py3/ya.make b/contrib/python/responses/py3/ya.make
index 262b9ef33fe..98126673c83 100644
--- a/contrib/python/responses/py3/ya.make
+++ b/contrib/python/responses/py3/ya.make
@@ -2,7 +2,7 @@
PY3_LIBRARY()
-VERSION(0.25.3)
+VERSION(0.25.5)
LICENSE(Apache-2.0)
@@ -26,7 +26,6 @@ RESOURCE_FILES(
PREFIX contrib/python/responses/py3/
.dist-info/METADATA
.dist-info/top_level.txt
- responses/py.typed
)
END()
diff --git a/library/cpp/monlib/encode/unistat/unistat_decoder.cpp b/library/cpp/monlib/encode/unistat/unistat_decoder.cpp
index a2b787365cb..9484e6768ad 100644
--- a/library/cpp/monlib/encode/unistat/unistat_decoder.cpp
+++ b/library/cpp/monlib/encode/unistat/unistat_decoder.cpp
@@ -15,7 +15,7 @@
using namespace NJson;
-const re2::RE2 NAME_RE{R"((?:[a-zA-Z0-9\.\-/@_]+_)+(?:[ad][vehmntx]{3}|summ|hgram|max))"};
+const re2::RE2 NAME_RE{R"((?:[a-zA-Z0-9\.\-/@_]+_)+(?:[advehmntx][vehmntx]{3}|summ|hgram|max))"};
namespace NMonitoring {
namespace {
@@ -144,7 +144,7 @@ namespace NMonitoring {
OnHistogram(value);
}
} else if (IsNumber(value)) {
- if (MetricContext_.Name.EndsWith("_ahhh")) {
+ if (MetricContext_.Name.EndsWith("hhh") && !MetricContext_.IsDeriv) {
OnLogHistogram(value);
} else {
OnScalar(value);
@@ -169,7 +169,8 @@ namespace NMonitoring {
}
void OnLogHistogram(const TJsonValue& value) {
- Y_ENSURE(MetricContext_.Name.EndsWith("_ahhh"), "Values list is supported only for _ahhh metrics");
+ Y_ENSURE(MetricContext_.Name.EndsWith("hhh") && !MetricContext_.IsDeriv,
+ "Values list is supported only for histogram metrics");
MetricContext_.Type = EMetricType::HIST;
LogHistogramBuilder histogramBuilder;
diff --git a/library/cpp/monlib/encode/unistat/unistat_ut.cpp b/library/cpp/monlib/encode/unistat/unistat_ut.cpp
index f15fc7c5b79..08b4c602eed 100644
--- a/library/cpp/monlib/encode/unistat/unistat_ut.cpp
+++ b/library/cpp/monlib/encode/unistat/unistat_ut.cpp
@@ -338,4 +338,35 @@ Y_UNIT_TEST_SUITE(TUnistatDecoderTest) {
UNIT_ASSERT_VALUES_EQUAL(label.GetName(), "sensor");
UNIT_ASSERT_VALUES_EQUAL(label.GetValue(), "something_anything_max");
}
+
+ Y_UNIT_TEST(AllowClientAggregations) {
+ constexpr auto input = TStringBuf(R"(
+ [
+ ["signal_dmmm", 1],
+ ["signal_ammm", 1],
+ ["signal_xmmm", 1],
+ ["signal_emmm", 1],
+ ["signal_tmmm", 1]
+ ])");
+ NProto::TMultiSamplesList samples;
+ auto encoder = EncoderProtobuf(&samples);
+ DecodeUnistat(input, encoder.Get());
+
+ UNIT_ASSERT_EQUAL(samples.SamplesSize(), 5);
+ UNIT_ASSERT_EQUAL(samples.GetSamples(0).GetMetricType(), NProto::RATE);
+ for (size_t i = 1; i < samples.SamplesSize(); ++i) {
+ UNIT_ASSERT_EQUAL(samples.GetSamples(i).GetMetricType(), NProto::GAUGE);
+ }
+ }
+
+ Y_UNIT_TEST(AllowClientHistAggregation) {
+ constexpr auto input = TStringBuf(R"([["something_hhhh", 1]])");
+ NProto::TMultiSamplesList samples;
+ auto encoder = EncoderProtobuf(&samples);
+ DecodeUnistat(input, encoder.Get());
+
+ UNIT_ASSERT_EQUAL(samples.SamplesSize(), 1);
+ UNIT_ASSERT_EQUAL(samples.GetSamples(0).GetMetricType(), NProto::HISTOGRAM);
+ UNIT_ASSERT_EQUAL(samples.GetSamples(0).PointsSize(), 1);
+ }
}
diff --git a/library/cpp/tld/tlds-alpha-by-domain.txt b/library/cpp/tld/tlds-alpha-by-domain.txt
index 1a15372191b..5bc20052bab 100644
--- a/library/cpp/tld/tlds-alpha-by-domain.txt
+++ b/library/cpp/tld/tlds-alpha-by-domain.txt
@@ -1,4 +1,4 @@
-# Version 2025012500, Last Updated Sat Jan 25 07:07:01 2025 UTC
+# Version 2025012800, Last Updated Tue Jan 28 07:07:01 2025 UTC
AAA
AARP
ABB
diff --git a/tools/cpp_style_checker/__main__.py b/tools/cpp_style_checker/__main__.py
index abaa32ee19c..ab8534a0ad4 100644
--- a/tools/cpp_style_checker/__main__.py
+++ b/tools/cpp_style_checker/__main__.py
@@ -13,7 +13,12 @@ from library.python.testing.style import rules
def main():
params = linter_params.get_params()
- clang_format_binary = os.path.join(params.global_resources[CLANG_FORMAT_RESOURCE], 'clang-format')
+ if 'clang_format_bin' in params.extra_params:
+ # custom clang-format
+ clang_format_binary = params.depends[params.extra_params['clang_format_bin']]
+ else:
+ clang_format_binary = os.path.join(params.global_resources[CLANG_FORMAT_RESOURCE], 'clang-format')
+
style_config_path = params.configs[0]
with open(style_config_path) as f:
diff --git a/tools/cpp_style_checker/ya.make b/tools/cpp_style_checker/ya.make
index 35b32a9eaf2..e762be1a1fc 100644
--- a/tools/cpp_style_checker/ya.make
+++ b/tools/cpp_style_checker/ya.make
@@ -11,4 +11,6 @@ PY_SRCS(
__main__.py
)
+STYLE_PYTHON()
+
END()
diff --git a/yql/essentials/mount/lib/yql/core.yqls b/yql/essentials/mount/lib/yql/core.yqls
index 8ab2b16d665..4dbb358d545 100755
--- a/yql/essentials/mount/lib/yql/core.yqls
+++ b/yql/essentials/mount/lib/yql/core.yqls
@@ -522,6 +522,13 @@ def signature(script, name):
)))
))))
+(let Opaque (lambda '(x) (block '(
+ (let t (TypeOf x))
+ (let ct (CallableType '('0) '(t)))
+ (let c (Callable ct (lambda '() x)))
+ (return (Apply c))
+))))
+
(export Equals)
(export Unequals)
(export FindIndex)
@@ -562,4 +569,5 @@ def signature(script, name):
(export ListSampleImpl)
(export ListSampleNImpl)
(export ListShuffleImpl)
+(export Opaque)
)
diff --git a/yql/essentials/sql/v1/builtin.cpp b/yql/essentials/sql/v1/builtin.cpp
index 9d017b184ec..c9953c6e0d0 100644
--- a/yql/essentials/sql/v1/builtin.cpp
+++ b/yql/essentials/sql/v1/builtin.cpp
@@ -3303,6 +3303,7 @@ struct TBuiltinFuncData {
{"forcespreadmembers", { "ForceSpreadMembers", 2, 2}},
{"listfromtuple", { "ListFromTuple", 1, 1}},
{"listtotuple", { "ListToTuple", 2, 2}},
+ {"opaque", { "Opaque", 1, 1}},
};
return coreFuncs;
}
diff --git a/yql/essentials/tests/sql/minirun/part0/canondata/result.json b/yql/essentials/tests/sql/minirun/part0/canondata/result.json
index 948ea2a8737..209766edb69 100644
--- a/yql/essentials/tests/sql/minirun/part0/canondata/result.json
+++ b/yql/essentials/tests/sql/minirun/part0/canondata/result.json
@@ -240,6 +240,69 @@
"uri": "file://test.test_bitcast_implicit-sub_bitcast-default.txt-Results_/extracted"
}
],
+ "test.test[blocks-and-default.txt-Debug]": [
+ {
+ "checksum": "47525fa40526e04498f0c41e6bc48f59",
+ "size": 496,
+ "uri": "https://{canondata_backend}/1920236/e2416b57cd9baa140c086892d357d5945ed0fdb1/resource.tar.gz#test.test_blocks-and-default.txt-Debug_/opt.yql"
+ }
+ ],
+ "test.test[blocks-and-default.txt-Peephole]": [
+ {
+ "checksum": "25301b655e8f72e42581ed1009f05cf5",
+ "size": 682,
+ "uri": "https://{canondata_backend}/1920236/e2416b57cd9baa140c086892d357d5945ed0fdb1/resource.tar.gz#test.test_blocks-and-default.txt-Peephole_/opt.yql"
+ }
+ ],
+ "test.test[blocks-and-default.txt-Results]": [
+ {
+ "checksum": "1004a527d94d3a57c3ddee81c7051ac2",
+ "size": 928,
+ "uri": "https://{canondata_backend}/1920236/e2416b57cd9baa140c086892d357d5945ed0fdb1/resource.tar.gz#test.test_blocks-and-default.txt-Results_/results.txt"
+ }
+ ],
+ "test.test[blocks-xor-default.txt-Debug]": [
+ {
+ "checksum": "f0b56bd3576e6d9f549d692dff6522c8",
+ "size": 496,
+ "uri": "https://{canondata_backend}/1920236/e2416b57cd9baa140c086892d357d5945ed0fdb1/resource.tar.gz#test.test_blocks-xor-default.txt-Debug_/opt.yql"
+ }
+ ],
+ "test.test[blocks-xor-default.txt-Peephole]": [
+ {
+ "checksum": "0cf43f4750e64901c4c51aa0d8ff9f75",
+ "size": 682,
+ "uri": "https://{canondata_backend}/1920236/e2416b57cd9baa140c086892d357d5945ed0fdb1/resource.tar.gz#test.test_blocks-xor-default.txt-Peephole_/opt.yql"
+ }
+ ],
+ "test.test[blocks-xor-default.txt-Results]": [
+ {
+ "checksum": "4c8389713df37ffc2a69c96c4224eaeb",
+ "size": 927,
+ "uri": "https://{canondata_backend}/1920236/e2416b57cd9baa140c086892d357d5945ed0fdb1/resource.tar.gz#test.test_blocks-xor-default.txt-Results_/results.txt"
+ }
+ ],
+ "test.test[blocks-xor_opt_scalar-default.txt-Debug]": [
+ {
+ "checksum": "27783c2f95862105c305c624babb7dfe",
+ "size": 1425,
+ "uri": "https://{canondata_backend}/1920236/e2416b57cd9baa140c086892d357d5945ed0fdb1/resource.tar.gz#test.test_blocks-xor_opt_scalar-default.txt-Debug_/opt.yql"
+ }
+ ],
+ "test.test[blocks-xor_opt_scalar-default.txt-Peephole]": [
+ {
+ "checksum": "f513ccd4b355aba2f8aebb682fddd56a",
+ "size": 1814,
+ "uri": "https://{canondata_backend}/1920236/e2416b57cd9baa140c086892d357d5945ed0fdb1/resource.tar.gz#test.test_blocks-xor_opt_scalar-default.txt-Peephole_/opt.yql"
+ }
+ ],
+ "test.test[blocks-xor_opt_scalar-default.txt-Results]": [
+ {
+ "checksum": "7114d4ac2409c274dd149fb961df544a",
+ "size": 10854,
+ "uri": "https://{canondata_backend}/1920236/e2416b57cd9baa140c086892d357d5945ed0fdb1/resource.tar.gz#test.test_blocks-xor_opt_scalar-default.txt-Results_/results.txt"
+ }
+ ],
"test.test[column_order-values-default.txt-Debug]": [
{
"checksum": "ec4c1859bead1f9b88e6239fe8d6addb",
diff --git a/yql/essentials/tests/sql/minirun/part1/canondata/result.json b/yql/essentials/tests/sql/minirun/part1/canondata/result.json
index 88aa38f202f..4ce5118f55e 100644
--- a/yql/essentials/tests/sql/minirun/part1/canondata/result.json
+++ b/yql/essentials/tests/sql/minirun/part1/canondata/result.json
@@ -209,6 +209,27 @@
"uri": "https://{canondata_backend}/1920236/fd3dfd41a8e63d7fa9cb2e8c3d8e6d8d5f51f2cb/resource.tar.gz#test.test_bigdate-tzstrliterals-default.txt-Results_/results.txt"
}
],
+ "test.test[blocks-and_opt_scalar-default.txt-Debug]": [
+ {
+ "checksum": "1a4fb294f178b359c444b4f540e0b9e1",
+ "size": 1425,
+ "uri": "https://{canondata_backend}/1920236/0ae0061e7a37e74785c20a7b0e1cfe4b3655ad32/resource.tar.gz#test.test_blocks-and_opt_scalar-default.txt-Debug_/opt.yql"
+ }
+ ],
+ "test.test[blocks-and_opt_scalar-default.txt-Peephole]": [
+ {
+ "checksum": "e410280186ee325d3b67ac78de5f8e36",
+ "size": 1814,
+ "uri": "https://{canondata_backend}/1920236/0ae0061e7a37e74785c20a7b0e1cfe4b3655ad32/resource.tar.gz#test.test_blocks-and_opt_scalar-default.txt-Peephole_/opt.yql"
+ }
+ ],
+ "test.test[blocks-and_opt_scalar-default.txt-Results]": [
+ {
+ "checksum": "e0c63045084dabe914309f6294a84814",
+ "size": 11604,
+ "uri": "https://{canondata_backend}/1920236/0ae0061e7a37e74785c20a7b0e1cfe4b3655ad32/resource.tar.gz#test.test_blocks-and_opt_scalar-default.txt-Results_/results.txt"
+ }
+ ],
"test.test[blocks-empty_as_table-default.txt-Debug]": [
{
"checksum": "02505b6facd77cffd49cb50c6594bfb4",
@@ -230,6 +251,27 @@
"uri": "https://{canondata_backend}/1881367/d69a84f4c03a928385a2fa1e80f00c900ecc2329/resource.tar.gz#test.test_blocks-empty_as_table-default.txt-Results_/results.txt"
}
],
+ "test.test[blocks-or_scalar-default.txt-Debug]": [
+ {
+ "checksum": "9153a8e9df67920deba9d895e8d4a8b1",
+ "size": 1021,
+ "uri": "https://{canondata_backend}/1920236/0ae0061e7a37e74785c20a7b0e1cfe4b3655ad32/resource.tar.gz#test.test_blocks-or_scalar-default.txt-Debug_/opt.yql"
+ }
+ ],
+ "test.test[blocks-or_scalar-default.txt-Peephole]": [
+ {
+ "checksum": "ece0c5618fe0b4818ea7c0c6b6e588e0",
+ "size": 1389,
+ "uri": "https://{canondata_backend}/1920236/0ae0061e7a37e74785c20a7b0e1cfe4b3655ad32/resource.tar.gz#test.test_blocks-or_scalar-default.txt-Peephole_/opt.yql"
+ }
+ ],
+ "test.test[blocks-or_scalar-default.txt-Results]": [
+ {
+ "checksum": "4aa1c5107d5f9a190a27268bcd666b95",
+ "size": 4182,
+ "uri": "https://{canondata_backend}/1920236/0ae0061e7a37e74785c20a7b0e1cfe4b3655ad32/resource.tar.gz#test.test_blocks-or_scalar-default.txt-Results_/results.txt"
+ }
+ ],
"test.test[compute_range-tuples_compare-default.txt-Debug]": [
{
"checksum": "501d11676cf33c61787adfa1afed5db6",
diff --git a/yql/essentials/tests/sql/minirun/part2/canondata/result.json b/yql/essentials/tests/sql/minirun/part2/canondata/result.json
index 48b245776bc..4c2099af44d 100644
--- a/yql/essentials/tests/sql/minirun/part2/canondata/result.json
+++ b/yql/essentials/tests/sql/minirun/part2/canondata/result.json
@@ -237,6 +237,27 @@
"uri": "https://{canondata_backend}/1925821/c218142dee7e94289607cb3f387a4ea325fdeb89/resource.tar.gz#test.test_binding-tie_scalar_context-default.txt-Results_/results.txt"
}
],
+ "test.test[blocks-exists-default.txt-Debug]": [
+ {
+ "checksum": "a871029504a6d3f1c07342493b86d28d",
+ "size": 369,
+ "uri": "https://{canondata_backend}/1942671/13a781c07395a2ba482afc02d12bb4a6fa60d5ef/resource.tar.gz#test.test_blocks-exists-default.txt-Debug_/opt.yql"
+ }
+ ],
+ "test.test[blocks-exists-default.txt-Peephole]": [
+ {
+ "checksum": "489280aa6951c20dbd91012493e95323",
+ "size": 539,
+ "uri": "https://{canondata_backend}/1942671/13a781c07395a2ba482afc02d12bb4a6fa60d5ef/resource.tar.gz#test.test_blocks-exists-default.txt-Peephole_/opt.yql"
+ }
+ ],
+ "test.test[blocks-exists-default.txt-Results]": [
+ {
+ "checksum": "15f95c7f7b643af3eeb7c995172ca272",
+ "size": 774,
+ "uri": "https://{canondata_backend}/1942671/13a781c07395a2ba482afc02d12bb4a6fa60d5ef/resource.tar.gz#test.test_blocks-exists-default.txt-Results_/results.txt"
+ }
+ ],
"test.test[compute_range-in_literal_nulls-default.txt-Debug]": [
{
"checksum": "32fad62c2c315c6dad7fe390ba7f40a8",
diff --git a/yql/essentials/tests/sql/minirun/part3/canondata/result.json b/yql/essentials/tests/sql/minirun/part3/canondata/result.json
index 1d51ed7623a..4db0b286873 100644
--- a/yql/essentials/tests/sql/minirun/part3/canondata/result.json
+++ b/yql/essentials/tests/sql/minirun/part3/canondata/result.json
@@ -285,6 +285,27 @@
"uri": "file://test.test_bitcast_implicit-div_bitcast-default.txt-Results_/extracted"
}
],
+ "test.test[blocks-or_opt-default.txt-Debug]": [
+ {
+ "checksum": "85fb6a988595cab34e899acfd0ef8dd2",
+ "size": 693,
+ "uri": "https://{canondata_backend}/1920236/9bbaee93ec54cd7cbc4c6311c4df2e94db14c07e/resource.tar.gz#test.test_blocks-or_opt-default.txt-Debug_/opt.yql"
+ }
+ ],
+ "test.test[blocks-or_opt-default.txt-Peephole]": [
+ {
+ "checksum": "845329e7352cf454e326edeac8a39237",
+ "size": 879,
+ "uri": "https://{canondata_backend}/1920236/9bbaee93ec54cd7cbc4c6311c4df2e94db14c07e/resource.tar.gz#test.test_blocks-or_opt-default.txt-Peephole_/opt.yql"
+ }
+ ],
+ "test.test[blocks-or_opt-default.txt-Results]": [
+ {
+ "checksum": "d65a0b1dcc9a03b3b6bcfb46ce542f51",
+ "size": 1763,
+ "uri": "https://{canondata_backend}/1920236/9bbaee93ec54cd7cbc4c6311c4df2e94db14c07e/resource.tar.gz#test.test_blocks-or_opt-default.txt-Results_/results.txt"
+ }
+ ],
"test.test[compute_range-tztypes-default.txt-Debug]": [
{
"checksum": "f16da776935c59e7de9005d2e87056e7",
diff --git a/yql/essentials/tests/sql/minirun/part4/canondata/result.json b/yql/essentials/tests/sql/minirun/part4/canondata/result.json
index 6486e6dbc7d..02a5ceee0ce 100644
--- a/yql/essentials/tests/sql/minirun/part4/canondata/result.json
+++ b/yql/essentials/tests/sql/minirun/part4/canondata/result.json
@@ -293,6 +293,27 @@
"uri": "https://{canondata_backend}/1925821/db505909f0fb5dcb9a1c2635b652923e2e5d33c8/resource.tar.gz#test.test_binding-compact_named_with_subq_contexts--Results_/results.txt"
}
],
+ "test.test[blocks-or_opt_scalar-default.txt-Debug]": [
+ {
+ "checksum": "48438c52974cf1f5de5ed35df99e54b5",
+ "size": 1419,
+ "uri": "https://{canondata_backend}/1916746/09c919bce0458a8ce66d1cb974cd8dba5513025d/resource.tar.gz#test.test_blocks-or_opt_scalar-default.txt-Debug_/opt.yql"
+ }
+ ],
+ "test.test[blocks-or_opt_scalar-default.txt-Peephole]": [
+ {
+ "checksum": "ab501477ca29cbf2b360f0e80d7bc1e2",
+ "size": 1808,
+ "uri": "https://{canondata_backend}/1916746/09c919bce0458a8ce66d1cb974cd8dba5513025d/resource.tar.gz#test.test_blocks-or_opt_scalar-default.txt-Peephole_/opt.yql"
+ }
+ ],
+ "test.test[blocks-or_opt_scalar-default.txt-Results]": [
+ {
+ "checksum": "da8a92d6c533e8d1e4604da0dc1a162b",
+ "size": 11580,
+ "uri": "https://{canondata_backend}/1916746/09c919bce0458a8ce66d1cb974cd8dba5513025d/resource.tar.gz#test.test_blocks-or_opt_scalar-default.txt-Results_/results.txt"
+ }
+ ],
"test.test[case-case_many_val--Debug]": [
{
"checksum": "291fd94793b3188fe2e609ff400be242",
diff --git a/yql/essentials/tests/sql/minirun/part5/canondata/result.json b/yql/essentials/tests/sql/minirun/part5/canondata/result.json
index 67d87a83508..406b42e25d6 100644
--- a/yql/essentials/tests/sql/minirun/part5/canondata/result.json
+++ b/yql/essentials/tests/sql/minirun/part5/canondata/result.json
@@ -324,6 +324,27 @@
"uri": "file://test.test_bitcast_implicit-mul_bitcast-default.txt-Results_/extracted"
}
],
+ "test.test[blocks-and_opt-default.txt-Debug]": [
+ {
+ "checksum": "5013773b59997d6cfde3ea2a64496340",
+ "size": 694,
+ "uri": "https://{canondata_backend}/1942671/ce51ce34754ddc48cce99d0eb0d68c58043ce298/resource.tar.gz#test.test_blocks-and_opt-default.txt-Debug_/opt.yql"
+ }
+ ],
+ "test.test[blocks-and_opt-default.txt-Peephole]": [
+ {
+ "checksum": "b8c85dc4102de70b2fcae3acee2efa3c",
+ "size": 880,
+ "uri": "https://{canondata_backend}/1942671/ce51ce34754ddc48cce99d0eb0d68c58043ce298/resource.tar.gz#test.test_blocks-and_opt-default.txt-Peephole_/opt.yql"
+ }
+ ],
+ "test.test[blocks-and_opt-default.txt-Results]": [
+ {
+ "checksum": "a24d9a40b4fad511d8370c07ca0ea4f6",
+ "size": 1767,
+ "uri": "https://{canondata_backend}/1942671/ce51ce34754ddc48cce99d0eb0d68c58043ce298/resource.tar.gz#test.test_blocks-and_opt-default.txt-Results_/results.txt"
+ }
+ ],
"test.test[blocks-filter-default.txt-Debug]": [
{
"checksum": "3dea830ec45f78ed78603576b054b4ca",
@@ -345,6 +366,69 @@
"uri": "https://{canondata_backend}/1937150/d87c401e99a94fad9fdc66f7c4a0d9c670b84949/resource.tar.gz#test.test_blocks-filter-default.txt-Results_/results.txt"
}
],
+ "test.test[blocks-not-default.txt-Debug]": [
+ {
+ "checksum": "11ca4c4fbc3e6a5463a95ce9496effdf",
+ "size": 334,
+ "uri": "https://{canondata_backend}/1942671/ce51ce34754ddc48cce99d0eb0d68c58043ce298/resource.tar.gz#test.test_blocks-not-default.txt-Debug_/opt.yql"
+ }
+ ],
+ "test.test[blocks-not-default.txt-Peephole]": [
+ {
+ "checksum": "e07fe7e10cb9bca87ca0df3855e30800",
+ "size": 504,
+ "uri": "https://{canondata_backend}/1942671/ce51ce34754ddc48cce99d0eb0d68c58043ce298/resource.tar.gz#test.test_blocks-not-default.txt-Peephole_/opt.yql"
+ }
+ ],
+ "test.test[blocks-not-default.txt-Results]": [
+ {
+ "checksum": "15f95c7f7b643af3eeb7c995172ca272",
+ "size": 774,
+ "uri": "https://{canondata_backend}/1942671/ce51ce34754ddc48cce99d0eb0d68c58043ce298/resource.tar.gz#test.test_blocks-not-default.txt-Results_/results.txt"
+ }
+ ],
+ "test.test[blocks-not_opt-default.txt-Debug]": [
+ {
+ "checksum": "c34f7ad888edfc0a8caaa6b4483449a7",
+ "size": 421,
+ "uri": "https://{canondata_backend}/1942671/ce51ce34754ddc48cce99d0eb0d68c58043ce298/resource.tar.gz#test.test_blocks-not_opt-default.txt-Debug_/opt.yql"
+ }
+ ],
+ "test.test[blocks-not_opt-default.txt-Peephole]": [
+ {
+ "checksum": "f8c1132586ba55043b160dd90392d223",
+ "size": 579,
+ "uri": "https://{canondata_backend}/1942671/ce51ce34754ddc48cce99d0eb0d68c58043ce298/resource.tar.gz#test.test_blocks-not_opt-default.txt-Peephole_/opt.yql"
+ }
+ ],
+ "test.test[blocks-not_opt-default.txt-Results]": [
+ {
+ "checksum": "bb45b5bb85b27a621629ef6587d34fdd",
+ "size": 1093,
+ "uri": "https://{canondata_backend}/1942671/ce51ce34754ddc48cce99d0eb0d68c58043ce298/resource.tar.gz#test.test_blocks-not_opt-default.txt-Results_/results.txt"
+ }
+ ],
+ "test.test[blocks-xor_scalar-default.txt-Debug]": [
+ {
+ "checksum": "01875c4a7756e30537fbaa02d4b70d91",
+ "size": 1025,
+ "uri": "https://{canondata_backend}/1942671/ce51ce34754ddc48cce99d0eb0d68c58043ce298/resource.tar.gz#test.test_blocks-xor_scalar-default.txt-Debug_/opt.yql"
+ }
+ ],
+ "test.test[blocks-xor_scalar-default.txt-Peephole]": [
+ {
+ "checksum": "b692bb81f6109ff6725a7daa8ce6a643",
+ "size": 1393,
+ "uri": "https://{canondata_backend}/1942671/ce51ce34754ddc48cce99d0eb0d68c58043ce298/resource.tar.gz#test.test_blocks-xor_scalar-default.txt-Peephole_/opt.yql"
+ }
+ ],
+ "test.test[blocks-xor_scalar-default.txt-Results]": [
+ {
+ "checksum": "9c9e0ad35368288f65f7b5e00f7b2154",
+ "size": 4186,
+ "uri": "https://{canondata_backend}/1942671/ce51ce34754ddc48cce99d0eb0d68c58043ce298/resource.tar.gz#test.test_blocks-xor_scalar-default.txt-Results_/results.txt"
+ }
+ ],
"test.test[column_order-union_all_positional-default.txt-Debug]": [
{
"checksum": "b136f637022838dde4e7cd35c37911eb",
diff --git a/yql/essentials/tests/sql/minirun/part6/canondata/result.json b/yql/essentials/tests/sql/minirun/part6/canondata/result.json
index 8bae492b7ab..8c8ddbc9f51 100644
--- a/yql/essentials/tests/sql/minirun/part6/canondata/result.json
+++ b/yql/essentials/tests/sql/minirun/part6/canondata/result.json
@@ -296,6 +296,27 @@
"uri": "file://test.test_bitcast_implicit-mod_bitcast-default.txt-Results_/extracted"
}
],
+ "test.test[blocks-coalesce_scalar-default.txt-Debug]": [
+ {
+ "checksum": "5ee084040bec68362ce741c283ddead6",
+ "size": 1484,
+ "uri": "https://{canondata_backend}/1920236/8a88b220fe1ff8b571b6813b812d7623629101fd/resource.tar.gz#test.test_blocks-coalesce_scalar-default.txt-Debug_/opt.yql"
+ }
+ ],
+ "test.test[blocks-coalesce_scalar-default.txt-Peephole]": [
+ {
+ "checksum": "de0d9ee659715c2a884666a8e2ad690c",
+ "size": 1923,
+ "uri": "https://{canondata_backend}/1920236/8a88b220fe1ff8b571b6813b812d7623629101fd/resource.tar.gz#test.test_blocks-coalesce_scalar-default.txt-Peephole_/opt.yql"
+ }
+ ],
+ "test.test[blocks-coalesce_scalar-default.txt-Results]": [
+ {
+ "checksum": "64c968b3cf2b6f9d005758ad39bde2fa",
+ "size": 4410,
+ "uri": "https://{canondata_backend}/1920236/8a88b220fe1ff8b571b6813b812d7623629101fd/resource.tar.gz#test.test_blocks-coalesce_scalar-default.txt-Results_/results.txt"
+ }
+ ],
"test.test[blocks-projection_add_ints_filter-default.txt-Debug]": [
{
"checksum": "0dc7c149ab903b62717b7afe506ab893",
diff --git a/yql/essentials/tests/sql/minirun/part7/canondata/result.json b/yql/essentials/tests/sql/minirun/part7/canondata/result.json
index 8c7584fdbdd..e4d2c99469a 100644
--- a/yql/essentials/tests/sql/minirun/part7/canondata/result.json
+++ b/yql/essentials/tests/sql/minirun/part7/canondata/result.json
@@ -209,6 +209,27 @@
"uri": "https://{canondata_backend}/1920236/d08588ad74710b9926df45a5b372c37153cb8b1e/resource.tar.gz#test.test_bigdate-misc-default.txt-Results_/results.txt"
}
],
+ "test.test[blocks-or-default.txt-Debug]": [
+ {
+ "checksum": "4c3c28b4c505737765e9379d3386b4ff",
+ "size": 495,
+ "uri": "https://{canondata_backend}/1942671/a9486852a02ad9ecba5005ac92cde1261882e326/resource.tar.gz#test.test_blocks-or-default.txt-Debug_/opt.yql"
+ }
+ ],
+ "test.test[blocks-or-default.txt-Peephole]": [
+ {
+ "checksum": "e86101ef3ffbf79e56099e81ec6bc0fb",
+ "size": 681,
+ "uri": "https://{canondata_backend}/1942671/a9486852a02ad9ecba5005ac92cde1261882e326/resource.tar.gz#test.test_blocks-or-default.txt-Peephole_/opt.yql"
+ }
+ ],
+ "test.test[blocks-or-default.txt-Results]": [
+ {
+ "checksum": "b0336f85016207ce0e9926ea3712616f",
+ "size": 926,
+ "uri": "https://{canondata_backend}/1942671/a9486852a02ad9ecba5005ac92cde1261882e326/resource.tar.gz#test.test_blocks-or-default.txt-Results_/results.txt"
+ }
+ ],
"test.test[case-case_opt_then-default.txt-Debug]": [
{
"checksum": "456497d68c16bc496296525c7d2fadd5",
diff --git a/yql/essentials/tests/sql/minirun/part8/canondata/result.json b/yql/essentials/tests/sql/minirun/part8/canondata/result.json
index 882d4a17409..a041fe1469d 100644
--- a/yql/essentials/tests/sql/minirun/part8/canondata/result.json
+++ b/yql/essentials/tests/sql/minirun/part8/canondata/result.json
@@ -352,6 +352,69 @@
"uri": "https://{canondata_backend}/1031349/4d0c6ce1905689c65e264d15d770d36efcd9426f/resource.tar.gz#test.test_binding-named_expr_input-default.txt-Results_/results.txt"
}
],
+ "test.test[blocks-and_scalar-default.txt-Debug]": [
+ {
+ "checksum": "e5ccc5c53756e09ded8e82b6d662e5e9",
+ "size": 1025,
+ "uri": "https://{canondata_backend}/1942671/1fe07dc7779a4d1b05048ad4f78bfbeb3a86d998/resource.tar.gz#test.test_blocks-and_scalar-default.txt-Debug_/opt.yql"
+ }
+ ],
+ "test.test[blocks-and_scalar-default.txt-Peephole]": [
+ {
+ "checksum": "d7eb4215f3447f164802a0fa8a9e93f6",
+ "size": 1393,
+ "uri": "https://{canondata_backend}/1942671/1fe07dc7779a4d1b05048ad4f78bfbeb3a86d998/resource.tar.gz#test.test_blocks-and_scalar-default.txt-Peephole_/opt.yql"
+ }
+ ],
+ "test.test[blocks-and_scalar-default.txt-Results]": [
+ {
+ "checksum": "652311e95f643de8f49049f0aedae6a9",
+ "size": 4190,
+ "uri": "https://{canondata_backend}/1942671/1fe07dc7779a4d1b05048ad4f78bfbeb3a86d998/resource.tar.gz#test.test_blocks-and_scalar-default.txt-Results_/results.txt"
+ }
+ ],
+ "test.test[blocks-if-default.txt-Debug]": [
+ {
+ "checksum": "05045689a237cf4db264b77935b5a418",
+ "size": 513,
+ "uri": "https://{canondata_backend}/1942671/1fe07dc7779a4d1b05048ad4f78bfbeb3a86d998/resource.tar.gz#test.test_blocks-if-default.txt-Debug_/opt.yql"
+ }
+ ],
+ "test.test[blocks-if-default.txt-Peephole]": [
+ {
+ "checksum": "c8b3668a80da61f1695e1f4c95558f4c",
+ "size": 717,
+ "uri": "https://{canondata_backend}/1942671/1fe07dc7779a4d1b05048ad4f78bfbeb3a86d998/resource.tar.gz#test.test_blocks-if-default.txt-Peephole_/opt.yql"
+ }
+ ],
+ "test.test[blocks-if-default.txt-Results]": [
+ {
+ "checksum": "70e56eadbe1f881e5983d36a1d4e9289",
+ "size": 768,
+ "uri": "https://{canondata_backend}/1942671/1fe07dc7779a4d1b05048ad4f78bfbeb3a86d998/resource.tar.gz#test.test_blocks-if-default.txt-Results_/results.txt"
+ }
+ ],
+ "test.test[blocks-xor_opt-default.txt-Debug]": [
+ {
+ "checksum": "91e8a0bee949446ecd2a7ed7703756fe",
+ "size": 694,
+ "uri": "https://{canondata_backend}/1942671/1fe07dc7779a4d1b05048ad4f78bfbeb3a86d998/resource.tar.gz#test.test_blocks-xor_opt-default.txt-Debug_/opt.yql"
+ }
+ ],
+ "test.test[blocks-xor_opt-default.txt-Peephole]": [
+ {
+ "checksum": "9dfc3fbfce576e0daed66ae740e44d5c",
+ "size": 880,
+ "uri": "https://{canondata_backend}/1942671/1fe07dc7779a4d1b05048ad4f78bfbeb3a86d998/resource.tar.gz#test.test_blocks-xor_opt-default.txt-Peephole_/opt.yql"
+ }
+ ],
+ "test.test[blocks-xor_opt-default.txt-Results]": [
+ {
+ "checksum": "5f40d45719c74387b7ca04e25297030a",
+ "size": 1642,
+ "uri": "https://{canondata_backend}/1942671/1fe07dc7779a4d1b05048ad4f78bfbeb3a86d998/resource.tar.gz#test.test_blocks-xor_opt-default.txt-Results_/results.txt"
+ }
+ ],
"test.test[compute_range-in2-default.txt-Debug]": [
{
"checksum": "bd691b0c2a87038767feddb27bbdf790",
diff --git a/yql/essentials/tests/sql/minirun/part9/canondata/result.json b/yql/essentials/tests/sql/minirun/part9/canondata/result.json
index 0de609513ce..84ff18d5853 100644
--- a/yql/essentials/tests/sql/minirun/part9/canondata/result.json
+++ b/yql/essentials/tests/sql/minirun/part9/canondata/result.json
@@ -167,6 +167,48 @@
"uri": "https://{canondata_backend}/1881367/0904eef9815dbdae5991888c9e683a7d755b2751/resource.tar.gz#test.test_bigdate-tzcasts-default.txt-Results_/results.txt"
}
],
+ "test.test[blocks-coalesce-default.txt-Debug]": [
+ {
+ "checksum": "4f09982cc6cf8782ef9874681dd4f689",
+ "size": 748,
+ "uri": "https://{canondata_backend}/1920236/19a9934ebc9455bf1caab37058331acdf3c4ee26/resource.tar.gz#test.test_blocks-coalesce-default.txt-Debug_/opt.yql"
+ }
+ ],
+ "test.test[blocks-coalesce-default.txt-Peephole]": [
+ {
+ "checksum": "22b6a7673a01385d879856dc322c94aa",
+ "size": 1135,
+ "uri": "https://{canondata_backend}/1920236/19a9934ebc9455bf1caab37058331acdf3c4ee26/resource.tar.gz#test.test_blocks-coalesce-default.txt-Peephole_/opt.yql"
+ }
+ ],
+ "test.test[blocks-coalesce-default.txt-Results]": [
+ {
+ "checksum": "4faf752754abb7688da94aff91e59187",
+ "size": 1913,
+ "uri": "https://{canondata_backend}/1920236/19a9934ebc9455bf1caab37058331acdf3c4ee26/resource.tar.gz#test.test_blocks-coalesce-default.txt-Results_/results.txt"
+ }
+ ],
+ "test.test[blocks-if_scalar-default.txt-Debug]": [
+ {
+ "checksum": "b1316cc011f1941633e8e78e1297ac0b",
+ "size": 1600,
+ "uri": "https://{canondata_backend}/1920236/19a9934ebc9455bf1caab37058331acdf3c4ee26/resource.tar.gz#test.test_blocks-if_scalar-default.txt-Debug_/opt.yql"
+ }
+ ],
+ "test.test[blocks-if_scalar-default.txt-Peephole]": [
+ {
+ "checksum": "e2ee0df7a6e82c32e4bb81445125cf8c",
+ "size": 1995,
+ "uri": "https://{canondata_backend}/1920236/19a9934ebc9455bf1caab37058331acdf3c4ee26/resource.tar.gz#test.test_blocks-if_scalar-default.txt-Peephole_/opt.yql"
+ }
+ ],
+ "test.test[blocks-if_scalar-default.txt-Results]": [
+ {
+ "checksum": "df253a8d45f4edd4ae6fe1e160aab745",
+ "size": 3466,
+ "uri": "https://{canondata_backend}/1920236/19a9934ebc9455bf1caab37058331acdf3c4ee26/resource.tar.gz#test.test_blocks-if_scalar-default.txt-Results_/results.txt"
+ }
+ ],
"test.test[blocks-projection_add_ints-default.txt-Debug]": [
{
"checksum": "0dc7c149ab903b62717b7afe506ab893",
diff --git a/yql/essentials/tests/sql/sql2yql/canondata/result.json b/yql/essentials/tests/sql/sql2yql/canondata/result.json
index 6b6872cb22d..4d5c62cb0bc 100644
--- a/yql/essentials/tests/sql/sql2yql/canondata/result.json
+++ b/yql/essentials/tests/sql/sql2yql/canondata/result.json
@@ -1315,6 +1315,48 @@
"uri": "https://{canondata_backend}/1942173/99e88108149e222741552e7e6cddef041d6a2846/resource.tar.gz#test_sql2yql.test_bitcast_implicit-sub_bitcast_/sql.yql"
}
],
+ "test_sql2yql.test[blocks-and]": [
+ {
+ "checksum": "e22a52b51ef20174c3b832acb09df01b",
+ "size": 1334,
+ "uri": "https://{canondata_backend}/1916746/15a617669fb2b654b6be1fc493d61b99fb1f6f81/resource.tar.gz#test_sql2yql.test_blocks-and_/sql.yql"
+ }
+ ],
+ "test_sql2yql.test[blocks-and_opt]": [
+ {
+ "checksum": "a58cadab4f91571296dd3bfffe39e4a5",
+ "size": 1618,
+ "uri": "https://{canondata_backend}/1916746/15a617669fb2b654b6be1fc493d61b99fb1f6f81/resource.tar.gz#test_sql2yql.test_blocks-and_opt_/sql.yql"
+ }
+ ],
+ "test_sql2yql.test[blocks-and_opt_scalar]": [
+ {
+ "checksum": "0d66875312ecf94d2b5ff973994f321a",
+ "size": 3970,
+ "uri": "https://{canondata_backend}/1916746/15a617669fb2b654b6be1fc493d61b99fb1f6f81/resource.tar.gz#test_sql2yql.test_blocks-and_opt_scalar_/sql.yql"
+ }
+ ],
+ "test_sql2yql.test[blocks-and_scalar]": [
+ {
+ "checksum": "86b75c285d2db16b994b4110e8b047e8",
+ "size": 3196,
+ "uri": "https://{canondata_backend}/1916746/15a617669fb2b654b6be1fc493d61b99fb1f6f81/resource.tar.gz#test_sql2yql.test_blocks-and_scalar_/sql.yql"
+ }
+ ],
+ "test_sql2yql.test[blocks-coalesce]": [
+ {
+ "checksum": "d407fef7972254e7c63c8b55750b8d4a",
+ "size": 2344,
+ "uri": "https://{canondata_backend}/1916746/15a617669fb2b654b6be1fc493d61b99fb1f6f81/resource.tar.gz#test_sql2yql.test_blocks-coalesce_/sql.yql"
+ }
+ ],
+ "test_sql2yql.test[blocks-coalesce_scalar]": [
+ {
+ "checksum": "3cf278b8eccf4bbed173c5075bffcf53",
+ "size": 3626,
+ "uri": "https://{canondata_backend}/1916746/15a617669fb2b654b6be1fc493d61b99fb1f6f81/resource.tar.gz#test_sql2yql.test_blocks-coalesce_scalar_/sql.yql"
+ }
+ ],
"test_sql2yql.test[blocks-empty_as_table]": [
{
"checksum": "bbda02d622e3f3c4f698ea1962d9f902",
@@ -1322,6 +1364,13 @@
"uri": "https://{canondata_backend}/1130705/7bfa4c7bef8ecf6ffba8b79d210708dc39bab04e/resource.tar.gz#test_sql2yql.test_blocks-empty_as_table_/sql.yql"
}
],
+ "test_sql2yql.test[blocks-exists]": [
+ {
+ "checksum": "47e9cf5d9689b919bb4530500ce8ec4a",
+ "size": 1164,
+ "uri": "https://{canondata_backend}/1916746/15a617669fb2b654b6be1fc493d61b99fb1f6f81/resource.tar.gz#test_sql2yql.test_blocks-exists_/sql.yql"
+ }
+ ],
"test_sql2yql.test[blocks-filter]": [
{
"checksum": "e09ada2d8790a1c8d43bdc76683eaa40",
@@ -1329,6 +1378,62 @@
"uri": "https://{canondata_backend}/1130705/7bfa4c7bef8ecf6ffba8b79d210708dc39bab04e/resource.tar.gz#test_sql2yql.test_blocks-filter_/sql.yql"
}
],
+ "test_sql2yql.test[blocks-if]": [
+ {
+ "checksum": "2b573fa3534410c28b1273b496c93231",
+ "size": 1279,
+ "uri": "https://{canondata_backend}/1916746/15a617669fb2b654b6be1fc493d61b99fb1f6f81/resource.tar.gz#test_sql2yql.test_blocks-if_/sql.yql"
+ }
+ ],
+ "test_sql2yql.test[blocks-if_scalar]": [
+ {
+ "checksum": "558f449d59c79295c2cf2627dda60c2b",
+ "size": 3560,
+ "uri": "https://{canondata_backend}/1916746/15a617669fb2b654b6be1fc493d61b99fb1f6f81/resource.tar.gz#test_sql2yql.test_blocks-if_scalar_/sql.yql"
+ }
+ ],
+ "test_sql2yql.test[blocks-not]": [
+ {
+ "checksum": "60ffa8348b787bc96b78945aa79545d2",
+ "size": 1117,
+ "uri": "https://{canondata_backend}/1916746/15a617669fb2b654b6be1fc493d61b99fb1f6f81/resource.tar.gz#test_sql2yql.test_blocks-not_/sql.yql"
+ }
+ ],
+ "test_sql2yql.test[blocks-not_opt]": [
+ {
+ "checksum": "9794c07062ac409dc6b46b1a36022afd",
+ "size": 1143,
+ "uri": "https://{canondata_backend}/1916746/15a617669fb2b654b6be1fc493d61b99fb1f6f81/resource.tar.gz#test_sql2yql.test_blocks-not_opt_/sql.yql"
+ }
+ ],
+ "test_sql2yql.test[blocks-or]": [
+ {
+ "checksum": "1e7e91aab2807a411a6a8b24ff2db384",
+ "size": 1333,
+ "uri": "https://{canondata_backend}/1916746/15a617669fb2b654b6be1fc493d61b99fb1f6f81/resource.tar.gz#test_sql2yql.test_blocks-or_/sql.yql"
+ }
+ ],
+ "test_sql2yql.test[blocks-or_opt]": [
+ {
+ "checksum": "e090b0180ef21bae3b2eefb8fc9e0df0",
+ "size": 1617,
+ "uri": "https://{canondata_backend}/1916746/15a617669fb2b654b6be1fc493d61b99fb1f6f81/resource.tar.gz#test_sql2yql.test_blocks-or_opt_/sql.yql"
+ }
+ ],
+ "test_sql2yql.test[blocks-or_opt_scalar]": [
+ {
+ "checksum": "93a46964c0761ee46c67eec9c0cb2412",
+ "size": 3964,
+ "uri": "https://{canondata_backend}/1916746/15a617669fb2b654b6be1fc493d61b99fb1f6f81/resource.tar.gz#test_sql2yql.test_blocks-or_opt_scalar_/sql.yql"
+ }
+ ],
+ "test_sql2yql.test[blocks-or_scalar]": [
+ {
+ "checksum": "fe396517e379e51b954c53dd35488634",
+ "size": 3192,
+ "uri": "https://{canondata_backend}/1916746/15a617669fb2b654b6be1fc493d61b99fb1f6f81/resource.tar.gz#test_sql2yql.test_blocks-or_scalar_/sql.yql"
+ }
+ ],
"test_sql2yql.test[blocks-projection_add_ints]": [
{
"checksum": "f84fc85138d4f1d4b72cf4d37a2b8ff2",
@@ -1343,6 +1448,34 @@
"uri": "https://{canondata_backend}/1130705/7bfa4c7bef8ecf6ffba8b79d210708dc39bab04e/resource.tar.gz#test_sql2yql.test_blocks-projection_add_ints_filter_/sql.yql"
}
],
+ "test_sql2yql.test[blocks-xor]": [
+ {
+ "checksum": "879bea5e15aa53dc4f3444f0fa17de49",
+ "size": 1334,
+ "uri": "https://{canondata_backend}/1916746/15a617669fb2b654b6be1fc493d61b99fb1f6f81/resource.tar.gz#test_sql2yql.test_blocks-xor_/sql.yql"
+ }
+ ],
+ "test_sql2yql.test[blocks-xor_opt]": [
+ {
+ "checksum": "306b7e6a7500c99ce78901184c1fe8ce",
+ "size": 1618,
+ "uri": "https://{canondata_backend}/1916746/15a617669fb2b654b6be1fc493d61b99fb1f6f81/resource.tar.gz#test_sql2yql.test_blocks-xor_opt_/sql.yql"
+ }
+ ],
+ "test_sql2yql.test[blocks-xor_opt_scalar]": [
+ {
+ "checksum": "57d1a6e3d4df6ed584d437b53d890973",
+ "size": 3970,
+ "uri": "https://{canondata_backend}/1916746/15a617669fb2b654b6be1fc493d61b99fb1f6f81/resource.tar.gz#test_sql2yql.test_blocks-xor_opt_scalar_/sql.yql"
+ }
+ ],
+ "test_sql2yql.test[blocks-xor_scalar]": [
+ {
+ "checksum": "560b06897ca58ccec91fc77dc29d50b7",
+ "size": 3196,
+ "uri": "https://{canondata_backend}/1916746/15a617669fb2b654b6be1fc493d61b99fb1f6f81/resource.tar.gz#test_sql2yql.test_blocks-xor_scalar_/sql.yql"
+ }
+ ],
"test_sql2yql.test[case-case_many_val]": [
{
"checksum": "70c9fb3c41da9a56ff7346cfe50d2c82",
@@ -7876,16 +8009,91 @@
"uri": "file://test_sql_format.test_bitcast_implicit-sub_bitcast_/formatted.sql"
}
],
+ "test_sql_format.test[blocks-and]": [
+ {
+ "uri": "file://test_sql_format.test_blocks-and_/formatted.sql"
+ }
+ ],
+ "test_sql_format.test[blocks-and_opt]": [
+ {
+ "uri": "file://test_sql_format.test_blocks-and_opt_/formatted.sql"
+ }
+ ],
+ "test_sql_format.test[blocks-and_opt_scalar]": [
+ {
+ "uri": "file://test_sql_format.test_blocks-and_opt_scalar_/formatted.sql"
+ }
+ ],
+ "test_sql_format.test[blocks-and_scalar]": [
+ {
+ "uri": "file://test_sql_format.test_blocks-and_scalar_/formatted.sql"
+ }
+ ],
+ "test_sql_format.test[blocks-coalesce]": [
+ {
+ "uri": "file://test_sql_format.test_blocks-coalesce_/formatted.sql"
+ }
+ ],
+ "test_sql_format.test[blocks-coalesce_scalar]": [
+ {
+ "uri": "file://test_sql_format.test_blocks-coalesce_scalar_/formatted.sql"
+ }
+ ],
"test_sql_format.test[blocks-empty_as_table]": [
{
"uri": "file://test_sql_format.test_blocks-empty_as_table_/formatted.sql"
}
],
+ "test_sql_format.test[blocks-exists]": [
+ {
+ "uri": "file://test_sql_format.test_blocks-exists_/formatted.sql"
+ }
+ ],
"test_sql_format.test[blocks-filter]": [
{
"uri": "file://test_sql_format.test_blocks-filter_/formatted.sql"
}
],
+ "test_sql_format.test[blocks-if]": [
+ {
+ "uri": "file://test_sql_format.test_blocks-if_/formatted.sql"
+ }
+ ],
+ "test_sql_format.test[blocks-if_scalar]": [
+ {
+ "uri": "file://test_sql_format.test_blocks-if_scalar_/formatted.sql"
+ }
+ ],
+ "test_sql_format.test[blocks-not]": [
+ {
+ "uri": "file://test_sql_format.test_blocks-not_/formatted.sql"
+ }
+ ],
+ "test_sql_format.test[blocks-not_opt]": [
+ {
+ "uri": "file://test_sql_format.test_blocks-not_opt_/formatted.sql"
+ }
+ ],
+ "test_sql_format.test[blocks-or]": [
+ {
+ "uri": "file://test_sql_format.test_blocks-or_/formatted.sql"
+ }
+ ],
+ "test_sql_format.test[blocks-or_opt]": [
+ {
+ "uri": "file://test_sql_format.test_blocks-or_opt_/formatted.sql"
+ }
+ ],
+ "test_sql_format.test[blocks-or_opt_scalar]": [
+ {
+ "uri": "file://test_sql_format.test_blocks-or_opt_scalar_/formatted.sql"
+ }
+ ],
+ "test_sql_format.test[blocks-or_scalar]": [
+ {
+ "uri": "file://test_sql_format.test_blocks-or_scalar_/formatted.sql"
+ }
+ ],
"test_sql_format.test[blocks-projection_add_ints]": [
{
"uri": "file://test_sql_format.test_blocks-projection_add_ints_/formatted.sql"
@@ -7896,6 +8104,26 @@
"uri": "file://test_sql_format.test_blocks-projection_add_ints_filter_/formatted.sql"
}
],
+ "test_sql_format.test[blocks-xor]": [
+ {
+ "uri": "file://test_sql_format.test_blocks-xor_/formatted.sql"
+ }
+ ],
+ "test_sql_format.test[blocks-xor_opt]": [
+ {
+ "uri": "file://test_sql_format.test_blocks-xor_opt_/formatted.sql"
+ }
+ ],
+ "test_sql_format.test[blocks-xor_opt_scalar]": [
+ {
+ "uri": "file://test_sql_format.test_blocks-xor_opt_scalar_/formatted.sql"
+ }
+ ],
+ "test_sql_format.test[blocks-xor_scalar]": [
+ {
+ "uri": "file://test_sql_format.test_blocks-xor_scalar_/formatted.sql"
+ }
+ ],
"test_sql_format.test[case-case_many_val]": [
{
"uri": "file://test_sql_format.test_case-case_many_val_/formatted.sql"
diff --git a/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-and_/formatted.sql b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-and_/formatted.sql
new file mode 100644
index 00000000000..ad92a9f171f
--- /dev/null
+++ b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-and_/formatted.sql
@@ -0,0 +1,12 @@
+$data = [
+ <|x: FALSE, y: FALSE|>,
+ <|x: FALSE, y: TRUE|>,
+ <|x: TRUE, y: FALSE|>,
+ <|x: TRUE, y: TRUE|>,
+];
+
+SELECT
+ x AND y
+FROM
+ as_table($data)
+;
diff --git a/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-and_opt_/formatted.sql b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-and_opt_/formatted.sql
new file mode 100644
index 00000000000..2a1fcc93e34
--- /dev/null
+++ b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-and_opt_/formatted.sql
@@ -0,0 +1,17 @@
+$data = [
+ <|x: FALSE, y: FALSE|>,
+ <|x: FALSE, y: TRUE|>,
+ <|x: FALSE, y: NULL|>,
+ <|x: TRUE, y: FALSE|>,
+ <|x: TRUE, y: TRUE|>,
+ <|x: TRUE, y: NULL|>,
+ <|x: NULL, y: FALSE|>,
+ <|x: NULL, y: TRUE|>,
+ <|x: NULL, y: NULL|>,
+];
+
+SELECT
+ x AND y
+FROM
+ as_table($data)
+;
diff --git a/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-and_opt_scalar_/formatted.sql b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-and_opt_scalar_/formatted.sql
new file mode 100644
index 00000000000..535272fddd6
--- /dev/null
+++ b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-and_opt_scalar_/formatted.sql
@@ -0,0 +1,31 @@
+$data = [
+ <|x: FALSE, y: FALSE|>,
+ <|x: FALSE, y: TRUE|>,
+ <|x: FALSE, y: NULL|>,
+ <|x: TRUE, y: FALSE|>,
+ <|x: TRUE, y: TRUE|>,
+ <|x: TRUE, y: NULL|>,
+ <|x: NULL, y: FALSE|>,
+ <|x: NULL, y: TRUE|>,
+ <|x: NULL, y: NULL|>,
+];
+
+SELECT
+ x,
+ y,
+ Opaque(FALSE) AND y,
+ Opaque(TRUE) AND y,
+ Opaque(Nothing(bool?)) AND y
+FROM
+ as_table($data)
+;
+
+SELECT
+ x,
+ y,
+ x AND Opaque(FALSE),
+ x AND Opaque(TRUE),
+ x AND Opaque(Nothing(bool?))
+FROM
+ as_table($data)
+;
diff --git a/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-and_scalar_/formatted.sql b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-and_scalar_/formatted.sql
new file mode 100644
index 00000000000..4554fb07a17
--- /dev/null
+++ b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-and_scalar_/formatted.sql
@@ -0,0 +1,24 @@
+$data = [
+ <|x: FALSE, y: FALSE|>,
+ <|x: FALSE, y: TRUE|>,
+ <|x: TRUE, y: FALSE|>,
+ <|x: TRUE, y: TRUE|>,
+];
+
+SELECT
+ x,
+ y,
+ x AND Opaque(FALSE),
+ x AND Opaque(TRUE)
+FROM
+ as_table($data)
+;
+
+SELECT
+ x,
+ y,
+ Opaque(FALSE) AND y,
+ Opaque(TRUE) AND y
+FROM
+ as_table($data)
+;
diff --git a/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-coalesce_/formatted.sql b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-coalesce_/formatted.sql
new file mode 100644
index 00000000000..2f557297908
--- /dev/null
+++ b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-coalesce_/formatted.sql
@@ -0,0 +1,22 @@
+$data1 = [
+ <|x: nothing(int32?), y: 10|>,
+ <|x: just(1), y: 10|>,
+];
+
+$data2 = [
+ <|x: nothing(int32?), y: just(10)|>,
+ <|x: just(1), y: just(10)|>,
+ <|x: just(1), y: nothing(int32?)|>,
+];
+
+SELECT
+ x ?? y
+FROM
+ as_table($data1)
+;
+
+SELECT
+ x ?? y
+FROM
+ as_table($data2)
+;
diff --git a/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-coalesce_scalar_/formatted.sql b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-coalesce_scalar_/formatted.sql
new file mode 100644
index 00000000000..8a6c5a8c6c8
--- /dev/null
+++ b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-coalesce_scalar_/formatted.sql
@@ -0,0 +1,27 @@
+$data1 = [
+ <|x: nothing(int32?), y: 10|>,
+ <|x: just(1), y: 10|>,
+];
+
+$data2 = [
+ <|x: nothing(int32?), y: just(10)|>,
+ <|x: just(1), y: just(10)|>,
+ <|x: just(1), y: nothing(int32?)|>,
+];
+
+SELECT
+ x ?? Opaque(10),
+ Opaque(nothing(int32?)) ?? y,
+ Opaque(just(1)) ?? y
+FROM
+ as_table($data1)
+;
+
+SELECT
+ x ?? Opaque(just(10)),
+ x ?? Opaque(nothing(int32?)),
+ Opaque(nothing(int32?)) ?? y,
+ Opaque(just(1)) ?? y
+FROM
+ as_table($data2)
+;
diff --git a/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-exists_/formatted.sql b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-exists_/formatted.sql
new file mode 100644
index 00000000000..e882cc96ffb
--- /dev/null
+++ b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-exists_/formatted.sql
@@ -0,0 +1,7 @@
+$data = [<|x: nothing(int32?)|>, <|x: just(1)|>];
+
+SELECT
+ x IS NOT NULL
+FROM
+ as_table($data)
+;
diff --git a/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-if_/formatted.sql b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-if_/formatted.sql
new file mode 100644
index 00000000000..7ddd9c0c88a
--- /dev/null
+++ b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-if_/formatted.sql
@@ -0,0 +1,10 @@
+$data = [
+ <|x: FALSE, y: 1, z: 2|>,
+ <|x: TRUE, y: 3, z: 4|>,
+];
+
+SELECT
+ if(x, y, z)
+FROM
+ as_table($data)
+;
diff --git a/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-if_scalar_/formatted.sql b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-if_scalar_/formatted.sql
new file mode 100644
index 00000000000..03bdd924984
--- /dev/null
+++ b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-if_scalar_/formatted.sql
@@ -0,0 +1,22 @@
+$data = [
+ <|x: FALSE, y: 1, z: 2|>,
+ <|x: TRUE, y: 3, z: 4|>,
+];
+
+SELECT
+ x,
+ if(Opaque(FALSE), y, z),
+ if(Opaque(TRUE), y, z),
+ if(x, Opaque(5), z),
+ if(x, 5, Opaque(6))
+FROM
+ as_table($data)
+;
+
+SELECT
+ x,
+ if(Opaque(FALSE), Opaque(5), z),
+ if(Opaque(TRUE), y, Opaque(6))
+FROM
+ as_table($data)
+;
diff --git a/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-not_/formatted.sql b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-not_/formatted.sql
new file mode 100644
index 00000000000..29eba165b77
--- /dev/null
+++ b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-not_/formatted.sql
@@ -0,0 +1,7 @@
+$data = [<|x: TRUE|>, <|x: FALSE|>];
+
+SELECT
+ NOT x
+FROM
+ as_table($data)
+;
diff --git a/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-not_opt_/formatted.sql b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-not_opt_/formatted.sql
new file mode 100644
index 00000000000..0a716962d57
--- /dev/null
+++ b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-not_opt_/formatted.sql
@@ -0,0 +1,7 @@
+$data = [<|x: TRUE|>, <|x: FALSE|>, <|x: NULL|>];
+
+SELECT
+ NOT x
+FROM
+ as_table($data)
+;
diff --git a/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-or_/formatted.sql b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-or_/formatted.sql
new file mode 100644
index 00000000000..72cdace788a
--- /dev/null
+++ b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-or_/formatted.sql
@@ -0,0 +1,12 @@
+$data = [
+ <|x: FALSE, y: FALSE|>,
+ <|x: FALSE, y: TRUE|>,
+ <|x: TRUE, y: FALSE|>,
+ <|x: TRUE, y: TRUE|>,
+];
+
+SELECT
+ x OR y
+FROM
+ as_table($data)
+;
diff --git a/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-or_opt_/formatted.sql b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-or_opt_/formatted.sql
new file mode 100644
index 00000000000..7ebe9eca9f6
--- /dev/null
+++ b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-or_opt_/formatted.sql
@@ -0,0 +1,17 @@
+$data = [
+ <|x: FALSE, y: FALSE|>,
+ <|x: FALSE, y: TRUE|>,
+ <|x: FALSE, y: NULL|>,
+ <|x: TRUE, y: FALSE|>,
+ <|x: TRUE, y: TRUE|>,
+ <|x: TRUE, y: NULL|>,
+ <|x: NULL, y: FALSE|>,
+ <|x: NULL, y: TRUE|>,
+ <|x: NULL, y: NULL|>,
+];
+
+SELECT
+ x OR y
+FROM
+ as_table($data)
+;
diff --git a/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-or_opt_scalar_/formatted.sql b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-or_opt_scalar_/formatted.sql
new file mode 100644
index 00000000000..5d3ac793419
--- /dev/null
+++ b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-or_opt_scalar_/formatted.sql
@@ -0,0 +1,31 @@
+$data = [
+ <|x: FALSE, y: FALSE|>,
+ <|x: FALSE, y: TRUE|>,
+ <|x: FALSE, y: NULL|>,
+ <|x: TRUE, y: FALSE|>,
+ <|x: TRUE, y: TRUE|>,
+ <|x: TRUE, y: NULL|>,
+ <|x: NULL, y: FALSE|>,
+ <|x: NULL, y: TRUE|>,
+ <|x: NULL, y: NULL|>,
+];
+
+SELECT
+ x,
+ y,
+ Opaque(FALSE) OR y,
+ Opaque(TRUE) OR y,
+ Opaque(Nothing(bool?)) OR y
+FROM
+ as_table($data)
+;
+
+SELECT
+ x,
+ y,
+ x OR Opaque(FALSE),
+ x OR Opaque(TRUE),
+ x OR Opaque(Nothing(bool?))
+FROM
+ as_table($data)
+;
diff --git a/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-or_scalar_/formatted.sql b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-or_scalar_/formatted.sql
new file mode 100644
index 00000000000..a9867172286
--- /dev/null
+++ b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-or_scalar_/formatted.sql
@@ -0,0 +1,24 @@
+$data = [
+ <|x: FALSE, y: FALSE|>,
+ <|x: FALSE, y: TRUE|>,
+ <|x: TRUE, y: FALSE|>,
+ <|x: TRUE, y: TRUE|>,
+];
+
+SELECT
+ x,
+ y,
+ x OR Opaque(FALSE),
+ x OR Opaque(TRUE)
+FROM
+ as_table($data)
+;
+
+SELECT
+ x,
+ y,
+ Opaque(FALSE) OR y,
+ Opaque(TRUE) OR y
+FROM
+ as_table($data)
+;
diff --git a/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-xor_/formatted.sql b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-xor_/formatted.sql
new file mode 100644
index 00000000000..e91b132c775
--- /dev/null
+++ b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-xor_/formatted.sql
@@ -0,0 +1,12 @@
+$data = [
+ <|x: FALSE, y: FALSE|>,
+ <|x: FALSE, y: TRUE|>,
+ <|x: TRUE, y: FALSE|>,
+ <|x: TRUE, y: TRUE|>,
+];
+
+SELECT
+ x XOR y
+FROM
+ as_table($data)
+;
diff --git a/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-xor_opt_/formatted.sql b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-xor_opt_/formatted.sql
new file mode 100644
index 00000000000..2085ea9697f
--- /dev/null
+++ b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-xor_opt_/formatted.sql
@@ -0,0 +1,17 @@
+$data = [
+ <|x: FALSE, y: FALSE|>,
+ <|x: FALSE, y: TRUE|>,
+ <|x: FALSE, y: NULL|>,
+ <|x: TRUE, y: FALSE|>,
+ <|x: TRUE, y: TRUE|>,
+ <|x: TRUE, y: NULL|>,
+ <|x: NULL, y: FALSE|>,
+ <|x: NULL, y: TRUE|>,
+ <|x: NULL, y: NULL|>,
+];
+
+SELECT
+ x XOR y
+FROM
+ as_table($data)
+;
diff --git a/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-xor_opt_scalar_/formatted.sql b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-xor_opt_scalar_/formatted.sql
new file mode 100644
index 00000000000..4c01d983bba
--- /dev/null
+++ b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-xor_opt_scalar_/formatted.sql
@@ -0,0 +1,31 @@
+$data = [
+ <|x: FALSE, y: FALSE|>,
+ <|x: FALSE, y: TRUE|>,
+ <|x: FALSE, y: NULL|>,
+ <|x: TRUE, y: FALSE|>,
+ <|x: TRUE, y: TRUE|>,
+ <|x: TRUE, y: NULL|>,
+ <|x: NULL, y: FALSE|>,
+ <|x: NULL, y: TRUE|>,
+ <|x: NULL, y: NULL|>,
+];
+
+SELECT
+ x,
+ y,
+ Opaque(FALSE) XOR y,
+ Opaque(TRUE) XOR y,
+ Opaque(Nothing(bool?)) XOR y
+FROM
+ as_table($data)
+;
+
+SELECT
+ x,
+ y,
+ x XOR Opaque(FALSE),
+ x XOR Opaque(TRUE),
+ x XOR Opaque(Nothing(bool?))
+FROM
+ as_table($data)
+;
diff --git a/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-xor_scalar_/formatted.sql b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-xor_scalar_/formatted.sql
new file mode 100644
index 00000000000..f85c38896a8
--- /dev/null
+++ b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_blocks-xor_scalar_/formatted.sql
@@ -0,0 +1,24 @@
+$data = [
+ <|x: FALSE, y: FALSE|>,
+ <|x: FALSE, y: TRUE|>,
+ <|x: TRUE, y: FALSE|>,
+ <|x: TRUE, y: TRUE|>,
+];
+
+SELECT
+ x,
+ y,
+ x XOR Opaque(FALSE),
+ x XOR Opaque(TRUE)
+FROM
+ as_table($data)
+;
+
+SELECT
+ x,
+ y,
+ Opaque(FALSE) XOR y,
+ Opaque(TRUE) XOR y
+FROM
+ as_table($data)
+;
diff --git a/yql/essentials/tests/sql/suites/blocks/and.sql b/yql/essentials/tests/sql/suites/blocks/and.sql
new file mode 100644
index 00000000000..e8e69e37a4c
--- /dev/null
+++ b/yql/essentials/tests/sql/suites/blocks/and.sql
@@ -0,0 +1,8 @@
+$data = [
+ <|x:false,y:false|>,
+ <|x:false,y:true|>,
+ <|x:true,y:false|>,
+ <|x:true,y:true|>,
+];
+
+select x and y from as_table($data);
diff --git a/yql/essentials/tests/sql/suites/blocks/and_opt.sql b/yql/essentials/tests/sql/suites/blocks/and_opt.sql
new file mode 100644
index 00000000000..b26fb42bf0d
--- /dev/null
+++ b/yql/essentials/tests/sql/suites/blocks/and_opt.sql
@@ -0,0 +1,13 @@
+$data = [
+ <|x:false,y:false|>,
+ <|x:false,y:true|>,
+ <|x:false,y:null|>,
+ <|x:true,y:false|>,
+ <|x:true,y:true|>,
+ <|x:true,y:null|>,
+ <|x:null,y:false|>,
+ <|x:null,y:true|>,
+ <|x:null,y:null|>,
+];
+
+select x and y from as_table($data);
diff --git a/yql/essentials/tests/sql/suites/blocks/and_opt_scalar.sql b/yql/essentials/tests/sql/suites/blocks/and_opt_scalar.sql
new file mode 100644
index 00000000000..1c11b2e9b52
--- /dev/null
+++ b/yql/essentials/tests/sql/suites/blocks/and_opt_scalar.sql
@@ -0,0 +1,14 @@
+$data = [
+ <|x:false,y:false|>,
+ <|x:false,y:true|>,
+ <|x:false,y:null|>,
+ <|x:true,y:false|>,
+ <|x:true,y:true|>,
+ <|x:true,y:null|>,
+ <|x:null,y:false|>,
+ <|x:null,y:true|>,
+ <|x:null,y:null|>,
+];
+
+select x,y,Opaque(false) and y,Opaque(true) and y,Opaque(Nothing(bool?)) and y from as_table($data);
+select x,y,x and Opaque(false),x and Opaque(true),x and Opaque(Nothing(bool?)) from as_table($data);
diff --git a/yql/essentials/tests/sql/suites/blocks/and_scalar.sql b/yql/essentials/tests/sql/suites/blocks/and_scalar.sql
new file mode 100644
index 00000000000..a02d79ffae3
--- /dev/null
+++ b/yql/essentials/tests/sql/suites/blocks/and_scalar.sql
@@ -0,0 +1,9 @@
+$data = [
+ <|x:false,y:false|>,
+ <|x:false,y:true|>,
+ <|x:true,y:false|>,
+ <|x:true,y:true|>,
+];
+
+select x,y,x and Opaque(false),x and Opaque(true) from as_table($data);
+select x,y,Opaque(false) and y,Opaque(true) and y from as_table($data);
diff --git a/yql/essentials/tests/sql/suites/blocks/coalesce.sql b/yql/essentials/tests/sql/suites/blocks/coalesce.sql
new file mode 100644
index 00000000000..49be4b14065
--- /dev/null
+++ b/yql/essentials/tests/sql/suites/blocks/coalesce.sql
@@ -0,0 +1,14 @@
+$data1 = [
+ <|x:nothing(int32?),y:10|>,
+ <|x:just(1),y:10|>,
+];
+
+$data2 = [
+ <|x:nothing(int32?),y:just(10)|>,
+ <|x:just(1),y:just(10)|>,
+ <|x:just(1),y:nothing(int32?)|>,
+];
+
+select x ?? y from as_table($data1);
+
+select x ?? y from as_table($data2);
diff --git a/yql/essentials/tests/sql/suites/blocks/coalesce_scalar.sql b/yql/essentials/tests/sql/suites/blocks/coalesce_scalar.sql
new file mode 100644
index 00000000000..684082c7235
--- /dev/null
+++ b/yql/essentials/tests/sql/suites/blocks/coalesce_scalar.sql
@@ -0,0 +1,14 @@
+$data1 = [
+ <|x:nothing(int32?),y:10|>,
+ <|x:just(1),y:10|>,
+];
+
+$data2 = [
+ <|x:nothing(int32?),y:just(10)|>,
+ <|x:just(1),y:just(10)|>,
+ <|x:just(1),y:nothing(int32?)|>,
+];
+
+select x ?? Opaque(10), Opaque(nothing(int32?)) ?? y, Opaque(just(1)) ?? y from as_table($data1);
+
+select x ?? Opaque(just(10)),x ?? Opaque(nothing(int32?)),Opaque(nothing(int32?)) ?? y,Opaque(just(1)) ?? y from as_table($data2);
diff --git a/yql/essentials/tests/sql/suites/blocks/exists.sql b/yql/essentials/tests/sql/suites/blocks/exists.sql
new file mode 100644
index 00000000000..1f170ffc5cc
--- /dev/null
+++ b/yql/essentials/tests/sql/suites/blocks/exists.sql
@@ -0,0 +1,3 @@
+$data = [<|x:nothing(int32?)|>,<|x:just(1)|>];
+
+select x is not null from as_table($data);
diff --git a/yql/essentials/tests/sql/suites/blocks/if.sql b/yql/essentials/tests/sql/suites/blocks/if.sql
new file mode 100644
index 00000000000..bc4fbb82dca
--- /dev/null
+++ b/yql/essentials/tests/sql/suites/blocks/if.sql
@@ -0,0 +1,6 @@
+$data = [
+ <|x:false,y:1,z:2|>,
+ <|x:true,y:3,z:4|>,
+];
+
+select if(x,y,z) from as_table($data);
diff --git a/yql/essentials/tests/sql/suites/blocks/if_scalar.sql b/yql/essentials/tests/sql/suites/blocks/if_scalar.sql
new file mode 100644
index 00000000000..4eedc26bfc5
--- /dev/null
+++ b/yql/essentials/tests/sql/suites/blocks/if_scalar.sql
@@ -0,0 +1,7 @@
+$data = [
+ <|x:false,y:1,z:2|>,
+ <|x:true,y:3,z:4|>,
+];
+
+select x,if(Opaque(false),y,z),if(Opaque(true),y,z),if(x,Opaque(5),z),if(x,5,Opaque(6)) from as_table($data);
+select x,if(Opaque(false),Opaque(5),z),if(Opaque(true),y,Opaque(6)) from as_table($data);
diff --git a/yql/essentials/tests/sql/suites/blocks/not.sql b/yql/essentials/tests/sql/suites/blocks/not.sql
new file mode 100644
index 00000000000..9a95ad56276
--- /dev/null
+++ b/yql/essentials/tests/sql/suites/blocks/not.sql
@@ -0,0 +1,3 @@
+$data = [<|x:true|>,<|x:false|>];
+
+select not x from as_table($data);
diff --git a/yql/essentials/tests/sql/suites/blocks/not_opt.sql b/yql/essentials/tests/sql/suites/blocks/not_opt.sql
new file mode 100644
index 00000000000..dcb47762db8
--- /dev/null
+++ b/yql/essentials/tests/sql/suites/blocks/not_opt.sql
@@ -0,0 +1,3 @@
+$data = [<|x:true|>,<|x:false|>,<|x:null|>];
+
+select not x from as_table($data);
diff --git a/yql/essentials/tests/sql/suites/blocks/or.sql b/yql/essentials/tests/sql/suites/blocks/or.sql
new file mode 100644
index 00000000000..32ad70eb33f
--- /dev/null
+++ b/yql/essentials/tests/sql/suites/blocks/or.sql
@@ -0,0 +1,8 @@
+$data = [
+ <|x:false,y:false|>,
+ <|x:false,y:true|>,
+ <|x:true,y:false|>,
+ <|x:true,y:true|>,
+];
+
+select x or y from as_table($data);
diff --git a/yql/essentials/tests/sql/suites/blocks/or_opt.sql b/yql/essentials/tests/sql/suites/blocks/or_opt.sql
new file mode 100644
index 00000000000..015f7b0658f
--- /dev/null
+++ b/yql/essentials/tests/sql/suites/blocks/or_opt.sql
@@ -0,0 +1,13 @@
+$data = [
+ <|x:false,y:false|>,
+ <|x:false,y:true|>,
+ <|x:false,y:null|>,
+ <|x:true,y:false|>,
+ <|x:true,y:true|>,
+ <|x:true,y:null|>,
+ <|x:null,y:false|>,
+ <|x:null,y:true|>,
+ <|x:null,y:null|>,
+];
+
+select x or y from as_table($data);
diff --git a/yql/essentials/tests/sql/suites/blocks/or_opt_scalar.sql b/yql/essentials/tests/sql/suites/blocks/or_opt_scalar.sql
new file mode 100644
index 00000000000..c065180f471
--- /dev/null
+++ b/yql/essentials/tests/sql/suites/blocks/or_opt_scalar.sql
@@ -0,0 +1,14 @@
+$data = [
+ <|x:false,y:false|>,
+ <|x:false,y:true|>,
+ <|x:false,y:null|>,
+ <|x:true,y:false|>,
+ <|x:true,y:true|>,
+ <|x:true,y:null|>,
+ <|x:null,y:false|>,
+ <|x:null,y:true|>,
+ <|x:null,y:null|>,
+];
+
+select x,y,Opaque(false) or y,Opaque(true) or y,Opaque(Nothing(bool?)) or y from as_table($data);
+select x,y,x or Opaque(false),x or Opaque(true),x or Opaque(Nothing(bool?)) from as_table($data);
diff --git a/yql/essentials/tests/sql/suites/blocks/or_scalar.sql b/yql/essentials/tests/sql/suites/blocks/or_scalar.sql
new file mode 100644
index 00000000000..e3437d83552
--- /dev/null
+++ b/yql/essentials/tests/sql/suites/blocks/or_scalar.sql
@@ -0,0 +1,9 @@
+$data = [
+ <|x:false,y:false|>,
+ <|x:false,y:true|>,
+ <|x:true,y:false|>,
+ <|x:true,y:true|>,
+];
+
+select x,y,x or Opaque(false),x or Opaque(true) from as_table($data);
+select x,y,Opaque(false) or y,Opaque(true) or y from as_table($data);
diff --git a/yql/essentials/tests/sql/suites/blocks/xor.sql b/yql/essentials/tests/sql/suites/blocks/xor.sql
new file mode 100644
index 00000000000..3b1cef3f70d
--- /dev/null
+++ b/yql/essentials/tests/sql/suites/blocks/xor.sql
@@ -0,0 +1,8 @@
+$data = [
+ <|x:false,y:false|>,
+ <|x:false,y:true|>,
+ <|x:true,y:false|>,
+ <|x:true,y:true|>,
+];
+
+select x xor y from as_table($data);
diff --git a/yql/essentials/tests/sql/suites/blocks/xor_opt.sql b/yql/essentials/tests/sql/suites/blocks/xor_opt.sql
new file mode 100644
index 00000000000..086e8b963ef
--- /dev/null
+++ b/yql/essentials/tests/sql/suites/blocks/xor_opt.sql
@@ -0,0 +1,13 @@
+$data = [
+ <|x:false,y:false|>,
+ <|x:false,y:true|>,
+ <|x:false,y:null|>,
+ <|x:true,y:false|>,
+ <|x:true,y:true|>,
+ <|x:true,y:null|>,
+ <|x:null,y:false|>,
+ <|x:null,y:true|>,
+ <|x:null,y:null|>,
+];
+
+select x xor y from as_table($data);
diff --git a/yql/essentials/tests/sql/suites/blocks/xor_opt_scalar.sql b/yql/essentials/tests/sql/suites/blocks/xor_opt_scalar.sql
new file mode 100644
index 00000000000..dbfc791ca65
--- /dev/null
+++ b/yql/essentials/tests/sql/suites/blocks/xor_opt_scalar.sql
@@ -0,0 +1,14 @@
+$data = [
+ <|x:false,y:false|>,
+ <|x:false,y:true|>,
+ <|x:false,y:null|>,
+ <|x:true,y:false|>,
+ <|x:true,y:true|>,
+ <|x:true,y:null|>,
+ <|x:null,y:false|>,
+ <|x:null,y:true|>,
+ <|x:null,y:null|>,
+];
+
+select x,y,Opaque(false) xor y,Opaque(true) xor y,Opaque(Nothing(bool?)) xor y from as_table($data);
+select x,y,x xor Opaque(false),x xor Opaque(true),x xor Opaque(Nothing(bool?)) from as_table($data);
diff --git a/yql/essentials/tests/sql/suites/blocks/xor_scalar.sql b/yql/essentials/tests/sql/suites/blocks/xor_scalar.sql
new file mode 100644
index 00000000000..84819e7766f
--- /dev/null
+++ b/yql/essentials/tests/sql/suites/blocks/xor_scalar.sql
@@ -0,0 +1,9 @@
+$data = [
+ <|x:false,y:false|>,
+ <|x:false,y:true|>,
+ <|x:true,y:false|>,
+ <|x:true,y:true|>,
+];
+
+select x,y,x xor Opaque(false),x xor Opaque(true) from as_table($data);
+select x,y,Opaque(false) xor y,Opaque(true) xor y from as_table($data);
diff --git a/yt/yql/providers/yt/comp_nodes/dq/dq_yt_rpc_reader.cpp b/yt/yql/providers/yt/comp_nodes/dq/dq_yt_rpc_reader.cpp
index 5d5c5b5901c..7e1de56db05 100644
--- a/yt/yql/providers/yt/comp_nodes/dq/dq_yt_rpc_reader.cpp
+++ b/yt/yql/providers/yt/comp_nodes/dq/dq_yt_rpc_reader.cpp
@@ -79,6 +79,10 @@ void TParallelFileInputState::Next() {
Valid_ = NextValue();
}
+TString TParallelFileInputState::DebugInfo() const {
+ return {};
+}
+
void TParallelFileInputState::Finish() {
TimerAwaiting_.Report(Spec_->JobStats_);
MkqlReader_.Finish();
diff --git a/yt/yql/providers/yt/comp_nodes/dq/dq_yt_rpc_reader.h b/yt/yql/providers/yt/comp_nodes/dq/dq_yt_rpc_reader.h
index 9288e98fd48..55a9bd80684 100644
--- a/yt/yql/providers/yt/comp_nodes/dq/dq_yt_rpc_reader.h
+++ b/yt/yql/providers/yt/comp_nodes/dq/dq_yt_rpc_reader.h
@@ -58,6 +58,8 @@ protected:
virtual void Next() override;
+ TString DebugInfo() const override;
+
void Finish();
void RunNext();
diff --git a/yt/yql/providers/yt/comp_nodes/yql_mkql_file_input_state.cpp b/yt/yql/providers/yt/comp_nodes/yql_mkql_file_input_state.cpp
index 023da36b58b..46b2067d5e2 100644
--- a/yt/yql/providers/yt/comp_nodes/yql_mkql_file_input_state.cpp
+++ b/yt/yql/providers/yt/comp_nodes/yql_mkql_file_input_state.cpp
@@ -3,6 +3,7 @@
#include <yql/essentials/utils/yql_panic.h>
#include <util/system/fs.h>
+#include <util/string/builder.h>
namespace NYql {
@@ -59,6 +60,10 @@ bool TFileInputState::NextValue() {
}
}
+TString TFileInputState::DebugInfo() const {
+ return TStringBuilder() << "TFileInputState{CurrentInput=" << CurrentInput_ << ", CurrentRecord=" << CurrentRecord_ << '}';
+}
+
TVector<NYT::TRawTableReaderPtr> MakeMkqlFileInputs(const TVector<TString>& files, bool decompress) {
TVector<NYT::TRawTableReaderPtr> rawReaders;
for (auto& file: files) {
diff --git a/yt/yql/providers/yt/comp_nodes/yql_mkql_file_input_state.h b/yt/yql/providers/yt/comp_nodes/yql_mkql_file_input_state.h
index d0f0541b950..64db03232dd 100644
--- a/yt/yql/providers/yt/comp_nodes/yql_mkql_file_input_state.h
+++ b/yt/yql/providers/yt/comp_nodes/yql_mkql_file_input_state.h
@@ -48,6 +48,8 @@ protected:
Valid_ = NextValue();
}
+ virtual TString DebugInfo() const override;
+
void Finish() {
MkqlReader_.Finish();
}
diff --git a/yt/yql/providers/yt/comp_nodes/yql_mkql_file_list.cpp b/yt/yql/providers/yt/comp_nodes/yql_mkql_file_list.cpp
index 5c65e85c8d7..7d720cbbd5d 100644
--- a/yt/yql/providers/yt/comp_nodes/yql_mkql_file_list.cpp
+++ b/yt/yql/providers/yt/comp_nodes/yql_mkql_file_list.cpp
@@ -18,12 +18,12 @@ bool TFileListValueBase::TIterator::Next(NUdf::TUnboxedValue& value) {
}
AtStart_ = false;
if (!State_->IsValid()) {
- MKQL_ENSURE(!ExpectedLength_ || *ExpectedLength_ == 0, "Invalid file length");
+ MKQL_ENSURE(!ExpectedLength_ || *ExpectedLength_ == 0, "Invalid file length, ExpectedLength=" << *ExpectedLength_ << ", State: " << State_->DebugInfo());
return false;
}
if (ExpectedLength_) {
- MKQL_ENSURE(*ExpectedLength_ > 0, "Invalid file length");
+ MKQL_ENSURE(*ExpectedLength_ > 0, "Invalid file length. State: " << State_->DebugInfo());
--(*ExpectedLength_);
}
value = State_->GetCurrent();
diff --git a/yt/yql/providers/yt/comp_nodes/yql_mkql_input_stream.h b/yt/yql/providers/yt/comp_nodes/yql_mkql_input_stream.h
index ebd66b43f14..c5e958fe828 100644
--- a/yt/yql/providers/yt/comp_nodes/yql_mkql_input_stream.h
+++ b/yt/yql/providers/yt/comp_nodes/yql_mkql_input_stream.h
@@ -14,6 +14,7 @@ struct IInputState {
virtual bool IsValid() const = 0;
virtual NUdf::TUnboxedValue GetCurrent() = 0;
virtual void Next() = 0;
+ virtual TString DebugInfo() const = 0;
};
class TInputStreamValue
diff --git a/yt/yt/client/api/query_tracker_client.cpp b/yt/yt/client/api/query_tracker_client.cpp
index 86633c206b9..f374fa39ee5 100644
--- a/yt/yt/client/api/query_tracker_client.cpp
+++ b/yt/yt/client/api/query_tracker_client.cpp
@@ -54,7 +54,7 @@ void Serialize(const TQuery& query, NYson::IYsonConsumer* consumer)
void Serialize(const TQueryResult& queryResult, NYson::IYsonConsumer* consumer)
{
- static_assert(pfr::tuple_size<TQueryResult>::value == 6);
+ static_assert(pfr::tuple_size<TQueryResult>::value == 7);
BuildYsonFluently(consumer)
.BeginMap()
.Item("id").Value(queryResult.Id)
@@ -65,6 +65,7 @@ void Serialize(const TQueryResult& queryResult, NYson::IYsonConsumer* consumer)
})
.OptionalItem("schema", queryResult.Schema)
.Item("is_truncated").Value(queryResult.IsTruncated)
+ .OptionalItem("full_result", queryResult.FullResult)
.Item("data_statistics").Value(queryResult.DataStatistics)
.EndMap();
}
diff --git a/yt/yt/client/api/query_tracker_client.h b/yt/yt/client/api/query_tracker_client.h
index 0e0fc147bf8..2cdcf2cbab4 100644
--- a/yt/yt/client/api/query_tracker_client.h
+++ b/yt/yt/client/api/query_tracker_client.h
@@ -123,6 +123,7 @@ struct TQueryResult
NTableClient::TTableSchemaPtr Schema;
NChunkClient::NProto::TDataStatistics DataStatistics;
bool IsTruncated;
+ std::optional<NYson::TYsonString> FullResult;
};
void Serialize(const TQueryResult& queryResult, NYson::IYsonConsumer* consumer);
diff --git a/yt/yt/client/api/rpc_proxy/client_impl.cpp b/yt/yt/client/api/rpc_proxy/client_impl.cpp
index 74e545e7f22..54c04351e1d 100644
--- a/yt/yt/client/api/rpc_proxy/client_impl.cpp
+++ b/yt/yt/client/api/rpc_proxy/client_impl.cpp
@@ -2325,6 +2325,7 @@ TFuture<TQueryResult> TClient::GetQueryResult(
.Schema = rsp->has_schema() ? FromProto<NTableClient::TTableSchemaPtr>(rsp->schema()) : nullptr,
.DataStatistics = FromProto<NChunkClient::NProto::TDataStatistics>(rsp->data_statistics()),
.IsTruncated = rsp->is_truncated(),
+ .FullResult = rsp->has_full_result() ? std::make_optional(TYsonString(rsp->full_result())) : std::nullopt,
};
}));
}
diff --git a/yt/yt/client/chaos_client/config.cpp b/yt/yt/client/chaos_client/config.cpp
index 2dce364270a..777da43a611 100644
--- a/yt/yt/client/chaos_client/config.cpp
+++ b/yt/yt/client/chaos_client/config.cpp
@@ -7,7 +7,7 @@ namespace NYT::NChaosClient {
void TReplicationCardCacheConfig::Register(TRegistrar registrar)
{
registrar.Parameter("enable_watching", &TThis::EnableWatching)
- .Default(false)
+ .Default(true)
.DontSerializeDefault();
}
diff --git a/yt/yt/client/driver/journal_commands.cpp b/yt/yt/client/driver/journal_commands.cpp
index 5a999e77093..cff1d62dea9 100644
--- a/yt/yt/client/driver/journal_commands.cpp
+++ b/yt/yt/client/driver/journal_commands.cpp
@@ -107,6 +107,7 @@ void TReadJournalCommand::DoExecute(ICommandContextPtr context)
}
if (std::ssize(buffer) > context->GetConfig()->ReadBufferSize) {
+ consumer->Flush();
flushBuffer();
}
}
diff --git a/yt/yt/client/table_client/schema.cpp b/yt/yt/client/table_client/schema.cpp
index 9cdf7119583..a1a328ac72e 100644
--- a/yt/yt/client/table_client/schema.cpp
+++ b/yt/yt/client/table_client/schema.cpp
@@ -1021,6 +1021,43 @@ TTableSchemaPtr TTableSchema::ToQuery() const
}
}
+TTableSchemaPtr TTableSchema::WithSystemColumns(const TSystemColumnOptions& options) const
+{
+ std::vector<TColumnSchema> columns;
+ auto safeAdd = [&](const std::string& name, const ESimpleLogicalValueType type) {
+ const auto existing = FindColumn(name);
+ if (!existing) {
+ columns.push_back(TColumnSchema(name, type));
+ } else if (!existing->IsOfV1Type(type)) {
+ THROW_ERROR_EXCEPTION("Cannot add column %Qv because of type mismatch", name);
+ }
+ };
+
+ if (options.EnableTableIndex) {
+ safeAdd(TableIndexColumnName, ESimpleLogicalValueType::Int64);
+ }
+
+ if (options.EnableRowIndex) {
+ safeAdd(RowIndexColumnName, ESimpleLogicalValueType::Int64);
+ }
+
+ if (options.EnableRangeIndex) {
+ safeAdd(RangeIndexColumnName, ESimpleLogicalValueType::Int64);
+ }
+
+ if (ColumnInfo_) {
+ const auto& info = *ColumnInfo_;
+ columns.insert(columns.end(), info.Columns.begin(), info.Columns.end());
+ }
+
+ return New<TTableSchema>(
+ std::move(columns),
+ Strict_,
+ UniqueKeys_,
+ SchemaModification_,
+ DeletedColumns());
+}
+
TTableSchemaPtr TTableSchema::ToWriteViaQueueProducer() const
{
std::vector<TColumnSchema> columns;
@@ -1839,9 +1876,17 @@ void ValidateDynamicTableKeyColumnCount(int count)
void ValidateSystemColumnSchema(
const TColumnSchema& columnSchema,
bool isTableSorted,
- bool allowUnversionedUpdateColumns,
- bool allowTimestampColumns)
-{
+ const TSchemaValidationOptions& options)
+{
+ static const auto allowedOperationSystemColumns = THashMap<std::string, ESimpleLogicalValueType>{
+ // Operation system columns are appended in context of job input query.
+ // Table index column is intentionally disabled in the result of input query, since it can be arbitrarily
+ // changed by the query itself, and final values would violate assumptions about the possible values of
+ // $table_index inside format writers.
+ {RowIndexColumnName, ESimpleLogicalValueType::Int64},
+ {RangeIndexColumnName, ESimpleLogicalValueType::Int64},
+ };
+
static const auto allowedSortedTablesSystemColumns = THashMap<std::string, ESimpleLogicalValueType>{
{EmptyValueColumnName, ESimpleLogicalValueType::Int64},
{TtlColumnName, ESimpleLogicalValueType::Uint64},
@@ -1880,7 +1925,15 @@ void ValidateSystemColumnSchema(
return;
}
- if (allowUnversionedUpdateColumns) {
+ if (options.AllowOperationColumns) {
+ auto it = allowedOperationSystemColumns.find(name);
+ if (it != allowedOperationSystemColumns.end()) {
+ validateType(it->second);
+ return;
+ }
+ }
+
+ if (options.AllowUnversionedUpdateColumns) {
// Unversioned update schema system column.
if (name == TUnversionedUpdateSchema::ChangeTypeColumnName) {
validateType(ESimpleLogicalValueType::Uint64);
@@ -1894,7 +1947,7 @@ void ValidateSystemColumnSchema(
}
}
- if (allowTimestampColumns) {
+ if (options.AllowTimestampColumns) {
if (name.starts_with(TimestampColumnPrefix)) {
validateType(ESimpleLogicalValueType::Uint64);
return;
@@ -1924,8 +1977,7 @@ void ValidateColumnSchema(
const TColumnSchema& columnSchema,
bool isTableSorted,
bool isTableDynamic,
- bool allowUnversionedUpdateColumns,
- bool allowTimestampColumns)
+ const TSchemaValidationOptions& options)
{
static const auto allowedAggregates = THashSet<std::string, THash<TStringBuf>, TEqualTo<>>{
"sum",
@@ -1954,8 +2006,7 @@ void ValidateColumnSchema(
ValidateSystemColumnSchema(
columnSchema,
isTableSorted,
- allowUnversionedUpdateColumns,
- allowTimestampColumns);
+ options);
}
{
@@ -2293,8 +2344,7 @@ void ValidateSchemaAttributes(const TTableSchema& schema)
void ValidateTableSchema(
const TTableSchema& schema,
bool isTableDynamic,
- bool allowUnversionedUpdateColumns,
- bool allowTimestampColumns)
+ const TSchemaValidationOptions& options)
{
int totalTypeComplexity = 0;
for (const auto& column : schema.Columns()) {
@@ -2302,8 +2352,7 @@ void ValidateTableSchema(
column,
schema.IsSorted(),
isTableDynamic,
- allowUnversionedUpdateColumns,
- allowTimestampColumns);
+ options);
if (!schema.GetStrict() && column.IsRenamed()) {
THROW_ERROR_EXCEPTION("Renamed column %v in non-strict schema",
column.GetDiagnosticNameString());
diff --git a/yt/yt/client/table_client/schema.h b/yt/yt/client/table_client/schema.h
index ac36c07435f..f6c9f147a19 100644
--- a/yt/yt/client/table_client/schema.h
+++ b/yt/yt/client/table_client/schema.h
@@ -230,6 +230,13 @@ public:
const TTableSchema& Schema_;
};
+ struct TSystemColumnOptions
+ {
+ bool EnableTableIndex;
+ bool EnableRowIndex;
+ bool EnableRangeIndex;
+ };
+
public:
const std::vector<TColumnSchema>& Columns() const;
const std::vector<TDeletedColumn>& DeletedColumns() const;
@@ -328,6 +335,9 @@ public:
//! For ordered tables, prepends the current schema with |(tablet_index, row_index)| key columns.
TTableSchemaPtr ToQuery() const;
+ //! Appends |$table_index|, |$row_index| and/or |$range_index|, based on the options.
+ TTableSchemaPtr WithSystemColumns(const TSystemColumnOptions& options) const;
+
//! For sorted tables, return the current schema without computed columns.
//! For ordered tables, prepends the current schema with |(tablet_index)| key column
//! but without |$timestamp| column, if any.
@@ -521,18 +531,27 @@ void ValidateDynamicTableKeyColumnCount(int count);
void ValidateColumnName(const std::string& name);
+////////////////////////////////////////////////////////////////////////////////
+
+struct TSchemaValidationOptions
+{
+ bool AllowUnversionedUpdateColumns = false;
+ bool AllowTimestampColumns = false;
+ bool AllowOperationColumns = false;
+};
+
void ValidateColumnSchema(
const TColumnSchema& columnSchema,
bool isTableSorted = false,
bool isTableDynamic = false,
- bool allowUnversionedUpdateColumns = false,
- bool allowTimestampColumns = false);
+ const TSchemaValidationOptions& options = {});
void ValidateTableSchema(
const TTableSchema& schema,
bool isTableDynamic = false,
- bool allowUnversionedUpdateColumns = false,
- bool allowTimestampColumns = false);
+ const TSchemaValidationOptions& options = {});
+
+////////////////////////////////////////////////////////////////////////////////
void ValidateNoDescendingSortOrder(const TTableSchema& schema);
diff --git a/yt/yt/client/unittests/schema_ut.cpp b/yt/yt/client/unittests/schema_ut.cpp
index 4c4b597f0db..83fc60b9d53 100644
--- a/yt/yt/client/unittests/schema_ut.cpp
+++ b/yt/yt/client/unittests/schema_ut.cpp
@@ -376,6 +376,37 @@ TEST(TTableSchemaTest, ColumnSchemaValidation)
{"foo", SimpleLogicalType(ESimpleLogicalValueType::Int64)},
{"bar", SimpleLogicalType(ESimpleLogicalValueType::String)},
}), ESortOrder::Ascending));
+
+ // Allow some names starting from SystemColumnNamePrefix
+ EXPECT_NO_THROW(
+ ValidateColumnSchema(
+ TColumnSchema(RowIndexColumnName, EValueType::Int64),
+ /*isTableSorted*/ false,
+ /*isTableDynamic*/ false,
+ /*options*/ {.AllowOperationColumns = true})
+ );
+ EXPECT_NO_THROW(
+ ValidateColumnSchema(
+ TColumnSchema(RangeIndexColumnName, EValueType::Int64),
+ /*isTableSorted*/ false,
+ /*isTableDynamic*/ false,
+ /*options*/ {.AllowOperationColumns = true})
+ );
+ EXPECT_THROW(
+ ValidateColumnSchema(
+ TColumnSchema(TableIndexColumnName, EValueType::Int64),
+ /*isTableSorted*/ false,
+ /*isTableDynamic*/ false,
+ /*options*/ {.AllowOperationColumns = true}),
+ std::exception);
+ EXPECT_THROW(
+ ValidateColumnSchema(
+ TColumnSchema(EmptyValueColumnName, EValueType::Int64),
+ /*isTableSorted*/ false,
+ /*isTableDynamic*/ false,
+ /*options*/ {.AllowOperationColumns = true}),
+ std::exception);
+
}
TEST(TTableSchemaTest, ValidateTableSchemaTest)
@@ -536,6 +567,45 @@ TEST(TTableSchemaTest, ValidateTableSchemaNestedColumns)
});
}
+TEST(TTableSchemaTest, WithSystemColumns)
+{
+ const auto schema1 = TTableSchema({
+ TColumnSchema("foo", SimpleLogicalType(ESimpleLogicalValueType::Int64)),
+ });
+
+ const auto schema2Ptr = schema1.WithSystemColumns({
+ .EnableRangeIndex = true,
+ });
+
+ EXPECT_EQ(schema2Ptr->Columns().size(), 2u);
+ EXPECT_TRUE(schema2Ptr->FindColumn("foo"));
+ EXPECT_TRUE(schema2Ptr->FindColumn(RangeIndexColumnName));
+
+ const auto schema3Ptr = schema1.WithSystemColumns({
+ .EnableTableIndex = true,
+ .EnableRowIndex = true,
+ .EnableRangeIndex = true,
+ });
+
+ EXPECT_EQ(schema3Ptr->Columns().size(), 4u);
+ EXPECT_TRUE(schema3Ptr->FindColumn("foo"));
+ EXPECT_TRUE(schema3Ptr->FindColumn(TableIndexColumnName));
+ EXPECT_TRUE(schema3Ptr->FindColumn(RowIndexColumnName));
+ EXPECT_TRUE(schema3Ptr->FindColumn(RangeIndexColumnName));
+
+ EXPECT_EQ(*schema3Ptr, *schema2Ptr->WithSystemColumns({
+ .EnableTableIndex = true,
+ .EnableRowIndex = true,
+ .EnableRangeIndex = true,
+ }));
+
+ EXPECT_THROW_WITH_SUBSTRING(
+ TTableSchema({
+ TColumnSchema(RowIndexColumnName, SimpleLogicalType(ESimpleLogicalValueType::String)),
+ }).WithSystemColumns({.EnableRowIndex = true}),
+ "Cannot add column");
+}
+
////////////////////////////////////////////////////////////////////////////////
TEST(TLockMaskTest, Simple)
diff --git a/yt/yt/core/bus/tcp/dispatcher_impl.cpp b/yt/yt/core/bus/tcp/dispatcher_impl.cpp
index 543bfac8e8f..8e987e753b9 100644
--- a/yt/yt/core/bus/tcp/dispatcher_impl.cpp
+++ b/yt/yt/core/bus/tcp/dispatcher_impl.cpp
@@ -268,9 +268,11 @@ void TTcpDispatcher::TImpl::CollectSensors(ISensorWriter* writer)
std::vector<TTcpConnectionPtr> TTcpDispatcher::TImpl::GetConnections()
{
+ auto connectionList = ConnectionList_.Load();
+
std::vector<TTcpConnectionPtr> result;
- result.reserve(ConnectionList_.size());
- for (const auto& weakConnection : ConnectionList_) {
+ result.reserve(connectionList.size());
+ for (const auto& weakConnection : connectionList) {
if (auto connection = weakConnection.Lock()) {
result.push_back(connection);
}
@@ -318,28 +320,30 @@ IYPathServicePtr TTcpDispatcher::TImpl::GetOrchidService()
void TTcpDispatcher::TImpl::OnPeriodicCheck()
{
- for (auto&& connection : ConnectionsToRegister_.DequeueAll()) {
- ConnectionList_.push_back(std::move(connection));
- }
-
- i64 connectionsToCheck = std::max(
- std::ssize(ConnectionList_) *
- static_cast<i64>(PeriodicCheckPeriod.GetValue()) /
- static_cast<i64>(PerConnectionPeriodicCheckPeriod.GetValue()),
- static_cast<i64>(1));
- for (i64 index = 0; index < connectionsToCheck && !ConnectionList_.empty(); ++index) {
- auto& weakConnection = ConnectionList_[CurrentConnectionListIndex_];
- if (auto connection = weakConnection.Lock()) {
- connection->RunPeriodicCheck();
- ++CurrentConnectionListIndex_;
- } else {
- std::swap(weakConnection, ConnectionList_.back());
- ConnectionList_.pop_back();
+ ConnectionList_.Transform([&] (auto& connectionList) {
+ for (auto&& connection : ConnectionsToRegister_.DequeueAll()) {
+ connectionList.push_back(std::move(connection));
}
- if (CurrentConnectionListIndex_ >= std::ssize(ConnectionList_)) {
- CurrentConnectionListIndex_ = 0;
+
+ i64 connectionsToCheck = std::max(
+ std::ssize(connectionList) *
+ static_cast<i64>(PeriodicCheckPeriod.GetValue()) /
+ static_cast<i64>(PerConnectionPeriodicCheckPeriod.GetValue()),
+ static_cast<i64>(1));
+ for (i64 index = 0; index < connectionsToCheck && !connectionList.empty(); ++index) {
+ auto& weakConnection = connectionList[CurrentConnectionListIndex_];
+ if (auto connection = weakConnection.Lock()) {
+ connection->RunPeriodicCheck();
+ ++CurrentConnectionListIndex_;
+ } else {
+ std::swap(weakConnection, connectionList.back());
+ connectionList.pop_back();
+ }
+ if (CurrentConnectionListIndex_ >= std::ssize(connectionList)) {
+ CurrentConnectionListIndex_ = 0;
+ }
}
- }
+ });
}
std::optional<TString> TTcpDispatcher::TImpl::GetBusCertsDirectoryPath() const
diff --git a/yt/yt/core/bus/tcp/dispatcher_impl.h b/yt/yt/core/bus/tcp/dispatcher_impl.h
index 054607bc3ee..82cbf184a79 100644
--- a/yt/yt/core/bus/tcp/dispatcher_impl.h
+++ b/yt/yt/core/bus/tcp/dispatcher_impl.h
@@ -13,6 +13,7 @@
#include <yt/yt/core/misc/error.h>
#include <yt/yt/core/misc/mpsc_stack.h>
+#include <library/cpp/yt/threading/atomic_object.h>
#include <library/cpp/yt/threading/rw_spin_lock.h>
#include <library/cpp/yt/threading/fork_aware_rw_spin_lock.h>
@@ -86,7 +87,7 @@ private:
NConcurrency::IThreadPoolPollerPtr XferPoller_;
TMpscStack<TWeakPtr<TTcpConnection>> ConnectionsToRegister_;
- std::vector<TWeakPtr<TTcpConnection>> ConnectionList_;
+ NThreading::TAtomicObject<std::vector<TWeakPtr<TTcpConnection>>> ConnectionList_;
int CurrentConnectionListIndex_ = 0;
struct TNetworkStatistics
diff --git a/yt/yt_proto/yt/client/api/rpc_proxy/proto/api_service.proto b/yt/yt_proto/yt/client/api/rpc_proxy/proto/api_service.proto
index bfdd234fb23..350c5dc87b4 100644
--- a/yt/yt_proto/yt/client/api/rpc_proxy/proto/api_service.proto
+++ b/yt/yt_proto/yt/client/api/rpc_proxy/proto/api_service.proto
@@ -3305,6 +3305,7 @@ message TRspGetQueryResult
optional TTableSchema schema = 4;
required NYT.NChunkClient.NProto.TDataStatistics data_statistics = 5;
required bool is_truncated = 6;
+ optional bytes full_result = 7; // YSON
}
////////////////////////////////////////////////////////////////////////////////