inc/sqlList.h

Go to the documentation of this file.
00001 /* Stuff for processing comma separated lists .
00002  *
00003  * This file is copyright 2002 Jim Kent, but license is hereby
00004  * granted for all use - public, private or commercial. */
00005 
00006 #ifndef SQLLIST_H
00007 #define SQLLIST_H
00008 struct hash;
00009 
00010 int sqlDoubleArray(char *s, double *array, int maxArraySize);
00011 int sqlFloatArray(char *s, float *array, int maxArraySize);
00012 int sqlUnsignedArray(char *s, unsigned *array, int maxArraySize);
00013 int sqlSignedArray(char *s, int *array, int maxArraySize);
00014 int sqlShortArray(char *s, short *array, int arraySize);
00015 int sqlUshortArray(char *s, unsigned short *array, int arraySize);
00016 int sqlByteArray(char *s, signed char *array, int arraySize);
00017 int sqlUbyteArray(char *s, unsigned char *array, int arraySize);
00018 int sqlCharArray(char *s, char *array, int arraySize);
00019 int sqlLongLongArray(char *s, long long *array, int arraySize);
00020 /* Convert comma separated list of numbers to an array.  Pass in 
00021  * array and max size of array.  Returns actual array size.*/
00022 
00023 void sqlDoubleStaticArray(char *s, double **retArray, int *retSize);
00024 void sqlFloatStaticArray(char *s, float **retArray, int *retSize);
00025 void sqlUnsignedStaticArray(char *s, unsigned **retArray, int *retSize);
00026 void sqlSignedStaticArray(char *s, int **retArray, int *retSize);
00027 void sqlShortStaticArray(char *s, short **retArray, int *retSize);
00028 void sqlUshortStaticArray(char *s, unsigned short **retArray, int *retSize);
00029 void sqlByteStaticArray(char *s, signed char **retArray, int *retSize);
00030 void sqlUbyteStaticArray(char *s, unsigned char **retArray, int *retSize);
00031 void sqlCharStaticArray(char *s, char **retArray, int *retSize);
00032 void sqlLongLongStaticArray(char *s, long long **array, int *retSize);
00033 /* Convert comma separated list of numbers to an array which will be
00034  * overwritten next call to this function or to sqlXxxxxxDynamicArray,
00035  * but need not be freed. */
00036 
00037 void sqlDoubleDynamicArray(char *s, double **retArray, int *retSize);
00038 void sqlFloatDynamicArray(char *s, float **retArray, int *retSize);
00039 void sqlUnsignedDynamicArray(char *s, unsigned **retArray, int *retSize);
00040 void sqlSignedDynamicArray(char *s, int **retArray, int *retSize);
00041 void sqlShortDynamicArray(char *s, short **retArray, int *retSize);
00042 void sqlUshortDynamicArray(char *s, unsigned short **retArray, int *retSize);
00043 void sqlByteDynamicArray(char *s, signed char **retArray, int *retSize);
00044 void sqlUbyteDynamicArray(char *s, unsigned char **retArray, int *retSize);
00045 void sqlCharDynamicArray(char *s, char **retArray, int *retSize);
00046 void sqlLongLongDynamicArray(char *s, long long **retArray, int *retSize);
00047 /* Convert comma separated list of numbers to an dynamically allocated
00048  * array, which should be freeMem()'d when done. */
00049 
00050 
00051 int sqlStringArray(char *s, char **array, int maxArraySize);
00052 /* Convert comma separated list of strings to an array.  Pass in 
00053  * array and max size of array.  Returns actual size.  This will
00054  * only persist as long as s persists.... Use sqlStringDynamicArray
00055  * if calling repeatedly. */
00056 
00057 void sqlStringStaticArray(char *s, char  ***retArray, int *retSize);
00058 /* Convert comma separated list of strings to an array which will be
00059  * overwritten next call to this function or to sqlUnsignedDynamicArray,
00060  * but need not be freed. */
00061 
00062 void sqlStringDynamicArray(char *s, char ***retArray, int *retSize);
00063 /* Convert comma separated list of strings to an dynamically allocated
00064  * array, which should be freeMem()'d when done. */
00065 
00066 void sqlStringFreeDynamicArray(char ***pArray);
00067 /* Free up a dynamic array (ends up freeing array and first string on it.) */
00068 
00069 char *sqlDoubleArrayToString( double *array, int arraySize);
00070 char *sqlFloatArrayToString( float *array, int arraySize);
00071 char *sqlUnsignedArrayToString( unsigned *array, int arraySize);
00072 char *sqlSignedArrayToString( int *array, int arraySize);
00073 char *sqlShortArrayToString( short *array, int arraySize);
00074 char *sqlUshortArrayToString( unsigned short *array, int arraySize);
00075 char *sqlByteArrayToString( signed char *array, int arraySize);
00076 char *sqlUbyteArrayToString( unsigned char *array, int arraySize);
00077 char *sqlCharArrayToString( char *array, int arraySize);
00078 char *sqlLongLongArrayToString( long long *array, int arraySize);
00079 char *sqlStringArrayToString( char **array, int arraySize);
00080 /* Convert arrays into comma separated strings. The char *'s returned
00081  * should be freeMem()'d when done */
00082 
00083 char *sqlEscapeString(const char *orig);
00084 /* Prepares string for inclusion in a SQL statement . Remember to free
00085  * returned string.  returned string contains strlen(length)*2+1 as many bytes
00086  * as orig because in worst case every character has to be escaped.
00087  * Example 1: The Gene's Name -> The Gene''s Name
00088  * Example 2: he said "order and orient" -> he said ""order and orient"" */
00089 
00090 char *sqlEscapeString2(char *to, const char* from);
00091 /* Prepares a string for inclusion in a sql statement.  Output string
00092  * must be 2*strlen(from)+1 */
00093 
00094 int sqlUnsignedComma(char **pS);
00095 /* Return signed number at *pS.  Advance *pS past comma at end.
00096  * This function is used by the system that automatically loads
00097  * structured object from longblobs. */
00098 
00099 int sqlSignedComma(char **pS);
00100 /* Return signed number at *pS.  Advance *pS past comma at end */
00101 
00102 char sqlCharComma(char **pS);
00103 /* Return char at *pS.  Advance *pS past comma after char */
00104 
00105 long long sqlLongLongComma(char **pS);
00106 /* Return long long number at *pS.  Advance *pS past comma at end */
00107 
00108 double sqlDoubleComma(char **pS);
00109 /* Return double floating number at *pS.  Advance *pS past comma at end */
00110 
00111 float sqlFloatComma(char **pS);
00112 /* Return floating point number at *pS.  Advance *pS past comma at end */
00113 
00114 char *sqlStringComma(char **pS);
00115 /* Return string at *pS.  (Either quoted or not.)  Advance *pS. */
00116 
00117 void sqlFixedStringComma(char **pS, char *buf, int bufSize);
00118 /* Copy string at *pS to buf.  Advance *pS. */
00119 
00120 char *sqlEatChar(char *s, char c);
00121 /* Make sure next character is 'c'.  Return past next char */
00122 
00123 unsigned sqlEnumParse(char *valStr, char **values, struct hash **valHashPtr);
00124 /* parse an enumerated column value */
00125 
00126 unsigned sqlEnumComma(char **pS, char **values, struct hash **valHashPtr);
00127 /* Return enum at *pS.  (Either quoted or not.)  Advance *pS. */
00128 
00129 void sqlEnumPrint(FILE *f, unsigned value, char **values);
00130 /* print an enumerated column value */
00131 
00132 unsigned sqlSetParse(char *valStr, char **values, struct hash **valHashPtr);
00133 /* parse a set column value */
00134 
00135 unsigned sqlSetComma(char **pS, char **values, struct hash **valHashPtr);
00136 /* Return set at *pS.  (Either quoted or not.)  Advance *pS. */
00137 
00138 void sqlSetPrint(FILE *f, unsigned value, char **values);
00139 /* print a set column value */
00140 
00141 #endif /* SQLLIST_H */
00142 

Generated on Tue Dec 25 18:39:29 2007 for blat by  doxygen 1.5.2