Changeset: 5718352f009a for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=5718352f009a
Added Files:
        monetdb5/modules/mal/Tests/run
        monetdb5/optimizer/Tests/run
        sql/benchmarks/tpch/fileleak/Tests/All
        sql/benchmarks/tpch/fileleak/Tests/check0.reqtests
        sql/benchmarks/tpch/fileleak/Tests/check0.sql
        sql/benchmarks/tpch/fileleak/Tests/check0.stable.err
        sql/benchmarks/tpch/fileleak/Tests/check0.stable.out
        sql/benchmarks/tpch/fileleak/Tests/check1.reqtests
        sql/benchmarks/tpch/fileleak/Tests/check1.sql
        sql/benchmarks/tpch/fileleak/Tests/check1.stable.err
        sql/benchmarks/tpch/fileleak/Tests/check1.stable.out
        sql/benchmarks/tpch/fileleak/Tests/create.sql.src
        sql/benchmarks/tpch/fileleak/Tests/create.stable.err
        sql/benchmarks/tpch/fileleak/Tests/create.stable.out
        sql/benchmarks/tpch/fileleak/Tests/delete_all.SQL.py
        sql/benchmarks/tpch/fileleak/Tests/delete_all.stable.err
        sql/benchmarks/tpch/fileleak/Tests/delete_all.stable.out
        sql/benchmarks/tpch/fileleak/Tests/leaks.SQL.py
        sql/benchmarks/tpch/fileleak/Tests/leaks.stable.err
        sql/benchmarks/tpch/fileleak/Tests/leaks.stable.out
        sql/benchmarks/tpch/fileleak/Tests/load.SQL.py
        sql/benchmarks/tpch/fileleak/Tests/load.reqtests
        sql/benchmarks/tpch/fileleak/Tests/load.stable.err
        sql/benchmarks/tpch/fileleak/Tests/load.stable.out
        sql/benchmarks/tpch/fileleak/Tests/test.py
        sql/benchmarks/tpch/fileleak/Tests/test.sql
        sql/benchmarks/tpch/trace.sql
        sql/test/BugTracker-2012/Tests/huge_insert.Bug-2803.sql
        sql/test/BugTracker-2013/Tests/binary_copy_into.Bug-3345.SQL.py
        sql/test/BugTracker-2013/Tests/binary_copy_into.Bug-3345.stable.err
        sql/test/BugTracker-2013/Tests/binary_copy_into.Bug-3345.stable.out
        sql/test/BugTracker-2013/Tests/copy-into-compressed.Bug-3351.sql.in
        sql/test/BugTracker-2013/Tests/copy-into-compressed.Bug-3351.stable.err
        sql/test/BugTracker-2013/Tests/copy-into-compressed.Bug-3351.stable.out
        sql/test/BugTracker-2013/Tests/correlated_subquery.Bug-3317.sql
        sql/test/BugTracker-2013/Tests/correlated_subquery.Bug-3317.stable.err
        sql/test/BugTracker-2013/Tests/correlated_subquery.Bug-3317.stable.out
        sql/test/BugTracker-2013/Tests/duplicate_column_name.Bug-3349.sql
        sql/test/BugTracker-2013/Tests/duplicate_column_name.Bug-3349.stable.err
        sql/test/BugTracker-2013/Tests/duplicate_column_name.Bug-3349.stable.out
        sql/test/BugTracker-2013/Tests/iso8601_weekofyear.Bug-3232.sql
        sql/test/BugTracker-2013/Tests/iso8601_weekofyear.Bug-3232.stable.err
        sql/test/BugTracker-2013/Tests/iso8601_weekofyear.Bug-3232.stable.out
        sql/test/BugTracker-2013/Tests/like_pcre_or.Bug-3348.sql
        sql/test/BugTracker-2013/Tests/like_pcre_or.Bug-3348.stable.err
        sql/test/BugTracker-2013/Tests/like_pcre_or.Bug-3348.stable.out
        sql/test/BugTracker-2013/Tests/median.Bug-3352.sql
        sql/test/BugTracker-2013/Tests/median.Bug-3352.stable.err
        sql/test/BugTracker-2013/Tests/median.Bug-3352.stable.out
        sql/test/BugTracker-2013/Tests/n_nationkey.sorted
        sql/test/BugTracker-2013/Tests/n_regionkey.sorted
        sql/test/BugTracker-2013/Tests/nestedcalls.stable.err
        sql/test/BugTracker-2013/Tests/nestedcalls.stable.out
        sql/test/BugTracker-2013/Tests/test3351.csv
        sql/test/BugTracker-2013/Tests/test3351.csv.bz2
        sql/test/BugTracker-2013/Tests/test3351.csv.gz
Modified Files:
        HowToStart.rst
        clients/Tests/exports.stable.out
        clients/mapiclient/mclient.c
        clients/mapiclient/tomograph.c
        clients/odbc/driver/ODBCConvert.c
        clients/odbc/driver/ODBCGlobal.h
        clients/odbc/driver/ODBCUtil.c
        clients/odbc/driver/ODBCUtil.h
        clients/odbc/driver/SQLBindParameter.c
        clients/odbc/driver/SQLBrowseConnect.c
        clients/odbc/driver/SQLColAttribute.c
        clients/odbc/driver/SQLColAttributes.c
        clients/odbc/driver/SQLColumnPrivileges.c
        clients/odbc/driver/SQLColumns.c
        clients/odbc/driver/SQLConnect.c
        clients/odbc/driver/SQLDataSources.c
        clients/odbc/driver/SQLDescribeCol.c
        clients/odbc/driver/SQLDriverConnect.c
        clients/odbc/driver/SQLDrivers.c
        clients/odbc/driver/SQLError.c
        clients/odbc/driver/SQLExecDirect.c
        clients/odbc/driver/SQLExecute.c
        clients/odbc/driver/SQLForeignKeys.c
        clients/odbc/driver/SQLGetConnectAttr.c
        clients/odbc/driver/SQLGetConnectOption.c
        clients/odbc/driver/SQLGetCursorName.c
        clients/odbc/driver/SQLGetDescField.c
        clients/odbc/driver/SQLGetDescRec.c
        clients/odbc/driver/SQLGetDiagField.c
        clients/odbc/driver/SQLGetDiagRec.c
        clients/odbc/driver/SQLGetInfo.c
        clients/odbc/driver/SQLGetStmtAttr.c
        clients/odbc/driver/SQLGetTypeInfo.c
        clients/odbc/driver/SQLNativeSql.c
        clients/odbc/driver/SQLPrepare.c
        clients/odbc/driver/SQLPrimaryKeys.c
        clients/odbc/driver/SQLProcedureColumns.c
        clients/odbc/driver/SQLProcedures.c
        clients/odbc/driver/SQLSetConnectAttr.c
        clients/odbc/driver/SQLSetConnectOption.c
        clients/odbc/driver/SQLSetCursorName.c
        clients/odbc/driver/SQLSetDescField.c
        clients/odbc/driver/SQLSetStmtAttr.c
        clients/odbc/driver/SQLSpecialColumns.c
        clients/odbc/driver/SQLStatistics.c
        clients/odbc/driver/SQLTablePrivileges.c
        clients/odbc/driver/SQLTables.c
        common/stream/stream.c
        common/stream/stream.h
        gdk/gdk.h
        gdk/gdk_heap.c
        gdk/gdk_join.c
        gdk/gdk_storage.c
        monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.err
        monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out
        monetdb5/mal/Tests/tst1200.mal
        monetdb5/mal/Tests/tst1200.stable.out
        monetdb5/mal/Tests/tst1201.mal
        monetdb5/mal/Tests/tst1201.stable.out
        monetdb5/mal/Tests/tst1202.mal
        monetdb5/mal/Tests/tst1202.stable.out
        monetdb5/mal/Tests/tst1205.mal
        monetdb5/mal/Tests/tst1205.stable.out
        monetdb5/mal/mal_dataflow.c
        monetdb5/mal/mal_dataflow.h
        monetdb5/mal/mal_instruction.c
        monetdb5/mal/mal_instruction.h
        monetdb5/mal/mal_recycle.c
        monetdb5/modules/atoms/mtime.c
        monetdb5/modules/atoms/mtime.h
        monetdb5/modules/atoms/mtime.mal
        monetdb5/modules/kernel/algebra.c
        monetdb5/modules/kernel/algebra.h
        monetdb5/modules/kernel/algebra.mal
        monetdb5/modules/mal/language.c
        monetdb5/modules/mal/language.h
        monetdb5/modules/mal/pcre.c
        monetdb5/modules/mal/tablet.c
        monetdb5/modules/mal/tablet.h
        monetdb5/optimizer/opt_reduce.c
        sql/backends/monet5/UDF/Tests/udf-fuse.stable.out
        sql/backends/monet5/UDF/Tests/udf-reverse.stable.out
        sql/backends/monet5/datacell/receptor.c
        sql/backends/monet5/rel_bin.c
        sql/backends/monet5/sql.mx
        sql/backends/monet5/sql_gencode.c
        sql/backends/monet5/sql_optimizer.c
        sql/backends/monet5/sql_optimizer.h
        sql/backends/monet5/sql_result.c
        sql/backends/monet5/sql_scenario.c
        sql/backends/monet5/sql_statement.c
        sql/backends/monet5/sql_statement.h
        sql/common/sql_hash.c
        sql/common/sql_list.c
        sql/common/sql_types.c
        sql/include/sql_catalog.h
        sql/include/sql_list.h
        sql/scripts/mtime.sql
        sql/server/rel_exp.c
        sql/server/rel_optimizer.c
        sql/server/rel_psm.c
        sql/server/rel_select.c
        sql/server/rel_semantic.c
        sql/server/rel_updates.c
        sql/server/sql_parser.h
        sql/server/sql_parser.y
        sql/server/sql_scan.c
        sql/storage/store.c
        sql/test/BugTracker-2009/Tests/POWER_vs_prod.SF-2596114.stable.out
        sql/test/BugTracker-2009/Tests/ambiguous_order_by.SF-2827916.stable.err
        sql/test/BugTracker-2009/Tests/ambiguous_view.stable.err
        sql/test/BugTracker-2009/Tests/assert_in_update.SF-2807336.stable.err
        
