Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

第 46 期 TiDB 源码学习之 Source Code Overview #401

Closed
yangwenmai opened this issue Jun 5, 2019 · 5 comments
Closed

第 46 期 TiDB 源码学习之 Source Code Overview #401

yangwenmai opened this issue Jun 5, 2019 · 5 comments
Labels
Go 夜读 Go 夜读:主题分享 已分享 ✅ Go 夜读的分享状态:分享已完成。

Comments

@yangwenmai
Copy link
Member

yangwenmai commented Jun 5, 2019

TiDB Source Code Overview

image

分享 PPT: https://reading-go.slack.com/files/U8A45L223/FKA335THT/_reading-go__tidb_source_cdoe_overview.pdf

视频回看

  1. TiDB 源码学习之 Source Code Overview - YouTube
  2. TiDB 源码学习之 Source Code Overview - Bilibili

意见反馈

  1. 【Go夜读】《TiDB Source Code Overview》反馈

个人总结或者你的收获

可以直接在这里留言;

  1. 观后感(个人总结);
  2. 按照自己的理解写一篇源码阅读/分析文章;
  3. 提交你对 TiDB 的使用疑问(issue);
  4. 直接给 TiDB 提交 PR

chat 答疑

20:54:52 From mai yang : 大家好,欢迎大家前来参加 Go 夜读&TiDB 源码学习!
21:22:34 From nange : Session 怎么初始化的?
21:22:46 From ccong deng : 每个连接都是跟一个session对象对应么?
21:22:48 From jeffery : session主要包含什么?
21:22:59 From jeffery : 譬如:
21:23:01 From Wei Yao : 对,一个链接一个 session
21:23:09 From Wei Yao : 具体包含什么,可以大家自己去看了
21:23:17 From Wei Yao : 这个线上不可能所有都讲的
21:23:25 From jeffery : 好的,谢谢了
21:31:00 From Wei Yao : 大家如果对语法分析,词法分析感兴趣,可以去看看 yacc 跟 lex
21:31:10 From hezhiyong : parser 这一层不是使用mysql的parser吗
21:31:17 From Wei Yao : 不,我们自己写的
21:31:56 From hezhiyong : mysql 的语法解析是在那一步用到了?
21:32:01 From tianyi wang : select coalesce()中coalesce是在fields里面吗
21:32:10 From Wei Yao : 我们的语法解析就是兼容 mysql,
21:32:12 From window930030@gmail.com : SQL injection 有做嗎?
21:32:27 From Wei Yao : SQL injection?SQL 注入?
21:32:40 From Wei Yao : 我们不叫 sql 注入
21:32:55 From window930030@gmail.com : 恩?
21:33:04 From Wei Yao : 我们会把 sql 变成算子,之后会去优化算子结构,下面会讲,
21:33:15 From window930030@gmail.com : 好的,謝謝。
21:34:55 From jeffery : 刚刚的意思:Visitor是选择节点
21:34:58 From jeffery : ?
21:35:05 From Wei Yao : 不是
21:35:11 From Abner Zheng : 一种设计模式
21:35:13 From xietengjin : 遍历节点用的吧
21:35:14 From Wei Yao : visitor 是设计模式中的那个 visitor 模式
21:35:17 From Wei Yao : 对
21:35:19 From jacobz : 遍历树用的
21:35:23 From Fangfang Qi : 是遍历语法树的
21:35:27 From jeffery : 额,好的
21:35:28 From Wei Yao : 遍历 ast 树
21:37:03 From jeffery : 清楚
21:40:01 From jacobz : 是搞优化的那一堆?
21:43:45 From lk : 递归遍历?
21:44:05 From Wei Yao : 层级有限。
21:48:06 From Kathy : 其实这个时候是不是类似传统的通过运算符进栈出栈形成表达式
21:48:24 From Wei Yao : 对,表达式系统基本上都是这样
21:51:21 From Kathy : ScalarFunction能解决aggregation的函数的语句吗
21:55:24 From Chen Shuang : 能
21:55:55 From Chen Shuang : aggregation function 也是 scalar function.

