summaryrefslogtreecommitdiff
path: root/contrib/cube
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/cube')
-rw-r--r--contrib/cube/cube.c5
-rw-r--r--contrib/cube/cubedata.h9
-rw-r--r--contrib/cube/cubeparse.y5
-rw-r--r--contrib/cube/cubescan.l10
4 files changed, 10 insertions, 19 deletions
diff --git a/contrib/cube/cube.c b/contrib/cube/cube.c
index b0305ef431d..b9ccad994a8 100644
--- a/contrib/cube/cube.c
+++ b/contrib/cube/cube.c
@@ -26,11 +26,6 @@ PG_MODULE_MAGIC;
#define ARRPTR(x) ( (double *) ARR_DATA_PTR(x) )
#define ARRNELEMS(x) ArrayGetNItems( ARR_NDIM(x), ARR_DIMS(x))
-extern int cube_yyparse(NDBOX **result);
-extern void cube_yyerror(NDBOX **result, const char *message);
-extern void cube_scanner_init(const char *str);
-extern void cube_scanner_finish(void);
-
/*
** Input/Output routines
*/
diff --git a/contrib/cube/cubedata.h b/contrib/cube/cubedata.h
index 719e43d421c..59c23ded6ac 100644
--- a/contrib/cube/cubedata.h
+++ b/contrib/cube/cubedata.h
@@ -46,3 +46,12 @@ typedef struct NDBOX
#define DatumGetNDBOX(x) ((NDBOX *) PG_DETOAST_DATUM(x))
#define PG_GETARG_NDBOX(x) DatumGetNDBOX(PG_GETARG_DATUM(x))
#define PG_RETURN_NDBOX(x) PG_RETURN_POINTER(x)
+
+/* in cubescan.l */
+extern int cube_yylex(void);
+extern void cube_yyerror(NDBOX **result, const char *message) pg_attribute_noreturn();
+extern void cube_scanner_init(const char *str);
+extern void cube_scanner_finish(void);
+
+/* in cubeparse.y */
+extern int cube_yyparse(NDBOX **result);
diff --git a/contrib/cube/cubeparse.y b/contrib/cube/cubeparse.y
index 0baee8e1324..33606c741c5 100644
--- a/contrib/cube/cubeparse.y
+++ b/contrib/cube/cubeparse.y
@@ -22,14 +22,9 @@
#define YYMALLOC palloc
#define YYFREE pfree
-extern int cube_yylex(void);
-
static char *scanbuf;
static int scanbuflen;
-extern int cube_yyparse(NDBOX **result);
-extern void cube_yyerror(NDBOX **result, const char *message);
-
static int delim_count(char *s, char delim);
static NDBOX * write_box(unsigned int dim, char *str1, char *str2);
static NDBOX * write_point_as_box(char *s, int dim);
diff --git a/contrib/cube/cubescan.l b/contrib/cube/cubescan.l
index 1c2522a2398..4408e28387e 100644
--- a/contrib/cube/cubescan.l
+++ b/contrib/cube/cubescan.l
@@ -4,8 +4,6 @@
* contrib/cube/cubescan.l
*/
-#include "postgres.h"
-
/* No reason to constrain amount of data slurped */
#define YY_READ_BUF_SIZE 16777216
@@ -24,12 +22,6 @@ static YY_BUFFER_STATE scanbufhandle;
/* this is now declared in cubeparse.y: */
/* static char *scanbuf; */
/* static int scanbuflen; */
-
-/* flex 2.5.4 doesn't bother with a decl for this */
-int cube_yylex(void);
-
-void cube_scanner_init(const char *str);
-void cube_scanner_finish(void);
%}
%option 8bit
@@ -60,7 +52,7 @@ float ({integer}|{real})([eE]{integer})?
%%
-void pg_attribute_noreturn
+void
yyerror(NDBOX **result, const char *message)
{
if (*yytext == YY_END_OF_BUFFER_CHAR)