00001 #ifndef __VARIADIC_SQL_PARSER_H 00002 #define __VARIADIC_SQL_PARSER_H 00003 00004 #include "DS_List.h" 00005 00006 #include <stdarg.h> 00007 00008 namespace VariadicSQLParser 00009 { 00010 struct IndexAndType 00011 { 00012 unsigned int strIndex; 00013 unsigned int typeMappingIndex; 00014 }; 00015 const char* GetTypeMappingAtIndex(int i); 00016 void GetTypeMappingIndices( const char *format, DataStructures::List<IndexAndType> &indices ); 00017 // Given an SQL string with variadic arguments, allocate argumentBinary and argumentLengths, and hold the parameters in binary format 00018 // Last 2 parameters are out parameters 00019 void ExtractArguments( va_list argptr, const DataStructures::List<IndexAndType> &indices, char ***argumentBinary, int **argumentLengths ); 00020 void FreeArguments(const DataStructures::List<IndexAndType> &indices, char **argumentBinary, int *argumentLengths); 00021 } 00022 00023 00024 #endif