diff --git a/doc/src/sgml/func.sgml b/doc/src/sgml/func.sgml
index a3e66eabc34..f2d84a969aa 100644
--- a/doc/src/sgml/func.sgml
+++ b/doc/src/sgml/func.sgml
@@ -1,5 +1,5 @@
@@ -682,14 +682,15 @@ PostgreSQL documentation
round(42.4382, 2)
42.44
-
+
+
+ setseed(dp)
+ int32
+ set seed for subsequent random() calls
+ setseed(0.54823)
+ 1177314959
+
+
sign(dp or numeric)
(same as input)
@@ -955,7 +956,8 @@ PostgreSQL documentation
substring(string from pattern for escape)
text
- Extract substring matching SQL regular expression
+ Extract substring matching SQL regular
+ expression
substring
@@ -1168,7 +1170,7 @@ PostgreSQL documentation
text
Return the given string suitably quoted to be used as an identifier
- in an SQL query string.
+ in an SQL query string.
Quotes are added only if necessary (i.e., if the string contains
non-identifier characters or would be case-folded).
Embedded quotes are properly doubled.
@@ -1182,7 +1184,7 @@ PostgreSQL documentation
text
Return the given string suitably quoted to be used as a literal
- in an SQL query string.
+ in an SQL query string.
Embedded quotes and backslashes are properly doubled.
quote_literal('O\'Reilly')
@@ -2511,14 +2513,15 @@ PostgreSQL documentation
SUBSTRING(string FROM
pattern FOR
escape), provides
- extraction of a substring that matches a SQL99 regular expression
- pattern. As with SIMILAR TO>, the specified pattern
- must match to the entire data string, else the function fails and
- returns null. To indicate the part of the pattern that should be
- returned on success, SQL99 specifies that the pattern must
- contain two occurrences of the escape character followed by
- double quote (">). The text matching the portion of
- the pattern between these markers is returned.
+ extraction of a substring that matches a SQL99
+ regular expression pattern. As with SIMILAR TO>, the
+ specified pattern must match to the entire data string, else the
+ function fails and returns null. To indicate the part of the
+ pattern that should be returned on success,
+ SQL99 specifies that the pattern must contain
+ two occurrences of the escape character followed by double quote
+ (">). The text matching the portion of the pattern
+ between these markers is returned.
@@ -6025,11 +6028,11 @@ SELECT TIMESTAMP 'now';
- For largely historical reasons, the sequence to be operated on by
- a sequence-function call is specified by a text-string argument.
- To achieve some compatibility with the handling of ordinary SQL
- names, the sequence functions convert their argument to lower case
- unless the string is double-quoted. Thus
+ For largely historical reasons, the sequence to be operated on by a
+ sequence-function call is specified by a text-string argument. To
+ achieve some compatibility with the handling of ordinary
+ SQL names, the sequence functions convert their
+ argument to lower case unless the string is double-quoted. Thus
nextval('foo') operates on sequence foo>
nextval('FOO') operates on sequence foo>
@@ -6480,7 +6483,8 @@ SELECT NULLIF(value, '(none)') ...
The current_setting is used to obtain the current
value of the setting_name setting, as a query
- result. It is the equivalent to the SQL SHOW command.
+ result. It is the equivalent to the SQL
+ SHOW command.
For example:
select current_setting('DateStyle');
@@ -6497,8 +6501,8 @@ select current_setting('DateStyle');
If is_local is set to true,
the new value will only apply to the current transaction. If you want
the new value to apply for the current session, use
- false instead. It is the equivalent to the SQL
- SET command. For example:
+ false instead. It is the equivalent to the
+ SQL SET command. For example:
select set_config('show_statement_stats','off','f');
set_config
diff --git a/src/backend/utils/adt/misc.c b/src/backend/utils/adt/misc.c
index 6b105fdef4d..1f85e4f4992 100644
--- a/src/backend/utils/adt/misc.c
+++ b/src/backend/utils/adt/misc.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/misc.c,v 1.27 2002/09/04 20:31:28 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/misc.c,v 1.28 2003/02/13 05:24:02 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -43,75 +43,6 @@ nonnullvalue(PG_FUNCTION_ARGS)
PG_RETURN_BOOL(true);
}
-/*
- * oidrand (oid o, int4 X)-
- * Takes in an oid and a int4 X, and will return 'true' about 1/X of
- * the time. If X == 0, this will always return true.
- * Useful for doing random sampling or subsetting.
- *
- * Example use:
- * select * from TEMP where oidrand(TEMP.oid, 10)
- * will return about 1/10 of the tuples in TEMP
- *
- * NOTE: the OID input is not used at all. It is there just because of
- * an old optimizer bug: a qual expression containing no variables was
- * mistakenly assumed to be a constant. Pretending to access the row's OID
- * prevented the optimizer from treating the oidrand() result as constant.
- */
-
-static bool random_initialized = false;
-
-Datum
-oidrand(PG_FUNCTION_ARGS)
-{
-#ifdef NOT_USED
- Oid o = PG_GETARG_OID(0);
-#endif
- int32 X = PG_GETARG_INT32(1);
- bool result;
-
- if (X == 0)
- PG_RETURN_BOOL(true);
-
- /*
- * We do this because the cancel key is actually a random, so we don't
- * want them to be able to request random numbers using our postmaster
- * seeded value.
- */
- if (!random_initialized)
- {
- srandom((unsigned int) time(NULL));
- random_initialized = true;
- }
-
- result = (random() % X == 0);
- PG_RETURN_BOOL(result);
-}
-
-/*
- oidsrand(int32 X) -
- seeds the random number generator
- always returns true
-*/
-Datum
-oidsrand(PG_FUNCTION_ARGS)
-{
- int32 X = PG_GETARG_INT32(0);
-
- srandom((unsigned int) X);
- random_initialized = true;
- PG_RETURN_BOOL(true);
-}
-
-
-Datum
-userfntest(PG_FUNCTION_ARGS)
-{
- int32 i = PG_GETARG_INT32(0);
-
- PG_RETURN_INT32(i);
-}
-
/*
* current_database()
* Expose the current database to the user
diff --git a/src/include/catalog/catversion.h b/src/include/catalog/catversion.h
index df4347633f2..230f1e277ac 100644
--- a/src/include/catalog/catversion.h
+++ b/src/include/catalog/catversion.h
@@ -37,7 +37,7 @@
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: catversion.h,v 1.175 2003/02/03 21:15:44 tgl Exp $
+ * $Id: catversion.h,v 1.176 2003/02/13 05:24:02 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -53,6 +53,6 @@
*/
/* yyyymmddN */
-#define CATALOG_VERSION_NO 200302031
+#define CATALOG_VERSION_NO 200302131
#endif
diff --git a/src/include/catalog/pg_proc.h b/src/include/catalog/pg_proc.h
index d7b13a762eb..f32715284b0 100644
--- a/src/include/catalog/pg_proc.h
+++ b/src/include/catalog/pg_proc.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: pg_proc.h,v 1.282 2003/01/28 22:13:36 tgl Exp $
+ * $Id: pg_proc.h,v 1.283 2003/02/13 05:24:02 momjian Exp $
*
* NOTES
* The script catalog/genbki.sh reads this file and generates .bki
@@ -944,12 +944,6 @@ DESCR("greater-than");
/* OIDS 700 - 799 */
DATA(insert OID = 710 ( getpgusername PGNSP PGUID 12 f f t f s 0 19 "" current_user - _null_ ));
DESCR("deprecated -- use current_user");
-DATA(insert OID = 711 ( userfntest PGNSP PGUID 12 f f t f i 1 23 "23" userfntest - _null_ ));
-DESCR("");
-DATA(insert OID = 713 ( oidrand PGNSP PGUID 12 f f t f v 2 16 "26 23" oidrand - _null_ ));
-DESCR("random");
-DATA(insert OID = 715 ( oidsrand PGNSP PGUID 12 f f t f v 1 16 "23" oidsrand - _null_ ));
-DESCR("seed random number generator");
DATA(insert OID = 716 ( oidlt PGNSP PGUID 12 f f t f i 2 16 "26 26" oidlt - _null_ ));
DESCR("less-than");
DATA(insert OID = 717 ( oidle PGNSP PGUID 12 f f t f i 2 16 "26 26" oidle - _null_ ));
diff --git a/src/include/utils/builtins.h b/src/include/utils/builtins.h
index df20f4ad499..e956f54fef6 100644
--- a/src/include/utils/builtins.h
+++ b/src/include/utils/builtins.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: builtins.h,v 1.207 2003/02/06 20:25:33 tgl Exp $
+ * $Id: builtins.h,v 1.208 2003/02/13 05:24:04 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -315,9 +315,6 @@ extern Datum float84ge(PG_FUNCTION_ARGS);
/* misc.c */
extern Datum nullvalue(PG_FUNCTION_ARGS);
extern Datum nonnullvalue(PG_FUNCTION_ARGS);
-extern Datum oidrand(PG_FUNCTION_ARGS);
-extern Datum oidsrand(PG_FUNCTION_ARGS);
-extern Datum userfntest(PG_FUNCTION_ARGS);
extern Datum current_database(PG_FUNCTION_ARGS);
/* not_in.c */
diff --git a/src/test/regress/expected/random.out b/src/test/regress/expected/random.out
index 0f4dce0bbe1..583be02be09 100644
--- a/src/test/regress/expected/random.out
+++ b/src/test/regress/expected/random.out
@@ -15,11 +15,11 @@ SELECT count(*) FROM onek;
-- have a regression test which can pass/fail
-- - thomas 1998-08-17
SELECT count(*) AS random INTO RANDOM_TBL
- FROM onek WHERE oidrand(onek.oid, 10);
+ FROM onek WHERE random() < 1.0/10;
-- select again, the count should be different
INSERT INTO RANDOM_TBL (random)
SELECT count(*)
- FROM onek WHERE oidrand(onek.oid, 10);
+ FROM onek WHERE random() < 1.0/10;
-- now test the results for randomness in the correct range
SELECT random, count(random) FROM RANDOM_TBL
GROUP BY random HAVING count(random) > 1;
diff --git a/src/test/regress/sql/random.sql b/src/test/regress/sql/random.sql
index 1279a8b0f48..e2333b985f8 100644
--- a/src/test/regress/sql/random.sql
+++ b/src/test/regress/sql/random.sql
@@ -12,12 +12,12 @@ SELECT count(*) FROM onek;
-- have a regression test which can pass/fail
-- - thomas 1998-08-17
SELECT count(*) AS random INTO RANDOM_TBL
- FROM onek WHERE oidrand(onek.oid, 10);
+ FROM onek WHERE random() < 1.0/10;
-- select again, the count should be different
INSERT INTO RANDOM_TBL (random)
SELECT count(*)
- FROM onek WHERE oidrand(onek.oid, 10);
+ FROM onek WHERE random() < 1.0/10;
-- now test the results for randomness in the correct range
SELECT random, count(random) FROM RANDOM_TBL