I have a table that contains a TIMESTAMP(6) WITH TIME ZONE column, as well as a INTERVAL DAY(4) TO SECOND(0) column. For the sake of clarity, let's assume the following DDL:
CREATE TABLE TEST_TABLE
(
time_col TIMESTAMP(6) WITH TIME ZONE,
interval_col INTERVAL DAY(4) TO SECOND(0)
);
This table contains an index that uses these two columns:
CREATE INDEX IDX_DELAY ON TEST_TABLE(time_col+interval_col);
When running this DDL, Oracle creates the index but implicitly adds the SYS_EXTRACT_UTC function:
CREATE INDEX IDX_DELAY ON TEST_TABLE(SYS_EXTRACT_UTC(time_col+interval_col));
The same DDL was run on other databases in the past and the SYS_EXTRACT_UTC function is not present. I don't know if the databases were migrated from older Oracle versions, but currently they all run on 12c (12.1.0.2.0). I've dropped the index on one of them and recreated it, which caused Oracle to add the SYS_EXTRACT_UTC function.
Why does this happen? Was there a change in behavior in previous Oracle DB releases? Also, what could be the impact of having this function in the index (or the lack of it)?
Thanks in advance!