aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Meskes <meskes@postgresql.org>2003-06-17 07:28:22 +0000
committerMichael Meskes <meskes@postgresql.org>2003-06-17 07:28:22 +0000
commit8a2aa79feede100eb66ce932dbb453442aa61cf6 (patch)
tree5c947e11242fe68fb8ceb9062d916e37f8446578
parentf12f8990e45f7564fb348b0d7a5afc0fe0aa660f (diff)
downloadpostgresql-8a2aa79feede100eb66ce932dbb453442aa61cf6.tar.gz
postgresql-8a2aa79feede100eb66ce932dbb453442aa61cf6.zip
Fixed several more parsing bugs.
-rw-r--r--src/interfaces/ecpg/ChangeLog4
-rw-r--r--src/interfaces/ecpg/ecpglib/typename.c10
-rw-r--r--src/interfaces/ecpg/preproc/pgc.l6
-rw-r--r--src/interfaces/ecpg/preproc/preproc.y20
4 files changed, 22 insertions, 18 deletions
diff --git a/src/interfaces/ecpg/ChangeLog b/src/interfaces/ecpg/ChangeLog
index 416081aa1bc..f6ae819dd4b 100644
--- a/src/interfaces/ecpg/ChangeLog
+++ b/src/interfaces/ecpg/ChangeLog
@@ -1492,6 +1492,10 @@ Sun Jun 15 11:18:58 CEST 2003
- Applied multi-threading patch by Lee Kindess <lkindness@csl.co.uk>
- Changed order of types in enum to make working with these easier.
+
+Tue Jun 17 08:45:14 CEST 2003
+
+ - Fixed several parsing bugs.
- Set ecpg version to 3.0.0
- Set ecpg library to 4.0.0
- Set pgtypes library to 1.0.0
diff --git a/src/interfaces/ecpg/ecpglib/typename.c b/src/interfaces/ecpg/ecpglib/typename.c
index c3293984715..4967674e19b 100644
--- a/src/interfaces/ecpg/ecpglib/typename.c
+++ b/src/interfaces/ecpg/ecpglib/typename.c
@@ -1,4 +1,4 @@
-/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/ecpglib/typename.c,v 1.4 2003/06/15 04:07:58 momjian Exp $ */
+/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/ecpglib/typename.c,v 1.5 2003/06/17 07:28:22 meskes Exp $ */
#define POSTGRES_ECPG_INTERNAL
#include "postgres_fe.h"
@@ -49,13 +49,13 @@ ECPGtype_name(enum ECPGttype typ)
case ECPGt_char_variable:
return "char";
case ECPGt_numeric:
- return "numeric";
+ return "Numeric";
case ECPGt_date:
- return "date";
+ return "Date";
case ECPGt_timestamp:
- return "timestamp";
+ return "Timestamp";
case ECPGt_interval:
- return "interval";
+ return "Interval";
default:
abort();
}
diff --git a/src/interfaces/ecpg/preproc/pgc.l b/src/interfaces/ecpg/preproc/pgc.l
index fc3c9440321..b70025065f6 100644
--- a/src/interfaces/ecpg/preproc/pgc.l
+++ b/src/interfaces/ecpg/preproc/pgc.l
@@ -12,7 +12,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/pgc.l,v 1.115 2003/06/16 16:58:10 meskes Exp $
+ * $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/pgc.l,v 1.116 2003/06/17 07:28:22 meskes Exp $
*
*-------------------------------------------------------------------------
*/
@@ -231,7 +231,7 @@ ccomment "//".*\n
space [ \t\n\r\f]
horiz_space [ \t\f]
-newline [\n\r]
+newline [\n\r]
non_newline [^\n\r]
comment ("--"{non_newline}*)
@@ -613,7 +613,7 @@ cppline {space}*#(.*\\{space})+.*
else
return S_ANYTHING;
}
-<C>{ccomment} { /* ignore */ }
+<C>{ccomment} { ECHO; }
<C>{xch} {
char* endptr;
diff --git a/src/interfaces/ecpg/preproc/preproc.y b/src/interfaces/ecpg/preproc/preproc.y
index 0bb41459031..d96b6500cfd 100644
--- a/src/interfaces/ecpg/preproc/preproc.y
+++ b/src/interfaces/ecpg/preproc/preproc.y
@@ -1,4 +1,4 @@
-/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/Attic/preproc.y,v 1.232 2003/06/16 16:58:11 meskes Exp $ */
+/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/Attic/preproc.y,v 1.233 2003/06/17 07:28:22 meskes Exp $ */
/* Copyright comment */
%{
@@ -4417,7 +4417,7 @@ single_vt_type: common_type
else if (strcmp($1, "numeric") == 0)
{
$$.type_enum = ECPGt_numeric;
- $$.type_str = EMPTY;
+ $$.type_str = make_str("Numeric");
$$.type_dimension = make_str("-1");
$$.type_index = make_str("-1");
$$.type_sizeof = NULL;
@@ -4425,7 +4425,7 @@ single_vt_type: common_type
else if (strcmp($1, "decimal") == 0)
{
$$.type_enum = ECPGt_numeric;
- $$.type_str = EMPTY;
+ $$.type_str = make_str("Numeric");
$$.type_dimension = make_str("-1");
$$.type_index = make_str("-1");
$$.type_sizeof = NULL;
@@ -4457,7 +4457,7 @@ single_vt_type: common_type
else if (strcmp($1, "interval") == 0)
{
$$.type_enum = ECPGt_interval;
- $$.type_str = EMPTY;
+ $$.type_str = make_str("Interval");
$$.type_dimension = make_str("-1");
$$.type_index = make_str("-1");
$$.type_sizeof = NULL;
@@ -4727,7 +4727,7 @@ common_type: simple_type
mmerror(PARSE_ERROR, ET_ERROR, "Only numeric/decimal have precision/scale argument");
$$.type_enum = ECPGt_numeric;
- $$.type_str = EMPTY;
+ $$.type_str = make_str("Numeric");
$$.type_dimension = make_str("-1");
$$.type_index = make_str("-1");
$$.type_sizeof = NULL;
@@ -4771,7 +4771,7 @@ var_type: common_type
else if (strcmp($1, "numeric") == 0)
{
$$.type_enum = ECPGt_numeric;
- $$.type_str = EMPTY;
+ $$.type_str = make_str("Numeric");
$$.type_dimension = make_str("-1");
$$.type_index = make_str("-1");
$$.type_sizeof = NULL;
@@ -4779,7 +4779,7 @@ var_type: common_type
else if (strcmp($1, "decimal") == 0)
{
$$.type_enum = ECPGt_numeric;
- $$.type_str = EMPTY;
+ $$.type_str = make_str("Numeric");
$$.type_dimension = make_str("-1");
$$.type_index = make_str("-1");
$$.type_sizeof = NULL;
@@ -4803,7 +4803,7 @@ var_type: common_type
else if (strcmp($1, "interval") == 0)
{
$$.type_enum = ECPGt_interval;
- $$.type_str = EMPTY;
+ $$.type_str = make_str("Interval");
$$.type_dimension = make_str("-1");
$$.type_index = make_str("-1");
$$.type_sizeof = NULL;
@@ -5048,7 +5048,7 @@ variable: opt_pointer ECPGColLabelCommon opt_array_bounds opt_initializer
$$ = cat_str(4, $1, mm_strdup($2), $3.str, $4);
break;
- case ECPGt_numeric:
+ /*case ECPGt_numeric:
if (atoi(dimension) < 0)
type = ECPGmake_simple_type(actual_type[struct_level].type_enum, length);
else
@@ -5070,7 +5070,7 @@ variable: opt_pointer ECPGColLabelCommon opt_array_bounds opt_initializer
$$ = cat_str(4, mm_strdup(actual_storage[struct_level]), make_str("Interval"), mm_strdup($2), $4);
else
$$ = cat_str(5, mm_strdup(actual_storage[struct_level]), make_str("Interval"), mm_strdup($2), mm_strdup(dim), $4);
- break;
+ break;*/
default:
if (atoi(dimension) < 0)