diff --git a/doc/src/sgml/runtime.sgml b/doc/src/sgml/runtime.sgml
index 057a45b856ac596a0e4050637ae3a3256e4c7fdb..1a26e9d7942065233f3a96990e14b7b1c424cf02 100644
--- a/doc/src/sgml/runtime.sgml
+++ b/doc/src/sgml/runtime.sgml
@@ -1,5 +1,5 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/runtime.sgml,v 1.118 2002/06/15 19:58:53 momjian Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/runtime.sgml,v 1.119 2002/06/16 00:09:11 momjian Exp $
 -->
 
 <Chapter Id="runtime">
@@ -759,34 +759,6 @@ env PGOPTIONS='-c geqo=off' psql
       </listitem>
      </varlistentry>
 
-     <varlistentry>
-      <term><varname>KSQO</varname> (<type>boolean</type>)</term>
-      <listitem>
-       <para>
-        The <firstterm>Key Set Query Optimizer</firstterm>
-        (<acronym>KSQO</acronym>) causes the query planner to convert
-        queries whose <literal>WHERE</> clause contains many OR'ed AND
-        clauses (such as <literal>WHERE (a=1 AND b=2) OR (a=2 AND b=3)
-        ...</literal>) into a union query. This method can be faster
-        than the default implementation, but it doesn't necessarily give
-        exactly the same results, since <literal>UNION</> implicitly
-        adds a <literal>SELECT DISTINCT</> clause to eliminate identical
-        output rows. <acronym>KSQO</acronym> is commonly used when
-        working with products like <productname>Microsoft
-        Access</productname>, which tend to generate queries of this
-        form.
-       </para>
-
-       <para>
-        The <acronym>KSQO</acronym> algorithm used to be absolutely
-        essential for queries with many OR'ed AND clauses, but in
-        <productname>PostgreSQL</productname> 7.0 and later the standard
-        planner handles these queries fairly successfully; hence the
-        default is off.
-       </para>
-      </listitem>
-     </varlistentry>
-
      <varlistentry>
       <term><varname>RANDOM_PAGE_COST</varname> (<type>floating point</type>)</term>
       <listitem>
diff --git a/src/backend/optimizer/plan/planner.c b/src/backend/optimizer/plan/planner.c
index 7e1c7ffdc00812743f619f948f4da06d28337f5e..f1668670369283c75a879ac6faffa09214512d9e 100644
--- a/src/backend/optimizer/plan/planner.c
+++ b/src/backend/optimizer/plan/planner.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/optimizer/plan/planner.c,v 1.120 2002/06/13 15:10:25 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/optimizer/plan/planner.c,v 1.121 2002/06/16 00:09:11 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -145,11 +145,6 @@ subquery_planner(Query *parse, double tuple_fraction)
 	PlannerQueryLevel++;
 	PlannerInitPlan = NIL;
 
-#ifdef ENABLE_KEY_SET_QUERY
-	/* this should go away sometime soon */
-	transformKeySetQuery(parse);
-#endif
-
 	/*
 	 * Check to see if any subqueries in the rangetable can be merged into
 	 * this query.
diff --git a/src/backend/optimizer/prep/Makefile b/src/backend/optimizer/prep/Makefile
index d78240666c681ba19c3fac5ae44a50f49c671ecb..60925de441f2c70c4767ae3d32f33dd59ba0ee3c 100644
--- a/src/backend/optimizer/prep/Makefile
+++ b/src/backend/optimizer/prep/Makefile
@@ -4,7 +4,7 @@
 #    Makefile for optimizer/prep
 #
 # IDENTIFICATION
-#    $Header: /cvsroot/pgsql/src/backend/optimizer/prep/Makefile,v 1.12 2000/08/31 16:10:13 petere Exp $
+#    $Header: /cvsroot/pgsql/src/backend/optimizer/prep/Makefile,v 1.13 2002/06/16 00:09:11 momjian Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -12,7 +12,7 @@ subdir = src/backend/optimizer/prep
 top_builddir = ../../../..
 include $(top_builddir)/src/Makefile.global
 
-OBJS = prepqual.o preptlist.o prepunion.o prepkeyset.o
+OBJS = prepqual.o preptlist.o prepunion.o
 
 all: SUBSYS.o
 
diff --git a/src/backend/optimizer/prep/prepkeyset.c b/src/backend/optimizer/prep/_deadcode/prepkeyset.c
similarity index 98%
rename from src/backend/optimizer/prep/prepkeyset.c
rename to src/backend/optimizer/prep/_deadcode/prepkeyset.c
index 76921d8e9ad009e4a34298e1c8dc26ba27ff87f1..b7f7ca169e880310145c82d4e9f7f00595942d9d 100644
--- a/src/backend/optimizer/prep/prepkeyset.c
+++ b/src/backend/optimizer/prep/_deadcode/prepkeyset.c
@@ -8,7 +8,9 @@
  *
  *-------------------------------------------------------------------------
  */
