加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

postgresql源码分析--解析sql--类型系统

发布时间:2020-12-13 17:51:23 所属栏目:百科 来源:网络整理
导读:希望能够搞明白在sql进行解析的时候postgresql是如何决定要进行类型转换的以及解析的过程中值是以什么方式保存的,最后希望能够了解到postgresql在执行时是如何比较这些值的. T_A_Const表示常数值类型 parse_expr.c的transformExpr中值的解析,在T_A_Const中,
希望能够搞明白在sql进行解析的时候postgresql是如何决定要进行类型转换的以及解析的过程中值是以什么方式保存的,最后希望能够了解到postgresql在执行时是如何比较这些值的.
  • T_A_Const表示常数值类型

parse_expr.c的transformExpr中值的解析,在T_A_Const中,可以看到对于一个操作的值是以Value类型保存的,从value的注释中可以看到,除了int类型外,其它的诸如float等都是直接用string保存的.

  • T_A_Indirection

查看A_Indirection的定义注释中的一个例子(foo).field1[42][7].field2,就能够理解他的含义


gram.y中

AexprConst表示所有的constant类型,


parse_oper.c

函数make_op中出现了检查类型兼容的调用,调用的函数为enforce_generic_type_consistency

parse_coerce.c中是检查类型兼容性的代码,有两千六百多行,得慢慢看了

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读