static int mdbAddColumn(Edi *edi, cchar *tableName, cchar *columnName, int type, int flags) { Mdb *mdb; MdbTable *table; MdbCol *col; mprAssert(edi); mprAssert(tableName && *tableName); mprAssert(columnName && *columnName); mprAssert(type); mdb = (Mdb*) edi; lock(mdb); if ((table = lookupTable(mdb, tableName)) == 0) { unlock(mdb); return MPR_ERR_CANT_FIND; } if ((col = lookupColumn(table, columnName)) != 0) { unlock(mdb); return MPR_ERR_ALREADY_EXISTS; } if ((col = createCol(table, columnName)) == 0) { unlock(mdb); return MPR_ERR_CANT_FIND; } col->type = type; col->flags = flags; autoSave(mdb, table); unlock(mdb); return 0; }
static int mdbAddColumn(Edi *edi, cchar *tableName, cchar *columnName, int type, int flags) { Mdb *mdb; MdbTable *table; MdbCol *col; assert(edi); assert(tableName && *tableName); assert(columnName && *columnName); assert(type); mdb = (Mdb*) edi; lock(mdb); if ((table = lookupTable(mdb, tableName)) == 0) { unlock(mdb); return MPR_ERR_CANT_FIND; } if ((col = lookupColumn(table, columnName)) != 0) { unlock(mdb); return MPR_ERR_ALREADY_EXISTS; } if ((col = createCol(table, columnName)) == 0) { unlock(mdb); return MPR_ERR_CANT_FIND; } col->type = type; col->flags = flags; if (flags & EDI_INDEX) { if (table->index) { mprError("Index already specified in table %s, replacing.", tableName); } if ((table->index = mprCreateHash(0, MPR_HASH_STATIC_VALUES)) != 0) { table->indexCol = col; } } autoSave(mdb, table); unlock(mdb); return 0; }