E.29. ltfce

E.29.1. 所有模式兼容的功能
E.29.2. 函数
E.29.3. 运算符类型兼容性

ltfce - 所有模式的兼容函数和运算符。

E.29.1. 所有模式兼容的功能

提供了与所有模式兼容的功能。 函数和运算符是在 lt_catalog 下创建的。 下表列出了可以在所有模式中使用的功能。

Table E.48. 函数

概述

DATABASE

返回当前模式作为当前数据库

LOCATE

返回字符串中子字符串的位置


Table E.49. 运算符类型兼容性

LEFTARG:int2 RIGHTARG:text

LEFTARG:int4 RIGHTARG:text

LEFTARG:int8 RIGHTARG:text

LEFTARG:text RIGHTARG:int2

LEFTARG:text RIGHTARG:int4

LEFTARG:text RIGHTARG:int8

LEFTARG:text RIGHTARG:numeric

LEFTARG:numeric RIGHTARG:text


E.29.2. 函数

  • DATABASE

  • LOCATE

E.29.2.1. 数据库

描述

是 current_schema() 的同义词。在 MySQL 中,模式的概念类似于数据库。您可以通过设置搜索路径来指定当前模式。

语法

        database() RETURNS text
      

通用规则

  • 返回搜索路径中第一个模式的名称(如果搜索路径为空,则返回 null 值)。

  • 与 MySQL 类似,如果创建表或其他命名对象时未指定目标模式,则将使用此模式。

示例

        lightdb@lt_test=# select database();
        database
        ----------
        public
        (1 row)
      

E.29.2.2. LOCATE

描述

返回第一个子字符串的位置。

语法

        LOCATE(substr TEXT,str TEXT) RETURNS INTEGER
        LOCATE(substr TEXT,str TEXT,POS INTEGER) RETURNS INTEGER
      

通用规则

  • 第一种语法返回子字符串 substr 在字符串 str 中第一次出现的位置。

  • 第二种语法返回从位置 pos 开始,子字符串 substr 在字符串 str 中第一次出现的位置。

  • 如果 substr 不在 str 中,则返回 0。

  • 如果任何参数为 NULL,则返回 NULL。

示例

在以下示例中,返回从位置 5 开始,在字符串 'foobarbar' 中子字符串 'bar' 的位置。

        SELECT LOCATE('bar', 'foobarbar', 5);
        locate
        --------
        7
        (1 row)
      

E.29.3. 运算符类型兼容性

为文本类型和数值类型(int2、int4、int8、numeric)之间的运算符(例如'+', '-', '*', '/', '<', '<=', '>', '>=', '=', '<>' 和 '%')添加类型重载。

示例

使用它,您可以直接将 '1.1'::text 与 1 相加。

lightdb@test=# select '1.1'::text+1;
 ?column? 
----------
      2.1
(1 row)
    

如果在 Oracle 或 MySQL 兼容类型中(请参见 lightdb_syntax_compatible_type), 根据“未知”可以在某些情况下转换为“text”的规则(有关详细信息,请参见 Chapter 11),您可以直接将 '1.1' 与 1 相加。

lightdb@test=# select '1.1'+1;
 ?column? 
----------
      2.1
(1 row)