Bug 905383 - Database functions not fully optimized
Summary: Database functions not fully optimized
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat Enterprise Virtualization Manager
Classification: Red Hat
Component: ovirt-engine
Version: 3.2.0
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
: 3.3.0
Assignee: Eli Mesika
QA Contact: Pavel Stehlik
URL:
Whiteboard: infra
Depends On:
Blocks: 995084 1007564 1026394
TreeView+ depends on / blocked
 
Reported: 2013-01-29 09:57 UTC by Lior Vernia
Modified: 2016-02-10 19:01 UTC (History)
11 users (show)

Fixed In Version: is12
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed:
oVirt Team: Infra
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
oVirt gerrit 17962 0 None None None Never

Description Lior Vernia 2013-01-29 09:57:33 UTC
Description of problem:

PostgreSQL enables marking the volatility and strictness of a function, which in turn might improve the running time of queries. We currently do not take advantage of this, and it might be worthwhile to mark functions this way.

Note on compatibility: while this is specific to PostgreSQL, it should be easy to write a script that drops all occurrences of IMMUTABLE, STABLE etc. if we ever move to another database implementation.


Additional info:

Volatility
----------
* A function should be marked as IMMUTABLE if it doesn't change the database, and if it doesn't perform any lookups (even for database configuration values) during its operation.
* A function should be marked STABLE if it doesn't change the database, but might perform lookups (IMMUTABLE is preferable if function meets the requirements).
* A function doesn't need to be marked VOLATILE, because that's the default.

STRICTNESS
----------
A function should be marked STRICT if it should return NULL when it is passed a NULL argument, and then the function won't even be called if it is indeed passed a NULL argument.

Comment 4 Eli Mesika 2013-08-26 09:42:57 UTC
fixed in commit : df5cf3a

Comment 5 rhev-integ 2013-09-12 18:41:11 UTC
This bug has been cloned to bug #1007564

Comment 7 Itamar Heim 2014-01-21 22:29:02 UTC
Closing - RHEV 3.3 Released

Comment 8 Itamar Heim 2014-01-21 22:29:02 UTC
Closing - RHEV 3.3 Released

Comment 9 Itamar Heim 2014-01-21 22:32:01 UTC
Closing - RHEV 3.3 Released


Note You need to log in before you can comment on or make changes to this bug.