db_qd_internal_store_cache (private)

 db_qd_internal_store_cache fullquery

Defined in packages/acs-bootstrap-installer/tcl/40-db-query-dispatcher-procs.tcl

Store in Cache. The load_location is the file where this query was found.

Parameters:
fullquery

Partial Call Graph (max 5 caller/called nodes):
%3 db_qd_internal_load_queries db_qd_internal_load_queries (private) db_qd_internal_store_cache db_qd_internal_store_cache db_qd_internal_load_queries->db_qd_internal_store_cache db_current_rdbms db_current_rdbms (public) db_qd_internal_store_cache->db_current_rdbms db_fullquery_get_name db_fullquery_get_name (public) db_qd_internal_store_cache->db_fullquery_get_name db_fullquery_get_rdbms db_fullquery_get_rdbms (public) db_qd_internal_store_cache->db_fullquery_get_rdbms db_qd_pick_most_specific_query db_qd_pick_most_specific_query (public) db_qd_internal_store_cache->db_qd_pick_most_specific_query db_rdbms_compatible_p db_rdbms_compatible_p (public) db_qd_internal_store_cache->db_rdbms_compatible_p

Testcases:
No testcase defined.
Source code:
 

    # Check if it's compatible at all!
    set rdbms [db_fullquery_get_rdbms $fullquery]
    if {![db_rdbms_compatible_p $rdbms [db_current_rdbms]]} {
        # The query isn't compatible, probably because of a too high version
        ns_log Warning "Query [db_fullquery_get_name $fullquery] has rdbms info $rdbms which is not compatible with system rdbms [db_current_rdbms]"
        return 
    }

    set name [db_fullquery_get_name $fullquery]

    # db_qd_log QDDebug "Query $name is compatible! fullquery = $fullquery, name = $name"

    # If we already have a query for that name, we need to
    # figure out which one is *most* compatible.
    if {[nsv_exists OACS_FULLQUERIES $name]} {
	set old_fullquery [nsv_get OACS_FULLQUERIES $name]

	set fullquery [db_qd_pick_most_specific_query [db_current_rdbms$old_fullquery $fullquery]
    }

    nsv_set OACS_FULLQUERIES $name $fullquery
XQL Not present:
Generic, PostgreSQL, Oracle
[ hide source ] | [ make this the default ]
Show another procedure: