Commit Graph

64 Commits

Author SHA1 Message Date
Bernhard Loos 9b729bb1b3 msi: Speed up WHERE statement evaluation by evaluating the condition as early as possible. 2011-09-12 17:45:51 +02:00
Bernhard Loos dc16dd1351 msi: The underlying tables might have changed, so it's not possible to cache the result of the execute. 2011-09-12 17:45:28 +02:00
Hans Leidekker a8b51497e5 msi: Avoid a leak when a query is executed more than once. 2011-09-05 17:17:28 +02:00
Francois Gouget 2649761175 msi: Make find_table() static. 2011-09-02 14:42:17 +02:00
Alexandre Julliard 2fcf1220eb msi: Avoid dynamic stack allocation. 2011-08-29 13:52:32 +02:00
Bernhard Loos f0a53a8f1b msi: Implement proper sorting in WHEREVIEW. 2011-08-26 13:35:54 +02:00
Bernhard Loos abd1174941 msi: Protected primary keys against modification. 2011-08-26 13:34:25 +02:00
Bernhard Loos a52c2bf941 msi: Make WHEREVIEW able to deal directly with multiple tables. 2011-08-26 13:33:44 +02:00
Bernhard Loos 3bd0acf1ba msi: Use an array instead of a hashtable for WHEREVIEW. 2011-08-25 14:34:34 +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 78ce0a7350 msi: Check the return value of fetch_int (clang). 2011-01-27 16:30:48 +01:00
Hans Leidekker eaa57c5b7b msi: Compare strings without depending on thread locale. 2010-10-19 13:49:54 +02:00
Hans Leidekker 73774b3ef8 msi: Disable an optimization in the execution of WHERE clauses.
There's no guarantee that the condition strings are in the string table.
2010-06-11 15:54:35 +02:00
Hans Leidekker 6df6332198 msi: Reject greater than and less than string comparisons in WHERE clauses. 2009-12-15 11:45:04 +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
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 f1e2041bf4 msi: Pass the correct view to get_row. 2008-10-20 13:09:59 +02:00
James Hawkins 62c544cf4f msi: Implement the DROP TABLE sql command. 2008-10-06 13:05:52 +02:00
James Hawkins 4d9c17da02 msi: Don't execute the view again when modifying a WHERE query. 2008-04-07 11:27:39 +02:00
James Hawkins 724c8da734 msi: Don't bail out if the row to modify is not found as not all modify commands need the row. 2008-03-01 12:17:31 +01:00
James Hawkins 40aa7df344 msi: Implement the MSIMODIFY_REFRESH command of MsiViewModify. 2008-02-18 12:41:37 +01:00
James Hawkins 4b75f33012 msi: Actually delete the row data instead of blanking it out. 2008-01-09 13:38:02 +01:00
James Hawkins 58c7fe1095 msi: Allow the not-equal operator in WHERE query string comparisons. 2007-12-23 14:17:11 +01:00
James Hawkins 91c205e8c0 msi: Sort each table of the join separately. 2007-12-18 12:32:55 +01:00
James Hawkins 80bbf58378 msi: Use a hash table for reordering rows in a WHERE query to conserve space. 2007-12-03 13:44:46 +01:00
James Hawkins 63fe32a8bb msi: Downgrade an ERR to a WARN. 2007-11-26 12:28:49 +01:00
James Hawkins 5e81dbebb0 msi: Treat an empty string and a NULL string as the same value. 2007-07-30 15:26:51 +02:00
James Hawkins ac1f717ab8 msi: Keep track of the wildcard record index. 2007-07-30 12:51:47 +02:00
James Hawkins b830fb0a34 msi: Implement the MSIMODIFY_UPDATE command in the SELECT view. 2007-07-27 12:24:39 +02:00
James Hawkins ccef56f2cc msi: Ref count temporary columns and release them when necessary. 2007-07-23 11:55:34 +02:00
James Hawkins 0fd733bf90 msi: Implement adding columns using the ALTER command. 2007-07-23 11:55:11 +02:00
James Hawkins 3b1ab76986 msi: Implement reference counting for tables, manipulated with the HOLD and FREE sql commands. 2007-07-19 12:00:43 +02:00
James Hawkins 9309f4dfa0 msi: Properly delete rows from the table, instead of zeroing out the row. 2007-06-19 11:31:44 +02:00
Andrew Talbot cf1e01eb0c msi: Constify some variables. 2007-06-14 13:20:45 +02:00
Mike McCormack 50e5caeb6c msi: Fix WHERE IS (NOT) NULL queries. 2006-11-07 15:06:57 +01:00
Mike McCormack 15bfb30fc3 msi: Update tables using records, not integer by integer. 2006-10-26 12:56:10 +02:00
Mike McCormack 65d12c342d msi: Fix the value of LONG integers in records (suggested by James Hawkins). 2006-07-27 11:57:12 +02:00
Mike McCormack 4ab109e507 msi: Fix where queries on 32bit integer columns. 2006-07-25 11:22:43 +02:00
Alexandre Julliard 9a59ee76e4 msi: Make all the ops structures static and const. 2006-06-10 12:02:39 +02:00
Robert Shearman d70db020a6 msi: An empty string is equivalent to nil, so handle this in the optimised WHERE_execute path. 2006-06-05 13:45:53 +02:00
Jonathan Ernst 360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Robert Shearman 9f487ba1de msi: Optimise WHERE operations.
Optimise WHERE operations on matching against strings by adding a new
function find_matching_rows to the views, which eliminates the need to
examine every record when executing a query. Implement this function
in the table using a hash table on the ID stored in the data.
2006-03-20 12:03:04 +01:00
Mike McCormack 50684c15d5 Create the +msidb debug channel for msi database code. 2005-11-02 14:24:21 +00:00
Mike McCormack 744e22c7df Fix various query related memory leaks. 2005-09-26 10:55:18 +00:00
Mike McCormack 8dc28d5306 Added memory allocation inline functions (part 1). 2005-09-20 11:57:19 +00:00
Mike McCormack b58a098a11 -Wmissing-declarations and -Wwrite-strings warning fixes. 2005-05-29 20:08:12 +00:00
Mike McCormack 0093007b32 Track memory allocations in the SQL parser. 2005-05-23 12:08:17 +00:00
Mike McCormack e2df8814ea Allow MsiViewExecute to be called twice on the same query. 2005-02-16 16:06:05 +00:00
Mike McCormack ef1d367bcc Fix MsiModifyView and MsiViewGetColumnInfo to use MSIRECORD* not MSIHANDLE. 2005-02-08 13:44:25 +00:00
Michael Stefaniuc b937407ee5 Do not check for non NULL pointer before HeapFree'ing it. It's
redundant.
2005-01-20 10:36:35 +00:00