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

前端之家收集整理的这篇文章主要介绍了postgresql源码分析--解析sql--类型系统前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
希望能够搞明白在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中是检查类型兼容性的代码,有两千六百多行,得慢慢看了

原文链接:https://www.f2er.com/postgresql/196887.html

猜你在找的Postgre SQL相关文章