diff options
Diffstat (limited to 'db-4.8.30/examples_c/csv/csv.h')
-rw-r--r-- | db-4.8.30/examples_c/csv/csv.h | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/db-4.8.30/examples_c/csv/csv.h b/db-4.8.30/examples_c/csv/csv.h new file mode 100644 index 0000000..fb0a66a --- /dev/null +++ b/db-4.8.30/examples_c/csv/csv.h @@ -0,0 +1,101 @@ +/*- + * See the file LICENSE for redistribution information. + * + * Copyright (c) 2005-2009 Oracle. All rights reserved. + * + * $Id$ + */ + +#include <sys/types.h> +#include <sys/stat.h> + +#include <ctype.h> +#include <errno.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#ifdef _WIN32 +#define WIN32_LEAN_AND_MEAN 1 + +#include <direct.h> +#include <db.h> + +extern int getopt(int, char * const *, const char *); +extern char *optarg; +extern int optind; +#else +#define HAVE_WILDCARD_SUPPORT 1 + +#include <regex.h> +#include <unistd.h> +#endif + +#include "db.h" + +/* + * MAP_VERSION + * This code has hooks for versioning, but does not directly support it. + * See the README file for details. + */ +#define MAP_VERSION 1 + +/* + * Supported formats. + * + * FORMAT_NL: <nl> separated + * FORMAT_EXCEL: Excel dumped flat text. + */ +typedef enum { FORMAT_EXCEL, FORMAT_NL } input_fmt; + +/* + * OFFSET_LEN + * The length of any item can be calculated from the two offset fields. + * OFFSET_OOB + * An offset that's illegal, used to detect unavailable fields. + */ +#define OFFSET_LEN(offset, indx) \ + (((offset)[(indx) + 1] - (offset)[(indx)]) - 1) + +#define OFFSET_OOB 0 + +/* + * Field comparison operators. + */ +typedef enum { EQ=1, NEQ, GT, GTEQ, LT, LTEQ, WC, NWC } OPERATOR; + +/* + * Supported data types. + */ +typedef enum { NOTSET=1, DOUBLE, STRING, UNSIGNED_LONG } datatype; + +/* + * C structure that describes the csv fields. + */ +typedef struct { + char *name; /* Field name */ + u_int32_t fieldno; /* Field index */ + datatype type; /* Data type */ + + int indx; /* Indexed */ + DB *secondary; /* Secondary index handle */ + +#define FIELD_OFFSET(field) ((size_t)(&(((DbRecord *)0)->field))) + size_t offset; /* DbRecord field offset */ +} DbField; + +/* + * Globals + */ +extern DB *db; /* Primary database */ +extern DbField fieldlist[]; /* Field list */ +extern DB_ENV *dbenv; /* Database environment */ +extern char *progname; /* Program name */ +extern int verbose; /* Program verbosity */ +#ifdef _WIN32 +#undef strcasecmp +#define strcasecmp _stricmp +#undef strncasecmp +#define strncasecmp _strnicmp +#define mkdir(d, perm) _mkdir(d) +#endif |