@@ -268,7 +268,7 @@ END_P SET_VAR DELIMITER
268
268
ESCAPE EVENT EVENTS EVERY EXCHANGE EXECUTE EXPANSION EXPIRE EXPIRE_INFO EXPORT OUTLINE EXTENDED
269
269
EXTENDED_NOADDR EXTENT_SIZE EXTRACT EXCEPT EXPIRED
270
270
271
- FAILOVER FAST FAULTS FIELDS FILEX FINAL_COUNT FIRST FIRST_VALUE FIXED FLUSH FOLLOWER FORMAT
271
+ FAILOVER FAST FAULTS FIELDS FILEX FILE_PATH FINAL_COUNT FIRST FIRST_VALUE FIXED FLUSH FOLLOWER FORMAT
272
272
FOUND FREEZE FREQUENCY FUNCTION FOLLOWING FLASHBACK FULL FRAGMENTATION FROZEN FILE_ID
273
273
274
274
GENERAL GEOMETRY GEOMCOLLECTION GEOMETRYCOLLECTION GET_FORMAT GLOBAL GRANTS GROUP_CONCAT GROUPING GTS
@@ -304,11 +304,11 @@ END_P SET_VAR DELIMITER
304
304
OBSOLETE OCCUR OF OFF OFFSET OLD OLD_PASSWORD ONE ONE_SHOT ONLY OPEN OPTIONS ORIG_DEFAULT OWNER OLD_KEY OVER
305
305
OBCONFIG_URL OJ
306
306
307
- PACK_KEYS PAGE PARALLEL PARAMETERS PARSER PARTIAL PARTITION_ID PARTITIONING PARTITIONS PASSWORD PAUSE PERCENTAGE
307
+ PACK_KEYS PAGE PARALLEL PARAMETERS PARSER PARTIAL PARTITION_ID PARTITIONING PARTITIONS PASSWORD PATH PAUSE PERCENTAGE
308
308
PERCENT_RANK PHASE PLAN PHYSICAL PLANREGRESS PLUGIN PLUGIN_DIR PLUGINS POINT POLYGON PERFORMANCE
309
309
PROTECTION PRIORITY PL POLICY POOL PORT POSITION PREPARE PRESERVE PRETTY PRETTY_COLOR PREV PRIMARY_ZONE PRIVILEGES PROCESS
310
310
PROCESSLIST PROFILE PROFILES PROXY PRECEDING PCTFREE P_ENTITY P_CHUNK
311
- PUBLIC PROGRESSIVE_MERGE_NUM PREVIEW PS PLUS PREDICT PYTHON_UDF
311
+ PUBLIC PROGRESSIVE_MERGE_NUM PREVIEW PS PLUS PREDICT PYTHON_CODE PYTHON_UDF
312
312
313
313
QUARTER QUERY QUERY_RESPONSE_TIME QUEUE_TIME QUICK
314
314
@@ -334,7 +334,7 @@ END_P SET_VAR DELIMITER
334
334
335
335
TABLE_CHECKSUM TABLE_MODE TABLE_ID TABLE_NAME TABLEGROUPS TABLES TABLESPACE TABLET TABLET_ID TABLET_MAX_SIZE
336
336
TEMPLATE TEMPORARY TEMPTABLE TENANT TEXT THAN TIME TIMESTAMP TIMESTAMPADD TIMESTAMPDIFF TP_NO
337
- TP_NAME TRACE TRADITIONAL TRANSACTION TRIGGERS TRIM TRUNCATE TYPE TYPES TASK TABLET_SIZE
337
+ TP_NAME TRACE TRADITIONAL TRAIN TRANSACTION TRIGGERS TRIM TRUNCATE TYPE TYPES TASK TABLET_SIZE
338
338
TABLEGROUP_ID TENANT_ID THROTTLE TIME_ZONE_INFO TOP_K_FRE_HIST TIMES
339
339
340
340
UNCOMMITTED UNDEFINED UNDO_BUFFER_SIZE UNDOFILE UNICODE UNINSTALL UNIT UNIT_GROUP UNIT_NUM UNLOCKED UNTIL
@@ -498,7 +498,7 @@ END_P SET_VAR DELIMITER
498
498
%type <node> recover_tenant_stmt recover_point_clause
499
499
/* 新增*/
500
500
%type <node> create_python_udf_stmt drop_python_udf_stmt
501
- %type <node> function_element_list function_element param_name param_type
501
+ %type <node> function_element_list function_element param_name param_type python_code_type
502
502
%start sql_stmt
503
503
%%
504
504
////////////////////////////////////////////////////////////////
@@ -2718,6 +2718,21 @@ MOD '(' expr ',' expr ')'
2718
2718
store_pl_ref_object_symbol ($$, result, REF_FUNC);
2719
2719
}
2720
2720
}
2721
+ | TRAIN function_name ' (' opt_expr_as_list ' )'
2722
+ {
2723
+ if (NULL != $4 )
2724
+ {
2725
+ ParseNode *params = NULL ;
2726
+ merge_nodes (params, result, T_EXPR_LIST, $4 );
2727
+ malloc_non_terminal_node ($$, result->malloc_pool_, T_FUN_SYS_PYTHON_UDF, 2 , $2 , params);
2728
+ store_pl_ref_object_symbol ($$, result, REF_FUNC);
2729
+ }
2730
+ else
2731
+ {
2732
+ malloc_non_terminal_node ($$, result->malloc_pool_, T_FUN_SYS_PYTHON_UDF, 1 , $2 );
2733
+ store_pl_ref_object_symbol ($$, result, REF_FUNC);
2734
+ }
2735
+ }
2721
2736
| sys_interval_func
2722
2737
{
2723
2738
$$ = $1 ;
@@ -4413,15 +4428,27 @@ NUMERIC
4413
4428
;
4414
4429
4415
4430
create_python_udf_stmt :
4416
- CREATE PYTHON_UDF NAME_OB ' (' function_element_list ' )' RETURNS ret_type ' { ' STRING_VALUE ' } '
4431
+ CREATE PYTHON_UDF NAME_OB ' (' function_element_list ' )' RETURNS ret_type python_code_type
4417
4432
{
4418
4433
ParseNode *function_elements = NULL ;
4434
+ ParseNode *code_type_node = NULL ;
4419
4435
merge_nodes (function_elements, result, T_FUNCTION_ELEMENT_LIST, $5 );
4436
+ merge_nodes (code_type_node, result, T_PYTHON_CODE_TYPE, $9 );
4420
4437
malloc_non_terminal_node ($$, result->malloc_pool_, T_CREATE_PYTHON_UDF, 4 ,
4421
4438
$3 , /* udf name */
4422
4439
function_elements, /* function parameter */
4423
4440
$8 , /* return type */
4424
- $10 ); /* python code */
4441
+ code_type_node); /* python code type */
4442
+ }
4443
+ |
4444
+ CREATE PYTHON_UDF NAME_OB MODEL NAME_OB python_code_type
4445
+ {
4446
+ ParseNode *code_type_node = NULL ;
4447
+ merge_nodes (code_type_node, result, T_PYTHON_CODE_TYPE, $6 );
4448
+ malloc_non_terminal_node ($$, result->malloc_pool_, T_CREATE_PYTHON_UDF, 3 ,
4449
+ $3 , /* udf name */
4450
+ $5 , /* model name */
4451
+ code_type_node); /* python code type */
4425
4452
}
4426
4453
;
4427
4454
@@ -4491,6 +4518,18 @@ NUMERIC
4491
4518
}
4492
4519
;
4493
4520
4521
+ python_code_type :
4522
+ PYTHON_CODE ' {' STRING_VALUE ' }'
4523
+ {
4524
+ malloc_non_terminal_node ($$, result->malloc_pool_, T_PYTHON_CODE, 1 , $3 );
4525
+ }
4526
+ |
4527
+ FILE_PATH STRING_VALUE
4528
+ {
4529
+ malloc_non_terminal_node ($$, result->malloc_pool_, T_FILE_PATH, 1 , $2 );
4530
+ }
4531
+ ;
4532
+
4494
4533
create_function_stmt :
4495
4534
create_with_opt_hint opt_agg FUNCTION NAME_OB RETURNS ret_type SONAME STRING_VALUE
4496
4535
{
0 commit comments