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

postgresql源码分析--解析sql--类型系统,第1张

概述希望能够搞明白在sql进行解析的时候postgresql是如何决定要进行类型转换的以及解析的过程中值是以什么方式保存的,最后希望能够了解到postgresql在执行时是如何比较这些值的. T_A_Const表示常数值类型 parse_expr.c的transformExpr中值的解析, 在T_A_Const中,可以看到对于一个 *** 作的值是以Value类型保存的,从value的注释中可以看到,除了in 希望能够搞明白在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中是检查类型兼容性的代码,有两千六百多行,得慢慢看了

总结

以上是内存溢出为你收集整理的postgresql源码分析--解析sql--类型系统全部内容,希望文章能够帮你解决postgresql源码分析--解析sql--类型系统所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/sjk/1179675.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-02
下一篇2022-06-02

发表评论

登录后才能评论

评论列表(0条)

    保存