IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 3193


Ignore:
Timestamp:
Feb 11, 2005, 11:40:49 AM (21 years ago)
Author:
jhoblitt
Message:

fix comment typos
psFree()ing a few strings sooner
more consistent error checking
rename STRINGARRAYTOPTYPE to PS_STR_ARRAY_TO_PTYPE
rename MYNAN to PS_NAN_ALLOC
rename ISTYPENAN to PS_IS_NAN
rename TYPETOSTRING to PS_PTYPE_TO_STR

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/archive/psdb/psDB.c

    r3188 r3193  
    88 *  @author Joshua Hoblitt
    99 *
    10  *  @version $Revision: 1.10 $ $Name: not supported by cvs2svn $
    11  *  @date $Date: 2005-02-10 20:56:41 $
     10 *  @version $Revision: 1.11 $ $Name: not supported by cvs2svn $
     11 *  @date $Date: 2005-02-11 21:40:49 $
    1212 *
    1313 *  Copyright 2005 Joshua Hoblitt, University of Hawaii
     
    145145    psStringAppend(&query, dbname);
    146146   
    147     // the MySQL C API notes that mysql_drodb() is deprecated
     147    // the MySQL C API notes that mysql_drop_db() is deprecated
    148148    status = psDBRunQuery(dbh, query);
    149149
     
    209209    }
    210210
     211    psFree(query);
     212
    211213    result = mysql_store_result(dbh->mysql);
    212214    if (!result) {
     
    214216        fieldCount = mysql_field_count(dbh->mysql);
    215217
    216         // if field count is zero the query should have returned no data.  If
    217         // it's non-zero then something bad has happened.
     218        // if field count is zero the query returned no data.  If it's non-zero
     219        // then something bad has happened.
    218220        if (fieldCount != 0) {
    219221            // error, should have gotten data
    220222            fprintf(stderr, "Query returned no data.  Error: %s\n", mysql_error(dbh->mysql));
    221 
    222             psFree(query);
    223223
    224224            return NULL;
     
    251251
    252252    mysql_free_result(result);
    253     psFree(query);
    254253
    255254    return column;
     
    258257// dest = assign too, source = source string psArray, conv = conversion function,
    259258// type = type to cast to, pType = psElemType
    260 #define STRINGARRAYTOPTYPE(dest, source, conv, type, pType) \
     259#define PS_STR_ARRAY_TO_PTYPE(dest, source, conv, type, pType) \
    261260{ \
    262261    psPtr           myNaN; \
     
    289288    switch (pType) {
    290289        case PS_TYPE_S8:
    291             STRINGARRAYTOPTYPE(column->data.S8, stringColumn, atoi, psS8, PS_TYPE_S8);
     290            PS_STR_ARRAY_TO_PTYPE(column->data.S8, stringColumn, atoi, psS8, PS_TYPE_S8);
    292291            break;
    293292        case PS_TYPE_S16:
    294             STRINGARRAYTOPTYPE(column->data.S16, stringColumn, atoi, psS16, PS_TYPE_S16);
     293            PS_STR_ARRAY_TO_PTYPE(column->data.S16, stringColumn, atoi, psS16, PS_TYPE_S16);
    295294            break;
    296295        case PS_TYPE_S32:
    297             STRINGARRAYTOPTYPE(column->data.S32, stringColumn, atoi, psS32, PS_TYPE_S32);
     296            PS_STR_ARRAY_TO_PTYPE(column->data.S32, stringColumn, atoi, psS32, PS_TYPE_S32);
    298297            break;
    299298        case PS_TYPE_S64:
    300             STRINGARRAYTOPTYPE(column->data.S64, stringColumn, atoll, psS64, PS_TYPE_S64);
     299            PS_STR_ARRAY_TO_PTYPE(column->data.S64, stringColumn, atoll, psS64, PS_TYPE_S64);
    301300            break;
    302301        case PS_TYPE_U8:
    303             // missing from psVector in SDRS
    304             STRINGARRAYTOPTYPE(column->data.U8, stringColumn, atoi, psU8, PS_TYPE_U8);
     302            PS_STR_ARRAY_TO_PTYPE(column->data.U8, stringColumn, atoi, psU8, PS_TYPE_U8);
    305303            break;
    306304        case PS_TYPE_U16:
    307             STRINGARRAYTOPTYPE(column->data.U16, stringColumn, atoi, psU16, PS_TYPE_U16);
     305            PS_STR_ARRAY_TO_PTYPE(column->data.U16, stringColumn, atoi, psU16, PS_TYPE_U16);
    308306            break;
    309307        case PS_TYPE_U32:
    310             STRINGARRAYTOPTYPE(column->data.U32, stringColumn, atoi, psU32, PS_TYPE_U32);
     308            PS_STR_ARRAY_TO_PTYPE(column->data.U32, stringColumn, atoi, psU32, PS_TYPE_U32);
    311309            break;
    312310        case PS_TYPE_U64:
    313             STRINGARRAYTOPTYPE(column->data.U64, stringColumn, atoll, psU64, PS_TYPE_U64);
     311            PS_STR_ARRAY_TO_PTYPE(column->data.U64, stringColumn, atoll, psU64, PS_TYPE_U64);
    314312            break;
    315313        case PS_TYPE_F32:
    316             STRINGARRAYTOPTYPE(column->data.F32, stringColumn, atof, psF32, PS_TYPE_F32);
     314            PS_STR_ARRAY_TO_PTYPE(column->data.F32, stringColumn, atof, psF32, PS_TYPE_F32);
    317315            break;
    318316        case PS_TYPE_F64:
    319             STRINGARRAYTOPTYPE(column->data.F64, stringColumn, atof, psF64, PS_TYPE_F64);
     317            PS_STR_ARRAY_TO_PTYPE(column->data.F64, stringColumn, atof, psF64, PS_TYPE_F64);
    320318            break;
    321319        case PS_TYPE_C32:
    322320            // this is a bogus SQL type
    323             STRINGARRAYTOPTYPE(column->data.C32, stringColumn, atof, psC32, PS_TYPE_C32);
     321            PS_STR_ARRAY_TO_PTYPE(column->data.C32, stringColumn, atof, psC32, PS_TYPE_C32);
    324322            break;
    325323        case PS_TYPE_C64:
    326324            // this is a bogus SQL type
    327             STRINGARRAYTOPTYPE(column->data.C64, stringColumn, atof, psC64, PS_TYPE_C64);
     325            PS_STR_ARRAY_TO_PTYPE(column->data.C64, stringColumn, atof, psC64, PS_TYPE_C64);
    328326            break;
    329327        case PS_TYPE_BOOL:
     
    374372    }
    375373
     374    psFree(query);
     375
    376376    result = mysql_store_result(dbh->mysql);
    377377    if (!result) {
     
    384384            // error, should have gotten data
    385385            fprintf(stderr, "Query returned no data.  Error: %s\n", mysql_error(dbh->mysql));
    386 
    387             psFree(query);
    388386
    389387            return NULL;
     
    462460
    463461    mysql_free_result(result);
    464     psFree(query);
    465462
    466463    return resultSet;
     
    10491046
    10501047    // select everything if where is NULL
    1051     if (where != NULL) {
     1048    if (!where) {
    10521049        psStringAppend(&query, " ");
     1050
    10531051        string = psDBGenerateWhereSQL(where);
    1054         if (string == NULL) {
     1052        if (!string) {
     1053            psFree(query);
     1054
    10551055            return NULL;
    10561056        }
     
    10621062}
    10631063
    1064 #define MYNAN(dest, type, nan) \
     1064#define PS_NAN_ALLOC(dest, type, nan) \
    10651065    dest = psAlloc(sizeof(type)); \
    10661066    *(type *)dest = nan;
     
    10681068static psPtr psDBGetPTypeNaN(psElemType pType)
    10691069{
    1070     psPtr           myNaN;
     1070    psPtr           PS_NAN_ALLOC;
    10711071
    10721072    switch (pType) {
    10731073        case PS_TYPE_S8:
    1074             MYNAN(myNaN, psS8, PS_MAX_S8);
     1074            PS_NAN_ALLOC(myNaN, psS8, PS_MAX_S8);
    10751075            break;
    10761076        case PS_TYPE_S16:
    1077             MYNAN(myNaN, psS16, PS_MAX_S16);
     1077            PS_NAN_ALLOC(myNaN, psS16, PS_MAX_S16);
    10781078            break;
    10791079        case PS_TYPE_S32:
    1080             MYNAN(myNaN, psS32, PS_MAX_S32);
     1080            PS_NAN_ALLOC(myNaN, psS32, PS_MAX_S32);
    10811081            break;
    10821082        case PS_TYPE_S64:
    1083             MYNAN(myNaN, psS64, PS_MAX_S64);
     1083            PS_NAN_ALLOC(myNaN, psS64, PS_MAX_S64);
    10841084            break;
    10851085        case PS_TYPE_U8:
    1086             MYNAN(myNaN, psU8, PS_MAX_U8);
     1086            PS_NAN_ALLOC(myNaN, psU8, PS_MAX_U8);
    10871087            break;
    10881088        case PS_TYPE_U16:
    1089             MYNAN(myNaN, psU16, PS_MAX_U16);
     1089            PS_NAN_ALLOC(myNaN, psU16, PS_MAX_U16);
    10901090            break;
    10911091        case PS_TYPE_U32:
    1092             MYNAN(myNaN, psU32, PS_MAX_U32);
     1092            PS_NAN_ALLOC(myNaN, psU32, PS_MAX_U32);
    10931093            break;
    10941094        case PS_TYPE_U64:
    1095             MYNAN(myNaN, psU64, PS_MAX_U64);
     1095            PS_NAN_ALLOC(myNaN, psU64, PS_MAX_U64);
    10961096            break;
    10971097        case PS_TYPE_F32:
    1098             MYNAN(myNaN, psF32, NAN);
     1098            PS_NAN_ALLOC(myNaN, psF32, NAN);
    10991099            break;
    11001100        case PS_TYPE_F64:
    1101             MYNAN(myNaN, psF64, NAN);
     1101            PS_NAN_ALLOC(myNaN, psF64, NAN);
    11021102            break;
    11031103        case PS_TYPE_C32:
    11041104            // this is a bogus SQL type
    1105             MYNAN(myNaN, psC32, NAN);
     1105            PS_NAN_ALLOC(myNaN, psC32, NAN);
    11061106            break;
    11071107        case PS_TYPE_C64:
    11081108            // this is a bogus SQL type
    1109             MYNAN(myNaN, psC64, NAN);
     1109            PS_NAN_ALLOC(myNaN, psC64, NAN);
    11101110            break;
    11111111        case PS_TYPE_BOOL:
     
    11131113            break;
    11141114        case PS_TYPE_PTR:
    1115             MYNAN(myNaN, char, '\0');
    1116             break;
    1117     }
    1118 
    1119     return myNaN;
    1120 }
    1121 
    1122 #define ISTYPENAN(type, data, nan) *(type *)data == nan
     1115            PS_NAN_ALLOC(myNaN, char, '\0');
     1116            break;
     1117    }
     1118
     1119    return PS_NAN_ALLOC;
     1120}
     1121
     1122#define PS_IS_NAN(type, data, nan) *(type *)data == nan
    11231123
    11241124static bool psDBIsPTypeNaN(psElemType pType, psPtr data)
     
    11281128    switch (pType) {
    11291129        case PS_TYPE_S8:
    1130             isNaN = ISTYPENAN(psS8, data, PS_MAX_S8);
     1130            isNaN = PS_IS_NAN(psS8, data, PS_MAX_S8);
    11311131            break;
    11321132        case PS_TYPE_S16:
    1133             isNaN = ISTYPENAN(psS16, data, PS_MAX_S16);
     1133            isNaN = PS_IS_NAN(psS16, data, PS_MAX_S16);
    11341134            break;
    11351135        case PS_TYPE_S32:
    1136             isNaN = ISTYPENAN(psS32, data, PS_MAX_S32);
     1136            isNaN = PS_IS_NAN(psS32, data, PS_MAX_S32);
    11371137            break;
    11381138        case PS_TYPE_S64:
    1139             isNaN = ISTYPENAN(psS64, data, PS_MAX_S64);
     1139            isNaN = PS_IS_NAN(psS64, data, PS_MAX_S64);
    11401140            break;
    11411141        case PS_TYPE_U8:
    1142             isNaN = ISTYPENAN(psU8, data, PS_MAX_U8);
     1142            isNaN = PS_IS_NAN(psU8, data, PS_MAX_U8);
    11431143            break;
    11441144        case PS_TYPE_U16:
    1145             isNaN = ISTYPENAN(psU16, data, PS_MAX_U16);
     1145            isNaN = PS_IS_NAN(psU16, data, PS_MAX_U16);
    11461146            break;
    11471147        case PS_TYPE_U32:
    1148             isNaN = ISTYPENAN(psU32, data, PS_MAX_U32);
     1148            isNaN = PS_IS_NAN(psU32, data, PS_MAX_U32);
    11491149            break;
    11501150        case PS_TYPE_U64:
    1151             isNaN = ISTYPENAN(psU64, data, PS_MAX_U64);
     1151            isNaN = PS_IS_NAN(psU64, data, PS_MAX_U64);
    11521152            break;
    11531153        case PS_TYPE_F32:
    1154             isNaN = ISTYPENAN(psF32, data, NAN);
     1154            isNaN = PS_IS_NAN(psF32, data, NAN);
    11551155            break;
    11561156        case PS_TYPE_F64:
    1157             isNaN = ISTYPENAN(psF64, data, NAN);
     1157            isNaN = PS_IS_NAN(psF64, data, NAN);
    11581158            break;
    11591159        case PS_TYPE_C32:
    11601160            // this is a bogus SQL type
    1161             isNaN = ISTYPENAN(psC32, data, NAN);
     1161            isNaN = PS_IS_NAN(psC32, data, NAN);
    11621162            break;
    11631163        case PS_TYPE_C64:
    11641164            // this is a bogus SQL type
    1165             isNaN = ISTYPENAN(psC64, data, NAN);
     1165            isNaN = PS_IS_NAN(psC64, data, NAN);
    11661166            break;
    11671167        case PS_TYPE_BOOL:
     
    11691169            break;
    11701170        case PS_TYPE_PTR:
    1171             isNaN = ISTYPENAN(char, data, '\0');
     1171            isNaN = PS_IS_NAN(char, data, '\0');
    11721172            break;
    11731173    }
     
    11761176}
    11771177
    1178 #define TYPETOSTRING(type, format, data) \
     1178#define PS_PTYPE_TO_STR(type, format, data) \
    11791179    (size_t)log10((double)*(type *)data) + 1; \
    11801180    string = psAlloc(length); \
     
    11891189    switch (pType) {
    11901190        case PS_TYPE_S8:
    1191             length = TYPETOSTRING(psS8, "%i", data);
     1191            length = PS_PTYPE_TO_STR(psS8, "%i", data);
    11921192            break;
    11931193        case PS_TYPE_S16:
    1194             length = TYPETOSTRING(psS16, "%i", data);
     1194            length = PS_PTYPE_TO_STR(psS16, "%i", data);
    11951195            break;
    11961196        case PS_TYPE_S32:
    1197             length = TYPETOSTRING(psS32, "%i", data);
     1197            length = PS_PTYPE_TO_STR(psS32, "%i", data);
    11981198            break;
    11991199        case PS_TYPE_S64:
    1200             length = TYPETOSTRING(psS64, "%li", data);
     1200            length = PS_PTYPE_TO_STR(psS64, "%li", data);
    12011201            break;
    12021202        case PS_TYPE_U8:
    1203             length = TYPETOSTRING(psU8, "%u", data);
     1203            length = PS_PTYPE_TO_STR(psU8, "%u", data);
    12041204            break;
    12051205        case PS_TYPE_U16:
    1206             length = TYPETOSTRING(psU16, "%u", data);
     1206            length = PS_PTYPE_TO_STR(psU16, "%u", data);
    12071207            break;
    12081208        case PS_TYPE_U32:
    1209             length = TYPETOSTRING(psU32, "%u", data);
     1209            length = PS_PTYPE_TO_STR(psU32, "%u", data);
    12101210            break;
    12111211        case PS_TYPE_U64:
    1212             length = TYPETOSTRING(psU64, "%lu", data);
     1212            length = PS_PTYPE_TO_STR(psU64, "%lu", data);
    12131213            break;
    12141214        case PS_TYPE_F32:
    1215             length = TYPETOSTRING(psF32, "%f", data);
     1215            length = PS_PTYPE_TO_STR(psF32, "%f", data);
    12161216            break;
    12171217        case PS_TYPE_F64:
    1218             length = TYPETOSTRING(psF32, "%f", data);
     1218            length = PS_PTYPE_TO_STR(psF32, "%f", data);
    12191219            break;
    12201220        case PS_TYPE_C32:
     
    12251225            break;
    12261226        case PS_TYPE_BOOL:
    1227             length = TYPETOSTRING(bool, "%u", data);
     1227            length = PS_PTYPE_TO_STR(bool, "%u", data);
    12281228            break;
    12291229        case PS_TYPE_PTR:
Note: See TracChangeset for help on using the changeset viewer.