-
+ 
+/* THIS FILE WAS USED FOR KSQO, WHICH IS DISABLED NOW.  bjm  2002-06-15 */
+ 
 #include "postgres.h"
 #include "optimizer/planmain.h"
 
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index 15c8f6f4806a6eb84b833265f05de25d9bf916c3..53503f4b413c708248010641376454ec0dcbfb23 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -5,7 +5,7 @@
  * command, configuration file, and command line options.
  * See src/backend/utils/misc/README for more information.
  *
- * $Header: /cvsroot/pgsql/src/backend/utils/misc/guc.c,v 1.69 2002/05/17 20:32:29 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/misc/guc.c,v 1.70 2002/06/16 00:09:12 momjian Exp $
  *
  * Copyright 2000 by PostgreSQL Global Development Group
  * Written by Peter Eisentraut <peter_e@gmx.net>.
@@ -312,11 +312,6 @@ static struct config_bool
 		{ "enable_hashjoin", PGC_USERSET }, &enable_hashjoin,
 		true, NULL, NULL
 	},
-
-	{
-		{ "ksqo", PGC_USERSET }, &_use_keyset_query_optimizer,
-		false, NULL, NULL
-	},
 	{
 		{ "geqo", PGC_USERSET }, &enable_geqo,
 		true, NULL, NULL
diff --git a/src/backend/utils/misc/postgresql.conf.sample b/src/backend/utils/misc/postgresql.conf.sample
index c2a3c1e707754d037c793983bce57a04bb8b0bfb..00dced8d394ae3fa91bcb3eb52057df22197b09b 100644
--- a/src/backend/utils/misc/postgresql.conf.sample
+++ b/src/backend/utils/misc/postgresql.conf.sample
@@ -89,8 +89,6 @@
 #enable_mergejoin = true
 #enable_hashjoin = true
 
-#ksqo = false
-
 #effective_cache_size = 1000	# default in 8k pages
 #random_page_cost = 4
 #cpu_tuple_cost = 0.01
diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c
index 0d0909faa4980f5df65d5dba7f2cff8c651c73c7..521742ea1dd22fb4952802c99a8948963da0adaa 100644
--- a/src/bin/psql/tab-complete.c
+++ b/src/bin/psql/tab-complete.c
@@ -3,7 +3,7 @@
  *
  * Copyright 2000 by PostgreSQL Global Development Group
  *
- * $Header: /cvsroot/pgsql/src/bin/psql/tab-complete.c,v 1.49 2002/06/15 19:43:47 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/bin/psql/tab-complete.c,v 1.50 2002/06/16 00:09:12 momjian Exp $
  */
 
 /*----------------------------------------------------------------------
@@ -226,7 +226,6 @@ psql_completion(char *text, int start, int end)
 		"enable_nestloop",
 		"enable_mergejoin",
 		"enable_hashjoin",
-		"ksqo",
 		"geqo",
 		"fsync",
 		"server_min_messages",
@@ -695,7 +694,7 @@ psql_completion(char *text, int start, int end)
 
 			COMPLETE_WITH_LIST(my_list);
 		}
-		else if (strcasecmp(prev2_wd, "GEQO") == 0 || strcasecmp(prev2_wd, "KSQO") == 0)
+		else if (strcasecmp(prev2_wd, "GEQO") == 0)
 		{
 			char	   *my_list[] = {"ON", "OFF", "DEFAULT", NULL};
 
diff --git a/src/include/optimizer/planmain.h b/src/include/optimizer/planmain.h
index 29319a148561556331dd969dfc739d4e6808a435..4c6f9e3699dc914eb657836a01e701bc226ee793 100644
--- a/src/include/optimizer/planmain.h
+++ b/src/include/optimizer/planmain.h
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: planmain.h,v 1.57 2002/05/18 02:25:50 tgl Exp $
+ * $Id: planmain.h,v 1.58 2002/06/16 00:09:12 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -62,11 +62,4 @@ extern List *join_references(List *clauses, List *rtable,
 							 Index acceptable_rel);
 extern void fix_opids(Node *node);
 
-/*
- * prep/prepkeyset.c
- */
-extern bool _use_keyset_query_optimizer;
-
-extern void transformKeySetQuery(Query *origNode);
-
 #endif   /* PLANMAIN_H */