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

电脑网站手机版怎么做wordpress自定义注册插件

电脑网站手机版怎么做,wordpress自定义注册插件,WordPress上传ftp设置,宁德市属于哪个省份1 总结 set_plan_references主要有两个功能#xff1a; 拉平#xff1a;生成拉平后的RTE列表#xff08;add_rtes_to_flat_rtable#xff09;。调整#xff1a;调整前每一层计划中varno的引用都是相对于本层RTE的偏移量。放在一个整体计划后#xff0c;需要指向一个统一…1 总结 set_plan_references主要有两个功能 拉平生成拉平后的RTE列表add_rtes_to_flat_rtable。调整调整前每一层计划中varno的引用都是相对于本层RTE的偏移量。放在一个整体计划后需要指向一个统一的RTE列表所以需要把varno调整下指向拉平后的RTE表。例如下面计划中RTE记录了6张表 1 → {rtekind RTE_RELATION, relid 16656, inh false, relkind 114 ‘r’} - student2 → {rtekind RTE_RELATION, relid 16671, inh false, relkind 114 ‘r’} - score3 → {rtekind RTE_JOIN, relid 0, inh false, relkind 0 } - {score join student}4 → {rtekind RTE_RELATION, relid 16661, inh false, relkind 114 ‘r’} - course5 → {rtekind RTE_JOIN, relid 0, inh false, relkind 0 } - {被优化掉的join course} Result节点的第一列是STUDENT.sname他的varno一开始是1varattno是2显然他不应该直接引用RTE中的某一张表因为Result节点的数据应该使用下面SORT节点中取出来的所以 varno被调整为-2表示引用OUTTER节点也就是LEFT树返回的结果varattno被调整1表示从结果中拿第一列。 explain SELECT STUDENT.sname, random(), SCORE.degree FROM STUDENT LEFT JOIN SCORE ON STUDENT.sno SCORE.sno LEFT JOIN COURSE ON SCORE.cno COURSE.cno ORDER BY STUDENT.sno;QUERY PLAN ------------------------------------------------------------------------------------Result (cost182.67..213.27 rows2040 width54)- Sort (cost182.67..187.77 rows2040 width46)Sort Key: student.sno- Hash Right Join (cost34.75..70.53 rows2040 width46)Hash Cond: (score.sno student.sno)- Seq Scan on score (cost0.00..30.40 rows2040 width12)- Hash (cost21.00..21.00 rows1100 width42)- Seq Scan on student (cost0.00..21.00 rows1100 width42)上面用例经过set_plan_references调整前后的完整例子 2 数据结构 PlannerInfo 当前查询优化的状态包含了当前查询的所有信息 当前查询的目标列表target list子句例如WHERE、GROUP BY、ORDER BY 等范围表range table可用的索引信息统计信息子查询和参数信息优化器的各种临时数据和结果 PlannerGlobal 全局结构包含了跨多个查询级别的信息。例如一个包含子查询或CTE的查询中每个子查询都会有自己的 PlannerInfo结构会共享同一个PlannerGlobal。包含了 全局范围表finalrtable全局子计划列表全局初始化计划列表全局参数表达式列表重写规则和其他全局状态信息 varno宏 #define INNER_VAR (-1) /* reference to inner subplan */ #define OUTER_VAR (-2) /* reference to outer subplan */ #define INDEX_VAR (-3) /* reference to index column */ #define ROWID_VAR (-4) /* row identity column during planning */3 set_plan_references 1 计算全局flat_rtable set_plan_references → add_rtes_to_flat_rtable 首先把引用的rtable全部拉平到一个级别重新排列RTE。 具体在PlannerGlobal中构造全局范围表finalrtable所有子PlannerInfo共享的一套RTE。 p *root-glob-finalrtable $7 {type T_List, length 5, max_length 5, elements 0x3085520, initial_elements 0x3085520}add_rtes_to_flat_rtable后生成五个RTE RangeTblEntry {rtekind RTE_RELATION, relid 16656, inh false, relkind 114 r}RangeTblEntry {rtekind RTE_RELATION, relid 16671, inh false, relkind 114 r}RangeTblEntry {rtekind RTE_JOIN, relid 0, inh false, relkind 0}RangeTblEntry {rtekind RTE_RELATION, relid 16661, inh false, relkind 114 r}RangeTblEntry {rtekind RTE_JOIN, relid 0, inh false, relkind 0} PlannerInfo→PlannerGlobal 2 开始修正RTE的引用 set_plan_references → set_plan_refs 2.1 处理Result set_plan_refs → case T_Result: … 处理result子树→ plan-lefttree set_plan_refs(root, plan-lefttree, rtoffset); 递归处理左树→ plan-righttree set_plan_refs(root, plan-righttree, rtoffset); 递归处理右树 根据内层的sort节点重新排列result节点的三个var的varno和varattnoresult已经是最外层节点了当前使用到的var还是从sort节点继承的需要修复下。 处理前 vs 处理后 set_plan_refs处理T_Result节点 set_plan_refs......case T_Result:Result *splan (Result *) plan;if (splan-plan.lefttree ! NULL)set_upper_references(root, plan, rtoffset);......// subplan 是 SORT节点// subplan-targetlist 中返回三列STUDENT.sname, SCORE.degree, STUDENT.sno// 注意缺了一列random函数subplan_itlist build_tlist_index(subplan-targetlist); subplan-targetlist varno 1, varattno 2, vartype 1043varno 2, varattno 3, vartype 23varno 1, varattno 1, vartype 23 subplan_itlist subplan_itlist-tlist subplan-targetlistsubplan_itlist-vars[0] {varno 1, varattno 2, resno 1, varnullingrels 0x0}subplan_itlist-vars[1] {varno 2, varattno 3, resno 2, varnullingrels ...}subplan_itlist-vars[2] {varno 1, varattno 1, resno 3, varnullingrels 0x0} foreach(l, plan-targetlist)...newexpr fix_upper_expr(...)...// 计算完成plan-targetlist output_targetlist;output_targetlist expr 0x308f0c8, resno 1, resname 0x2f4d670 sname varno OUTER_VAR -2, varattno 1, vartype 1043 expr 0x308f1b8, resno 2, resname 0x2f4d7e8 random funcid 1598, funcresulttype 701, funcretset false expr 0x308f258, resno 3, resname 0x2f4d928 degree varno OUTER_VAR -2, varattno 2, vartype 23 expr 0x308f2f8, resno 4, resname 0x0, ressortgroupref 1 varno OUTER_VAR -2, varattno 3, vartype 23 2.2 处理SORT set_plan_refs → case T_Sort: … 处理sort子树set_dummy_tlist_references→ plan-lefttree set_plan_refs(root, plan-lefttree, rtoffset); 递归处理左树→ plan-righttree set_plan_refs(root, plan-righttree, rtoffset); 递归处理右树 排序只需要引用下面一层的结果即可。 // These plan types dont actually bother to evaluate their // targetlists, because they just return their unmodified input // tuples. Even though the targetlist wont be used by the // executor, we fix it up for possible use by EXPLAIN (not to // mention ease of debugging --- wrong varnos are very confusing).set_dummy_tlist_references2.3 处理Hash Right Join set_plan_refs → case T_HashJoin: … 处理join子树set_join_references→ plan-lefttree set_plan_refs(root, plan-lefttree, rtoffset); 递归处理左树→ plan-righttree set_plan_refs(root, plan-righttree, rtoffset); 递归处理右树 4 用例 explain SELECT STUDENT.sname, random(), SCORE.degree FROM STUDENT LEFT JOIN SCORE ON STUDENT.sno SCORE.sno LEFT JOIN COURSE ON SCORE.cno COURSE.cno ORDER BY STUDENT.sno;QUERY PLAN ------------------------------------------------------------------------------------Result (cost182.67..213.27 rows2040 width54)- Sort (cost182.67..187.77 rows2040 width46)Sort Key: student.sno- Hash Right Join (cost34.75..70.53 rows2040 width46)Hash Cond: (score.sno student.sno)- Seq Scan on score (cost0.00..30.40 rows2040 width12)- Hash (cost21.00..21.00 rows1100 width42)- Seq Scan on student (cost0.00..21.00 rows1100 width42)
http://www.hkea.cn/news/14432358/