sql/test/BugTracker-2009/Tests/copy_into_error_off_by_one.SF-2833696.stable.err
        sql/test/BugTracker-2009/Tests/copy_multiple_files.SF-2902320.stable.err
        
sql/test/BugTracker-2009/Tests/create_on_ro_db_crash.SF-2830238.stable.err
        
sql/test/BugTracker-2009/Tests/create_table_dup_name.SF-2879005.stable.err
        sql/test/BugTracker-2009/Tests/drop-sequence-crash.SF-2854195.stable.err
        sql/test/BugTracker-2009/Tests/except_error_wrong.SF-2808409.stable.err
        sql/test/BugTracker-2009/Tests/explain_gives_crash.SF-2741829.stable.err
        sql/test/BugTracker-2009/Tests/explain_gives_crash.SF-2741829.stable.out
        sql/test/BugTracker-2009/Tests/incomplete.SF.2536893.stable.err
        
sql/test/BugTracker-2009/Tests/insert_into_values_bug.SF-2807609.stable.err
        sql/test/BugTracker-2009/Tests/limit_in_subquery.SF-2620437.stable.err
        
sql/test/BugTracker-2009/Tests/not_invalidtable_crash.SF-2927174.stable.err
        sql/test/BugTracker-2009/Tests/overflow.SF-2853458.stable.err
        sql/test/BugTracker-2009/Tests/primekeyconstraint.SF-2783425.stable.err
        sql/test/BugTracker-2009/Tests/rollback_bug.stable.err
        sql/test/BugTracker-2009/Tests/rollback_mistake.SF-2814622.stable.err
        
