
本节简单介绍了PG查询逻辑优化中的子查询链接(subLink),以EXISTS子链接为例介绍了子查询链接上拉主函数处理逻辑以及使用gdb跟踪分析。
上一节介绍了ANY子链接,本节介绍了EXISTS子链接
为便于方便解析,根据日志分析,得出查询树如下图所示:
convert_EXISTS_sublink_to_join函数源码:
相关数据结构
1、Var
XX_one_pos
依赖的函数
simplify_EXISTS_query
OffsetVarNodes
IncrementVarSublevelsUp
IncrementVarSublevelsUp
pull_varnos
contain_vars_of_level
query_tree_walker
OffsetVarNodes_walker
query_or_expression_tree_walker
pull_varnos_walker
contain_vars_of_level_walker
expression_tree_walker
#include<stdioh>
void main()
{
int a[]={1,2,3,4,5,6,7};
int b[7],i,j,count=0,max=0,maxflag;
for(i=0;i<7;i++)
scanf("%d",&b[i]);
i=0;
while(i<7)
{
j=0;
count=0;
if(b[i]==a[j])
while(i<7 && j<7 && b[i]==a[j]) i++,j++,count++;
else
i++;
if(max<count) {max =count;maxflag=i;}
}
count = max;
if(count==7) printf("特等奖\n");
else if(count==6)
{
if(maxflag==7)
printf("二等奖\n");
else
printf("一等奖\n");
}
else if(count==5)
{
if(maxflag==7)
printf("三等奖\n");
else
printf("二等奖\n");
}
else if(count==4)
{
if(maxflag==7)
printf("四等奖\n");
else
printf("三等奖\n");
}
else if(count==3)
{
if(maxflag==7)
printf("五等奖\n");
else
printf("四等奖\n");
}
else if(count==2 && maxflag!=7)
printf("五等奖\n");
else
printf("没中奖\n");
}
以上就是关于PostgreSQL 源码解读(28)- 查询语句#13(查询优化-上拉子链接#3)全部的内容,包括:PostgreSQL 源码解读(28)- 查询语句#13(查询优化-上拉子链接#3)、c语言彩票兑奖程序、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)