相关文章:

  • 网站怎么制作 优帮云ppt模板下载免费版学生
  • 个人网站建设与实现网站开发要什么基础
  • 企业网站系统建设需求调研表wordpress无法修改电子邮件
  • 英国网站建设做网站建设的有哪些
  • 大淘客网站是怎么做的重庆市制作网站公司哪家好
  • 昆明优化网站公司如何选择镇江网站建设
  • 晚上睡不着正能量网站iis下建多个网站
  • 宁夏建设技术职业学院官方网站学校网站在建设方面的的优势
  • 网站的模糊搜索怎么做网站服务器的费用
  • 商丘网站建设运营公司嘉兴网站seo外包
  • 怎样设置一个属于自己的网站17网站一起做网店东莞
  • 10元建站建筑行业最新资讯
  • 网站内容上传要求什么学做网站
  • dw做网站导航条seo营销的策略有哪些
  • 个人外贸网站建设云南建投二公司官网
  • 外贸网站搭建公司wordpress分类目录加图标
  • 榆林网站建设电话二元期权网站建设
  • 室内设计网站免费模板宠物喂养网页设计模板以及代码
  • 电子商务网站软件建设的核心是什么金融网站模板 html下载
  • crm网站下载江苏常州建设局网站
  • 合肥大型网站设计公温州 网站建设
  • 网站做授权登录个人网页制作怎么做
  • 南通企业网站建设做网站是怎么收费的是按点击率
  • 深圳专业企业网站制作哪家好青岛外贸网站建设哪家好
  • wap网站开发公司图片网站模板下载
  • asp access网站架设教程wordpress安装 用户名已存在
  • 济南做公司网站ui设计最好的培训机构
  • 如何建设公众平台网站小地方网站建设公司
  • 联盟网站做任务苏州做网站要多少钱
  • 优秀的手机网站案例一鸣东莞网站建设公司