摘要:Function Candidates Selection Algorithm environment setup In lightdb orafce extension, execute sql below, CREATE DOMAIN oracle.clob AS TEXT; -- versio
阅读全文
摘要:query parsing in mysql mysql source code version: 8.0.34 (from MYSQL_VERSION file) This an article from questions to understandings. which file does m
阅读全文
摘要:在上一篇中,主要探究了 postgresql 源码层面是怎么实现聚合函数的。本篇将探究 having clause 是如何实现的。 setup create table foo(a int, b int); insert into foo select random() * i/2, random(
阅读全文
摘要:该文章将分为上下两篇, 从源码层面了解 aggregate function 怎么实现 从源码层面了解 having clause 怎么实现 第一篇是阅读第二遍的前提。本文讲述的是第一篇的内容。每一篇文章内容会分为 5 个部分,对应一条 sql 的执行流程。这 5 个部分是: parser anal
阅读全文
摘要:## 背景 lightdb 在为了兼容 oracle 和 mysql 语法,,在 postgresql 原有的建表选项上新增了一些选项并自定义了一些选项: 1. compress/nocompress 2. logging/nologging 3. with primary key 4. distr
阅读全文
摘要:背景 目前,lightdb 在兼容 oracle,目标是 oracle 用户不用修改 sql 代码无缝切换到 lightdb 数据库。为此,lightdb 结合开源 orafce 插件和内核级支持,实现用户的良好体验。在 lightdb 版本 LightDB1.0.V202303.00.000中,新
阅读全文
摘要:## 背景 在 Oracle 中,在旧表上用 `alter table` 命令一次添加多列是可以把列定义放在要括号里的,而 lightdb 之前版本 `alter table` 命令必须要多次执行 `add ...`. 此次版本允许 lightdb 有同样功能。LightDB 版本为 `LightD
阅读全文
摘要:## 背景 lightdb 目前兼容 mysql, oracle 语法。为了提醒用户正在使用的是哪种类型的数据库,lightdb 在 ltsql 端增加了连接提示。 用户在初次连接数据库或在 ltsql 内切换数据库时,会打印一条消息提示。该功能出现在 lightdb 版本:`LightDB1.0.
阅读全文
摘要:flex/bison usage in pgsql In regular bison usage, we call yyparse() to get an AST. So, I searched for yyparse in PostgreSQL source code, which eventua
阅读全文
摘要:overview of flex & bison flex manual bison manual BNF language expression : expression '+' expression | expression '-' expression | NUMBER ; After wri
阅读全文
摘要:# 函数 **[transformCreateStmt](https://git.postgresql.org/gitweb/?p=postgresql.git;a=blob;f=src/backend/parser/parse_utilcmd.c;h=fa647976a69cd9383198e91
阅读全文
摘要:本文主要分析 lightdb 全局临时表实现时使用到的函数 `ltgtt_create_temp_table`. 1. 通过 `makeNode` 函数创建 `TableLikeClause` 和 `CreateStmt`. ```sql create table lt_gtt_schema_123
阅读全文
摘要:通过[这篇文章](https://www.cnblogs.com/lddcool/p/lightdb_node_script.html),我搭建了一个单机分布式集群。在该集群内,可以通过下面这条 sql 语句将普通的带有主键的表改为分布式表: ```sql -- 'id' 为表 'test_tabl
阅读全文
摘要:# 简介 全局临时表(Global Temporary Table)是数据库中一种特殊类型的表,它在创建时与特定的会话无关,并且可以被多个会话共享和访问。全局临时表的数据只在当前数据库会话的生命周期内可见,并且在会话结束后自动销毁。 全局临时表通常用于临时存储中间结果集或临时数据,以便在会话内部或会
阅读全文
摘要:本文章主要介绍我在部署 lightdb 单机多实例集群过程中开发的 shell 脚本,方便后续快速搭建集群。在搭建集群过程中我主要参考了以下文档。 参考文档 lightdb distributed guide 分布式组件 canopy 高可用组件 ltcluster 脚本 node.sh 该脚本运行
阅读全文
摘要:# lightdb 练习题 1. 在LightDB/PostgreSQL中,有表a,定义为: ```sql create table a(id int primary key, rand int, comm varchar(128)); ``` 如何一条语句生成一张1000万记录的表,且满足id从1
阅读全文
摘要:# lightdb 忽略未知执行计划提示 > 执行计划提示介绍见其他文章 ## 背景 Oracle 中的执行计划提示(后文简称为 hint )种类繁多,lightdb 目前还没有做到全部兼容,因此需要忽视未实现的 hint, 继续执行其他支持的 hint. 比如:all_rows hint 不支持。
阅读全文