62 Commits

Author SHA1 Message Date
Alexandre Julliard
7cd3c9f073 msi: Build with msvcrt.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-13 14:34:51 +02:00
Erich E. Hoover
51d5242a5f msi: Add support for deleting streams from an MSI database.
msidb allows developers to remove "streams" (cabinet files) from a
database with the "-k" mode flag.  To support that feature we need
MSIMODIFY_DELETE support in the underlying MSI implementation.

Signed-off-by: Erich E. Hoover <erich.e.hoover@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-15 20:01:27 +01:00
Hans Leidekker
02a25a9d4f msi: Skip the special SummaryInformation stream in msi_commit_streams.
Avoids adding a useless table stream when called on an existing database.

Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-11 17:55:23 +01:00
Zebediah Figura
044c1dd23b msi: Support setting streams in msi_select_update().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-29 17:12:13 +01:00
Zebediah Figura
7c28a1dbdd msi: Get rid of the get_row() view operation.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-28 10:24:59 +01:00
Zebediah Figura
f45a7b04a6 msi: Set table values directly in msi_select_update().
In order to avoid the need to create a temporary record and copy values back
and forth.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-28 10:24:56 +01:00
Zebediah Figura
a7f455b97f msi: Use a BOOL to track string persistence.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-25 10:28:47 +01:00
Zebediah Figura
c2810f40a0 msi: Get rid of the remove_column() view operation.
It was added to the structure, rather unnecessarily, by ccef56f2c.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-25 10:28:38 +01:00
Zebediah Figura
ced768f2ec msi: Get rid of the find_matching_rows() view operation.
It was introduced in 9f487ba1d as part of an optimization, but ceased to be used in a52c2bf94.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-25 10:28:20 +01:00
Hans Leidekker
1cb4367763 msi: Fix a couple of memory leaks (Valgrind).
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-01 19:12:23 -07:00
Hans Leidekker
fa23c7fcb3 msi: Handle errors from IStorage_CreateStream instead of trying to open the stream first in msi_commit_streams. 2015-03-17 00:19:51 +09:00
Hans Leidekker
af6281701d msi: Decode stream names in load_streams. 2015-03-04 23:57:41 +09:00
Hans Leidekker
0dba391d67 msi: Don't write streams to storage until the database is committed.
Native allows streams to be created with names that exceed the maximum
length allowed by OLE storages. These streams can be used normally, it's
just not possible to commit such a database.
2015-02-13 21:48:21 +09:00
Hans Leidekker
db3346247c msi: Get rid of the refcount parameter to msi_addstringW. 2015-02-13 21:48:12 +09:00
Hans Leidekker
d954fbf8da msi: Get rid of the open streams cache. 2015-02-13 21:48:07 +09:00
Hans Leidekker
f41ac94e0e msi: Include the terminating null in the buffer size for decoded stream names. 2014-10-02 16:59:04 +02:00
Nikolay Sivov
af5e73572a msi: Fix a stream data leak on error (Coverity). 2012-12-10 11:24:25 +01:00
Hans Leidekker
6950ac1d1c msi: Add support for storing strings with embedded nulls in the string table. 2012-10-29 14:40:40 +01:00
Marcus Meissner
ee12b4feed msi: Check return value of msi_string2idW (Coverity). 2011-08-31 19:43:07 +02:00
Hans Leidekker
d1b2058500 msi: Make the column and table name parameters of get_column_info const. 2011-07-27 11:55:06 +02:00
Hans Leidekker
8aa8b9b654 msi: Fully initialize the MSISTORAGESVIEW and MSISTREAMSVIEW structures. 2011-06-07 14:18:33 +02:00
Hans Leidekker
4f9971f5f8 msi: Keep track of a stream's storage. 2011-05-06 16:40:06 +02:00
Hans Leidekker
d10208e863 msi: Improve traces in db_get_raw_stream. 2010-07-21 13:24:00 +02:00
Hans Leidekker
8f53405544 msi: Remove the string index parameter from msi_addstringW. 2010-04-19 14:57:02 +02:00
Hans Leidekker
fc15e565d3 msi: Make the name parameter of create_storage and create_stream constant. 2010-04-19 14:56:58 +02:00
Hans Leidekker
faf750f2f7 msi: Remove stream from streams cache before destroying it. 2010-03-23 13:24:27 +01:00
Hans Leidekker
ba090ede7b msi: All stream names starting with 0x0005 are unencoded.
Fixes a regression caused by 1ff992314887d03abeb4098789701ff3bfd5d2d8.
2010-02-22 13:15:09 +01:00
Hans Leidekker
1ff9923148 msi: Add summary information stream to the streams table. 2010-02-19 13:06:53 +01:00
Hans Leidekker
ddb2091623 msi: Fix a memory leak. 2010-02-19 13:06:46 +01:00
Hans Leidekker
19b50cff34 msi: Fix an off-by-one error in STREAMS_find_matching_rows. 2010-02-04 13:39:29 +01:00
Hans Leidekker
95a21c27da msi: Give the Name field from the _Streams table a valid type. 2010-02-04 13:39:29 +01:00
Hans Leidekker
24dd10c6b0 msi: Make room for the new row in STREAMS_insert_row. 2010-02-04 13:39:28 +01:00
Hans Leidekker
c1940c1c5f msi: Allow overwriting an existing stream in STREAMS_set_row. 2010-02-04 13:39:28 +01:00
Hans Leidekker
dcbe0fdff2 msi: Encode the stream name before trying to open it. 2010-02-04 13:39:28 +01:00
Hans Leidekker
b833ae0263 msi: Improve error handling in STREAMS_set_row and add_streams_to_table. 2010-02-04 13:39:28 +01:00
Hans Leidekker
5741df2e58 msi: Implement STREAMS_get_row. 2010-02-04 13:39:28 +01:00
Hans Leidekker
74d6fe35a2 msi: Remove unused and redundant name field from STREAM structure. 2010-02-04 13:39:28 +01:00
Alexandre Julliard
dcf1a0c891 msi: Fix some pointer cast warnings on 64-bit. 2009-12-31 12:12:15 +01:00
Hans Leidekker
699cfc915a msi: Avoid a crash in STREAMS_delete. 2009-12-18 11:47:39 +01:00
James Hawkins
ee2cf9a597 msi: Free the Streams and Storages view object in their respective delete methods. 2009-12-14 12:20:39 +01:00
James Hawkins
12134243c3 msi: Free each stream name when deleting the streams view. 2009-12-14 12:20:03 +01:00
Nathan Gallaher
abb23d8bd5 msi: Support _Streams, _Storages tablename prefixes in SELECT. 2009-11-24 15:54:06 +01:00
Nate Gallaher
cc366e1282 msi: Add tablename tracking to VIEW_find_column.
This fixes the bug where multiple columns of the same name, but
different tables are members of a join. Any attempt to refer to these
columns will resolve to the first available column with that name,
irregardless of any tablename modifier.
2009-10-27 14:01:23 +01:00
Hib Eris
8fb7fdd029 msi: Fix a crash when freeing memory. 2009-06-11 11:45:48 +02:00
Hans Leidekker
22a277cc2e msi: Fix some memory leaks. 2009-05-28 15:29:09 +02:00
James Hawkins
c9b3bc1165 msi: Column attributes for temporary string and int columns should be g and j respectively. 2009-03-02 12:05:28 +01:00
James Hawkins
b3c9875cf7 msi: Correctly order transposed column values in the INSERT query. 2009-03-02 12:04:57 +01:00
James Hawkins
62c544cf4f msi: Implement the DROP TABLE sql command. 2008-10-06 13:05:52 +02:00
James Hawkins
d9f2120f14 msi: Ignore all non-stream elements when filling the _Streams table. 2008-08-19 13:36:25 +02:00
James Hawkins
0c3ecefbc3 msi: Include query.h to pull in the definition of STREAMS_CreateView. 2008-03-01 12:18:54 +01:00