sql/test/BugTracker-2009/Tests/segv_for_unknown_identifier_in_subquery.SF-2874045.stable.err
        
sql/test/BugTracker-2009/Tests/select_X_where_bla_EQ_whatever.SF-282597.stable.err
        sql/test/BugTracker-2009/Tests/select_from_history.SF-2556566.stable.err
        
sql/test/BugTracker-2009/Tests/subquery_returns_table_crash.SF-2513620.stable.err
        
sql/test/BugTracker-2009/Tests/temp_table_fail_leaves_data.SF-2793286.stable.err
        
sql/test/BugTracker-2009/Tests/temporary_table_leftover.SF-2734713.stable.err
        
sql/test/BugTracker-2009/Tests/unique_constraint_on_char.SF-2873564.stable.err
        sql/test/BugTracker-2009/Tests/wrong_error_message.SF-2637051.stable.err
        
sql/test/BugTracker-2010/Tests/LIMIT_OFFSET_big-endian.Bug-2622.stable.out
        
sql/test/BugTracker-2010/Tests/TypeException_with_missing_function.Bug-2674.stable.err
        
sql/test/BugTracker-2010/Tests/call_function_without_warning.Bug-2752.stable.err
        
sql/test/BugTracker-2010/Tests/copy-into-too-long-string.Bug-2358.stable.err
        
sql/test/BugTracker-2010/Tests/crash_default_unlocked.Bug-2744.stable.err
        sql/test/BugTracker-2010/Tests/crash_on_in_2.Bug-2604.stable.err
        sql/test/BugTracker-2010/Tests/crashonschema.Bug-2547.stable.err
        sql/test/BugTracker-2010/Tests/duplicate-key.Bug-2667.stable.err
        sql/test/BugTracker-2010/Tests/error-truncated.Bug-2615.stable.err
        
sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.stable.out
        
sql/test/BugTracker-2010/Tests/incomplete-utf8-sequence.Bug-2575.stable.err
        sql/test/BugTracker-2010/Tests/prepare_stmt.Bug-2533.Bug-2534.stable.err
        
sql/test/BugTracker-2010/Tests/second_function_existing_signature.Bug-2611.stable.err
        sql/test/BugTracker-2010/Tests/select_from_seq.Bug-2730.stable.err
        sql/test/BugTracker-2010/Tests/select_star.Bug-2563.stable.err
        
sql/test/BugTracker-2010/Tests/sequence-restart-with-null.Bug-2648.stable.err
        sql/test/BugTracker-2010/Tests/subselect.Bug-2537.stable.err
        sql/test/BugTracker-2010/Tests/sum_on_date_crash.Bug-2643.stable.err
        sql/test/BugTracker-2010/Tests/times-crash.Bug-2586.stable.err
        
sql/test/BugTracker-2010/Tests/wrong_error_message_dropping_view.Bug-2713.stable.err
        sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out
        sql/test/BugTracker-2012/Tests/create_function.Bug-3172.stable.err
        sql/test/BugTracker-2012/Tests/null_except_null.Bug-3040.stable.out
        sql/test/BugTracker-2012/Tests/predicate_select.Bug-3090.stable.err
        sql/test/BugTracker-2012/Tests/predicate_select.Bug-3090.stable.out
        
sql/test/BugTracker-2012/Tests/rewrite_like_into_likesubselect.Bug-3179.stable.out
        
sql/test/BugTracker-2012/Tests/table_function_with_column_subselects.Bug-3172.stable.err
        sql/test/BugTracker-2013/Tests/All
        sql/test/BugTracker-2013/Tests/between.Bug-3259.stable.out
        sql/test/BugTracker-2013/Tests/qualified_aggrname.Bug-3332.stable.out
        sql/test/BugTracker/Tests/explain.SF-1739353.stable.out
        sql/test/BugTracker/Tests/jdbc_no_debug.SF-1739356.stable.out
        
