aboutsummaryrefslogtreecommitdiff
path: root/src/backend/parser/analyze.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2001-11-12 21:04:46 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2001-11-12 21:04:46 +0000
commita585c20d12d0e22befc8308e9f8ccb6f54a5df69 (patch)
treed1e33e4faa35872ffb120748a06bc9b44665abc0 /src/backend/parser/analyze.c
parent9c9ea41b3c5ed05694750b3103bcc243940dd89b (diff)
downloadpostgresql-a585c20d12d0e22befc8308e9f8ccb6f54a5df69.tar.gz
postgresql-a585c20d12d0e22befc8308e9f8ccb6f54a5df69.zip
Tweak parser so that there is a defined representation for datatypes
bpchar, bit, numeric with typmod -1. Alter format_type so that this representation is printed when the typmod is -1. This ensures that tables having such columns can be pg_dump'd and reloaded correctly. Also, remove the rather useless and non-SQL-compliant default precision and scale for type NUMERIC. A numeric column declared as such (with no precision/scale) will now have typmod -1 which means that numeric values of any precision/scale can be stored in it, without conversion to a uniform scale. This seems significantly more useful than the former behavior. Part of response to bug #513.
Diffstat (limited to 'src/backend/parser/analyze.c')
-rw-r--r--src/backend/parser/analyze.c29
1 files changed, 1 insertions, 28 deletions
diff --git a/src/backend/parser/analyze.c b/src/backend/parser/analyze.c
index 104e1ab3ba2..87df6f55e79 100644
--- a/src/backend/parser/analyze.c
+++ b/src/backend/parser/analyze.c
@@ -6,7 +6,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Header: /cvsroot/pgsql/src/backend/parser/analyze.c,v 1.211 2001/11/05 17:46:26 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/analyze.c,v 1.212 2001/11/12 21:04:45 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -34,7 +34,6 @@
#include "rewrite/rewriteManip.h"
#include "utils/builtins.h"
#include "utils/fmgroids.h"
-#include "utils/numeric.h"
#include "utils/relcache.h"
#include "utils/syscache.h"
#include "utils/temprel.h"
@@ -3180,32 +3179,6 @@ transformColumnType(ParseState *pstate, ColumnDef *column)
Type ctype = typenameType(typename->name);
/*
- * If the column doesn't have an explicitly specified typmod, check to
- * see if we want to insert a default length.
- *
- * Note that we deliberately do NOT look at array or set information
- * here; "numeric[]" needs the same default typmod as "numeric".
- */
- if (typename->typmod == -1)
- {
- switch (typeTypeId(ctype))
- {
- case BPCHAROID:
- /* "char" -> "char(1)" */
- typename->typmod = VARHDRSZ + 1;
- break;
- case NUMERICOID:
- typename->typmod = VARHDRSZ +
- ((NUMERIC_DEFAULT_PRECISION << 16) | NUMERIC_DEFAULT_SCALE);
- break;
- case BITOID:
- /* 'bit' -> 'bit(1)' */
- typename->typmod = 1;
- break;
- }
- }
-
- /*
* Is this the name of a complex type? If so, implement it as a set.
*
* XXX this is a hangover from ancient Berkeley code that probably