
# U0100056: GaussDB不支持以TO_DATE或TO_CHAR这类非不可变函数生成索引
#### 描述
GaussDB不支持以TO_DATE或TO_CHAR这类非不可变函数生成索引。
**数据库类型与版本**
- 源库类型与版本：UGO 支持的 Oracle 版本。
- 目标库类型与版本：UGO 支持的 GaussDB 版本。
**语法示例**
```
create  index index_range_index on range_index(to_date(date1,'yyyy-mm-dd')) ;
```
#### 改造建议
无自动化方案，TO_DATE或TO_CHAR人工创建确定性函数，然后函数表达式引用确定性函数。
GaussDB修改后：
```
CREATE OR REPLACE FUNCTION dsc_fn_to_date
     ( i_date      IN  timestamp 
     , i_date_fmt  IN  TEXT ) 
returns timestamp without time zone
IMMUTABLE
AS
$PG$
    SELECT TO_DATE(i_date, i_date_fmt)
$PG$
LANGUAGE SQL;
---index
create  index index_range_index on range_index(dsc_fn_to_date(date1,'yyyy-mm-dd'))  ;
```
