Convert effective_cache_size to an integer, for better integration with
authorPeter Eisentraut <peter_e@gmx.net>
Wed, 26 Jul 2006 11:35:56 +0000 (11:35 +0000)
committerPeter Eisentraut <peter_e@gmx.net>
Wed, 26 Jul 2006 11:35:56 +0000 (11:35 +0000)
upcoming units feature.

doc/src/sgml/config.sgml
src/backend/optimizer/path/costsize.c
src/backend/utils/misc/guc.c
src/include/optimizer/cost.h

index b95d6c4cd4146de1284b0e87609d457eb0905caf..bdd79725dade6cc63a2db6d8e625cd88d7534aa3 100644 (file)
@@ -1856,7 +1856,7 @@ archive_command = 'copy "%p" /mnt/server/archivedir/"%f"'  # Windows
      </varlistentry>
      
      <varlistentry id="guc-effective-cache-size" xreflabel="effective_cache_size">
-      <term><varname>effective_cache_size</varname> (<type>floating point</type>)</term>
+      <term><varname>effective_cache_size</varname> (<type>integer</type>)</term>
       <indexterm>
        <primary><varname>effective_cache_size</> configuration parameter</primary>
       </indexterm>
index d8fa2cbb67d5d7747061cfc54ea48b87f72bbdd2..ac639b7a846582eda5a3a324bb140a93d3367a71 100644 (file)
@@ -92,7 +92,7 @@ double                cpu_tuple_cost = DEFAULT_CPU_TUPLE_COST;
 double         cpu_index_tuple_cost = DEFAULT_CPU_INDEX_TUPLE_COST;
 double         cpu_operator_cost = DEFAULT_CPU_OPERATOR_COST;
 
-double         effective_cache_size = DEFAULT_EFFECTIVE_CACHE_SIZE;
+int            effective_cache_size = DEFAULT_EFFECTIVE_CACHE_SIZE;
 
 Cost           disable_cost = 100000000.0;
 
@@ -393,7 +393,7 @@ index_pages_fetched(double tuples_fetched, BlockNumber pages,
        T = (pages > 1) ? (double) pages : 1.0;
 
        /* b is pro-rated share of effective_cache_size */
-       b = effective_cache_size * T / (T + (double) other_pages);
+       b = (double) effective_cache_size * T / (T + (double) other_pages);
        /* force it positive and integral */
        if (b <= 1.0)
                b = 1.0;
index 997ed445a47a666a1a7d342bba5fa56dbde3e2b7..a5b805c917920f0d204511b6eee717fc00fa9827 100644 (file)
@@ -1579,6 +1579,17 @@ static struct config_int ConfigureNamesInt[] =
                0, 0, INT_MAX, NULL, NULL
        },
 
+       {
+               {"effective_cache_size", PGC_USERSET, QUERY_TUNING_COST,
+                       gettext_noop("Sets the planner's assumption about size of the disk cache."),
+                       gettext_noop("That is, the portion of the kernel's disk cache that "
+                                                "will be used for PostgreSQL data files. This is measured in disk "
+                                                "pages, which are normally 8 kB each.")
+               },
+               &effective_cache_size,
+               DEFAULT_EFFECTIVE_CACHE_SIZE, 1, INT_MAX, NULL, NULL
+       },
+
        /* End-of-list marker */
        {
                {NULL, 0, 0, NULL, NULL}, NULL, 0, 0, 0, NULL, NULL
@@ -1634,17 +1645,6 @@ static struct config_real ConfigureNamesReal[] =
                DEFAULT_CPU_OPERATOR_COST, 0, DBL_MAX, NULL, NULL
        },
 
-       {
-               {"effective_cache_size", PGC_USERSET, QUERY_TUNING_COST,
-                       gettext_noop("Sets the planner's assumption about size of the disk cache."),
-                       gettext_noop("That is, the portion of the kernel's disk cache that "
-                                                "will be used for PostgreSQL data files. This is measured in disk "
-                                                "pages, which are normally 8 kB each.")
-               },
-               &effective_cache_size,
-               DEFAULT_EFFECTIVE_CACHE_SIZE, 1, DBL_MAX, NULL, NULL
-       },
-
        {
                {"geqo_selection_bias", PGC_USERSET, QUERY_TUNING_GEQO,
                        gettext_noop("GEQO: selective pressure within the population."),
index 89aa2562ce2a2b0cc66d1f1f470383f186cf5b1f..297ede11bc35538268d54b652293fb10aa5e7348 100644 (file)
@@ -27,7 +27,7 @@
 #define DEFAULT_CPU_INDEX_TUPLE_COST 0.005
 #define DEFAULT_CPU_OPERATOR_COST  0.0025
 
-#define DEFAULT_EFFECTIVE_CACHE_SIZE  1000.0   /* measured in pages */
+#define DEFAULT_EFFECTIVE_CACHE_SIZE  1000     /* measured in pages */
 
 
 /*
@@ -41,7 +41,7 @@ extern DLLIMPORT double random_page_cost;
 extern DLLIMPORT double cpu_tuple_cost;
 extern DLLIMPORT double cpu_index_tuple_cost;
 extern DLLIMPORT double cpu_operator_cost;
-extern DLLIMPORT double effective_cache_size;
+extern DLLIMPORT int effective_cache_size;
 extern Cost disable_cost;
 extern bool enable_seqscan;
 extern bool enable_indexscan;