mirror of
https://github.com/postgres/postgres.git
synced 2025-07-27 12:41:57 +03:00
config
contrib
array
btree_gist
chkpass
cube
data
expected
sql
Makefile
README.cube
buffer.c
buffer.h
cube.c
cube.sql.in
cubedata.h
cubeparse.y
cubescan.l
dbase
dblink
dbsize
earthdistance
findoidjoins
fulltextindex
fuzzystrmatch
intagg
intarray
ipc_check
isbn_issn
lo
mSQL-interface
mac
miscutil
mysql
noupdate
oid2name
oracle
pg_controldata
pg_dumplo
pg_logger
pg_resetxlog
pg_upgrade
pgbench
pgcrypto
pgstattuple
retep
rserv
rtree_gist
seg
spi
start-scripts
string
tips
tools
tsearch
userlock
vacuumlo
xml
Makefile
README
contrib-global.mk
doc
src
COPYRIGHT
GNUmakefile.in
HISTORY
INSTALL
Makefile
README
aclocal.m4
configure
configure.in
register.txt
85 lines
1.4 KiB
C
85 lines
1.4 KiB
C
/* This module defines the parse buffer and routines for setting/reading it */
|
|
|
|
#include "postgres.h"
|
|
|
|
#include "utils/elog.h"
|
|
|
|
static char *PARSE_BUFFER;
|
|
static char *PARSE_BUFFER_PTR;
|
|
static unsigned int PARSE_BUFFER_SIZE;
|
|
static unsigned int SCANNER_POS;
|
|
|
|
void set_parse_buffer(char *s);
|
|
void reset_parse_buffer(void);
|
|
int read_parse_buffer(void);
|
|
char *parse_buffer(void);
|
|
char *parse_buffer_ptr(void);
|
|
unsigned int parse_buffer_curr_char(void);
|
|
unsigned int parse_buffer_size(void);
|
|
unsigned int parse_buffer_pos(void);
|
|
|
|
extern void cube_flush_scanner_buffer(void); /* defined in cubescan.l */
|
|
|
|
void
|
|
set_parse_buffer(char *s)
|
|
{
|
|
PARSE_BUFFER = s;
|
|
PARSE_BUFFER_SIZE = strlen(s);
|
|
if (PARSE_BUFFER_SIZE == 0)
|
|
elog(ERROR, "cube_in: can't parse an empty string");
|
|
PARSE_BUFFER_PTR = PARSE_BUFFER;
|
|
SCANNER_POS = 0;
|
|
}
|
|
|
|
void
|
|
reset_parse_buffer(void)
|
|
{
|
|
PARSE_BUFFER_PTR = PARSE_BUFFER;
|
|
SCANNER_POS = 0;
|
|
cube_flush_scanner_buffer();
|
|
}
|
|
|
|
int
|
|
read_parse_buffer(void)
|
|
{
|
|
int c;
|
|
|
|
/*
|
|
* c = *PARSE_BUFFER_PTR++; SCANNER_POS++;
|
|
*/
|
|
c = PARSE_BUFFER[SCANNER_POS];
|
|
if (SCANNER_POS < PARSE_BUFFER_SIZE)
|
|
SCANNER_POS++;
|
|
return c;
|
|
}
|
|
|
|
char *
|
|
parse_buffer(void)
|
|
{
|
|
return PARSE_BUFFER;
|
|
}
|
|
|
|
unsigned int
|
|
parse_buffer_curr_char(void)
|
|
{
|
|
return PARSE_BUFFER[SCANNER_POS];
|
|
}
|
|
|
|
char *
|
|
parse_buffer_ptr(void)
|
|
{
|
|
return PARSE_BUFFER_PTR;
|
|
}
|
|
|
|
unsigned int
|
|
parse_buffer_pos(void)
|
|
{
|
|
return SCANNER_POS;
|
|
}
|
|
|
|
unsigned int
|
|
parse_buffer_size(void)
|
|
{
|
|
return PARSE_BUFFER_SIZE;
|
|
}
|