IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jun 29, 2005, 9:40:23 AM (21 years ago)
Author:
evanalst
Message:

Update function psDBDeleteRows to include limit of maximum rows to delete.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/src/db/psDB.c

    r4393 r4428  
    1212 *  @author Joshua Hoblitt
    1313 *
    14  *  @version $Revision: 1.35 $ $Name: not supported by cvs2svn $
    15  *  @date $Date: 2005-06-25 02:44:14 $
     14 *  @version $Revision: 1.36 $ $Name: not supported by cvs2svn $
     15 *  @date $Date: 2005-06-29 19:40:23 $
    1616 *
    1717 *  Copyright 2005 Joshua Hoblitt, University of Hawaii
     
    5252static char    *psDBGenerateInsertRowSQL(const char *tableName, const psMetadata *row);
    5353static char    *psDBGenerateUpdateRowSQL(const char *tableName, const psMetadata *where, const psMetadata *values);
    54 static char    *psDBGenerateDeleteRowSQL(const char *tableName, const psMetadata *where);
     54static char    *psDBGenerateDeleteRowSQL(const char *tableName, const psMetadata *where, unsigned long long limit);
    5555static char    *psDBGenerateWhereSQL(const psMetadata *where);
    5656static char    *psDBGenerateSetSQL(const psMetadata *set
     
    778778}
    779779
    780 psS64 psDBDeleteRows(psDB *dbh, const char *tableName, const psMetadata *where)
     780psS64 psDBDeleteRows(psDB *dbh, const char *tableName, const psMetadata *where, unsigned long long limit)
    781781{
    782782    char            *query;
     
    790790
    791791    // Create SQL statement string
    792     query = psDBGenerateDeleteRowSQL(tableName, where);
     792    query = psDBGenerateDeleteRowSQL(tableName, where,limit);
    793793    if (!query) {
    794794        psError(PS_ERR_UNEXPECTED_NULL, false, "Query generation failed.");
     
    11301130}
    11311131
    1132 static char *psDBGenerateDeleteRowSQL(const char *tableName, const psMetadata *where)
     1132static char *psDBGenerateDeleteRowSQL(const char *tableName, const psMetadata *where, unsigned long long limit)
    11331133{
    11341134    char            *query = NULL;
    11351135    char            *whereSQL;
     1136    char            *limitString;
    11361137
    11371138    // delete all rows if where is NULL
     
    11481149    }
    11491150
     1151    psStringAppend(&query, "DELETE FROM %s %s", tableName, whereSQL);
     1152
    11501153    // Complete delete SQL command string
    1151     psStringAppend(&query, "DELETE FROM %s %s", tableName, whereSQL);
     1154    // treat limit == 0 as "no limit"
     1155    if (limit) {
     1156        limitString = psDBIntToString(limit);
     1157        psStringAppend(&query, " LIMIT %s", limitString);
     1158        psFree(limitString);
     1159    }
    11521160    psFree(whereSQL);
    11531161
Note: See TracChangeset for help on using the changeset viewer.