关于 aggregate function 是否会 build 成 ScalarFunction 的问题, 之前的回答错了,agg func 不会build 成 build 成 ScalarFunction。
aggregate function 在生成逻辑计划时,会被 build 成 AggFuncDesc 结构, 并生成一个 LogicalAggregation 的plan, 后面在 生成物理计划时把 LogicalAggregation 根据情况 build 成 PhysicalHashAgg 或者 PhysicalStreamAgg, 同时用 aggfuncs.Build 函数把 AggFuncDesc 变成 AggFunc, AggFunc 是一个接口,所有的 aggregate function 都实现了这个接口。

21:57:23 From Kathy : 只要不涉及其他表的相关列的function是否都最后成为scalarFunction
21:57:33 From Kathy : 的表达式
21:58:40 From Chen Shuang : 只要是 function , 都会变成 scalarFunction 表达式
21:59:40 From Chen Shuang : select t1.a + t2.b from t1,t2; 其中 t1.a + t2.b 会build 成一个 scalarFunction 表达式
21:59:40 From Kathy : 多谢答复
22:00:28 From Chen Shuang : 不客气哈
22:06:26 From tianyi wang : select coalesce()也会是scalarfunction?
22:06:53 From hezhiyong : 可以演示一下debug一条语句跑的代码吗
22:10:07 From jiangchen : 是的,能不能最好演示下。。每次next返回的是一部分子结果还是一部分最终的结果?
22:11:33 From Kathy : 执行引擎的新特性可以说说吗?简单讲一下,就是parallel physical operator的实现等等
22:11:57 From Wei Yao : 执行引擎下周讲
22:12:05 From 慢摇哥哥 : 老师,Coprocessor是在哪一步分发的
22:12:06 From jeffery : 辛苦了,有一个基本的逻辑了
22:12:37 From Kathy : 好的 谢谢
22:12:42 From 达 黄 : 之前看了tidb源码解析的文章 配合着这个视频 印象更清楚了
22:13:32 From jeffery : 感觉姚老师像一位老教授在督导
22:14:02 From Wei Yao : :)
22:15:40 From jeffery : 为什么这部分会单独出来?
22:15:40 From nange : Distsql是什么好像没讲。
22:15:54 From tianyi wang : select coalesce()会是scalarfunction还是单独的一部分呢?
22:18:53 From 熊浪 : 问下是每一个session都会解析一次sql么?如果一个sql在同一个session中多次执行是否有ast的共享?
22:21:02 From hezhiyong : prepare 是要开启参数才可以的吧
22:21:36 From 熊浪 : 好的,和mysql是一样的。谢谢

@yangwenmai yangwenmai added the TiDB label Jun 5, 2019
@yangwenmai yangwenmai changed the title 第 46 期 TiDB 源码学习之一 第 46 期 TiDB 源码学习之 Source Code Overview Jun 5, 2019
@yangwenmai yangwenmai added the Go 夜读 Go 夜读:主题分享 label Jun 5, 2019
@yangwenmai yangwenmai pinned this issue Jun 6, 2019
@wty4427300
Copy link
Contributor

个人总结 https://github.com/wty4427300/learn-tidb/blob/master/2.md

@yangwenmai
Copy link
Member Author

个人总结 https://github.com/wty4427300/learn-tidb/blob/master/2.md

文本的格式能调整一下就更好了。

@wty4427300
Copy link
Contributor

总结个人https://github.com/wty4427300/learn-tidb/blob/master/2.md

文本的格式能调整一下就更好了。

好的

@yangwenmai yangwenmai unpinned this issue Jun 10, 2019
@zhuozl
Copy link

zhuozl commented Jun 18, 2019

画面和声音 对不上

@yangwenmai
Copy link
Member Author

画面和声音 对不上

因为是使用 zoom 直播并录制的,所以这个问题没办法解决。
谢谢你的反馈。

@yangwenmai yangwenmai removed the TiDB label Sep 19, 2019
@yangwenmai yangwenmai added the 已分享 ✅ Go 夜读的分享状态:分享已完成。 label Feb 2, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Go 夜读 Go 夜读:主题分享 已分享 ✅ Go 夜读的分享状态:分享已完成。
Projects
Development

No branches or pull requests

3 participants