This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a change to branch auto-pick-64263-branch-4.1
in repository https://gitbox.apache.org/repos/asf/doris.git
discard cfc12fd9107 [iceberg](fix) Fetch comment PROP from table meta (#64263)
add 51d1238b32e branch-4.1: [fix](function) keep struct_element as an
alias of element_at #64261 (#64288)
add 1c982d1f4f7 [fix](insert) enable_insert_strict should not affect
semantic of enable_strict_cast (#63794) (#64267)
add cced002a423 branch-4.1: [fix](variant) fix wrong element type
inference for mixed-type arrays in VARIANT sparse columns #64273 (#64322)
add 8b6044bb77d branch-4.1: [fix](cloud) Validate recycle rowset key state
during commit rowset #63985 (#64287)
add 1408fd837c9 branch-4.1: [bug](iceberg) fix can't get migrated Iceberg
tables format type #64134 (#64292)
add f1b89ae2a67 branch-4.1: [fix](fe) Fix broken pipe risk on stream load
redirect with unconsumed request body (#64302)
add b547182632a branch-4.1: [fix](variant) Reject COUNT DISTINCT on
variant arguments #63479 (#64295)
add 9eac4a594c6 branch-4.1: [fix](s3) Avoid retrying object storage
SlowDown errors #63776 (#64327)
add a4052d1b56b branch-4.1: [bug](iceberg) mapping iceberg varint type to
unsupported type #64331 (#64338)
add 079a9a12ab7 branch-4.1: [opt](memory) truncate segment key bounds and
avoid retaining full buffers (#64290)
add a4cdd2729a5 branch-4.1: [fix](nereids) Guard
LogicalView.computeOutput() against schema drift (IndexOutOfBoundsException)
#64007 (#64272)
add 611bae8082f branch-4.1: [opt](cloud) cache cluster id per query and
drop redundant locks on getBackendId hot path #63636 (#64276)
add 17bc4a19f9d branch-4.1: [Fix](nereids) Fix nullable date literal
binding and date *_diff folding (#64127) (#64370)
add 339168083d4 branch-4.1: [fix](fe) Reject TopN in correlated scalar
subquery #64251 (#64351)
add 35ea973423a branch-4.1: [fix](case) exclude test_paimon_gcs in
regression config #64155 (#64346)
add d3ec907a21f branch-4.1: [fix](cloud) Prevent tablet KV leak after
partial recycle failure #63377 (#64309)
add a9ce9d34aff branch-4.1: [fix](cloud) Fix reading packed inverted index
file on file cache miss (#64410)
add 45157b3a81b branch-4.1: [chore](ms) Change Default config for ms rate
limit #64398 (#64405)
add aec169d2025 4.1.2-rc01 (#64360)
add 5e73a7cda8b branch-4.1:[fix](topn_to_max)Remove the topnToMax
optimizer rewrite that converted TOPN into MAX.#63519 (#64367)
add f62e9226bcb branch-4.1: [fix](load) fix load_to_single_tablet routing
for auto partition #64356 (#64455)
add 3dd40f541d7 branch-4.1: [fix](load) fix empty statistics for forwarded
INSERT #64439 (#64453)
add 38b0dbcff56 branch-4.1: [fix](fe) Fix NereidsCoordinator not created
in proxy flow due to missing parsedStatement on StatementContext #64363 (#64437)
add 537a8b4cec5 branch-4.1: [cleanup](segment)Remove dead
get_first_value/get_last_value APIs from PageBuilder #62493 (#64433)
add 10e0c2925aa branch-4.1: [fix](be) Return NaN for avg_weighted when sum
of weights is zero #64333 (#64431)
add 3c2e254b53b branch-4.1: [Feat](udf) Support Python UDF/UDAF/UDTF
(#63387)
add f389cea3a3a branch-4.1: [Fix](nereids) Fix month nullable datetimev2
literal binding #64459 (#64491)
add ea562c47e2c branch-4.1: [fix](test) Make test_analyze_long_string Case
5 stable against sample rows randomness #64408 (#64507)
add df9bf561504 branch-4.1: [fix](case) fix
insert_group_commit_into_max_filter_ratio #64402 (#64528)
add 8a619d717db [fix](case) check_hash_bucket_table: quote db/table
identifiers (#64510)
add 2f7a52da905 [fix](case) test_delete_bitmap_metrics: warm agg cache on
every replica (#64515)
add 6db776c26ff branch-4.1: [test](regression) Remove no simdjson flexible
update case #64513 (#64541)
add b1fdbb3ab51 branch-4.1: [fix](delta writer) Fix shared delta writer
state lifetime (#64504)
add a47153b982d branch-4.1: [enhancement](workload policy) Add
username-based backend workload policy support #60559 (#64493)
add b1f76970a39 branch-4.1: [refactor](be) Move PackedUInt128 to
packed_int128.h #61250 (#64434)
add bebc7ae4914 branch-4.1: [fix](serde) fix split_by_delimiter missing
backslash escape handling #61995 (#64432)
add faeb9825226 branch-4.1: fix(regression): Make test_analyze_mv
row_count assertion stable after truncate #64419 (#64503)
add f655a6dc4ba branch-4.1:[improvement](maxcompute) Simplify FE block ID
requests for MaxCompute writes (#62880) (#64447)
add 3604a50efc8 branch-4.1: [fix](ddl) reject invalid IPv4 default value
at CREATE TABLE time #62906 (#64488)
add d4b3c12b812 branch-4.1: [fix](regression) fix p2 case failure #64420
(#64422)
add 4c627a11290 branch-4.1: [improvement](cgroup) inactive_file should be
treated as available memory to avoid query be cancelled #64347 (#64411)
add f04ceb7ccc4 branch-4.1: [fix](test) fix flaky case in
variables_persist test_mtmv #64365 (#64427)
add 0ce3f448c92 [fix](case) test_admin_compact_table: count distinct
tablets for multi-replica clusters (#64509)
add 9355f1009f8 [fix](case) test_p_seq_publish_read_from_old: disable auto
compaction to stabilize qt_inspect (#64508)
add 53c7e0e0b29 branch-4.1: [fix](mtmv) Avoid mutating excluded trigger
tables (#62984) (#64519)
add 4f6a7338379 [branch-4.1](variant) return raw string for element_at on
scalar-string variant (#64103) (#64424)
add c0dc6d9804c branch-4.1: [feat](routine_load) Support SHOW ROUTINE LOAD
TASK FOR <db>.<job_name> #64151 (#64403)
add f9ce581678c branch-4.1: [fix](fe) Detect Doris-compatible MySQL JDBC
targets #64389 (#64473)
add d4b11f0cd9d branch-4.1: [fix](mtmv) Add null-safety to
getBaseViewsOneLevel for backward compatibility #64412 (#64500)
add 910ea33f3c1 branch-4.1: [fix](case) fix mow compaction cases on
multi-replica cluster (#64538)
add e96ddf07cb1 branch-4.1: [Opt](cloud) Add rate limit for BE to MS rpc
(#64396)
add b6f61e99082 branch-4.1: [fix](cloud) Refresh base tablet before schema
change V1 #64312 (#64430)
add 41ccc37b385 [fix](case) one_col_range_partition: query a date range
that has data (#64523)
add dcd767d91a0 [regression-test](backup-restore) wait for colocate group
to stabilize before asserting COLOCATE plan (#64532)
add 6fc573b4f4b branch-4.1: [bug](cloud restore) rewrite table properties
and partition info in cloud restore (#64466)
add ed960c9cc19 branch-4.1: [enhance](job) refresh routine load lag more
timely (#63654) (#64284)
add 54523692881 branch-4.1: [fix](be) Escape JSONB path member control
characters #63517 (#64364)
add 106ebeec4a5 [iceberg](fix) Fetch comment PROP from table meta (#64263)
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (cfc12fd9107)
\
N -- N -- N refs/heads/auto-pick-64263-branch-4.1 (106ebeec4a5)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
No new revisions were added by this update.
Summary of changes:
be/CMakeLists.txt | 16 +-
be/src/agent/task_worker_pool.cpp | 16 +-
be/src/cloud/cloud_cumulative_compaction.cpp | 3 +-
be/src/cloud/cloud_delete_task.cpp | 5 +-
be/src/cloud/cloud_delta_writer.cpp | 6 +-
be/src/cloud/cloud_full_compaction.cpp | 2 +-
be/src/cloud/cloud_meta_mgr.cpp | 306 ++-
be/src/cloud/cloud_meta_mgr.h | 26 +-
be/src/cloud/cloud_ms_backpressure_handler.cpp | 521 ++++
be/src/cloud/cloud_ms_backpressure_handler.h | 231 ++
be/src/cloud/cloud_ms_rpc_rate_limit_services.cpp | 55 +
be/src/cloud/cloud_ms_rpc_rate_limit_services.h | 59 +
be/src/cloud/cloud_ms_rpc_rate_limiters.cpp | 189 ++
be/src/cloud/cloud_ms_rpc_rate_limiters.h | 118 +
be/src/cloud/cloud_rowset_builder.cpp | 3 +-
be/src/cloud/cloud_schema_change_job.cpp | 14 +-
be/src/cloud/cloud_tablet.cpp | 18 +-
be/src/cloud/cloud_throttle_state_machine.cpp | 272 ++
be/src/cloud/cloud_throttle_state_machine.h | 176 ++
be/src/cloud/config.cpp | 44 +
be/src/cloud/config.h | 63 +
be/src/common/cgroup_memory_ctl.cpp | 34 +-
be/src/common/config.cpp | 19 +
be/src/common/config.h | 15 +
be/src/core/column/column_variant.cpp | 4 +-
.../complex_type_deserialize_util.h | 4 +-
.../core/data_type_serde/data_type_array_serde.cpp | 20 +-
.../data_type_serde/data_type_number_serde.cpp | 8 +
be/src/core/data_type_serde/data_type_serde.h | 13 -
be/src/core/field.h | 4 +
be/src/core/packed_int128.h | 13 +
be/src/exec/sink/vrow_distribution.cpp | 2 +
.../sink/writer/maxcompute/vmc_table_writer.cpp | 6 +
be/src/exec/sink/writer/vtablet_writer_v2.cpp | 17 +-
.../aggregate/aggregate_function_avg_weighted.h | 8 +-
.../aggregate/aggregate_function_python_udaf.cpp | 433 +++
.../aggregate/aggregate_function_python_udaf.h | 186 ++
.../function/array/function_array_element.cpp | 2 +
be/src/exprs/function/function_python_udf.cpp | 184 ++
be/src/exprs/function/function_python_udf.h | 108 +
be/src/exprs/function/function_variant_element.cpp | 9 +
.../exprs/table_function/python_udtf_function.cpp | 293 ++
be/src/exprs/table_function/python_udtf_function.h | 97 +
.../table_function/table_function_factory.cpp | 7 +
be/src/exprs/vectorized_agg_fn.cpp | 13 +
be/src/exprs/vectorized_fn_call.cpp | 21 +
be/src/format/arrow/arrow_block_convertor.cpp | 102 +-
be/src/format/arrow/arrow_block_convertor.h | 80 +
be/src/format/arrow/arrow_row_batch.cpp | 31 +-
be/src/format/arrow/arrow_row_batch.h | 5 +
be/src/format/arrow/arrow_utils.h | 32 +
...ema_backend_ms_rpc_table_throttlers_scanner.cpp | 113 +
...hema_backend_ms_rpc_table_throttlers_scanner.h} | 37 +-
be/src/information_schema/schema_scanner.cpp | 3 +
be/src/io/cache/cached_remote_file_reader.cpp | 3 +-
be/src/io/fs/packed_file_manager.cpp | 5 +-
be/src/io/fs/packed_file_manager.h | 4 +-
be/src/load/delta_writer/delta_writer_v2.cpp | 29 +-
be/src/load/delta_writer/delta_writer_v2.h | 10 +-
be/src/runtime/exec_env.h | 9 +-
be/src/runtime/exec_env_init.cpp | 87 +-
be/src/runtime/user_function_cache.cpp | 179 +-
be/src/runtime/user_function_cache.h | 18 +-
.../workload_management/query_task_controller.cpp | 13 +
.../workload_management/query_task_controller.h | 2 +
.../runtime/workload_management/task_controller.h | 2 +
.../workload_management/workload_condition.cpp | 11 +
.../workload_management/workload_condition.h | 19 +-
.../workload_management/workload_sched_policy.cpp | 10 +-
be/src/service/backend_service.cpp | 16 +
be/src/service/backend_service.h | 5 +
be/src/service/doris_main.cpp | 67 +
be/src/storage/compaction/compaction.cpp | 7 +-
be/src/storage/rowset/beta_rowset_writer.cpp | 59 +-
be/src/storage/segment/binary_dict_page.cpp | 31 -
be/src/storage/segment/binary_dict_page.h | 5 -
be/src/storage/segment/binary_plain_page.h | 48 -
be/src/storage/segment/binary_plain_page_v2.h | 49 -
be/src/storage/segment/binary_prefix_page.cpp | 4 -
be/src/storage/segment/binary_prefix_page.h | 21 +-
be/src/storage/segment/bitshuffle_page.h | 23 -
be/src/storage/segment/frame_of_reference_page.h | 22 -
be/src/storage/segment/page_builder.h | 14 -
be/src/storage/segment/plain_page.h | 28 +-
be/src/storage/segment/rle_page.h | 25 -
be/src/storage/segment/segment.cpp | 7 +-
be/src/storage/segment/segment.h | 3 +
.../be_custom.conf => be/src/udf/CMakeLists.txt | 17 +-
be/src/udf/python/python_client.cpp | 149 ++
be/src/udf/python/python_client.h | 117 +
be/src/udf/python/python_env.cpp | 387 +++
be/src/udf/python/python_env.h | 206 ++
be/src/udf/python/python_server.cpp | 787 ++++++
be/src/udf/python/python_server.h | 177 ++
be/src/udf/python/python_server.py | 2821 ++++++++++++++++++++
be/src/udf/python/python_udaf_client.cpp | 586 ++++
be/src/udf/python/python_udaf_client.h | 232 ++
.../python/python_udf_client.cpp} | 43 +-
be/src/udf/python/python_udf_client.h | 75 +
be/src/udf/python/python_udf_meta.cpp | 183 ++
be/src/udf/python/python_udf_meta.h | 73 +
be/src/udf/python/python_udf_runtime.cpp | 271 ++
be/src/udf/python/python_udf_runtime.h | 116 +
be/src/udf/python/python_udtf_client.cpp | 63 +
be/src/udf/python/python_udtf_client.h | 89 +
be/src/util/cgroup_util.cpp | 7 +
be/src/util/jni-util.cpp | 4 -
be/src/util/jni_native_method.cpp | 129 -
be/src/util/jni_native_method.h | 4 -
be/src/util/jsonb_document.h | 105 +-
be/src/util/mem_info.cpp | 16 +-
be/src/util/s3_util.cpp | 5 +-
be/src/util/s3_util.h | 2 +-
.../cloud/cloud_ms_backpressure_handler_test.cpp | 552 ++++
be/test/cloud/cloud_ms_rpc_rate_limiters_test.cpp | 310 +++
be/test/cloud/cloud_schema_change_job_test.cpp | 78 +
.../cloud/cloud_throttle_state_machine_test.cpp | 954 +++++++
.../data_type_serde/data_type_serde_array_test.cpp | 178 ++
.../data_type_serde/data_type_serde_arrow_test.cpp | 56 +-
.../data_type_serde/data_type_serde_map_test.cpp | 57 +
be/test/core/jsonb/jsonb_document_test.cpp | 113 +
be/test/exec/sink/vtablet_writer_v2_test.cpp | 231 ++
.../function/function_variant_element_test.cpp | 40 +-
.../delta_writer/delta_writer_v2_pool_test.cpp | 13 +-
be/test/runtime/user_function_cache_test.cpp | 347 +++
.../query_task_controller_test.cpp | 64 +
.../workload_condition_test.cpp} | 41 +-
be/test/runtime/workload_sched_policy_test.cpp | 157 ++
be/test/storage/segment/binary_dict_page_test.cpp | 10 -
be/test/storage/segment/binary_plain_page_test.cpp | 8 -
.../storage/segment/binary_plain_page_v2_test.cpp | 64 -
.../storage/segment/binary_prefix_page_test.cpp | 16 -
be/test/storage/segment/bitshuffle_page_test.cpp | 8 -
.../segment/frame_of_reference_page_test.cpp | 6 -
be/test/storage/segment/plain_page_test.cpp | 8 -
be/test/storage/segment/rle_page_test.cpp | 8 -
be/test/udf/python/python_env_test.cpp | 706 +++++
be/test/udf/python/python_server_test.cpp | 1121 ++++++++
be/test/udf/python/python_udaf_client_test.cpp | 155 ++
be/test/udf/python/python_udf_meta_test.cpp | 510 ++++
be/test/udf/python/python_udf_runtime_test.cpp | 541 ++++
build.sh | 2 +
cloud/src/common/config.h | 5 +-
cloud/src/common/http_helper.cpp | 2 +-
cloud/src/common/sync_executor.h | 6 +-
cloud/src/meta-service/injection_point_http.cpp | 29 +
cloud/src/meta-service/meta_service.cpp | 125 +-
cloud/src/meta-service/meta_service.h | 3 +
.../meta_service_rate_limit_helper.cpp | 2 +-
cloud/src/recycler/azure_obj_client.cpp | 2 +-
cloud/src/recycler/recycler.cpp | 139 +-
cloud/src/recycler/recycler_service.cpp | 2 +-
cloud/src/recycler/recycler_service.h | 2 +-
cloud/src/recycler/s3_accessor.cpp | 10 +-
cloud/src/recycler/s3_accessor.h | 3 +-
cloud/src/recycler/s3_obj_client.cpp | 2 +-
cloud/test/meta_service_test.cpp | 87 +-
cloud/test/mock_accessor.h | 2 +-
cloud/test/recycler_operation_log_test.cpp | 12 +-
cloud/test/recycler_test.cpp | 297 ++-
cloud/test/s3_accessor_client_test.cpp | 2 +-
cloud/test/s3_rate_limiter_test.cpp | 2 +-
common/cpp/obj_retry_strategy.cpp | 10 +-
common/cpp/obj_retry_strategy.h | 7 +-
...e_limiter.cpp => token_bucket_rate_limiter.cpp} | 35 +-
..._rate_limiter.h => token_bucket_rate_limiter.h} | 18 +-
.../create_preinstalled_scripts/iceberg/run10.sql | 4 +-
.../create_preinstalled_scripts/iceberg/run30.sql | 11 +
.../doris/common/jni/utils/JNINativeMethod.java | 4 -
.../doris/maxcompute/MaxComputeFeClient.java | 326 +++
.../doris/maxcompute/MaxComputeJniWriter.java | 11 +-
.../doris/maxcompute/MaxComputeFeClientTest.java | 177 ++
.../main/java/org/apache/doris/common/Config.java | 39 +
.../antlr4/org/apache/doris/nereids/DorisLexer.g4 | 4 +
.../antlr4/org/apache/doris/nereids/DorisParser.g4 | 15 +-
.../org/apache/doris/analysis/IPv4Literal.java | 34 +-
.../org/apache/doris/analysis/SchemaTableType.java | 4 +-
.../java/org/apache/doris/backup/RestoreJob.java | 26 +-
.../apache/doris/catalog/AggregateFunction.java | 10 +
.../doris/catalog/BuiltinScalarFunctions.java | 3 +-
.../apache/doris/catalog/CatalogRecycleBin.java | 7 +-
.../java/org/apache/doris/catalog/Database.java | 39 +-
.../java/org/apache/doris/catalog/EnvFactory.java | 2 +-
.../java/org/apache/doris/catalog/Function.java | 33 +
.../org/apache/doris/catalog/FunctionRegistry.java | 9 +
.../org/apache/doris/catalog/FunctionUtil.java | 27 +-
.../FunctionVolatility.java} | 36 +-
.../org/apache/doris/catalog/PartitionInfo.java | 31 +-
.../org/apache/doris/catalog/ScalarFunction.java | 34 +-
.../java/org/apache/doris/catalog/SchemaTable.java | 8 +
.../org/apache/doris/catalog/TableProperty.java | 12 +
.../doris/cloud/catalog/CloudEnvFactory.java | 2 +-
.../apache/doris/cloud/catalog/CloudReplica.java | 125 +-
.../apache/doris/cloud/catalog/CloudTablet.java | 15 +-
.../cloud/common/util/CloudPropertyAnalyzer.java | 1 +
.../apache/doris/cloud/qe/CloudCoordinator.java | 5 +
.../doris/cloud/system/CloudSystemInfoService.java | 93 +-
.../apache/doris/datasource/InternalCatalog.java | 13 +
.../doris/datasource/iceberg/IcebergUtils.java | 42 +-
.../datasource/jdbc/client/JdbcMySQLClient.java | 15 +-
.../doris/datasource/maxcompute/MCTransaction.java | 7 +-
.../config/WebServerFactoryCustomizerConfig.java | 3 +
.../org/apache/doris/httpv2/rest/LoadAction.java | 156 +-
.../doris/httpv2/rest/RestBaseController.java | 51 +-
.../httpv2/util/StreamLoadRedirectDrainUtil.java | 154 ++
.../load/routineload/KafkaRoutineLoadJob.java | 87 +-
.../doris/load/routineload/RoutineLoadJob.java | 3 +
.../doris/load/routineload/RoutineLoadManager.java | 14 +
.../load/routineload/RoutineLoadScheduler.java | 2 +
.../org/apache/doris/mtmv/MTMVPartitionUtil.java | 5 +-
.../java/org/apache/doris/mtmv/MTMVRelation.java | 13 +-
.../glue/translator/ExpressionTranslator.java | 33 +
.../nereids/load/NereidsStreamLoadPlanner.java | 8 +
.../doris/nereids/parser/LogicalPlanBuilder.java | 36 +-
.../post/PushDownFilterThroughProject.java | 2 +-
.../nereids/rules/analysis/BindExpression.java | 10 +-
.../doris/nereids/rules/analysis/BindSink.java | 6 +-
.../nereids/rules/analysis/ExpressionAnalyzer.java | 5 +-
.../nereids/rules/analysis/SubExprAnalyzer.java | 12 +-
.../rules/expression/ExpressionOptimization.java | 2 -
.../rules/InPredicateExtractNonConstant.java | 2 +-
.../expression/rules/PushIntoCaseWhenBranch.java | 4 +-
.../nereids/rules/expression/rules/TopnToMax.java | 56 -
.../rules/rewrite/AddProjectForUniqueFunction.java | 8 +-
.../rules/rewrite/CollectFilterAboveConsumer.java | 2 +-
.../rules/rewrite/JoinExtractOrFromCaseWhen.java | 2 +-
.../rewrite/PushDownFilterThroughAggregation.java | 2 +-
.../rewrite/PushDownFilterThroughGenerate.java | 2 +-
.../rules/rewrite/PushDownFilterThroughJoin.java | 4 +-
.../rewrite/PushDownFilterThroughProject.java | 2 +-
.../rules/rewrite/PushFilterInsideJoin.java | 2 +-
.../rules/rewrite/PushProjectIntoUnion.java | 2 +-
.../doris/nereids/rules/rewrite/ReorderJoin.java | 4 +-
.../rewrite/eageraggregation/EagerAggRewriter.java | 2 +-
.../nereids/trees/expressions/Expression.java | 6 +-
.../trees/expressions/VolatileExpression.java | 16 +-
.../trees/expressions/VolatileIdentity.java | 90 +
.../expressions/functions/ExpressionTrait.java | 2 +-
.../expressions/functions/SearchSignature.java | 8 +-
.../nereids/trees/expressions/functions/Udf.java | 19 +-
.../trees/expressions/functions/agg/Count.java | 30 +-
.../functions/agg/MultiDistinctCount.java | 7 +
.../executable/DateTimeExtractAndTransform.java | 104 +-
.../trees/expressions/functions/scalar/Month.java | 2 +-
.../functions/scalar/UniqueFunction.java | 23 +-
.../trees/expressions/functions/udf/JavaUdaf.java | 58 +-
.../expressions/functions/udf/JavaUdafBuilder.java | 2 +-
.../trees/expressions/functions/udf/JavaUdf.java | 58 +-
.../expressions/functions/udf/JavaUdfBuilder.java | 2 +-
.../trees/expressions/functions/udf/JavaUdtf.java | 58 +-
.../expressions/functions/udf/JavaUdtfBuilder.java | 2 +-
.../udf/{JavaUdaf.java => PythonUdaf.java} | 99 +-
...JavaUdafBuilder.java => PythonUdafBuilder.java} | 14 +-
.../functions/udf/{JavaUdf.java => PythonUdf.java} | 91 +-
...{JavaUdtfBuilder.java => PythonUdfBuilder.java} | 14 +-
.../udf/{JavaUdtf.java => PythonUdtf.java} | 91 +-
...JavaUdtfBuilder.java => PythonUdtfBuilder.java} | 32 +-
.../trees/expressions/literal/DateTimeLiteral.java | 4 +
.../expressions/literal/DateTimeV2Literal.java | 30 +
.../trees/expressions/literal/DateV2Literal.java | 4 +
.../visitor/AggregateFunctionVisitor.java | 4 +
.../expressions/visitor/ScalarFunctionVisitor.java | 5 +
.../visitor/TableGeneratingFunctionVisitor.java | 5 +
.../apache/doris/nereids/trees/plans/PlanType.java | 2 +
.../plans/commands/CreateFunctionCommand.java | 220 +-
.../trees/plans/commands/DropFunctionCommand.java | 35 +-
.../trees/plans/commands/ShowFunctionsCommand.java | 159 +-
.../plans/commands/ShowPythonPackagesCommand.java | 178 ++
.../plans/commands/ShowPythonVersionsCommand.java | 134 +
.../plans/commands/ShowRoutineLoadTaskCommand.java | 19 +-
.../trees/plans/logical/LogicalAggregate.java | 4 +-
.../trees/plans/logical/LogicalLoadProject.java | 2 +-
.../trees/plans/logical/LogicalProject.java | 2 +-
.../nereids/trees/plans/logical/LogicalView.java | 19 +-
.../plans/physical/PhysicalHashAggregate.java | 4 +-
.../trees/plans/visitor/CommandVisitor.java | 10 +
.../apache/doris/nereids/util/ExpressionUtils.java | 20 +-
.../org/apache/doris/nereids/util/PlanUtils.java | 2 +-
.../planner/BackendPartitionedSchemaScanNode.java | 1 +
.../org/apache/doris/planner/OlapScanNode.java | 26 +-
.../org/apache/doris/planner/OlapTableSink.java | 17 +-
.../main/java/org/apache/doris/qe/Coordinator.java | 14 +
.../java/org/apache/doris/qe/SessionVariable.java | 4 -
.../java/org/apache/doris/qe/StmtExecutor.java | 10 +
.../doris/qe/runtime/ThriftPlansBuilder.java | 8 +
.../WorkloadConditionUsername.java | 12 +-
.../WorkloadSchedPolicyMgr.java | 40 +-
.../apache/doris/service/FrontendServiceImpl.java | 97 +-
.../org/apache/doris/task/CleanUDFCacheTask.java | 5 +-
.../transaction/AutoPartitionCacheManager.java | 32 +-
.../doris/catalog/CatalogRecycleBinTest.java | 50 +-
.../apache/doris/catalog/CreateFunctionTest.java | 71 +
.../org/apache/doris/catalog/OlapTableTest.java | 122 +
.../cloud/system/CloudSystemInfoServiceTest.java | 15 +
.../org/apache/doris/common/GenericPoolTest.java | 12 +
.../jdbc/client/JdbcMySQLClientTest.java | 37 +
.../apache/doris/httpv2/rest/LoadActionTest.java | 445 ++-
.../doris/httpv2/rest/RestBaseControllerTest.java | 64 +
.../util/StreamLoadRedirectDrainUtilTest.java | 394 +++
.../load/routineload/KafkaRoutineLoadJobTest.java | 68 +
.../apache/doris/mtmv/MTMVPartitionUtilTest.java | 29 +
.../rules/analysis/AnalyzeSubQueryTest.java | 21 +
.../rules/expression/rules/TopnToMaxTest.java | 42 -
.../rewrite/CollectFilterAboveConsumerTest.java | 2 +-
.../trees/expressions/functions/agg/CountTest.java | 84 +
.../functions/scalar/UniqueFunctionTest.java | 2 +-
.../functions/udf/UdfVolatilityTest.java | 130 +
.../trees/expressions/literal/IPV4LiteralTest.java | 100 +
.../plans/commands/ShowFunctionsCommandTest.java | 103 +-
.../commands/ShowGlobalFunctionsCommandTest.java | 41 +-
.../trees/plans/logical/LogicalViewTest.java | 245 ++
.../java/org/apache/doris/qe/StmtExecutorTest.java | 38 +
.../WorkloadSchedPolicyMgrTest.java | 168 +-
.../transaction/AutoPartitionCacheManagerTest.java | 61 +
.../apache/doris/utframe/MockedBackendFactory.java | 12 +
gensrc/script/gen_build_version.sh | 2 +-
gensrc/thrift/AgentService.thrift | 1 +
gensrc/thrift/BackendService.thrift | 22 +-
gensrc/thrift/Descriptors.thrift | 1 +
gensrc/thrift/FrontendService.thrift | 4 +
gensrc/thrift/Types.thrift | 6 +-
regression-test/conf/regression-conf.groovy | 3 +
.../iceberg/test_iceberg_varbinary.out | 2 +
regression-test/data/jsonb_p0/test_jsonb_cast.csv | 2 +-
regression-test/data/jsonb_p0/test_jsonb_cast.out | 6 +-
.../data/jsonb_p0/test_jsonb_unescaped.csv | 2 +-
.../jsonb_p0/test_jsonb_with_unescaped_string.out | 4 +-
..._insert_strict_mode_and_filter_ratio_custom.out | 38 +
.../data/nereids_function_p0/scalar_function/D.out | 12 +
.../data/nereids_function_p0/scalar_function/M.out | 4 +-
.../data/pythonudaf_p0/test_pythonudaf_basic.out | 86 +
.../test_pythonudaf_complex_aggregation_inline.out | 79 +
.../test_pythonudaf_complex_aggregation_module.out | 138 +
...est_pythonudaf_complex_state_objects_inline.out | 71 +
...est_pythonudaf_complex_state_objects_module.out | 77 +
.../pythonudaf_p0/test_pythonudaf_concurrent.out | 47 +
.../pythonudaf_p0/test_pythonudaf_data_types.out | 35 +
.../data/pythonudaf_p0/test_pythonudaf_drop.out | 16 +
.../pythonudaf_p0/test_pythonudaf_edge_cases.out | 72 +
.../test_pythonudaf_forbidden_module.out} | 8 +-
.../data/pythonudaf_p0/test_pythonudaf_inline.out | 104 +
.../test_pythonudaf_inline_simple.out | 21 +
.../pythonudaf_p0/test_pythonudaf_nested_query.out | 67 +
.../test_pythonudaf_null_handling.out | 65 +
.../test_pythonudaf_pkg_isolation.out | 13 +
.../data/pythonudaf_p0/test_pythonudaf_simple.out | 21 +
.../test_pythonudaf_window_advanced_inline.out | 141 +
.../test_pythonudaf_window_advanced_module.out | 157 ++
.../test_pythonudaf_window_functions.out | 258 ++
.../pythonudaf_p0/test_pythonudf_udaf_mixed.out | 52 +
.../test_pythonudwf_comprehensive.out | 598 +++++
.../test_python_udaf_complex.out | 73 +
.../test_python_udf_business_logic.out | 56 +
.../test_python_udf_external_api.out | 13 +
.../test_python_udf_nlp_chinese.out | 53 +
.../test_python_udtf_complex.out | 97 +
.../sanity/test_pythonudf_assertequal.out} | 0
.../sanity/test_pythonudf_assertlessthan.out} | 0
.../data/pythonudf_p0/test_pythonudf_aggregate.out | 38 +
.../test_pythonudf_always_nullable.out | 42 +
.../data/pythonudf_p0/test_pythonudf_array.out | 109 +
.../pythonudf_p0/test_pythonudf_base_data_type.out | 15 +
.../data/pythonudf_p0/test_pythonudf_boolean.out | 28 +
.../test_pythonudf_complex_data_type.out | 37 +
.../pythonudf_p0/test_pythonudf_concurrent.out | 55 +
.../pythonudf_p0/test_pythonudf_data_types.out | 24 +
.../data/pythonudf_p0/test_pythonudf_drop.out | 16 +
.../pythonudf_p0/test_pythonudf_error_handling.out | 50 +
.../pythonudf_p0/test_pythonudf_file_protocol.out | 24 +
.../data/pythonudf_p0/test_pythonudf_float.out | 33 +
.../test_pythonudf_forbidden_module.out} | 4 +-
.../test_pythonudf_global_function.out | 23 +
.../pythonudf_p0/test_pythonudf_inline_complex.out | 19 +
.../pythonudf_p0/test_pythonudf_inline_scalar.out | 34 +
.../pythonudf_p0/test_pythonudf_inline_vector.out | 85 +
.../data/pythonudf_p0/test_pythonudf_int.out | 112 +
.../data/pythonudf_p0/test_pythonudf_ip.out | 57 +
.../data/pythonudf_p0/test_pythonudf_map.out | 10 +
.../pythonudf_p0/test_pythonudf_mixed_params.out | 77 +
.../data/pythonudf_p0/test_pythonudf_module.out | 13 +
.../test_pythonudf_module_advanced.out | 57 +
.../pythonudf_p0/test_pythonudf_module_scalar.out | 210 ++
.../pythonudf_p0/test_pythonudf_module_vector.out | 106 +
.../test_pythonudf_multiline_inline.out | 23 +
.../test_pythonudf_nested_complex_type.out | 20 +
.../pythonudf_p0/test_pythonudf_performance.out | 59 +
.../pythonudf_p0/test_pythonudf_pkg_isolation.out | 13 +
.../data/pythonudf_p0/test_pythonudf_ret_map.out | 17 +
.../test_pythonudf_runtime_version.out} | 4 +-
.../pythonudf_p0/test_pythonudf_schema_check.out | 112 +
.../data/pythonudf_p0/test_pythonudf_string.out | 67 +
.../data/pythonudf_p0/test_pythonudtf_array.out | 28 +
.../data/pythonudf_p0/test_pythonudtf_float.out | 24 +
.../data/pythonudf_p0/test_pythonudtf_int.out | 128 +
.../data/pythonudf_p0/test_pythonudtf_map.out | 9 +
.../data/pythonudf_p0/test_pythonudtf_string.out | 32 +
.../data/pythonudf_p0/test_pythonudtf_struct.out | 17 +
.../pythonudtf_p0/test_pythonudtf_basic_inline.out | 249 ++
.../pythonudtf_p0/test_pythonudtf_basic_module.out | 71 +
.../test_pythonudtf_data_types_inline.out | 112 +
.../test_pythonudtf_data_types_module.out | 112 +
.../data/pythonudtf_p0/test_pythonudtf_drop.out | 21 +
.../test_pythonudtf_edge_cases_inline.out | 70 +
.../test_pythonudtf_edge_cases_module.out | 70 +
.../test_pythonudtf_exceptions_inline.out | 86 +
.../test_pythonudtf_exceptions_module.out | 86 +
.../test_pythonudtf_forbidden_module.out} | 10 +-
.../test_pythonudtf_io_patterns_inline.out | 72 +
.../test_pythonudtf_io_patterns_module.out | 72 +
.../test_pythonudtf_pkg_isolation.out | 17 +
.../test_pythonudtf_sql_integration_inline.out | 213 ++
.../test_pythonudtf_sql_integration_module.out | 213 ++
.../support_type/avg_weighted/avg_weighted.out | 3 +
.../sql_functions/json_functions/json_search.out | 3 +
.../struct_functions/test_struct_functions.out | 32 +
.../query_p2/big_join_build/big_join_build.out | 5 +-
.../data/variant_p0/compaction/test_compaction.out | 4 +
.../data/variant_p0/sql/select_from_value.out | 2 +-
.../org/apache/doris/regression/suite/Suite.groovy | 36 +
.../pipeline/cloud_p0/conf/be_custom.conf | 5 +
.../pipeline/cloud_p1/conf/be_custom.conf | 5 +
regression-test/pipeline/external/conf/be.conf | 6 +-
.../pipeline/external/conf/regression-conf.groovy | 1 +
.../pipeline/nonConcurrent/conf/be.conf | 6 +
regression-test/pipeline/p0/conf/be.conf | 7 +
regression-test/pipeline/p1/conf/be.conf | 6 +
.../pipeline/performance/conf/be_custom.conf | 8 +-
.../pipeline/vault_p0/conf/be_custom.conf | 6 +
.../test_backup_restore_colocate.groovy | 55 +-
.../check_hash_bucket_table.groovy | 14 +-
.../test_packed_file_inverted_index_query.groovy | 137 +
...c_compaction_cross_v1_stale_base_refresh.groovy | 158 ++
.../compaction/test_admin_compact_table.groovy | 5 +-
...paction_agg_and_remove_pre_delete_bitmap.groovy | 8 +-
.../test_mow_compaction_and_read_stale.groovy | 4 +-
.../test_mow_compaction_and_schema_change.groovy | 4 +-
.../string_len/test_string_len_complex.groovy | 12 +
.../import/import-way/insert-into-manual.md.groovy | 1 +
.../hive/test_hive_view_schema_drift.groovy | 115 +
.../iceberg/test_iceberg_varbinary.groovy | 11 +
.../tvf/test_file_tvf_hdfs.groovy | 3 +
.../external_table_p0/tvf/test_hdfs_tvf.groovy | 3 +
.../cloud/test_cloud_ms_rpc_table_throttle.groovy | 215 ++
...nsert_group_commit_into_max_filter_ratio.groovy | 7 +-
.../insert_p0/test_error_msg_truncate.groovy | 1 +
.../suites/javaudf_p0/test_javaudf_float.groovy | 3 +-
.../test_streaming_insert_job_alter.groovy | 6 +-
.../load/insert/test_array_string_insert.groovy | 1 +
.../load_p0/insert/test_insert_statistic.groovy | 1 +
...test_insert_strict_mode_and_filter_ratio.groovy | 20 +-
...sert_strict_mode_and_filter_ratio_custom.groovy | 579 ++++
.../routine_load/test_show_routine_load.groovy | 16 +-
.../scripts/stream_load_redirect_chunked_e2e.py | 140 +
...test_stream_load_fe_redirect_chunked_e2e.groovy | 117 +
.../load_p0/tvf/test_tvf_error_column.groovy | 2 +
.../test_tvf_strict_mode_and_filter_ratio.groovy | 12 +-
.../metrics_p0/test_delete_bitmap_metrics.groovy | 12 +
.../suites/mtmv_p0/test_expand_star_mtmv.groovy | 3 +-
.../suites/nereids_function_p0/load.groovy | 13 +-
.../nereids_function_p0/scalar_function/D.groovy | 113 +
.../nereids_function_p0/scalar_function/M.groovy | 1 +
.../nereids_p0/expression/topn_to_max.groovy | 49 -
.../insert_into_table/insert_values.groovy | 2 +
.../show/test_nereids_show_functions.groovy | 133 +-
.../show/test_nereids_show_global_functions.groovy | 10 +-
.../show/test_show_python_packages_command.groovy | 55 +
.../show/test_show_python_versions_command.groovy | 59 +
.../subquery/correlated_scalar_subquery.groovy | 16 +-
.../nereids_p0/variables_persist/test_mtmv.groovy | 4 +-
.../partition_prune/one_col_range_partition.groovy | 4 +-
.../nereids_syntax_p0/sub_query_correlated.groovy | 9 +-
.../test_python_raise_error_propagation.groovy | 269 ++
.../pythonudaf_p0/test_pythonudaf_basic.groovy | 166 ++
...st_pythonudaf_complex_aggregation_inline.groovy | 408 +++
...st_pythonudaf_complex_aggregation_module.groovy | 340 +++
..._pythonudaf_complex_state_objects_inline.groovy | 678 +++++
..._pythonudaf_complex_state_objects_module.groovy | 373 +++
.../test_pythonudaf_concurrent.groovy | 401 +++
.../test_pythonudaf_data_types.groovy | 366 +++
.../pythonudaf_p0/test_pythonudaf_drop.groovy | 196 ++
.../test_pythonudaf_edge_cases.groovy | 442 +++
.../test_pythonudaf_forbidden_module.groovy | 85 +
.../pythonudaf_p0/test_pythonudaf_inline.groovy | 495 ++++
.../test_pythonudaf_inline_simple.groovy | 98 +
.../test_pythonudaf_nested_query.groovy | 363 +++
.../test_pythonudaf_null_handling.groovy | 303 +++
.../test_pythonudaf_object_types_inline.groovy | 184 ++
.../test_pythonudaf_pkg_isolation.groovy | 95 +
.../pythonudaf_p0/test_pythonudaf_simple.groovy | 80 +
.../test_pythonudaf_window_advanced_inline.groovy | 509 ++++
.../test_pythonudaf_window_advanced_module.groovy | 448 ++++
.../test_pythonudaf_window_functions.groovy | 538 ++++
.../pythonudaf_p0/test_pythonudf_udaf_mixed.groovy | 355 +++
.../test_pythonudwf_comprehensive.groovy | 1140 ++++++++
.../udaf_scripts/complex_state_udaf.py | 438 +++
.../pythonudaf_p0/udaf_scripts/datetime.py} | 26 +-
.../udaf_scripts/forbidden/datetime.py} | 26 +-
.../pythonudaf_p0/udaf_scripts/forbidden/os.py} | 26 +-
.../udaf_scripts/forbidden/pathlib.py} | 26 +-
.../udaf_scripts/forbidden/pickle.py} | 26 +-
.../pythonudaf_p0/udaf_scripts/os.py} | 26 +-
.../pythonudaf_p0/udaf_scripts/pathlib.py} | 26 +-
.../pythonudaf_p0/udaf_scripts/pickle.py} | 26 +-
.../udaf_scripts/python_udaf_drop_a/drop_udaf.py} | 37 +-
.../python_udaf_drop_a/python_udaf_drop_test.zip | Bin 0 -> 850 bytes
.../udaf_scripts/python_udaf_drop_b/drop_udaf.py} | 36 +-
.../python_udaf_drop_b/python_udaf_drop_test.zip | Bin 0 -> 817 bytes
.../udaf_scripts/python_udaf_forbidden_module.zip | Bin 0 -> 1968 bytes
.../udaf_scripts/python_udaf_pkg_a/mypkg/mod_x.py} | 36 +-
.../udaf_scripts/python_udaf_pkg_a/mypkg/mod_y.py} | 36 +-
.../python_udaf_pkg_a/python_udaf_pkg_test.zip | Bin 0 -> 1759 bytes
.../udaf_scripts/python_udaf_pkg_b/mypkg/mod_x.py} | 36 +-
.../udaf_scripts/python_udaf_pkg_b/mypkg/mod_y.py} | 36 +-
.../python_udaf_pkg_b/python_udaf_pkg_test.zip | Bin 0 -> 1766 bytes
.../suites/pythonudaf_p0/udaf_scripts/pyudaf.zip | Bin 0 -> 9153 bytes
.../udaf_scripts/safepkg_udaf/pathlib.py} | 26 +-
.../pythonudaf_p0/udaf_scripts/simple_udaf.py} | 32 +-
.../pythonudaf_p0/udaf_scripts/stats_udaf.py | 250 ++
.../suites/pythonudaf_p0/udaf_scripts/sum_int.py | 70 +
.../pythonudaf_p0/udaf_scripts/udaf_errors.py} | 31 +-
.../pythonudaf_p0/udaf_scripts/window_udaf.py | 174 ++
.../py_udf_complex_scripts/business_logic.py | 643 +++++
.../py_udf_complex_scripts/complex_udaf.py | 719 +++++
.../py_udf_complex_scripts/complex_udtf.py | 550 ++++
.../py_udf_complex_scripts/external_api.py | 261 ++
.../py_udf_complex_scripts/nlp_chinese.py | 463 ++++
.../py_udf_complex_scripts/py_udf_complex.zip | Bin 0 -> 18349 bytes
.../test_python_udaf_complex.groovy | 525 ++++
.../test_python_udf_business_logic.groovy | 419 +++
.../test_python_udf_external_api.groovy | 84 +
.../test_python_udf_nlp_chinese.groovy | 333 +++
.../test_python_udtf_complex.groovy | 446 ++++
.../sanity/test_pythonudf_assertequal.groovy | 56 +
.../sanity/test_pythonudf_assertlessthan.groovy | 56 +
.../pythonudf_p0/test_pythonudf_aggregate.groovy | 197 ++
.../test_pythonudf_always_nullable.groovy | 178 ++
.../pythonudf_p0/test_pythonudf_array.groovy | 109 +
.../test_pythonudf_base_data_type.groovy | 323 +++
.../pythonudf_p0/test_pythonudf_boolean.groovy | 67 +
.../test_pythonudf_complex_data_type.groovy | 408 +++
.../pythonudf_p0/test_pythonudf_concurrent.groovy | 345 +++
.../pythonudf_p0/test_pythonudf_data_types.groovy | 190 ++
.../suites/pythonudf_p0/test_pythonudf_drop.groovy | 238 ++
.../test_pythonudf_error_handling.groovy | 253 ++
.../test_pythonudf_file_protocol.groovy | 150 ++
.../pythonudf_p0/test_pythonudf_float.groovy | 88 +
.../test_pythonudf_forbidden_module.groovy | 75 +
.../test_pythonudf_global_function.groovy | 146 +
.../test_pythonudf_inline_complex.groovy | 134 +
.../test_pythonudf_inline_scalar.groovy | 136 +
.../test_pythonudf_inline_vector.groovy | 409 +++
.../suites/pythonudf_p0/test_pythonudf_int.groovy | 124 +
.../suites/pythonudf_p0/test_pythonudf_ip.groovy | 342 +++
.../suites/pythonudf_p0/test_pythonudf_map.groovy | 85 +
.../test_pythonudf_mixed_params.groovy | 443 +++
.../pythonudf_p0/test_pythonudf_module.groovy | 74 +
.../test_pythonudf_module_advanced.groovy | 180 ++
.../test_pythonudf_module_scalar.groovy | 818 ++++++
.../test_pythonudf_module_vector.groovy | 429 +++
.../test_pythonudf_multiline_inline.groovy | 211 ++
.../test_pythonudf_nested_complex_type.groovy | 445 +++
.../pythonudf_p0/test_pythonudf_no_input.groovy | 64 +
.../test_pythonudf_object_types_inline.groovy | 105 +
.../test_pythonudf_pkg_isolation.groovy | 84 +
.../pythonudf_p0/test_pythonudf_ret_map.groovy | 127 +
.../test_pythonudf_schema_check.groovy | 544 ++++
.../pythonudf_p0/test_pythonudf_string.groovy | 90 +
.../pythonudf_p0/test_pythonudf_volatility.groovy | 204 ++
.../pythonudf_p0/udf_scripts/array_int_test.py} | 17 +-
.../udf_scripts/array_return_array_int_test.py} | 19 +-
.../udf_scripts/array_return_array_string_test.py} | 19 +-
.../pythonudf_p0/udf_scripts/array_string_test.py} | 17 +-
.../pythonudf_p0/udf_scripts/assert_equal_test.py} | 14 +-
.../udf_scripts/assert_lessthan_test.py} | 16 +-
.../pythonudf_p0/udf_scripts/boolean_test.py} | 14 +-
.../pythonudf_p0/udf_scripts/double_test.py} | 11 +-
.../pythonudf_p0/udf_scripts/float_test.py} | 13 +-
.../pythonudf_p0/udf_scripts/forbidden/json.py} | 15 +-
.../pythonudf_p0/udf_scripts/forbidden/logging.py} | 15 +-
.../pythonudf_p0/udf_scripts/forbidden/sys.py} | 15 +-
.../udf_scripts/forbidden/threading.py} | 15 +-
.../pythonudf_p0/udf_scripts/int_test.py} | 13 +-
.../pythonudf_p0/udf_scripts/json.py} | 15 +-
.../pythonudf_p0/udf_scripts/logging.py} | 15 +-
.../map_int_double_ret_string_string_test.py} | 13 +-
.../pythonudf_p0/udf_scripts/map_int_int_test.py} | 14 +-
.../udf_scripts/map_ret_int_double_test.py} | 14 +-
.../udf_scripts/map_ret_int_int_test.py} | 14 +-
.../udf_scripts/map_ret_string_string_test.py} | 14 +-
.../udf_scripts/map_string_string_test.py} | 19 +-
.../udf_scripts/python_udf_array_type.py} | 29 +-
.../udf_scripts/python_udf_data_type.py} | 24 +-
.../udf_scripts/python_udf_drop_a/drop_udf.py} | 13 +-
.../python_udf_drop_a/python_udf_drop_test.zip | Bin 0 -> 2143 bytes
.../udf_scripts/python_udf_drop_b/drop_udf.py} | 13 +-
.../python_udf_drop_b/python_udf_drop_test.zip | Bin 0 -> 2143 bytes
.../udf_scripts/python_udf_forbidden_module.zip | Bin 0 -> 1468 bytes
.../udf_scripts/python_udf_map_type.py} | 21 +-
.../udf_scripts/python_udf_module_test.zip | Bin 0 -> 9208 bytes
.../udf_scripts/python_udf_pkg_a/mypkg/mod_x.py} | 13 +-
.../udf_scripts/python_udf_pkg_a/mypkg/mod_y.py} | 13 +-
.../python_udf_pkg_a/python_udf_pkg_test.zip | Bin 0 -> 1460 bytes
.../udf_scripts/python_udf_pkg_b/mypkg/mod_x.py} | 13 +-
.../udf_scripts/python_udf_pkg_b/mypkg/mod_y.py} | 13 +-
.../python_udf_pkg_b/python_udf_pkg_test.zip | Bin 0 -> 1462 bytes
.../udf_scripts/python_udf_scalar_ops.py | 413 +++
.../udf_scripts/python_udf_scalar_ops.zip | Bin 0 -> 3546 bytes
.../udf_scripts/python_udf_struct_type.py | 47 +
.../udf_scripts/python_udf_vector_ops.py | 168 ++
.../udf_scripts/python_udf_vector_ops.zip | Bin 0 -> 2053 bytes
.../suites/pythonudf_p0/udf_scripts/pyudf.zip | Bin 0 -> 15967 bytes
.../udf_scripts/safepkg_udf/logging.py} | 15 +-
.../pythonudf_p0/udf_scripts/string_test.py} | 11 +-
.../pythonudf_p0/udf_scripts/sys.py} | 15 +-
.../pythonudf_p0/udf_scripts/threading.py} | 15 +-
.../pythonudf_p0/udf_scripts/udf_errors.py} | 11 +-
.../pythonudf_p0/udtf_scripts/array_int_test.py} | 12 +-
.../udtf_scripts/array_string_test.py} | 12 +-
.../pythonudf_p0/udtf_scripts/double_test.py} | 11 +-
.../pythonudf_p0/udtf_scripts/float_test.py} | 11 +-
.../pythonudf_p0/udtf_scripts/int_test.py} | 12 +-
.../pythonudf_p0/udtf_scripts/map_test.py} | 12 +-
.../pythonudf_p0/udtf_scripts/string_test.py} | 12 +-
.../pythonudf_p0/udtf_scripts/struct_test.py} | 12 +-
.../test_pythonudtf_basic_inline.groovy | 1277 +++++++++
.../test_pythonudtf_basic_module.groovy | 475 ++++
.../test_pythonudtf_data_types_inline.groovy | 979 +++++++
.../test_pythonudtf_data_types_module.groovy | 827 ++++++
.../pythonudtf_p0/test_pythonudtf_drop.groovy | 179 ++
.../test_pythonudtf_edge_cases_inline.groovy | 701 +++++
.../test_pythonudtf_edge_cases_module.groovy | 554 ++++
.../test_pythonudtf_exceptions_inline.groovy | 788 ++++++
.../test_pythonudtf_exceptions_module.groovy | 609 +++++
.../test_pythonudtf_forbidden_module.groovy | 98 +
.../test_pythonudtf_io_patterns_inline.groovy | 531 ++++
.../test_pythonudtf_io_patterns_module.groovy | 442 +++
.../pythonudtf_p0/test_pythonudtf_no_input.groovy | 68 +
.../test_pythonudtf_object_types_inline.groovy | 105 +
.../test_pythonudtf_pkg_isolation.groovy | 129 +
.../test_pythonudtf_sql_integration_inline.groovy | 1001 +++++++
.../test_pythonudtf_sql_integration_module.groovy | 984 +++++++
.../pythonudtf_p0/udtf_scripts/base64.py} | 14 +-
.../udtf_scripts/forbidden/base64.py} | 14 +-
.../udtf_scripts/forbidden/importlib.py} | 14 +-
.../udtf_scripts/forbidden/inspect.py} | 14 +-
.../udtf_scripts/forbidden/ipaddress.py} | 14 +-
.../pythonudtf_p0/udtf_scripts/importlib.py} | 14 +-
.../pythonudtf_p0/udtf_scripts/inspect.py} | 14 +-
.../pythonudtf_p0/udtf_scripts/ipaddress.py} | 14 +-
.../udtf_scripts/python_udtf_drop_a/drop_udtf.py} | 11 +-
.../python_udtf_drop_a/python_udtf_drop_test.zip | Bin 0 -> 662 bytes
.../udtf_scripts/python_udtf_drop_b/drop_udtf.py} | 12 +-
.../python_udtf_drop_b/python_udtf_drop_test.zip | Bin 0 -> 664 bytes
.../udtf_scripts/python_udtf_forbidden_module.zip | Bin 0 -> 1550 bytes
.../udtf_scripts/python_udtf_pkg_a/mypkg/mod_x.py} | 12 +-
.../udtf_scripts/python_udtf_pkg_a/mypkg/mod_y.py} | 12 +-
.../python_udtf_pkg_a/python_udtf_pkg_test.zip | Bin 0 -> 1456 bytes
.../udtf_scripts/python_udtf_pkg_b/mypkg/mod_x.py} | 12 +-
.../udtf_scripts/python_udtf_pkg_b/mypkg/mod_y.py} | 12 +-
.../python_udtf_pkg_b/python_udtf_pkg_test.zip | Bin 0 -> 1461 bytes
.../suites/pythonudtf_p0/udtf_scripts/pyudtf.zip | Bin 0 -> 10924 bytes
.../udtf_scripts/pyudtf_module/basic_udtf.py | 95 +
.../udtf_scripts/pyudtf_module/data_types_udtf.py | 191 ++
.../udtf_scripts/pyudtf_module/edge_cases_udtf.py | 181 ++
.../udtf_scripts/pyudtf_module/exceptions_udtf.py | 220 ++
.../udtf_scripts/pyudtf_module/io_patterns_udtf.py | 111 +
.../pyudtf_module/sql_integration_udtf.py} | 30 +-
.../udtf_scripts/safepkg_udtf/inspect.py} | 14 +-
.../support_type/avg_weighted/avg_weighted.groovy | 14 +
.../json_functions/json_search.groovy | 10 +
.../struct_functions/test_struct_functions.groovy | 7 +
.../query_p2/big_join_build/big_join_build.groovy | 6 +-
.../lateral_view/load_from_big_lateral_view.groovy | 2 +-
.../schema_change_p0/test_modify_struct.groovy | 1 +
.../test_varchar_sc_in_complex.groovy | 1 +
...st_show_create_table_with_storage_policy.groovy | 6 +-
.../statistics/test_analyze_long_string.groovy | 12 +-
.../suites/statistics/test_analyze_mv.groovy | 3 +-
.../flexible/test_f_no_simdjson.groovy | 166 --
.../test_p_seq_publish_read_from_old.groovy | 3 +-
.../variant_p0/compaction/test_compaction.groovy | 4 +-
.../suites/variant_p0/element_function.groovy | 28 +
.../test_variant_count_distinct.groovy} | 45 +-
.../test_workload_sched_policy.groovy | 42 +-
684 files changed, 64811 insertions(+), 2786 deletions(-)
create mode 100644 be/src/cloud/cloud_ms_backpressure_handler.cpp
create mode 100644 be/src/cloud/cloud_ms_backpressure_handler.h
create mode 100644 be/src/cloud/cloud_ms_rpc_rate_limit_services.cpp
create mode 100644 be/src/cloud/cloud_ms_rpc_rate_limit_services.h
create mode 100644 be/src/cloud/cloud_ms_rpc_rate_limiters.cpp
create mode 100644 be/src/cloud/cloud_ms_rpc_rate_limiters.h
create mode 100644 be/src/cloud/cloud_throttle_state_machine.cpp
create mode 100644 be/src/cloud/cloud_throttle_state_machine.h
create mode 100644 be/src/exprs/aggregate/aggregate_function_python_udaf.cpp
create mode 100644 be/src/exprs/aggregate/aggregate_function_python_udaf.h
create mode 100644 be/src/exprs/function/function_python_udf.cpp
create mode 100644 be/src/exprs/function/function_python_udf.h
create mode 100644 be/src/exprs/table_function/python_udtf_function.cpp
create mode 100644 be/src/exprs/table_function/python_udtf_function.h
create mode 100644
be/src/information_schema/schema_backend_ms_rpc_table_throttlers_scanner.cpp
copy be/src/{format/arrow/arrow_block_convertor.h =>
information_schema/schema_backend_ms_rpc_table_throttlers_scanner.h} (56%)
copy regression-test/pipeline/performance/conf/be_custom.conf =>
be/src/udf/CMakeLists.txt (64%)
mode change 100644 => 100755
create mode 100644 be/src/udf/python/python_client.cpp
create mode 100644 be/src/udf/python/python_client.h
create mode 100644 be/src/udf/python/python_env.cpp
create mode 100644 be/src/udf/python/python_env.h
create mode 100644 be/src/udf/python/python_server.cpp
create mode 100644 be/src/udf/python/python_server.h
create mode 100644 be/src/udf/python/python_server.py
create mode 100644 be/src/udf/python/python_udaf_client.cpp
create mode 100644 be/src/udf/python/python_udaf_client.h
copy be/src/{format/arrow/arrow_block_convertor.h =>
udf/python/python_udf_client.cpp} (53%)
create mode 100644 be/src/udf/python/python_udf_client.h
create mode 100644 be/src/udf/python/python_udf_meta.cpp
create mode 100644 be/src/udf/python/python_udf_meta.h
create mode 100644 be/src/udf/python/python_udf_runtime.cpp
create mode 100644 be/src/udf/python/python_udf_runtime.h
create mode 100644 be/src/udf/python/python_udtf_client.cpp
create mode 100644 be/src/udf/python/python_udtf_client.h
create mode 100644 be/test/cloud/cloud_ms_backpressure_handler_test.cpp
create mode 100644 be/test/cloud/cloud_ms_rpc_rate_limiters_test.cpp
create mode 100644 be/test/cloud/cloud_throttle_state_machine_test.cpp
create mode 100644 be/test/core/data_type_serde/data_type_serde_array_test.cpp
create mode 100644
be/test/runtime/workload_management/query_task_controller_test.cpp
copy be/{src/core/packed_int128.h =>
test/runtime/workload_management/workload_condition_test.cpp} (52%)
create mode 100644 be/test/udf/python/python_env_test.cpp
create mode 100644 be/test/udf/python/python_server_test.cpp
create mode 100644 be/test/udf/python/python_udaf_client_test.cpp
create mode 100644 be/test/udf/python/python_udf_meta_test.cpp
create mode 100644 be/test/udf/python/python_udf_runtime_test.cpp
rename common/cpp/{s3_rate_limiter.cpp => token_bucket_rate_limiter.cpp} (75%)
rename common/cpp/{s3_rate_limiter.h => token_bucket_rate_limiter.h} (83%)
create mode 100644
docker/thirdparties/docker-compose/iceberg/scripts/create_preinstalled_scripts/iceberg/run30.sql
create mode 100644
fe/be-java-extensions/max-compute-connector/src/main/java/org/apache/doris/maxcompute/MaxComputeFeClient.java
create mode 100644
fe/be-java-extensions/max-compute-connector/src/test/java/org/apache/doris/maxcompute/MaxComputeFeClientTest.java
copy fe/fe-core/src/main/java/org/apache/doris/{task/CleanUDFCacheTask.java =>
catalog/FunctionVolatility.java} (52%)
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/httpv2/util/StreamLoadRedirectDrainUtil.java
delete mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/TopnToMax.java
copy be/src/exprs/function/array/function_array_element.cpp =>
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/VolatileExpression.java
(68%)
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/VolatileIdentity.java
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/udf/{JavaUdaf.java
=> PythonUdaf.java} (64%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/udf/{JavaUdafBuilder.java
=> PythonUdafBuilder.java} (89%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/udf/{JavaUdf.java
=> PythonUdf.java} (61%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/udf/{JavaUdtfBuilder.java
=> PythonUdfBuilder.java} (90%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/udf/{JavaUdtf.java
=> PythonUdtf.java} (63%)
copy
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/udf/{JavaUdtfBuilder.java
=> PythonUdtfBuilder.java} (77%)
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/ShowPythonPackagesCommand.java
create mode 100644
fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/ShowPythonVersionsCommand.java
create mode 100644
fe/fe-core/src/test/java/org/apache/doris/datasource/jdbc/client/JdbcMySQLClientTest.java
create mode 100644
fe/fe-core/src/test/java/org/apache/doris/httpv2/rest/RestBaseControllerTest.java
create mode 100644
fe/fe-core/src/test/java/org/apache/doris/httpv2/util/StreamLoadRedirectDrainUtilTest.java
delete mode 100644
fe/fe-core/src/test/java/org/apache/doris/nereids/rules/expression/rules/TopnToMaxTest.java
create mode 100644
fe/fe-core/src/test/java/org/apache/doris/nereids/trees/expressions/functions/agg/CountTest.java
create mode 100644
fe/fe-core/src/test/java/org/apache/doris/nereids/trees/expressions/functions/udf/UdfVolatilityTest.java
create mode 100644
fe/fe-core/src/test/java/org/apache/doris/nereids/trees/expressions/literal/IPV4LiteralTest.java
create mode 100644
fe/fe-core/src/test/java/org/apache/doris/nereids/trees/plans/logical/LogicalViewTest.java
create mode 100644
fe/fe-core/src/test/java/org/apache/doris/transaction/AutoPartitionCacheManagerTest.java
create mode 100644
regression-test/data/load_p0/insert/test_insert_strict_mode_and_filter_ratio_custom.out
create mode 100644 regression-test/data/pythonudaf_p0/test_pythonudaf_basic.out
create mode 100644
regression-test/data/pythonudaf_p0/test_pythonudaf_complex_aggregation_inline.out
create mode 100644
regression-test/data/pythonudaf_p0/test_pythonudaf_complex_aggregation_module.out
create mode 100644
regression-test/data/pythonudaf_p0/test_pythonudaf_complex_state_objects_inline.out
create mode 100644
regression-test/data/pythonudaf_p0/test_pythonudaf_complex_state_objects_module.out
create mode 100644
regression-test/data/pythonudaf_p0/test_pythonudaf_concurrent.out
create mode 100644
regression-test/data/pythonudaf_p0/test_pythonudaf_data_types.out
create mode 100644 regression-test/data/pythonudaf_p0/test_pythonudaf_drop.out
create mode 100644
regression-test/data/pythonudaf_p0/test_pythonudaf_edge_cases.out
copy regression-test/data/{nereids_p0/expression/topn_to_max.out =>
pythonudaf_p0/test_pythonudaf_forbidden_module.out} (74%)
create mode 100644
regression-test/data/pythonudaf_p0/test_pythonudaf_inline.out
create mode 100644
regression-test/data/pythonudaf_p0/test_pythonudaf_inline_simple.out
create mode 100644
regression-test/data/pythonudaf_p0/test_pythonudaf_nested_query.out
create mode 100644
regression-test/data/pythonudaf_p0/test_pythonudaf_null_handling.out
create mode 100644
regression-test/data/pythonudaf_p0/test_pythonudaf_pkg_isolation.out
create mode 100644
regression-test/data/pythonudaf_p0/test_pythonudaf_simple.out
create mode 100644
regression-test/data/pythonudaf_p0/test_pythonudaf_window_advanced_inline.out
create mode 100644
regression-test/data/pythonudaf_p0/test_pythonudaf_window_advanced_module.out
create mode 100644
regression-test/data/pythonudaf_p0/test_pythonudaf_window_functions.out
create mode 100644
regression-test/data/pythonudaf_p0/test_pythonudf_udaf_mixed.out
create mode 100644
regression-test/data/pythonudaf_p0/test_pythonudwf_comprehensive.out
create mode 100644
regression-test/data/pythonudf_complex_p0/test_python_udaf_complex.out
create mode 100644
regression-test/data/pythonudf_complex_p0/test_python_udf_business_logic.out
create mode 100644
regression-test/data/pythonudf_complex_p0/test_python_udf_external_api.out
create mode 100644
regression-test/data/pythonudf_complex_p0/test_python_udf_nlp_chinese.out
create mode 100644
regression-test/data/pythonudf_complex_p0/test_python_udtf_complex.out
copy regression-test/data/{javaudf_p0/sanity/test_javaudf_assertequal.out =>
pythonudf_p0/sanity/test_pythonudf_assertequal.out} (100%)
copy regression-test/data/{javaudf_p0/sanity/test_javaudf_assertlessthan.out
=> pythonudf_p0/sanity/test_pythonudf_assertlessthan.out} (100%)
create mode 100644
regression-test/data/pythonudf_p0/test_pythonudf_aggregate.out
create mode 100644
regression-test/data/pythonudf_p0/test_pythonudf_always_nullable.out
create mode 100644 regression-test/data/pythonudf_p0/test_pythonudf_array.out
create mode 100644
regression-test/data/pythonudf_p0/test_pythonudf_base_data_type.out
create mode 100644 regression-test/data/pythonudf_p0/test_pythonudf_boolean.out
create mode 100644
regression-test/data/pythonudf_p0/test_pythonudf_complex_data_type.out
create mode 100644
regression-test/data/pythonudf_p0/test_pythonudf_concurrent.out
create mode 100644
regression-test/data/pythonudf_p0/test_pythonudf_data_types.out
create mode 100644 regression-test/data/pythonudf_p0/test_pythonudf_drop.out
create mode 100644
regression-test/data/pythonudf_p0/test_pythonudf_error_handling.out
create mode 100644
regression-test/data/pythonudf_p0/test_pythonudf_file_protocol.out
create mode 100644 regression-test/data/pythonudf_p0/test_pythonudf_float.out
copy regression-test/data/{query_p2/big_join_build/big_join_build.out =>
pythonudf_p0/test_pythonudf_forbidden_module.out} (78%)
create mode 100644
regression-test/data/pythonudf_p0/test_pythonudf_global_function.out
create mode 100644
regression-test/data/pythonudf_p0/test_pythonudf_inline_complex.out
create mode 100644
regression-test/data/pythonudf_p0/test_pythonudf_inline_scalar.out
create mode 100644
regression-test/data/pythonudf_p0/test_pythonudf_inline_vector.out
create mode 100644 regression-test/data/pythonudf_p0/test_pythonudf_int.out
create mode 100644 regression-test/data/pythonudf_p0/test_pythonudf_ip.out
create mode 100644 regression-test/data/pythonudf_p0/test_pythonudf_map.out
create mode 100644
regression-test/data/pythonudf_p0/test_pythonudf_mixed_params.out
create mode 100644 regression-test/data/pythonudf_p0/test_pythonudf_module.out
create mode 100644
regression-test/data/pythonudf_p0/test_pythonudf_module_advanced.out
create mode 100644
regression-test/data/pythonudf_p0/test_pythonudf_module_scalar.out
create mode 100644
regression-test/data/pythonudf_p0/test_pythonudf_module_vector.out
create mode 100644
regression-test/data/pythonudf_p0/test_pythonudf_multiline_inline.out
create mode 100644
regression-test/data/pythonudf_p0/test_pythonudf_nested_complex_type.out
create mode 100644
regression-test/data/pythonudf_p0/test_pythonudf_performance.out
create mode 100644
regression-test/data/pythonudf_p0/test_pythonudf_pkg_isolation.out
create mode 100644 regression-test/data/pythonudf_p0/test_pythonudf_ret_map.out
copy
regression-test/data/{query_p0/aggregate/support_type/avg_weighted/avg_weighted.out
=> pythonudf_p0/test_pythonudf_runtime_version.out} (75%)
create mode 100644
regression-test/data/pythonudf_p0/test_pythonudf_schema_check.out
create mode 100644 regression-test/data/pythonudf_p0/test_pythonudf_string.out
create mode 100644 regression-test/data/pythonudf_p0/test_pythonudtf_array.out
create mode 100644 regression-test/data/pythonudf_p0/test_pythonudtf_float.out
create mode 100644 regression-test/data/pythonudf_p0/test_pythonudtf_int.out
create mode 100644 regression-test/data/pythonudf_p0/test_pythonudtf_map.out
create mode 100644 regression-test/data/pythonudf_p0/test_pythonudtf_string.out
create mode 100644 regression-test/data/pythonudf_p0/test_pythonudtf_struct.out
create mode 100644
regression-test/data/pythonudtf_p0/test_pythonudtf_basic_inline.out
create mode 100644
regression-test/data/pythonudtf_p0/test_pythonudtf_basic_module.out
create mode 100644
regression-test/data/pythonudtf_p0/test_pythonudtf_data_types_inline.out
create mode 100644
regression-test/data/pythonudtf_p0/test_pythonudtf_data_types_module.out
create mode 100644 regression-test/data/pythonudtf_p0/test_pythonudtf_drop.out
create mode 100644
regression-test/data/pythonudtf_p0/test_pythonudtf_edge_cases_inline.out
create mode 100644
regression-test/data/pythonudtf_p0/test_pythonudtf_edge_cases_module.out
create mode 100644
regression-test/data/pythonudtf_p0/test_pythonudtf_exceptions_inline.out
create mode 100644
regression-test/data/pythonudtf_p0/test_pythonudtf_exceptions_module.out
rename regression-test/data/{nereids_p0/expression/topn_to_max.out =>
pythonudtf_p0/test_pythonudtf_forbidden_module.out} (67%)
create mode 100644
regression-test/data/pythonudtf_p0/test_pythonudtf_io_patterns_inline.out
create mode 100644
regression-test/data/pythonudtf_p0/test_pythonudtf_io_patterns_module.out
create mode 100644
regression-test/data/pythonudtf_p0/test_pythonudtf_pkg_isolation.out
create mode 100644
regression-test/data/pythonudtf_p0/test_pythonudtf_sql_integration_inline.out
create mode 100644
regression-test/data/pythonudtf_p0/test_pythonudtf_sql_integration_module.out
create mode 100644
regression-test/suites/cloud_p0/packed_file/test_packed_file_inverted_index_query.groovy
create mode 100644
regression-test/suites/cloud_p1/schema_change/compaction_optimization/test_sc_compaction_cross_v1_stale_base_refresh.groovy
create mode 100644
regression-test/suites/external_table_p0/hive/test_hive_view_schema_drift.groovy
create mode 100644
regression-test/suites/fault_injection_p0/cloud/test_cloud_ms_rpc_table_throttle.groovy
create mode 100644
regression-test/suites/load_p0/insert/test_insert_strict_mode_and_filter_ratio_custom.groovy
create mode 100644
regression-test/suites/load_p0/stream_load/scripts/stream_load_redirect_chunked_e2e.py
create mode 100644
regression-test/suites/load_p0/stream_load/test_stream_load_fe_redirect_chunked_e2e.groovy
delete mode 100644
regression-test/suites/nereids_p0/expression/topn_to_max.groovy
create mode 100644
regression-test/suites/nereids_p0/show/test_show_python_packages_command.groovy
create mode 100644
regression-test/suites/nereids_p0/show/test_show_python_versions_command.groovy
create mode 100644
regression-test/suites/pythonudaf_p0/test_python_raise_error_propagation.groovy
create mode 100644
regression-test/suites/pythonudaf_p0/test_pythonudaf_basic.groovy
create mode 100644
regression-test/suites/pythonudaf_p0/test_pythonudaf_complex_aggregation_inline.groovy
create mode 100644
regression-test/suites/pythonudaf_p0/test_pythonudaf_complex_aggregation_module.groovy
create mode 100644
regression-test/suites/pythonudaf_p0/test_pythonudaf_complex_state_objects_inline.groovy
create mode 100644
regression-test/suites/pythonudaf_p0/test_pythonudaf_complex_state_objects_module.groovy
create mode 100644
regression-test/suites/pythonudaf_p0/test_pythonudaf_concurrent.groovy
create mode 100644
regression-test/suites/pythonudaf_p0/test_pythonudaf_data_types.groovy
create mode 100644
regression-test/suites/pythonudaf_p0/test_pythonudaf_drop.groovy
create mode 100644
regression-test/suites/pythonudaf_p0/test_pythonudaf_edge_cases.groovy
create mode 100644
regression-test/suites/pythonudaf_p0/test_pythonudaf_forbidden_module.groovy
create mode 100644
regression-test/suites/pythonudaf_p0/test_pythonudaf_inline.groovy
create mode 100644
regression-test/suites/pythonudaf_p0/test_pythonudaf_inline_simple.groovy
create mode 100644
regression-test/suites/pythonudaf_p0/test_pythonudaf_nested_query.groovy
create mode 100644
regression-test/suites/pythonudaf_p0/test_pythonudaf_null_handling.groovy
create mode 100644
regression-test/suites/pythonudaf_p0/test_pythonudaf_object_types_inline.groovy
create mode 100644
regression-test/suites/pythonudaf_p0/test_pythonudaf_pkg_isolation.groovy
create mode 100644
regression-test/suites/pythonudaf_p0/test_pythonudaf_simple.groovy
create mode 100644
regression-test/suites/pythonudaf_p0/test_pythonudaf_window_advanced_inline.groovy
create mode 100644
regression-test/suites/pythonudaf_p0/test_pythonudaf_window_advanced_module.groovy
create mode 100644
regression-test/suites/pythonudaf_p0/test_pythonudaf_window_functions.groovy
create mode 100644
regression-test/suites/pythonudaf_p0/test_pythonudf_udaf_mixed.groovy
create mode 100644
regression-test/suites/pythonudaf_p0/test_pythonudwf_comprehensive.groovy
create mode 100644
regression-test/suites/pythonudaf_p0/udaf_scripts/complex_state_udaf.py
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudaf_p0/udaf_scripts/datetime.py} (63%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudaf_p0/udaf_scripts/forbidden/datetime.py} (63%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudaf_p0/udaf_scripts/forbidden/os.py} (63%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudaf_p0/udaf_scripts/forbidden/pathlib.py} (63%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudaf_p0/udaf_scripts/forbidden/pickle.py} (63%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudaf_p0/udaf_scripts/os.py} (63%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudaf_p0/udaf_scripts/pathlib.py} (63%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudaf_p0/udaf_scripts/pickle.py} (63%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudaf_p0/udaf_scripts/python_udaf_drop_a/drop_udaf.py} (55%)
create mode 100644
regression-test/suites/pythonudaf_p0/udaf_scripts/python_udaf_drop_a/python_udaf_drop_test.zip
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudaf_p0/udaf_scripts/python_udaf_drop_b/drop_udaf.py} (58%)
create mode 100644
regression-test/suites/pythonudaf_p0/udaf_scripts/python_udaf_drop_b/python_udaf_drop_test.zip
create mode 100644
regression-test/suites/pythonudaf_p0/udaf_scripts/python_udaf_forbidden_module.zip
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudaf_p0/udaf_scripts/python_udaf_pkg_a/mypkg/mod_x.py} (58%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudaf_p0/udaf_scripts/python_udaf_pkg_a/mypkg/mod_y.py} (58%)
create mode 100644
regression-test/suites/pythonudaf_p0/udaf_scripts/python_udaf_pkg_a/python_udaf_pkg_test.zip
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudaf_p0/udaf_scripts/python_udaf_pkg_b/mypkg/mod_x.py} (58%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudaf_p0/udaf_scripts/python_udaf_pkg_b/mypkg/mod_y.py} (58%)
create mode 100644
regression-test/suites/pythonudaf_p0/udaf_scripts/python_udaf_pkg_b/python_udaf_pkg_test.zip
create mode 100644 regression-test/suites/pythonudaf_p0/udaf_scripts/pyudaf.zip
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudaf_p0/udaf_scripts/safepkg_udaf/pathlib.py} (62%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudaf_p0/udaf_scripts/simple_udaf.py} (61%)
create mode 100644
regression-test/suites/pythonudaf_p0/udaf_scripts/stats_udaf.py
create mode 100644 regression-test/suites/pythonudaf_p0/udaf_scripts/sum_int.py
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudaf_p0/udaf_scripts/udaf_errors.py} (58%)
create mode 100644
regression-test/suites/pythonudaf_p0/udaf_scripts/window_udaf.py
create mode 100644
regression-test/suites/pythonudf_complex_p0/py_udf_complex_scripts/business_logic.py
create mode 100644
regression-test/suites/pythonudf_complex_p0/py_udf_complex_scripts/complex_udaf.py
create mode 100644
regression-test/suites/pythonudf_complex_p0/py_udf_complex_scripts/complex_udtf.py
create mode 100644
regression-test/suites/pythonudf_complex_p0/py_udf_complex_scripts/external_api.py
create mode 100644
regression-test/suites/pythonudf_complex_p0/py_udf_complex_scripts/nlp_chinese.py
create mode 100644
regression-test/suites/pythonudf_complex_p0/py_udf_complex_scripts/py_udf_complex.zip
create mode 100644
regression-test/suites/pythonudf_complex_p0/test_python_udaf_complex.groovy
create mode 100644
regression-test/suites/pythonudf_complex_p0/test_python_udf_business_logic.groovy
create mode 100644
regression-test/suites/pythonudf_complex_p0/test_python_udf_external_api.groovy
create mode 100644
regression-test/suites/pythonudf_complex_p0/test_python_udf_nlp_chinese.groovy
create mode 100644
regression-test/suites/pythonudf_complex_p0/test_python_udtf_complex.groovy
create mode 100644
regression-test/suites/pythonudf_p0/sanity/test_pythonudf_assertequal.groovy
create mode 100644
regression-test/suites/pythonudf_p0/sanity/test_pythonudf_assertlessthan.groovy
create mode 100644
regression-test/suites/pythonudf_p0/test_pythonudf_aggregate.groovy
create mode 100644
regression-test/suites/pythonudf_p0/test_pythonudf_always_nullable.groovy
create mode 100644
regression-test/suites/pythonudf_p0/test_pythonudf_array.groovy
create mode 100644
regression-test/suites/pythonudf_p0/test_pythonudf_base_data_type.groovy
create mode 100644
regression-test/suites/pythonudf_p0/test_pythonudf_boolean.groovy
create mode 100644
regression-test/suites/pythonudf_p0/test_pythonudf_complex_data_type.groovy
create mode 100644
regression-test/suites/pythonudf_p0/test_pythonudf_concurrent.groovy
create mode 100644
regression-test/suites/pythonudf_p0/test_pythonudf_data_types.groovy
create mode 100644
regression-test/suites/pythonudf_p0/test_pythonudf_drop.groovy
create mode 100644
regression-test/suites/pythonudf_p0/test_pythonudf_error_handling.groovy
create mode 100644
regression-test/suites/pythonudf_p0/test_pythonudf_file_protocol.groovy
create mode 100644
regression-test/suites/pythonudf_p0/test_pythonudf_float.groovy
create mode 100644
regression-test/suites/pythonudf_p0/test_pythonudf_forbidden_module.groovy
create mode 100644
regression-test/suites/pythonudf_p0/test_pythonudf_global_function.groovy
create mode 100644
regression-test/suites/pythonudf_p0/test_pythonudf_inline_complex.groovy
create mode 100644
regression-test/suites/pythonudf_p0/test_pythonudf_inline_scalar.groovy
create mode 100644
regression-test/suites/pythonudf_p0/test_pythonudf_inline_vector.groovy
create mode 100644
regression-test/suites/pythonudf_p0/test_pythonudf_int.groovy
create mode 100644 regression-test/suites/pythonudf_p0/test_pythonudf_ip.groovy
create mode 100644
regression-test/suites/pythonudf_p0/test_pythonudf_map.groovy
create mode 100644
regression-test/suites/pythonudf_p0/test_pythonudf_mixed_params.groovy
create mode 100644
regression-test/suites/pythonudf_p0/test_pythonudf_module.groovy
create mode 100644
regression-test/suites/pythonudf_p0/test_pythonudf_module_advanced.groovy
create mode 100644
regression-test/suites/pythonudf_p0/test_pythonudf_module_scalar.groovy
create mode 100644
regression-test/suites/pythonudf_p0/test_pythonudf_module_vector.groovy
create mode 100644
regression-test/suites/pythonudf_p0/test_pythonudf_multiline_inline.groovy
create mode 100644
regression-test/suites/pythonudf_p0/test_pythonudf_nested_complex_type.groovy
create mode 100644
regression-test/suites/pythonudf_p0/test_pythonudf_no_input.groovy
create mode 100644
regression-test/suites/pythonudf_p0/test_pythonudf_object_types_inline.groovy
create mode 100644
regression-test/suites/pythonudf_p0/test_pythonudf_pkg_isolation.groovy
create mode 100644
regression-test/suites/pythonudf_p0/test_pythonudf_ret_map.groovy
create mode 100644
regression-test/suites/pythonudf_p0/test_pythonudf_schema_check.groovy
create mode 100644
regression-test/suites/pythonudf_p0/test_pythonudf_string.groovy
create mode 100644
regression-test/suites/pythonudf_p0/test_pythonudf_volatility.groovy
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udf_scripts/array_int_test.py} (70%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udf_scripts/array_return_array_int_test.py} (70%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udf_scripts/array_return_array_string_test.py} (70%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udf_scripts/array_string_test.py} (70%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udf_scripts/assert_equal_test.py} (70%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udf_scripts/assert_lessthan_test.py} (69%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udf_scripts/boolean_test.py} (70%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udf_scripts/double_test.py} (70%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udf_scripts/float_test.py} (70%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udf_scripts/forbidden/json.py} (69%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udf_scripts/forbidden/logging.py} (69%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udf_scripts/forbidden/sys.py} (69%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udf_scripts/forbidden/threading.py} (69%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udf_scripts/int_test.py} (70%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udf_scripts/json.py} (69%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udf_scripts/logging.py} (70%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udf_scripts/map_int_double_ret_string_string_test.py} (70%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udf_scripts/map_int_int_test.py} (70%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udf_scripts/map_ret_int_double_test.py} (70%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udf_scripts/map_ret_int_int_test.py} (70%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udf_scripts/map_ret_string_string_test.py} (70%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udf_scripts/map_string_string_test.py} (70%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udf_scripts/python_udf_array_type.py} (57%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udf_scripts/python_udf_data_type.py} (56%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udf_scripts/python_udf_drop_a/drop_udf.py} (70%)
create mode 100644
regression-test/suites/pythonudf_p0/udf_scripts/python_udf_drop_a/python_udf_drop_test.zip
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udf_scripts/python_udf_drop_b/drop_udf.py} (70%)
create mode 100644
regression-test/suites/pythonudf_p0/udf_scripts/python_udf_drop_b/python_udf_drop_test.zip
create mode 100644
regression-test/suites/pythonudf_p0/udf_scripts/python_udf_forbidden_module.zip
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udf_scripts/python_udf_map_type.py} (66%)
create mode 100644
regression-test/suites/pythonudf_p0/udf_scripts/python_udf_module_test.zip
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udf_scripts/python_udf_pkg_a/mypkg/mod_x.py} (70%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udf_scripts/python_udf_pkg_a/mypkg/mod_y.py} (70%)
create mode 100644
regression-test/suites/pythonudf_p0/udf_scripts/python_udf_pkg_a/python_udf_pkg_test.zip
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udf_scripts/python_udf_pkg_b/mypkg/mod_x.py} (70%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udf_scripts/python_udf_pkg_b/mypkg/mod_y.py} (70%)
create mode 100644
regression-test/suites/pythonudf_p0/udf_scripts/python_udf_pkg_b/python_udf_pkg_test.zip
create mode 100644
regression-test/suites/pythonudf_p0/udf_scripts/python_udf_scalar_ops.py
create mode 100644
regression-test/suites/pythonudf_p0/udf_scripts/python_udf_scalar_ops.zip
create mode 100644
regression-test/suites/pythonudf_p0/udf_scripts/python_udf_struct_type.py
create mode 100644
regression-test/suites/pythonudf_p0/udf_scripts/python_udf_vector_ops.py
create mode 100644
regression-test/suites/pythonudf_p0/udf_scripts/python_udf_vector_ops.zip
create mode 100644 regression-test/suites/pythonudf_p0/udf_scripts/pyudf.zip
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udf_scripts/safepkg_udf/logging.py} (69%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udf_scripts/string_test.py} (70%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udf_scripts/sys.py} (69%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udf_scripts/threading.py} (69%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udf_scripts/udf_errors.py} (70%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udtf_scripts/array_int_test.py} (70%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udtf_scripts/array_string_test.py} (70%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udtf_scripts/double_test.py} (70%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udtf_scripts/float_test.py} (70%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udtf_scripts/int_test.py} (70%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udtf_scripts/map_test.py} (70%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udtf_scripts/string_test.py} (70%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudf_p0/udtf_scripts/struct_test.py} (70%)
create mode 100644
regression-test/suites/pythonudtf_p0/test_pythonudtf_basic_inline.groovy
create mode 100644
regression-test/suites/pythonudtf_p0/test_pythonudtf_basic_module.groovy
create mode 100644
regression-test/suites/pythonudtf_p0/test_pythonudtf_data_types_inline.groovy
create mode 100644
regression-test/suites/pythonudtf_p0/test_pythonudtf_data_types_module.groovy
create mode 100644
regression-test/suites/pythonudtf_p0/test_pythonudtf_drop.groovy
create mode 100644
regression-test/suites/pythonudtf_p0/test_pythonudtf_edge_cases_inline.groovy
create mode 100644
regression-test/suites/pythonudtf_p0/test_pythonudtf_edge_cases_module.groovy
create mode 100644
regression-test/suites/pythonudtf_p0/test_pythonudtf_exceptions_inline.groovy
create mode 100644
regression-test/suites/pythonudtf_p0/test_pythonudtf_exceptions_module.groovy
create mode 100644
regression-test/suites/pythonudtf_p0/test_pythonudtf_forbidden_module.groovy
create mode 100644
regression-test/suites/pythonudtf_p0/test_pythonudtf_io_patterns_inline.groovy
create mode 100644
regression-test/suites/pythonudtf_p0/test_pythonudtf_io_patterns_module.groovy
create mode 100644
regression-test/suites/pythonudtf_p0/test_pythonudtf_no_input.groovy
create mode 100644
regression-test/suites/pythonudtf_p0/test_pythonudtf_object_types_inline.groovy
create mode 100644
regression-test/suites/pythonudtf_p0/test_pythonudtf_pkg_isolation.groovy
create mode 100644
regression-test/suites/pythonudtf_p0/test_pythonudtf_sql_integration_inline.groovy
create mode 100644
regression-test/suites/pythonudtf_p0/test_pythonudtf_sql_integration_module.groovy
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudtf_p0/udtf_scripts/base64.py} (70%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudtf_p0/udtf_scripts/forbidden/base64.py} (69%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudtf_p0/udtf_scripts/forbidden/importlib.py} (69%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudtf_p0/udtf_scripts/forbidden/inspect.py} (69%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudtf_p0/udtf_scripts/forbidden/ipaddress.py} (69%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudtf_p0/udtf_scripts/importlib.py} (69%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudtf_p0/udtf_scripts/inspect.py} (69%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudtf_p0/udtf_scripts/ipaddress.py} (69%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudtf_p0/udtf_scripts/python_udtf_drop_a/drop_udtf.py} (70%)
create mode 100644
regression-test/suites/pythonudtf_p0/udtf_scripts/python_udtf_drop_a/python_udtf_drop_test.zip
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudtf_p0/udtf_scripts/python_udtf_drop_b/drop_udtf.py} (70%)
create mode 100644
regression-test/suites/pythonudtf_p0/udtf_scripts/python_udtf_drop_b/python_udtf_drop_test.zip
create mode 100644
regression-test/suites/pythonudtf_p0/udtf_scripts/python_udtf_forbidden_module.zip
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudtf_p0/udtf_scripts/python_udtf_pkg_a/mypkg/mod_x.py} (70%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudtf_p0/udtf_scripts/python_udtf_pkg_a/mypkg/mod_y.py} (70%)
create mode 100644
regression-test/suites/pythonudtf_p0/udtf_scripts/python_udtf_pkg_a/python_udtf_pkg_test.zip
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudtf_p0/udtf_scripts/python_udtf_pkg_b/mypkg/mod_x.py} (70%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudtf_p0/udtf_scripts/python_udtf_pkg_b/mypkg/mod_y.py} (70%)
create mode 100644
regression-test/suites/pythonudtf_p0/udtf_scripts/python_udtf_pkg_b/python_udtf_pkg_test.zip
create mode 100644 regression-test/suites/pythonudtf_p0/udtf_scripts/pyudtf.zip
create mode 100644
regression-test/suites/pythonudtf_p0/udtf_scripts/pyudtf_module/basic_udtf.py
create mode 100644
regression-test/suites/pythonudtf_p0/udtf_scripts/pyudtf_module/data_types_udtf.py
create mode 100644
regression-test/suites/pythonudtf_p0/udtf_scripts/pyudtf_module/edge_cases_udtf.py
create mode 100644
regression-test/suites/pythonudtf_p0/udtf_scripts/pyudtf_module/exceptions_udtf.py
create mode 100644
regression-test/suites/pythonudtf_p0/udtf_scripts/pyudtf_module/io_patterns_udtf.py
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudtf_p0/udtf_scripts/pyudtf_module/sql_integration_udtf.py} (54%)
copy regression-test/{pipeline/performance/conf/be_custom.conf =>
suites/pythonudtf_p0/udtf_scripts/safepkg_udtf/inspect.py} (69%)
delete mode 100644
regression-test/suites/unique_with_mow_p0/flexible/test_f_no_simdjson.groovy
copy
regression-test/suites/{query_p0/aggregate/support_type/avg_weighted/avg_weighted.groovy
=> variant_p0/test_variant_count_distinct.groovy} (55%)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]