From Surf Wiki (app.surf) — the open knowledge base
Expression index
Within computing and computer science, an expression index, also known as a function based index, is a database index that is built on a generic expression, rather than one or more columns. This allows indexes to be defined for common query conditions that depend on data in a table, but are not actually stored in that table.
A common use for an expression index is to support case-insensitive searching or constraints. For example, if a web site wants to make user names case-insensitive, but still preserve the case as originally entered by the user, an index can be created on the lower-case representation of the user name:
:CREATE INDEX users__last_name_lower ON users( lower( last_name ) );
That will create a unique index on "lower(last_name)". Any queries that search on "lower(last_name)" could then make use of that index:
:SELECT user_id FROM users WHERE lower( last_name ) = lower( 'Smith' );
Database support
Major databases which support expression indexes include: IBM Db2 (since version 10.5), Oracle Database (since release 8i.) and PostgreSQL (since at least version 7).
References
References
- "What's new in DB2 10.5 for Linux, UNIX, and Windows".
- "Oracle Function Based Indexes".
- "PostgreSQL - User's Guide - Chapter 7. Indices and Keys".
This article was imported from Wikipedia and is available under the Creative Commons Attribution-ShareAlike 4.0 License. Content has been adapted to SurfDoc format. Original contributors can be found on the article history page.
Ask Mako anything about Expression index — get instant answers, deeper analysis, and related topics.
Research with MakoFree with your Surf account
Create a free account to save articles, ask Mako questions, and organize your research.
Sign up freeThis content may have been generated or modified by AI. CloudSurf Software LLC is not responsible for the accuracy, completeness, or reliability of AI-generated content. Always verify important information from primary sources.
Report