- 博客(19)
- 收藏
- 关注
原创 支持存储过程,包中关联数组索引列使用varchar2类型
在业务产品中,存在 oracle 移植过来的 sql 语句。它们在创建存储过程,函数,包时使用联合数组。联合数组的索引列存在使用 varchar2 类型的情况。在 lightdb 24.1 版本之前 lightdb 联合数组索引列只支持使用 varchar,int 两种类型。lightdb 24.1 对联合数组索引列使用 varchar2 类型进行了支持。key_type 支持使用 varchar,varchar2 ,int 类型。
2024-03-06 15:15:12
187
原创 lightdb 创建函数或存储过程参数类型是date时支持oracle.date类型
在业务产品中,存在 oracle 移植过来的 sql 语句。它们在创建存储过程或函数时使用date类型。在使用时传入oracle的date类型。lightdb 24.1 版本对此进行了支持。
2024-02-01 17:25:52
306
原创 lightdb 创建存储过程 支持 AUTHID CURRENT_USER 与 AUTHID DEFINER 语法糖
在业务产品中,存在 oracle 移植过来的 sql 语句。它们在存储过程中使用语法 AUTHID CURRENT_USER 与 AUTHID DEFINER 创建存储过程。
2024-01-12 17:25:20
401
原创 lightdb lpad(type,int,type2) 与 rpad(type,int,type2) 字符串处理函数支持
在业务产品中,存在 oracle 移植过来的 sql 语句。它们使用 lpad(type,int,type2) / rpad(type,int,type2)。lightdb 24.1 版本 oracle 模式对此进行了支持。
2024-01-11 15:02:16
374
原创 lightdb 的 nvl 函数支持 nvl(null::number, ‘0‘)
在业务产品中,存在 oracle 移植过来的 sql 语句。它们使用 nvl(null::number,‘0’)。lightdb 23.4 版本 oracle 模式对此进行了支持。lightdb 23.4 版本之前 nvl(null::number, # ) 参数 # 仅支持数字类型,使用其它类型时将会报错。lightdb 23.4 版本之后 nvl(null::number, # ) 扩充了使用场景。在 oracle 模式函数 nvl 参数 # 支持使用任意类型。
2023-12-12 10:33:31
434
原创 lightdb 的 ltsql 客户端 支持使用 set define on 开启/关闭 替换变量
lightdb23.4 版本以后 ltsql 客户端 oracle 模式下开始支持替换变量。set define on 开启替代变量功能,& 表示替代变量。set define off 关闭替代变量功能,& 表示普通字符。目前只支持对select语句中出现的变量进行替换。替换变量功能默认是开启的。
2023-12-05 13:55:55
373
原创 lightdb 支持语法 with rollup
lightdb23.4 版本以后 mysql 模式中 with rollup 将会对查询数据进行汇总。兼容mysql 数据库的 with rollup 语法对数据进行汇总。此关键字跟随在 group by 后面。
2023-12-01 19:55:13
398
原创 lightdb 支持语法 for update of column
在 lightdb 23.4 以后 oracle 兼容模式中 for update of column 将会锁表或者锁行,与 for update 功能保持一致。兼容 oracle 的 for update of column 写法不报错,其中 for update of 为关键字 column 为列名(语法糖实现暂时不判断列名的正确性)。
2023-11-28 17:10:24
396
原创 lightdb 支持语法 create or replace type
在业务产品中,存在使用 create or replace type 语法重新创建自定义对象的情况。lightdb 23.4 版本对此进行了支持。在 lightdb23.4 以后,lightdb 创建自定义 type 语法环境中。nested table,object,body 三种类型支持使用 create type 创建 type,同时支持使用 create or replace type 重新创建 type。
2023-11-15 14:42:45
142
原创 lightdb 支持函数 rawtohex(sys_guid()) / rawtohex(uuid)
在 lightdb 23.4 以后,lightdb 支持 Oracle 的 rawtohex(uuid) 函数将 guid/uuid 转换成16进制数对应的字符。rawtohex(uuid) 函数为函数 rawtohex(raw),rawtohex(text) 的重载函数。
2023-11-14 18:55:33
259
原创 lightdb 支持语法 @dblink 访问外部数据库 oracle/lightdb
在 lightdb 23.4 版本以后,lightdb 的 oracle 模式兼容了 oracle 通过 @dblink 语法跨库访问 oracle 数据库。同时 lightdb 的 oracle 模式还支持了通过 @dblink 语法跨库访问 lightdb 数据库。该功能需要使用 oracle_fdw,postgres_fdw 扩展,通过外部表进行访问。
2023-11-14 17:31:49
185
原创 lightdb基础题
PL/pgSQL是一种块结构语言,函数定义的所有文本都必须在一个块内,其中块中的每个声明和每条语句都是以分号结束,如果某一子块在另外一个块内,那么该子块的END关键字后面必须以分号结束,不过对于函数体的最后一个END关键字,分号可以省略。在数据库中事务是工作的逻辑单元,一个事务是由一个或多个完成一组的相关行为的SQL语句组成,通过事务机制确保这一组SQL语句所作的操作要么都成功执行,完成整个工作单元操作,要么一个也不执行。游标是一个指向查询结果集的指针,PL/SQL有两种游标,分别是显式游标和隐式游标。
2023-10-05 23:23:05
100
原创 PostgreSQL学习笔记(六)
PostgreSQL执行参数restore_command中配置的命令,将归档日志从归档区域拷贝到临时区域,并从中读取WAL数据(复制到临时区域中的日志文件会在使用后删除)。如果启用了日志归档功能,则还会在归档目录中创建相同的命名文件。删除backup_label文件 —— 从基础备份恢复需要backup_label文件,不过一旦被复制,原始的数据库集簇就不需要该文件了。创建一个备份历史记录文件 —— 此文件包含backup_label文件的内容,以及已执行pg_stop_backup的时间戳。
2023-09-10 13:57:11
52
原创 PostgreSQL学习笔记(五)
为了减少这样的扫描,仅索引扫描会先去VM中检查目标元组所在的页是否可见,如果可见,则该元组一定可见,就不用去堆元组中查它对应的事务的可见性了。为了避免索引的频繁删除插入。缓冲表层的作用是,根据后端进程发送的请求,创建目标页面的 buffer_tag(哈希桶槽下的链表),然后将 buffer_tag 通过内置的散列函数映射到哈希桶槽,并分配 buffer_id, 即目标页面在缓冲池数组中存储的槽位的序号。当索引键更新时,这是一定需要在索引中插入新索引项的,因为旧元组被删除的话,索引的键与新元组的对不上。
2023-09-07 19:52:23
39
原创 PostgreSQL学习笔记(四)
更新与冻结事务标识相关的系统视图(pg_database和pg_class)如果可能,移除不必要的CLOG文件。移除每一页中的死元组,并对每一页内的活元组仅从碎片整理移除指向死原则的索引原则。(VM)更新一些统计信息(pg-stat_all_tables等)获取表上的AccessExclusivelock锁。更新已处理表的空闲空间映射(FSM)和可见性映射。死元组虽然被清楚了,但表的尺寸没有减小。清理表my_table死元组。将会导致新数据插入的性能下降。原先的空间将会被系统回收。跟新统计信息与系统视图。
2023-09-06 19:08:54
191
原创 PostgreSQL学习笔记(三)
清理过程为指定的表或数据库中的所有表执行以下任务。1.移除死元组和对活元组进行碎片整理。移除每一页中的死元组,并对每一页内的活元组进行碎片整理。移除指向死元组的索引元组。2.冻结旧的事务标识。如有必要,冻结旧元组的事务标识。更新与冻结事务标识相关的系统视图( pg_database 与 pg_class)。如果可能,移除不必要的提交日志文件。3.其他。更新已处理表的空闲空间映射(FSM)和可见性映射(VM)。更新一些统计信息( pg_stat_all_tables 等)。
2023-09-04 20:39:02
64
原创 PostgreSQL学习笔记(二)
其中seq_page_cost,cpu_tuple_cost,cpu_operator_cost的值在配置文件postgresql.conf中设置,默认值为 1.0, 0.01, and 0.0025。在版本9.6或更高版本中,postgres_fdw得到改进,并且当外部表都同一服务器上时,而且use_remote_estimate选项打开时,可以在远程服务器上执行远程连接操作。在版本10或更高版本中,postgres_fdw将尽可能的在远程服务器上执行带有聚合函数的SELECT语句。
2023-09-03 19:30:44
97
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人