当前位置: 首页 > news >正文

做元器件上什么网站新浪舆情通

做元器件上什么网站,新浪舆情通,阿里云可以做哪些网站,如何创建电子商务网站这里分析一下函数中应用绑定变量的问题,但实际应用场景中,不推荐这么使用。 prepare divplan2(int,int) as select div($1,$2); execute divplan2(4,2);语法解析 分别分析prepare语句以及execute语句。 gram.y中定义 /******************************…

这里分析一下函数中应用绑定变量的问题,但实际应用场景中,不推荐这么使用。

prepare divplan2(int,int) as select div($1,$2);
execute divplan2(4,2);
语法解析

分别分析prepare语句以及execute语句。
gram.y中定义

/*********************************************************************		QUERY:*				PREPARE <plan_name> [(args, ...)] AS <query>******************************************************************/PrepareStmt: PREPARE name prep_type_clause AS PreparableStmt{PrepareStmt *n = makeNode(PrepareStmt);n->name = $2;n->argtypes = $3;n->query = $5;$$ = (Node *) n;};prep_type_clause: '(' type_list ')'			{ $$ = $2; }| /* EMPTY */				{ $$ = NIL; };PreparableStmt:SelectStmt| InsertStmt| UpdateStmt| DeleteStmt					/* by default all are $$=$1 */| MergeStmt;/******************************************************************** EXECUTE <plan_name> [(params, ...)]******************************************************************/
ExecuteStmt: EXECUTE name execute_param_clause{ExecuteStmt *n = makeNode(ExecuteStmt);n->name = $2;n->params = $3;$$ = (Node *) n;}execute_param_clause: '(' expr_list ')'				{ $$ = $2; }| /* EMPTY */					{ $$ = NIL; };
主流程

prepare,execute语句代码主流程如下,

main
--> PostmasterMain--> ServerLoop--> BackendStartup--> BackendRun--> PostgresMain--> exec_simple_query
exec_simple_query
--> pg_parse_query
--> pg_analyze_and_rewrite
--> pg_plan_queries
--> PortalStart
--> PortalRun--> PortalRunUtiliey--> standard_ProcessUtility--> PrepareQuery      // prepare语句--> ExecuteQuery      // execute语句--> DeallocateQuery
prepare语句

prepare divplan2(int,int) as select div($1,$2);
Prepare语句主流程如下:

PrepareQuery
--> CreateCachedPlan  // 创建CachedPlanSource
--> parse_analyze_varparams  // 语义分析--> parse_variable_parameters--> transformTopLevelStmt--> transformStmt--> transformSelectStmt--> transformTargetList--> transformTargetEntry--> transformExpr--> transformFuncCall   // 解析函数调用--> transformParamRef  // 解析绑定变量参数,构造Param节点,作为函数参数--> variable_paramref_hook  --> ParseFuncOrColumn  // 构造FuncExpr, 获取函数oid,返回值类型oid--> func_get_detail--> FuncnameGetCandidates // 通过函数名获取后续函数列表--> func_match_argtypes--> func_select_candidate--> make_fn_arguments--> coerce_type--> variable_coerce_param_hook--> check_variable_parameters
--> QueryRewrite    // 查询重写
--> CompleteCachedPlan   // 创建plan cache entry
--> StorePreparedStatement // 存到哈希表中--> InitQueryHashTable /* Initialize the hash table, if necessary */--> hash_create    --> hash_search  /* Add entry to hash table */--> SaveCachedPlan // save a cached plan permanently--> ReleaseGenericPlan--> dlist_push_tail
execute语句

execute divplan2(4,2);
Execute主流程如下:

ExecuteQuery
--> FetchPreparedStatement // 哈希表中查找是否有已缓存的执行计划--> hash_search
--> CreateExecutorState
--> EvaluateParams   // 获取绑定变量参数,返回ParamListInfo--> ExecPrepareExprList--> ExecPrepareExpr--> expression_planner--> eval_const_expressions--> ExecInitExpr--> makeParamList  获取到参数值4,2
--> CreateNewPortal--> CreatePortal
--> GetCachedPlan--> RevalidateCachedQuery--> choose_custom_plan  // choose whether to use custom or generic plan--> if (!customplan) // 走generic plan--> if (CheckCachedPlan)// 直接获取已有的有效generic planelse--> BuildCachedPlan--> pg_plan_queries--> pg_plan_query--> planner--> standard_planner--> subquery_planner--> preprocess_expression   // 复合常量化简,直接调用函数--> eval_const_expressions--> simplify_function  --> evaluate_function--> evaluate_expr--> cached_plan_cost--> if (customplan)  // 走custom plan--> BuildCachedPlan--> pg_plan_queries--> pg_plan_query--> planner--> standard_planner--> subquery_planner--> preprocess_qual_conditions--> eval_const_expressions--> create_plan--> PortalDefineQuery
--> PortalStart--> ExecutorStart--> InitPlan
--> PortalRun--> ExecutorRun--> standard_ExecutorRun--> ExecutePlan--> PortalDrop--> ExecutorEnd--> standard_ExecutorEnd--> ExecEndPlan--> PortalReleaseCachedPlan  /* drop cached plan reference, if any */
http://www.shuangfujiaoyu.com/news/21400.html

相关文章:

  • 工业设计网站知乎青岛网站推广系统
  • 杭州做产地证去哪个网站百度客服转人工
  • 做高性能的网站 哪门语言好网站关键词快速优化
  • 策划书模板免费网站移动端优化工具
  • 看网站搜什么关键词接外包项目的网站
  • 鹤壁网站制作线上平台推广方式
  • 网站建设需要几个阶段代写文章价格表
  • 网站建设 中企动力南昌推广教程
  • 蛙蛙写作网站网络推广文案
  • 设计网站公司长沙广告设计与制作需要学什么
  • 昆山营销型网站建设上往建站
  • 企业网站页脚信息百度网址安全中心怎么关闭
  • 成品网站 子目录打不开百度搜索风云榜官网
  • 建产品网站怎么做营销策划公司是干什么的
  • 母婴微网站设计规划站长工具官网查询
  • 列出网站开发建设的步骤百度指数怎么查询
  • 电商型网站开发多少钱经典软文案例100例简短
  • 枣庄网站制作公司seo做的比较好的公司
  • 手机网站 图片自适应最有效的宣传方式
  • 艺友网站建设谁有恶意点击软件
  • 免费的企业网站模板购买域名
  • 网站什么时候备案好石家庄网站建设方案
  • 莘县网站制作百度助手app下载安装
  • 网站开发推荐清理优化大师
  • 上海企业网上公示系统杭州seo博客
  • 国家市场监督管理总局合同示范文本库官网seo快速排名利器
  • 福建省人民政府驻上海办事处杭州网站关键词排名优化
  • 做网站怎么租个域名《新闻联播》 今天
  • 如何电脑安装wordpressseo标题优化关键词
  • 做网站有必要吗网络推广有前途吗