summaryrefslogtreecommitdiffstats
path: root/libmsi
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2012-12-03 11:15:33 +0100
committerPaolo Bonzini <pbonzini@redhat.com>2012-12-06 20:30:32 +0100
commitbf8c5a031f7a791bd99d18aaa334bc6d2955b536 (patch)
treedc1d638534e92ae33648b9ed7f44bf553ac7e2f5 /libmsi
parent93de41a911d54b018b4d6d52728de6661562f79a (diff)
downloadmsitools-bf8c5a031f7a791bd99d18aaa334bc6d2955b536.tar.gz
msitools-bf8c5a031f7a791bd99d18aaa334bc6d2955b536.tar.xz
msitools-bf8c5a031f7a791bd99d18aaa334bc6d2955b536.zip
remove libmsi_query_modify
Diffstat (limited to 'libmsi')
-rw-r--r--libmsi/alter.c11
-rw-r--r--libmsi/create.c11
-rw-r--r--libmsi/delete.c11
-rw-r--r--libmsi/distinct.c14
-rw-r--r--libmsi/drop.c1
-rw-r--r--libmsi/insert.c10
-rw-r--r--libmsi/msipriv.h6
-rw-r--r--libmsi/msiquery.c46
-rw-r--r--libmsi/select.c74
-rw-r--r--libmsi/storages.c89
-rw-r--r--libmsi/streams.c89
-rw-r--r--libmsi/table.c149
-rw-r--r--libmsi/update.c11
-rw-r--r--libmsi/where.c108
14 files changed, 0 insertions, 630 deletions
diff --git a/libmsi/alter.c b/libmsi/alter.c
index 3523036..0c25e35 100644
--- a/libmsi/alter.c
+++ b/libmsi/alter.c
@@ -197,16 +197,6 @@ static unsigned alter_view_get_column_info( LibmsiView *view, unsigned n, const
return LIBMSI_RESULT_FUNCTION_FAILED;
}
-static unsigned alter_view_modify( LibmsiView *view, LibmsiModify eModifyMode,
- LibmsiRecord *rec, unsigned row )
-{
- LibmsiAlterView *av = (LibmsiAlterView*)view;
-
- TRACE("%p %d %p\n", av, eModifyMode, rec );
-
- return LIBMSI_RESULT_FUNCTION_FAILED;
-}
-
static unsigned alter_view_delete( LibmsiView *view )
{
LibmsiAlterView *av = (LibmsiAlterView*)view;
@@ -239,7 +229,6 @@ static const LibmsiViewOps alter_ops =
alter_view_close,
alter_view_get_dimensions,
alter_view_get_column_info,
- alter_view_modify,
alter_view_delete,
alter_view_find_matching_rows,
NULL,
diff --git a/libmsi/create.c b/libmsi/create.c
index b3cacc0..c9b8ea4 100644
--- a/libmsi/create.c
+++ b/libmsi/create.c
@@ -98,16 +98,6 @@ static unsigned create_view_get_column_info( LibmsiView *view, unsigned n, const
return LIBMSI_RESULT_FUNCTION_FAILED;
}
-static unsigned create_view_modify( LibmsiView *view, LibmsiModify eModifyMode,
- LibmsiRecord *rec, unsigned row)
-{
- LibmsiCreateView *cv = (LibmsiCreateView*)view;
-
- TRACE("%p %d %p\n", cv, eModifyMode, rec );
-
- return LIBMSI_RESULT_FUNCTION_FAILED;
-}
-
static unsigned create_view_delete( LibmsiView *view )
{
LibmsiCreateView *cv = (LibmsiCreateView*)view;
@@ -132,7 +122,6 @@ static const LibmsiViewOps create_ops =
create_view_close,
create_view_get_dimensions,
create_view_get_column_info,
- create_view_modify,
create_view_delete,
NULL,
NULL,
diff --git a/libmsi/delete.c b/libmsi/delete.c
index 98dd8ae..df00bdc 100644
--- a/libmsi/delete.c
+++ b/libmsi/delete.c
@@ -138,16 +138,6 @@ static unsigned delete_view_get_column_info( LibmsiView *view, unsigned n, const
type, temporary, table_name);
}
-static unsigned delete_view_modify( LibmsiView *view, LibmsiModify eModifyMode,
- LibmsiRecord *rec, unsigned row )
-{
- LibmsiDeleteView *dv = (LibmsiDeleteView*)view;
-
- TRACE("%p %d %p\n", dv, eModifyMode, rec );
-
- return LIBMSI_RESULT_FUNCTION_FAILED;
-}
-
static unsigned delete_view_delete( LibmsiView *view )
{
LibmsiDeleteView *dv = (LibmsiDeleteView*)view;
@@ -183,7 +173,6 @@ static const LibmsiViewOps delete_ops =
delete_view_close,
delete_view_get_dimensions,
delete_view_get_column_info,
- delete_view_modify,
delete_view_delete,
delete_view_find_matching_rows,
NULL,
diff --git a/libmsi/distinct.c b/libmsi/distinct.c
index 47c4b17..c899fbe 100644
--- a/libmsi/distinct.c
+++ b/libmsi/distinct.c
@@ -216,19 +216,6 @@ static unsigned distinct_view_get_column_info( LibmsiView *view, unsigned n, con
type, temporary, table_name );
}
-static unsigned distinct_view_modify( LibmsiView *view, LibmsiModify eModifyMode,
- LibmsiRecord *rec, unsigned row )
-{
- LibmsiDistinctView *dv = (LibmsiDistinctView*)view;
-
- TRACE("%p %d %p\n", dv, eModifyMode, rec );
-
- if( !dv->table )
- return LIBMSI_RESULT_FUNCTION_FAILED;
-
- return dv->table->ops->modify( dv->table, eModifyMode, rec, row );
-}
-
static unsigned distinct_view_delete( LibmsiView *view )
{
LibmsiDistinctView *dv = (LibmsiDistinctView*)view;
@@ -278,7 +265,6 @@ static const LibmsiViewOps distinct_ops =
distinct_view_close,
distinct_view_get_dimensions,
distinct_view_get_column_info,
- distinct_view_modify,
distinct_view_delete,
distinct_view_find_matching_rows,
NULL,
diff --git a/libmsi/drop.c b/libmsi/drop.c
index c16821f..d1da239 100644
--- a/libmsi/drop.c
+++ b/libmsi/drop.c
@@ -102,7 +102,6 @@ static const LibmsiViewOps drop_ops =
drop_view_close,
drop_view_get_dimensions,
NULL,
- NULL,
drop_view_delete,
NULL,
NULL,
diff --git a/libmsi/insert.c b/libmsi/insert.c
index 6ce752f..bd2199a 100644
--- a/libmsi/insert.c
+++ b/libmsi/insert.c
@@ -293,15 +293,6 @@ static unsigned insert_view_get_column_info( LibmsiView *view, unsigned n, const
return sv->ops->get_column_info( sv, n, name, type, temporary, table_name );
}
-static unsigned insert_view_modify( LibmsiView *view, LibmsiModify eModifyMode, LibmsiRecord *rec, unsigned row)
-{
- LibmsiInsertView *iv = (LibmsiInsertView*)view;
-
- TRACE("%p %d %p\n", iv, eModifyMode, rec );
-
- return LIBMSI_RESULT_FUNCTION_FAILED;
-}
-
static unsigned insert_view_delete( LibmsiView *view )
{
LibmsiInsertView *iv = (LibmsiInsertView*)view;
@@ -339,7 +330,6 @@ static const LibmsiViewOps insert_ops =
insert_view_close,
insert_view_get_dimensions,
insert_view_get_column_info,
- insert_view_modify,
insert_view_delete,
insert_view_find_matching_rows,
NULL,
diff --git a/libmsi/msipriv.h b/libmsi/msipriv.h
index 8cfe28c..e1476b2 100644
--- a/libmsi/msipriv.h
+++ b/libmsi/msipriv.h
@@ -200,11 +200,6 @@ typedef struct LibmsiViewOps
bool *temporary, const WCHAR **table_name );
/*
- * modify - not yet implemented properly
- */
- unsigned (*modify)( LibmsiView *view, LibmsiModify eModifyMode, LibmsiRecord *record, unsigned row );
-
- /*
* delete - destroys the structure completely
*/
unsigned (*delete)( LibmsiView * );
@@ -368,7 +363,6 @@ extern unsigned _libmsi_database_get_primary_keys( LibmsiDatabase *, const WCHAR
extern unsigned _libmsi_query_execute( LibmsiQuery*, LibmsiRecord * );
extern unsigned _libmsi_query_fetch( LibmsiQuery*, LibmsiRecord ** );
extern unsigned _libmsi_query_get_column_info(LibmsiQuery *, LibmsiColInfo, LibmsiRecord **);
-extern unsigned _libmsi_query_modify( LibmsiQuery *, LibmsiModify, LibmsiRecord * );
extern unsigned _libmsi_view_find_column( LibmsiView *, const WCHAR *, const WCHAR *, unsigned *);
extern unsigned msi_view_get_row(LibmsiDatabase *, LibmsiView *, unsigned, LibmsiRecord **);
diff --git a/libmsi/msiquery.c b/libmsi/msiquery.c
index b5c3b76..f4016dc 100644
--- a/libmsi/msiquery.c
+++ b/libmsi/msiquery.c
@@ -516,52 +516,6 @@ LibmsiResult libmsi_query_get_column_info(LibmsiQuery *query, LibmsiColInfo info
return r;
}
-unsigned _libmsi_query_modify( LibmsiQuery *query, LibmsiModify mode, LibmsiRecord *rec )
-{
- LibmsiView *view = NULL;
- unsigned r;
-
- if ( !query || !rec )
- return LIBMSI_RESULT_INVALID_HANDLE;
-
- view = query->view;
- if ( !view || !view->ops->modify)
- return LIBMSI_RESULT_FUNCTION_FAILED;
-
- if ( mode == LIBMSI_MODIFY_UPDATE && _libmsi_record_get_int_ptr( rec, 0 ) != (intptr_t)query )
- return LIBMSI_RESULT_FUNCTION_FAILED;
-
- r = view->ops->modify( view, mode, rec, query->row );
- if (mode == LIBMSI_MODIFY_DELETE && r == LIBMSI_RESULT_SUCCESS)
- query->row--;
-
- return r;
-}
-
-LibmsiResult libmsi_query_modify( LibmsiQuery *query, LibmsiModify eModifyMode,
- LibmsiRecord *rec)
-{
- unsigned r = LIBMSI_RESULT_FUNCTION_FAILED;
-
- TRACE("%d %x %d\n", query, eModifyMode, rec);
-
- if( !query )
- return LIBMSI_RESULT_INVALID_HANDLE;
-
- msiobj_addref( &query->hdr);
-
- if (rec)
- msiobj_addref( &rec->hdr);
-
- r = _libmsi_query_modify( query, eModifyMode, rec );
-
- msiobj_release( &query->hdr );
- if( rec )
- msiobj_release( &rec->hdr );
-
- return r;
-}
-
LibmsiDBError libmsi_query_get_error( LibmsiQuery *query, char *buffer, unsigned *buflen )
{
const WCHAR *column;
diff --git a/libmsi/select.c b/libmsi/select.c
index e88d144..cf16413 100644
--- a/libmsi/select.c
+++ b/libmsi/select.c
@@ -240,79 +240,6 @@ static unsigned select_view_get_column_info( LibmsiView *view, unsigned n, const
type, temporary, table_name );
}
-static unsigned msi_select_update(LibmsiView *view, LibmsiRecord *rec, unsigned row)
-{
- LibmsiSelectView *sv = (LibmsiSelectView*)view;
- unsigned r, i, num_columns, col, type, val;
- const WCHAR *str;
- LibmsiRecord *mod;
-
- r = select_view_get_dimensions(view, NULL, &num_columns);
- if (r != LIBMSI_RESULT_SUCCESS)
- return r;
-
- r = sv->table->ops->get_row(sv->table, row - 1, &mod);
- if (r != LIBMSI_RESULT_SUCCESS)
- return r;
-
- for (i = 0; i < num_columns; i++)
- {
- col = sv->cols[i];
-
- r = select_view_get_column_info(view, i + 1, NULL, &type, NULL, NULL);
- if (r != LIBMSI_RESULT_SUCCESS)
- {
- ERR("Failed to get column information: %d\n", r);
- goto done;
- }
-
- if (MSITYPE_IS_BINARY(type))
- {
- ERR("Cannot modify binary data!\n");
- r = LIBMSI_RESULT_FUNCTION_FAILED;
- goto done;
- }
- else if (type & MSITYPE_STRING)
- {
- str = _libmsi_record_get_string_raw(rec, i + 1);
- r = _libmsi_record_set_stringW(mod, col, str);
- }
- else
- {
- val = libmsi_record_get_integer(rec, i + 1);
- r = libmsi_record_set_int(mod, col, val);
- }
-
- if (r != LIBMSI_RESULT_SUCCESS)
- {
- ERR("Failed to modify record: %d\n", r);
- goto done;
- }
- }
-
- r = sv->table->ops->modify(sv->table, LIBMSI_MODIFY_UPDATE, mod, row);
-
-done:
- msiobj_release(&mod->hdr);
- return r;
-}
-
-static unsigned select_view_modify( LibmsiView *view, LibmsiModify eModifyMode,
- LibmsiRecord *rec, unsigned row )
-{
- LibmsiSelectView *sv = (LibmsiSelectView*)view;
-
- TRACE("%p %d %p %d\n", sv, eModifyMode, rec, row );
-
- if( !sv->table )
- return LIBMSI_RESULT_FUNCTION_FAILED;
-
- if (eModifyMode == LIBMSI_MODIFY_UPDATE)
- return msi_select_update(view, rec, row);
-
- return sv->table->ops->modify( sv->table, eModifyMode, rec, row );
-}
-
static unsigned select_view_delete( LibmsiView *view )
{
LibmsiSelectView *sv = (LibmsiSelectView*)view;
@@ -359,7 +286,6 @@ static const LibmsiViewOps select_ops =
select_view_close,
select_view_get_dimensions,
select_view_get_column_info,
- select_view_modify,
select_view_delete,
select_view_find_matching_rows,
NULL,
diff --git a/libmsi/storages.c b/libmsi/storages.c
index 8673812..f91ae05 100644
--- a/libmsi/storages.c
+++ b/libmsi/storages.c
@@ -303,94 +303,6 @@ static unsigned storages_view_get_column_info( LibmsiView *view, unsigned n, con
return LIBMSI_RESULT_SUCCESS;
}
-static unsigned storages_find_row(LibmsiStorageView *sv, LibmsiRecord *rec, unsigned *row)
-{
- const WCHAR *str;
- unsigned r, i, id, data;
-
- str = _libmsi_record_get_string_raw(rec, 1);
- r = _libmsi_id_from_stringW(sv->db->strings, str, &id);
- if (r != LIBMSI_RESULT_SUCCESS)
- return r;
-
- for (i = 0; i < sv->num_rows; i++)
- {
- storages_view_fetch_int(&sv->view, i, 1, &data);
-
- if (data == id)
- {
- *row = i;
- return LIBMSI_RESULT_SUCCESS;
- }
- }
-
- return LIBMSI_RESULT_FUNCTION_FAILED;
-}
-
-static unsigned storages_modify_update(LibmsiView *view, LibmsiRecord *rec)
-{
- LibmsiStorageView *sv = (LibmsiStorageView *)view;
- unsigned r, row;
-
- r = storages_find_row(sv, rec, &row);
- if (r != LIBMSI_RESULT_SUCCESS)
- return LIBMSI_RESULT_FUNCTION_FAILED;
-
- return storages_view_set_row(view, row, rec, 0);
-}
-
-static unsigned storages_modify_assign(LibmsiView *view, LibmsiRecord *rec)
-{
- LibmsiStorageView *sv = (LibmsiStorageView *)view;
- unsigned r, row;
-
- r = storages_find_row(sv, rec, &row);
- if (r == LIBMSI_RESULT_SUCCESS)
- return storages_modify_update(view, rec);
-
- return storages_view_insert_row(view, rec, -1, false);
-}
-
-static unsigned storages_view_modify(LibmsiView *view, LibmsiModify eModifyMode, LibmsiRecord *rec, unsigned row)
-{
- unsigned r;
-
- TRACE("%p %d %p\n", view, eModifyMode, rec);
-
- switch (eModifyMode)
- {
- case LIBMSI_MODIFY_ASSIGN:
- r = storages_modify_assign(view, rec);
- break;
-
- case LIBMSI_MODIFY_INSERT:
- r = storages_view_insert_row(view, rec, -1, false);
- break;
-
- case LIBMSI_MODIFY_UPDATE:
- r = storages_modify_update(view, rec);
- break;
-
- case LIBMSI_MODIFY_VALIDATE_NEW:
- case LIBMSI_MODIFY_INSERT_TEMPORARY:
- case LIBMSI_MODIFY_REFRESH:
- case LIBMSI_MODIFY_REPLACE:
- case LIBMSI_MODIFY_MERGE:
- case LIBMSI_MODIFY_DELETE:
- case LIBMSI_MODIFY_VALIDATE:
- case LIBMSI_MODIFY_VALIDATE_FIELD:
- case LIBMSI_MODIFY_VALIDATE_DELETE:
- FIXME("%p %d %p - mode not implemented\n", view, eModifyMode, rec );
- r = LIBMSI_RESULT_CALL_NOT_IMPLEMENTED;
- break;
-
- default:
- r = LIBMSI_RESULT_INVALID_DATA;
- }
-
- return r;
-}
-
static unsigned storages_view_delete(LibmsiView *view)
{
LibmsiStorageView *sv = (LibmsiStorageView *)view;
@@ -453,7 +365,6 @@ static const LibmsiViewOps storages_ops =
storages_view_close,
storages_view_get_dimensions,
storages_view_get_column_info,
- storages_view_modify,
storages_view_delete,
storages_view_find_matching_rows,
NULL,
diff --git a/libmsi/streams.c b/libmsi/streams.c
index a8025f5..ea5d0ae 100644
--- a/libmsi/streams.c
+++ b/libmsi/streams.c
@@ -293,94 +293,6 @@ static unsigned streams_view_get_column_info( LibmsiView *view, unsigned n, cons
return LIBMSI_RESULT_SUCCESS;
}
-static unsigned streams_find_row(LibmsiStreamsView *sv, LibmsiRecord *rec, unsigned *row)
-{
- const WCHAR *str;
- unsigned r, i, id, data;
-
- str = _libmsi_record_get_string_raw(rec, 1);
- r = _libmsi_id_from_stringW(sv->db->strings, str, &id);
- if (r != LIBMSI_RESULT_SUCCESS)
- return r;
-
- for (i = 0; i < sv->num_rows; i++)
- {
- streams_view_fetch_int(&sv->view, i, 1, &data);
-
- if (data == id)
- {
- *row = i;
- return LIBMSI_RESULT_SUCCESS;
- }
- }
-
- return LIBMSI_RESULT_FUNCTION_FAILED;
-}
-
-static unsigned streams_modify_update(LibmsiView *view, LibmsiRecord *rec)
-{
- LibmsiStreamsView *sv = (LibmsiStreamsView *)view;
- unsigned r, row;
-
- r = streams_find_row(sv, rec, &row);
- if (r != LIBMSI_RESULT_SUCCESS)
- return LIBMSI_RESULT_FUNCTION_FAILED;
-
- return streams_view_set_row(view, row, rec, 0);
-}
-
-static unsigned streams_modify_assign(LibmsiView *view, LibmsiRecord *rec)
-{
- LibmsiStreamsView *sv = (LibmsiStreamsView *)view;
- unsigned r, row;
-
- r = streams_find_row(sv, rec, &row);
- if (r == LIBMSI_RESULT_SUCCESS)
- return streams_modify_update(view, rec);
-
- return streams_view_insert_row(view, rec, -1, false);
-}
-
-static unsigned streams_view_modify(LibmsiView *view, LibmsiModify eModifyMode, LibmsiRecord *rec, unsigned row)
-{
- unsigned r;
-
- TRACE("%p %d %p\n", view, eModifyMode, rec);
-
- switch (eModifyMode)
- {
- case LIBMSI_MODIFY_ASSIGN:
- r = streams_modify_assign(view, rec);
- break;
-
- case LIBMSI_MODIFY_INSERT:
- r = streams_view_insert_row(view, rec, -1, false);
- break;
-
- case LIBMSI_MODIFY_UPDATE:
- r = streams_modify_update(view, rec);
- break;
-
- case LIBMSI_MODIFY_VALIDATE_NEW:
- case LIBMSI_MODIFY_INSERT_TEMPORARY:
- case LIBMSI_MODIFY_REFRESH:
- case LIBMSI_MODIFY_REPLACE:
- case LIBMSI_MODIFY_MERGE:
- case LIBMSI_MODIFY_DELETE:
- case LIBMSI_MODIFY_VALIDATE:
- case LIBMSI_MODIFY_VALIDATE_FIELD:
- case LIBMSI_MODIFY_VALIDATE_DELETE:
- FIXME("%p %d %p - mode not implemented\n", view, eModifyMode, rec );
- r = LIBMSI_RESULT_CALL_NOT_IMPLEMENTED;
- break;
-
- default:
- r = LIBMSI_RESULT_INVALID_DATA;
- }
-
- return r;
-}
-
static unsigned streams_view_delete(LibmsiView *view)
{
LibmsiStreamsView *sv = (LibmsiStreamsView *)view;
@@ -446,7 +358,6 @@ static const LibmsiViewOps streams_ops =
streams_view_close,
streams_view_get_dimensions,
streams_view_get_column_info,
- streams_view_modify,
streams_view_delete,
streams_view_find_matching_rows,
NULL,
diff --git a/libmsi/table.c b/libmsi/table.c
index c9b6532..8e365b7 100644
--- a/libmsi/table.c
+++ b/libmsi/table.c
@@ -1730,154 +1730,6 @@ static unsigned table_view_delete_row( LibmsiView *view, unsigned row )
return LIBMSI_RESULT_SUCCESS;
}
-static unsigned msi_table_update(LibmsiView *view, LibmsiRecord *rec, unsigned row)
-{
- LibmsiTableView *tv = (LibmsiTableView *)view;
- unsigned r, new_row;
-
- /* FIXME: libmsi_query_fetch should set rec index 0 to some ID that
- * sets the fetched record apart from other records
- */
-
- if (!tv->table)
- return LIBMSI_RESULT_INVALID_PARAMETER;
-
- r = msi_table_find_row(tv, rec, &new_row, NULL);
- if (r != LIBMSI_RESULT_SUCCESS)
- {
- ERR("can't find row to modify\n");
- return LIBMSI_RESULT_FUNCTION_FAILED;
- }
-
- /* the row cannot be changed */
- if (row != new_row + 1)
- return LIBMSI_RESULT_FUNCTION_FAILED;
-
- return table_view_set_row(view, new_row, rec, (1 << tv->num_cols) - 1);
-}
-
-static unsigned msi_table_assign(LibmsiView *view, LibmsiRecord *rec)
-{
- LibmsiTableView *tv = (LibmsiTableView *)view;
- unsigned r, row;
-
- if (!tv->table)
- return LIBMSI_RESULT_INVALID_PARAMETER;
-
- r = msi_table_find_row(tv, rec, &row, NULL);
- if (r == LIBMSI_RESULT_SUCCESS)
- return table_view_set_row(view, row, rec, (1 << tv->num_cols) - 1);
- else
- return table_view_insert_row( view, rec, -1, false );
-}
-
-static unsigned modify_delete_row( LibmsiView *view, LibmsiRecord *rec )
-{
- LibmsiTableView *tv = (LibmsiTableView *)view;
- unsigned row, r;
-
- r = msi_table_find_row(tv, rec, &row, NULL);
- if (r != LIBMSI_RESULT_SUCCESS)
- return r;
-
- return table_view_delete_row(view, row);
-}
-
-static unsigned msi_refresh_record( LibmsiView *view, LibmsiRecord *rec, unsigned row )
-{
- LibmsiRecord *curr;
- unsigned r, i, count;
-
- r = table_view_get_row(view, row - 1, &curr);
- if (r != LIBMSI_RESULT_SUCCESS)
- return r;
-
- /* Close the original record */
- _libmsi_record_destroy(&rec->hdr);
-
- count = libmsi_record_get_field_count(rec);
- for (i = 0; i < count; i++)
- _libmsi_record_copy_field(curr, i + 1, rec, i + 1);
-
- msiobj_release(&curr->hdr);
- return LIBMSI_RESULT_SUCCESS;
-}
-
-static unsigned table_view_modify( LibmsiView *view, LibmsiModify eModifyMode,
- LibmsiRecord *rec, unsigned row)
-{
- LibmsiTableView *tv = (LibmsiTableView*)view;
- unsigned r, frow, column;
-
- TRACE("%p %d %p\n", view, eModifyMode, rec );
-
- switch (eModifyMode)
- {
- case LIBMSI_MODIFY_DELETE:
- r = modify_delete_row( view, rec );
- break;
- case LIBMSI_MODIFY_VALIDATE_NEW:
- r = table_validate_new( tv, rec, &column );
- if (r != LIBMSI_RESULT_SUCCESS)
- {
- tv->view.error = LIBMSI_DB_ERROR_DUPLICATEKEY;
- tv->view.error_column = tv->columns[column].colname;
- r = LIBMSI_RESULT_INVALID_DATA;
- }
- break;
-
- case LIBMSI_MODIFY_INSERT:
- r = table_validate_new( tv, rec, NULL );
- if (r != LIBMSI_RESULT_SUCCESS)
- break;
- r = table_view_insert_row( view, rec, -1, false );
- break;
-
- case LIBMSI_MODIFY_INSERT_TEMPORARY:
- r = table_validate_new( tv, rec, NULL );
- if (r != LIBMSI_RESULT_SUCCESS)
- break;
- r = table_view_insert_row( view, rec, -1, true );
- break;
-
- case LIBMSI_MODIFY_REFRESH:
- r = msi_refresh_record( view, rec, row );
- break;
-
- case LIBMSI_MODIFY_UPDATE:
- r = msi_table_update( view, rec, row );
- break;
-
- case LIBMSI_MODIFY_ASSIGN:
- r = msi_table_assign( view, rec );
- break;
-
- case LIBMSI_MODIFY_MERGE:
- /* check row that matches this record */
- r = msi_table_find_row( tv, rec, &frow, &column );
- if (r != LIBMSI_RESULT_SUCCESS)
- {
- r = table_validate_new( tv, rec, NULL );
- if (r == LIBMSI_RESULT_SUCCESS)
- r = table_view_insert_row( view, rec, -1, false );
- }
- break;
-
- case LIBMSI_MODIFY_REPLACE:
- case LIBMSI_MODIFY_VALIDATE:
- case LIBMSI_MODIFY_VALIDATE_FIELD:
- case LIBMSI_MODIFY_VALIDATE_DELETE:
- FIXME("%p %d %p - mode not implemented\n", view, eModifyMode, rec );
- r = LIBMSI_RESULT_CALL_NOT_IMPLEMENTED;
- break;
-
- default:
- r = LIBMSI_RESULT_INVALID_DATA;
- }
-
- return r;
-}
-
static unsigned table_view_delete( LibmsiView *view )
{
LibmsiTableView *tv = (LibmsiTableView*)view;
@@ -2157,7 +2009,6 @@ static const LibmsiViewOps table_ops =
table_view_close,
table_view_get_dimensions,
table_view_get_column_info,
- table_view_modify,
table_view_delete,
table_view_find_matching_rows,
table_view_add_ref,
diff --git a/libmsi/update.c b/libmsi/update.c
index accf3dd..5311f2d 100644
--- a/libmsi/update.c
+++ b/libmsi/update.c
@@ -167,16 +167,6 @@ static unsigned update_view_get_column_info( LibmsiView *view, unsigned n, const
return wv->ops->get_column_info( wv, n, name, type, temporary, table_name );
}
-static unsigned update_view_modify( LibmsiView *view, LibmsiModify eModifyMode,
- LibmsiRecord *rec, unsigned row )
-{
- LibmsiUpdateView *uv = (LibmsiUpdateView*)view;
-
- TRACE("%p %d %p\n", uv, eModifyMode, rec );
-
- return LIBMSI_RESULT_FUNCTION_FAILED;
-}
-
static unsigned update_view_delete( LibmsiView *view )
{
LibmsiUpdateView *uv = (LibmsiUpdateView*)view;
@@ -213,7 +203,6 @@ static const LibmsiViewOps update_ops =
update_view_close,
update_view_get_dimensions,
update_view_get_column_info,
- update_view_modify,
update_view_delete,
update_view_find_matching_rows,
NULL,
diff --git a/libmsi/where.c b/libmsi/where.c
index 094ec41..cbe06d7 100644
--- a/libmsi/where.c
+++ b/libmsi/where.c
@@ -876,113 +876,6 @@ static unsigned where_view_get_column_info( LibmsiView *view, unsigned n, const
type, temporary, table_name);
}
-static unsigned join_find_row( LibmsiWhereView *wv, LibmsiRecord *rec, unsigned *row )
-{
- const WCHAR *str;
- unsigned r, i, id, data;
-
- str = _libmsi_record_get_string_raw( rec, 1 );
- r = _libmsi_id_from_stringW( wv->db->strings, str, &id );
- if (r != LIBMSI_RESULT_SUCCESS)
- return r;
-
- for (i = 0; i < wv->row_count; i++)
- {
- where_view_fetch_int( &wv->view, i, 1, &data );
-
- if (data == id)
- {
- *row = i;
- return LIBMSI_RESULT_SUCCESS;
- }
- }
-
- return LIBMSI_RESULT_FUNCTION_FAILED;
-}
-
-static unsigned join_modify_update( LibmsiView *view, LibmsiRecord *rec )
-{
- LibmsiWhereView *wv = (LibmsiWhereView *)view;
- unsigned r, row, i, mask = 0;
- LibmsiRecord *current;
-
-
- r = join_find_row( wv, rec, &row );
- if (r != LIBMSI_RESULT_SUCCESS)
- return r;
-
- r = msi_view_get_row( wv->db, view, row, &current );
- if (r != LIBMSI_RESULT_SUCCESS)
- return r;
-
- assert(libmsi_record_get_field_count(rec) == libmsi_record_get_field_count(current));
-
- for (i = libmsi_record_get_field_count(rec); i > 0; i--)
- {
- if (!_libmsi_record_compare_fields(rec, current, i))
- mask |= 1 << (i - 1);
- }
- msiobj_release(&current->hdr);
-
- return where_view_set_row( view, row, rec, mask );
-}
-
-static unsigned where_view_modify( LibmsiView *view, LibmsiModify eModifyMode,
- LibmsiRecord *rec, unsigned row )
-{
- LibmsiWhereView *wv = (LibmsiWhereView*)view;
- JOINTABLE *table = wv->tables;
- unsigned r;
-
- TRACE("%p %d %p\n", wv, eModifyMode, rec);
-
- if (!table)
- return LIBMSI_RESULT_FUNCTION_FAILED;
-
- if (!table->next)
- {
- unsigned *rows;
-
- if (find_row(wv, row - 1, &rows) == LIBMSI_RESULT_SUCCESS)
- row = rows[0] + 1;
- else
- row = -1;
-
- return table->view->ops->modify(table->view, eModifyMode, rec, row);
- }
-
- switch (eModifyMode)
- {
- case LIBMSI_MODIFY_UPDATE:
- return join_modify_update( view, rec );
-
- case LIBMSI_MODIFY_ASSIGN:
- case LIBMSI_MODIFY_DELETE:
- case LIBMSI_MODIFY_INSERT:
- case LIBMSI_MODIFY_INSERT_TEMPORARY:
- case LIBMSI_MODIFY_MERGE:
- case LIBMSI_MODIFY_REPLACE:
- case LIBMSI_MODIFY_SEEK:
- case LIBMSI_MODIFY_VALIDATE:
- case LIBMSI_MODIFY_VALIDATE_DELETE:
- case LIBMSI_MODIFY_VALIDATE_FIELD:
- case LIBMSI_MODIFY_VALIDATE_NEW:
- r = LIBMSI_RESULT_FUNCTION_FAILED;
- break;
-
- case LIBMSI_MODIFY_REFRESH:
- r = LIBMSI_RESULT_CALL_NOT_IMPLEMENTED;
- break;
-
- default:
- WARN("%p %d %p %u - unknown mode\n", view, eModifyMode, rec, row );
- r = LIBMSI_RESULT_INVALID_PARAMETER;
- break;
- }
-
- return r;
-}
-
static unsigned where_view_delete( LibmsiView *view )
{
LibmsiWhereView *wv = (LibmsiWhereView*)view;
@@ -1105,7 +998,6 @@ static const LibmsiViewOps where_ops =
where_view_close,
where_view_get_dimensions,
where_view_get_column_info,
- where_view_modify,
where_view_delete,
where_view_find_matching_rows,
NULL,