Changeset 301

Show
Ignore:
Timestamp:
06/19/10 15:37:24 (20 months ago)
Author:
ol
Message:

Handle user error message, when Transaction or Get Feature? on unkown layer, rather than assert crash. now pgsql_id_column function could return NULL value

Location:
trunk/src
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/fe/fe_filter.c

    r296 r301  
    380380 
    381381            /* if there is no id column, raise an error */ 
    382             if (id_name->use == 0) { 
     382            if (!id_name || id_name->use == 0) { 
    383383                fe->error_code = FE_ERROR_FEATUREID; 
    384384                list_free(fe_list); 
     
    542542 
    543543    id_name = ows_psql_id_column(o, layer_name); 
    544  
    545     if (id_name->use == 0) return where; 
     544    if (!id_name || id_name->use == 0) return where; 
    546545 
    547546    buffer_add_str(where, " WHERE "); 
  • trunk/src/ows/ows_psql.c

    r295 r301  
    4949            return ln->layer->storage->pkey; 
    5050 
    51     assert(0); /* Should not happen */ 
    5251    return NULL; 
    5352} 
  • trunk/src/wfs/wfs_describe.c

    r297 r301  
    5858    table = ows_psql_describe_table(o, layer_name); 
    5959 
     60    assert(id_name != NULL); 
    6061    assert(table != NULL); 
    6162 
     
    237238        buffer_copy(schema, namespace); 
    238239        buffer_add_str(schema, "' schemaLocation='"); 
     240 
     241#if 0 
     242    buffer_copy(schema, o->schema_dir); 
     243    buffer_add_str(schema, "tows/"); 
     244    buffer_copy(schema, elemt->value); 
     245#endif 
     246 
     247 
     248#if 1 
    239249        buffer_copy(schema, o->online_resource); 
    240250 
     
    255265        else 
    256266            buffer_add_str(schema, "&version=1.1.0"); 
     267#endif 
    257268 
    258269        buffer_add_str(schema, "'/>\n"); 
     
    263274    list_free(layers); 
    264275 
     276#if 0 
     277fprintf(stderr, "\n%s\n", schema->buf); 
     278#endif 
     279 
    265280    return schema; 
    266281} 
  • trunk/src/wfs/wfs_transaction.c

    r293 r301  
    391391 
    392392        id_column = ows_psql_id_column(o, layer_name); 
     393        if (!id_column) { 
     394             buffer_free(id); 
     395             buffer_free(sql); 
     396             buffer_free(handle); 
     397             buffer_free(values); 
     398             buffer_free(layer_name); 
     399             result = buffer_init(); 
     400             buffer_add_str(result, "Error unknown Layer Name"); 
     401             return result; 
     402        } 
    393403        layer_prefix = ows_layer_prefix(o->layers, layer_name); 
    394404