sql/test/BugTracker/Tests/set_sql_debug_64__breaking_the_DB.SF-1906287.stable.out
        sql/test/Dependencies/Tests/Dependencies.stable.out
        sql/test/leaks/Tests/check1.stable.out
        sql/test/leaks/Tests/check2.stable.out
        sql/test/leaks/Tests/check3.stable.out
        sql/test/leaks/Tests/check4.stable.out
        sql/test/leaks/Tests/check5.stable.out
        sql/test/mapi/Tests/php_monetdb.stable.out
Branch: mutation
Log Message:

Merge with default


diffs (truncated from 22487 to 300 lines):

diff --git a/HowToStart.rst b/HowToStart.rst
--- a/HowToStart.rst
+++ b/HowToStart.rst
@@ -73,6 +73,19 @@ autoconf/automake/libtool
        Make_ phase.  autoconf and automake are not needed when you
        start with the source distribution.
 
+iconv
+       A macrofile `iconv.m4` is expected in `/usr/share/aclocal/`.
+       On Ubuntu, you can search with `apt-file` what provides these
+       files:
+
+       $ apt-file search iconv.m4
+       gettext: /usr/share/aclocal/iconv.m4
+       gnulib: /usr/share/gnulib/m4/iconv.m4
+
+       The .m4 that usually works is in gettext. Simply run,
+
+       $ sudo apt-get install gettext
+
 standard software development tools
        To compile MonetDB, you also need to have the following
        standard software development tools installed and ready for
diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -196,14 +196,14 @@ BAT *BATsort_rev(BAT *b);
 BAT *BATssort(BAT *b);
 BAT *BATssort_rev(BAT *b);
 gdk_return BATsubcross(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT *sr);
-gdk_return BATsubjoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT *sr, 
BUN estimate);
-gdk_return BATsubleftfetchjoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, 
BAT *sr, BUN estimate);
-gdk_return BATsubleftjoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT 
*sr, BUN estimate);
-gdk_return BATsubouterjoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT 
*sr, BUN estimate);
+gdk_return BATsubjoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT *sr, 
int nil_matches, BUN estimate);
+gdk_return BATsubleftfetchjoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, 
BAT *sr, int nil_matches, BUN estimate);
+gdk_return BATsubleftjoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT 
*sr, int nil_matches, BUN estimate);
+gdk_return BATsubouterjoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT 
*sr, int nil_matches, BUN estimate);
 BAT *BATsubselect(BAT *b, BAT *s, const void *tl, const void *th, int li, int 
hi, int anti);
-gdk_return BATsubsemijoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT 
*sr, BUN estimate);
+gdk_return BATsubsemijoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT 
*sr, int nil_matches, BUN estimate);
 gdk_return BATsubsort(BAT **sorted, BAT **order, BAT **groups, BAT *b, BAT *o, 
BAT *g, int reverse, int stable);
-gdk_return BATsubthetajoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT 
*sr, const char *op, BUN estimate);
+gdk_return BATsubthetajoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT 
*sr, const char *op, int nil_matches, BUN estimate);
 gdk_return BATsum(void *res, int tp, BAT *b, BAT *s, int skip_nils, int 
abort_on_error, int nil_if_empty);
 BAT *BATsunion(BAT *b, BAT *c);
 BAT *BATsunique(BAT *b);
@@ -813,9 +813,9 @@ str ALGssort(int *result, int *bid);
 str ALGssort_rev(int *result, int *bid);
 str ALGstdev(dbl *res, int *bid);
 str ALGstdevp(dbl *res, int *bid);
-str ALGsubjoin(bat *r1, bat *r2, bat *l, bat *r, bat *sl, bat *sr, lng 
*estimate);
-str ALGsubleftjoin(bat *r1, bat *r2, bat *l, bat *r, bat *sl, bat *sr, lng 
*estimate);
-str ALGsubouterjoin(bat *r1, bat *r2, bat *l, bat *r, bat *sl, bat *sr, lng 
*estimate);
+str ALGsubjoin(bat *r1, bat *r2, bat *l, bat *r, bat *sl, bat *sr, bit 
*nil_matches, lng *estimate);
+str ALGsubleftjoin(bat *r1, bat *r2, bat *l, bat *r, bat *sl, bat *sr, bit 
*nil_matches, lng *estimate);
+str ALGsubouterjoin(bat *r1, bat *r2, bat *l, bat *r, bat *sl, bat *sr, bit 
*nil_matches, lng *estimate);
 str ALGsubsample(int *result, int *bid, int *param);
 str ALGsubselect1(bat *result, bat *bid, const void *low, const void *high, 
const bit *li, const bit *hi, const bit *anti);
 str ALGsubselect2(bat *result, bat *bid, bat *sid, const void *low, const void 
*high, const bit *li, const bit *hi, const bit *anti);
@@ -829,7 +829,7 @@ str ALGsubsort23(bat *result, bat *norde
 str ALGsubsort31(bat *result, bat *bid, bat *order, bat *group, bit *reverse, 
bit *stable);
 str ALGsubsort32(bat *result, bat *norder, bat *bid, bat *order, bat *group, 
bit *reverse, bit *stable);
 str ALGsubsort33(bat *result, bat *norder, bat *ngroup, bat *bid, bat *order, 
bat *group, bit *reverse, bit *stable);
-str ALGsubthetajoin(bat *r1, bat *r2, bat *l, bat *r, bat *sl, bat *sr, str 
*op, lng *estimate);
+str ALGsubthetajoin(bat *r1, bat *r2, bat *l, bat *r, bat *sl, bat *sr, str 
*op, bit *nil_matches, lng *estimate);
 str ALGsunion(int *result, int *lid, int *rid);
 str ALGsunique(int *result, int *bid);
 str ALGtdiff(int *result, int *lid, int *rid);
@@ -2605,7 +2605,6 @@ int hasCommonResults(InstrPtr p, InstrPt
 int hasSameArguments(MalBlkPtr mb, InstrPtr p, InstrPtr q);
 int hasSameSignature(MalBlkPtr mb, InstrPtr p, InstrPtr q, int stop);
 int hasSideEffects(InstrPtr p, int strict);
-int has_whitespace(char *sep);
 str hashRef;
 int headProp;
 str histogramRef;
@@ -2633,7 +2632,6 @@ void insertInstruction(MalBlkPtr mb, Ins
 str insertRef;
 void insertSymbol(Module scope, Symbol prg);
 void insertToBox(Box box, str name, str val);
-int insert_line(Tablet *as, char *line, ptr key, BUN col1, BUN col2);
 int insertionsProp;
 int instrFilter(InstrPtr pci, str mod, str fcn);
 str instruction2str(MalBlkPtr mb, MalStkPtr stl, InstrPtr p, int hidden);
@@ -2868,7 +2866,6 @@ void optimizerDebug(Client cntxt, MalBlk
 void optimizerInit(void);
 str optimizerRef;
 str optimizer_prelude(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p);
-int output_file_dense(Tablet *as, stream *fd);
 str pack2Ref;
 str packRef;
 str parseError(Client cntxt, str msg);
@@ -3170,9 +3167,7 @@ str zero_or_oneRef;
 # stream
 stream *append_wastream(const char *filename);
 stream *append_wstream(const char *filename);
-stream *attach_teestream(stream *orig, stream *log);
 stream *block_stream(stream *s);
-ssize_t bs_read_next(stream *s, void *buf, size_t nbytes, int *last);
 bstream *bstream_create(stream *rs, size_t chunk_size);
 void bstream_destroy(bstream *s);
 ssize_t bstream_next(bstream *s);
@@ -3184,8 +3179,6 @@ void buffer_init(buffer *b, char *buf, s
 stream *buffer_rastream(buffer *b, const char *name);
 stream *buffer_wastream(buffer *b, const char *name);
 void close_stream(stream *s);
-void detach_teestream(stream *ts);
-stream *dupFileStream(stream *s);
 stream *file_rastream(FILE *fp, const char *name);
 stream *file_rstream(FILE *fp, const char *name);
 stream *file_wastream(FILE *fp, const char *name);
diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c
--- a/clients/mapiclient/mclient.c
+++ b/clients/mapiclient/mclient.c
@@ -2562,6 +2562,7 @@ set_timezone(Mapi mid)
        tmp = gmtime(&t);
        gt = mktime(tmp);
        tmp = localtime(&t);
+       tmp->tm_isdst=0; /* We need the difference without dst */
        lt = mktime(tmp);
        assert((lng) gt - (lng) lt >= (lng) INT_MIN && (lng) gt - (lng) lt <= 
(lng) INT_MAX);
        tzone = (int) (gt - lt);
diff --git a/clients/mapiclient/tomograph.c b/clients/mapiclient/tomograph.c
--- a/clients/mapiclient/tomograph.c
+++ b/clients/mapiclient/tomograph.c
@@ -1144,7 +1144,7 @@ static void showcolormap(char *filename,
                 * "*.*" stays first (colors[0]) */
                _clrs_ = (Color*) malloc (sizeof(colors));
                if (_clrs_) {
-                       *_clrs_ = *colors;
+                       memcpy (_clrs_, colors, sizeof(colors));
                        qsort (_clrs_, NUM_COLORS, sizeof(Color), cmp_clr);
                        clrs = _clrs_;
                }
diff --git a/clients/odbc/driver/ODBCConvert.c 
b/clients/odbc/driver/ODBCConvert.c
--- a/clients/odbc/driver/ODBCConvert.c
+++ b/clients/odbc/driver/ODBCConvert.c
@@ -397,13 +397,12 @@ ODBCDefaultType(ODBCDescRec *rec)
        case SQL_LONGVARCHAR:
        case SQL_DECIMAL:
        case SQL_NUMERIC:
+       case SQL_GUID:
                return SQL_C_CHAR;
-#ifdef WITH_WCHAR
        case SQL_WCHAR:
        case SQL_WVARCHAR:
        case SQL_WLONGVARCHAR:
                return SQL_C_WCHAR;
-#endif
        case SQL_BIT:
                return SQL_C_BIT;
        case SQL_TINYINT:
@@ -455,8 +454,6 @@ ODBCDefaultType(ODBCDescRec *rec)
                return SQL_C_INTERVAL_HOUR_TO_SECOND;
        case SQL_INTERVAL_MINUTE_TO_SECOND:
                return SQL_C_INTERVAL_MINUTE_TO_SECOND;
-       case SQL_GUID:
-               return SQL_C_GUID;
        }
        return 0;
 }
@@ -1093,8 +1090,6 @@ ODBCFetch(ODBCStmt *stmt,
 
        /* see SQLExecute.c for possible types */
        switch (sql_type) {
-       case SQL_CHAR:
-               break;
        case SQL_DECIMAL:
        case SQL_TINYINT:
        case SQL_SMALLINT:
@@ -1215,9 +1210,7 @@ ODBCFetch(ODBCStmt *stmt,
 
        switch (type) {
        case SQL_C_CHAR:
-#ifdef WITH_WCHAR
        case SQL_C_WCHAR:
-#endif
        {
                SQLPOINTER origptr;
                SQLLEN origbuflen;
@@ -1237,20 +1230,21 @@ ODBCFetch(ODBCStmt *stmt,
 
                origbuflen = buflen;
                origlenp = lenp;
-#ifdef WITH_WCHAR
                if (type == SQL_C_WCHAR) {
                        /* allocate temporary space */
                        buflen = 511; /* should be enough for most types */
                        if (data != NULL &&
                            (sql_type == SQL_CHAR ||
                             sql_type == SQL_VARCHAR ||
-                            sql_type == SQL_LONGVARCHAR))
+                            sql_type == SQL_LONGVARCHAR ||
+                            sql_type == SQL_WCHAR ||
+                            sql_type == SQL_WVARCHAR ||
+                            sql_type == SQL_WLONGVARCHAR))
                                buflen = (SQLLEN) datalen + 1; /* but this is 
certainly enough for strings */
                        ptr = malloc(buflen);
 
                        lenp = NULL;
                }
-#endif
                switch (sql_type) {
                        SQLLEN sz;
 
@@ -1258,6 +1252,9 @@ ODBCFetch(ODBCStmt *stmt,
                case SQL_CHAR:
                case SQL_VARCHAR:
                case SQL_LONGVARCHAR:
+               case SQL_WCHAR:
+               case SQL_WVARCHAR:
+               case SQL_WLONGVARCHAR:
                        copyString(data, datalen, ptr, buflen, lenp, SQLLEN, 
addStmtError, stmt, return SQL_ERROR);
                        break;
                case SQL_BINARY:
@@ -1272,10 +1269,8 @@ ODBCFetch(ODBCStmt *stmt,
                        if (buflen < 0) {
                                /* Invalid string or buffer length */
                                addStmtError(stmt, "HY090", NULL, 0);
-#ifdef WITH_WCHAR
                                if (type == SQL_C_WCHAR)
                                        free(ptr);
-#endif
                                return SQL_ERROR;
                        }
                        for (k = 0; k < datalen; k++) {
@@ -1289,10 +1284,8 @@ ODBCFetch(ODBCStmt *stmt,
                                        /* should not happen */
                                        /* General error */
                                        addStmtError(stmt, "HY000", "Unexpected 
data from server", 0);
-#ifdef WITH_WCHAR
                                        if (type == SQL_C_WCHAR)
                                                free(ptr);
-#endif
                                        return SQL_ERROR;
                                }
                                if (k & 1) {
@@ -1324,10 +1317,8 @@ ODBCFetch(ODBCStmt *stmt,
                                /* Numeric value out of range */
                                addStmtError(stmt, "22003", NULL, 0);
 
-#ifdef WITH_WCHAR
                                if (type == SQL_C_WCHAR)
                                        free(ptr);
-#endif
                                return SQL_ERROR;
                        }
                        if (lenp)
@@ -1360,10 +1351,8 @@ ODBCFetch(ODBCStmt *stmt,
                                                 * of range */
                                                addStmtError(stmt, "22003", 
NULL, 0);
 
-#ifdef WITH_WCHAR
                                                if (type == SQL_C_WCHAR)
                                                        free(ptr);
-#endif
                                                return SQL_ERROR;
                                        }
                                        /* current precision (i) doesn't fit,
@@ -1388,10 +1377,8 @@ ODBCFetch(ODBCStmt *stmt,
                                /* Numeric value out of range */
                                addStmtError(stmt, "22003", NULL, 0);
 
-#ifdef WITH_WCHAR
                                if (type == SQL_C_WCHAR)
                                        free(ptr);
-#endif
                                return SQL_ERROR;
                        }
                        data = (char *) ptr;
@@ -1413,10 +1400,8 @@ ODBCFetch(ODBCStmt *stmt,
                                /* Numeric value out of range */
                                addStmtError(stmt, "22003", NULL, 0);
 
-#ifdef WITH_WCHAR
                                if (type == SQL_C_WCHAR)
                                        free(ptr);
-#endif
                                return SQL_ERROR;
                        }
                        data = (char *) ptr;
@@ -1448,10 +1433,8 @@ ODBCFetch(ODBCStmt *stmt,
                                /* Numeric value out of range */
                                addStmtError(stmt, "22003", NULL, 0);
 
-#ifdef WITH_WCHAR
                                if (type == SQL_C_WCHAR)
                                        free(ptr);
-#endif
                                return SQL_ERROR;
                        }
                        if (lenp)
@@ -1487,10 +1470,8 @@ ODBCFetch(ODBCStmt *stmt,
                                /* Numeric value out of range */
                                addStmtError(stmt, "22003", NULL, 0);
 
-#ifdef WITH_WCHAR
                                if (type == SQL_C_WCHAR)
                                        free(ptr);
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to