Changeset: d1074b742151 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d1074b742151 Added Files: gdk/gdk_select.c monetdb5/modules/mal/groups.c monetdb5/modules/mal/groups.h monetdb5/modules/mal/joinpath.c monetdb5/modules/mal/joinpath.h Removed Files: gdk/gdk_scanselect.mx gdk/gdk_scanselect_defs.mx gdk/gdk_scanselect_defs_bte.mx gdk/gdk_scanselect_defs_dbl.mx gdk/gdk_scanselect_defs_fix.mx gdk/gdk_scanselect_defs_flt.mx gdk/gdk_scanselect_defs_int.mx gdk/gdk_scanselect_defs_lng.mx gdk/gdk_scanselect_defs_sht.mx gdk/gdk_scanselect_defs_str.mx gdk/gdk_scanselect_defs_var.mx monetdb5/optimizer/opt_trace.c monetdb5/optimizer/opt_trace.h monetdb5/tests/gdkTests/Tests/casts.stable.out.SunOS5.10 monetdb5/tests/gdkTests/Tests/casts.stable.out.SunOS5.10.oid64 sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out.single sql/test/Tests/setoptimizer.stable.out.Windows Modified Files: clients/Tests/exports.stable.out clients/mapiclient/mclient.c clients/python/monetdb/sql/cursors.py clients/python/monetdb/sql/monetize.py configure.ag gdk/Makefile.ag gdk/gdk.h gdk/gdk_align.c gdk/gdk_bat.c gdk/gdk_batop.c gdk/gdk_private.h gdk/gdk_qsort.c gdk/gdk_rangejoin.mx gdk/gdk_relop.mx gdk/gdk_sample.c gdk/gdk_search.c gdk/gdk_setop.mx gdk/gdk_ssort.c gdk/gdk_ssort_impl.h monetdb5/extras/jaql/jaqlfunc.mal monetdb5/extras/jaql/parser/jaql.l monetdb5/extras/mal_optimizer_template/opt_sql_append.c monetdb5/mal/Tests/tst1200.stable.out monetdb5/mal/Tests/tst1201.stable.out monetdb5/mal/Tests/tst1202.stable.out monetdb5/mal/Tests/tst1203.stable.out monetdb5/mal/Tests/tst1205.stable.out monetdb5/mal/Tests/tst850.stable.out monetdb5/mal/Tests/tst901b.mal monetdb5/mal/Tests/tst901b.stable.out monetdb5/mal/Tests/tst902.mal monetdb5/mal/Tests/tst902.stable.out monetdb5/mal/Tests/tst903.stable.out monetdb5/mal/Tests/tst904.stable.out monetdb5/mal/Tests/tst905.stable.out monetdb5/mal/Tests/tst907.stable.out monetdb5/mal/mal_debugger.c monetdb5/mal/mal_profiler.c monetdb5/modules/kernel/aggr.mx monetdb5/modules/kernel/aggr_be_avg.mx monetdb5/modules/kernel/aggr_be_count.mx monetdb5/modules/kernel/aggr_be_minmax.mx monetdb5/modules/kernel/aggr_be_prod.mx monetdb5/modules/kernel/aggr_be_sum.mx monetdb5/modules/kernel/aggr_bge_avg.mx monetdb5/modules/kernel/aggr_bge_count.mx monetdb5/modules/kernel/aggr_bge_minmax.mx monetdb5/modules/kernel/aggr_bge_prod.mx monetdb5/modules/kernel/aggr_bge_sum.mx monetdb5/modules/kernel/algebra.mx monetdb5/modules/kernel/batmtime.mx monetdb5/modules/kernel/group.mx monetdb5/modules/mal/Makefile.ag monetdb5/modules/mal/Tests/modulechk.mal monetdb5/modules/mal/Tests/modulechk.stable.out monetdb5/modules/mal/language.c monetdb5/modules/mal/pcre.c monetdb5/modules/mal/pcre.mal monetdb5/modules/mal/profiler.c monetdb5/optimizer/Makefile.ag monetdb5/optimizer/Tests/All monetdb5/optimizer/Tests/Mexample.stable.out monetdb5/optimizer/Tests/remap.stable.out monetdb5/optimizer/opt_groups.c monetdb5/optimizer/opt_groups.h monetdb5/optimizer/opt_joinpath.c monetdb5/optimizer/opt_joinpath.h monetdb5/optimizer/opt_multiplex.c monetdb5/optimizer/opt_prejoin.c monetdb5/optimizer/opt_support.c monetdb5/optimizer/opt_wrapper.c monetdb5/tests/gdkTests/Tests/casts.mal monetdb5/tests/gdkTests/Tests/casts.stable.out monetdb5/tests/gdkTests/Tests/casts.stable.out.Windows monetdb5/tests/gdkTests/Tests/casts.stable.out.Windows.64bit.oid64 monetdb5/tests/gdkTests/Tests/casts.stable.out.oid64 monetdb5/tests/gdkTests/Tests/intersect_diff_void.stable.out sql/backends/monet5/sql.mx sql/server/sql_parser.h sql/server/sql_parser.y sql/server/sql_scan.c sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.sql sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out sql/test/Tests/trace.stable.out tools/mserver/Makefile.ag tools/mserver/mserver5.c Branch: sciql Log Message:
merge diffs (truncated from 20181 to 300 lines): 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 @@ -172,9 +172,11 @@ BAT *BATsort(BAT *b); BAT *BATsort_rev(BAT *b); BAT *BATssort(BAT *b); BAT *BATssort_rev(BAT *b); +BAT *BATsubselect(BAT *b, BAT *s, const void *tl, const void *th, int li, int hi, int anti); BAT *BATsunion(BAT *b, BAT *c); BAT *BATsunique(BAT *b); BAT *BATthetajoin(BAT *l, BAT *r, int mode, BUN estimate); +BAT *BATthetasubselect(BAT *b, BAT *s, const void *val, const char *op); int BATtopN(BAT *b, BUN topN); BAT *BATundo(BAT *b); BAT *BATuselect(BAT *b, const void *tl, const void *th); @@ -244,8 +246,8 @@ int GDKms(void); int GDKnr_threads; void GDKprotect(void); int GDKprotected; -void GDKqsort(void *h, void *t, void *base, size_t n, int hs, int ts, int tpe); -void GDKqsort_rev(void *h, void *t, void *base, size_t n, int hs, int ts, int tpe); +void GDKqsort(void *h, void *t, const void *base, size_t n, int hs, int ts, int tpe); +void GDKqsort_rev(void *h, void *t, const void *base, size_t n, int hs, int ts, int tpe); void *GDKrealloc(void *pold, size_t size); void GDKsetenv(str name, str value); ssize_t GDKstrFromStr(unsigned char *dst, const unsigned char *src, ssize_t len); @@ -624,7 +626,6 @@ str ALGjoinPath(Client cntxt, MalBlkPtr BAT *ALGjoinPathBody(Client cntxt, int top, BAT **joins, int flag); str ALGjoinestimate(int *result, int *lid, int *rid, lng *estimate); str ALGkdiff(int *result, int *lid, int *rid); -str ALGkintersect(int *result, int *lid, int *rid); str ALGkunion(int *result, int *lid, int *rid); str ALGkunique(int *result, int *bid); str ALGleftfetchjoin(int *result, int *lid, int *rid); @@ -715,6 +716,8 @@ str ALGstdev_int(dbl *res, int *bid); str ALGstdev_lng(dbl *res, int *bid); str ALGstdev_sht(dbl *res, int *bid); str ALGstdev_wrd(dbl *res, int *bid); +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); str ALGsum_bte_bte(bte *res, int *bid, bit *empty_is_nil); str ALGsum_bte_dbl(dbl *res, int *bid, bit *empty_is_nil); str ALGsum_bte_int(int *res, int *bid, bit *empty_is_nil); @@ -744,6 +747,8 @@ str ALGtdiff(int *result, int *lid, int str ALGthetajoin(int *result, int *lid, int *rid, int *opc); str ALGthetajoinEstimate(int *result, int *lid, int *rid, int *opc, lng *estimate); str ALGthetaselect(int *result, int *bid, ptr low, str *op); +str ALGthetasubselect1(bat *result, bat *bid, const void *val, const char **op); +str ALGthetasubselect2(bat *result, bat *bid, bat *sid, const void *val, const char **op); str ALGthetauselect(int *result, int *bid, ptr value, str *op); str ALGthsort(int *result, int *lid); str ALGtintersect(int *result, int *lid, int *rid); @@ -1769,60 +1774,6 @@ void MSresetInstructions(MalBlkPtr mb, i void MSresetVariables(Client cntxt, MalBlkPtr mb, MalStkPtr glb, int start); void MSscheduleClient(str command, str challenge, bstream *fin, stream *fout); void MSserveClient(void *dummy); -str MTIMEaccum_date_EQ(int *ret, int *d, int *l, int *r); -str MTIMEaccum_date_EQ_cst(int *ret, int *r, int *l, date *cst); -str MTIMEaccum_date_GE(int *ret, int *d, int *l, int *r); -str MTIMEaccum_date_GE_cst(int *ret, int *r, int *l, date *cst); -str MTIMEaccum_date_GT(int *ret, int *d, int *l, int *r); -str MTIMEaccum_date_GT_cst(int *ret, int *r, int *l, date *cst); -str MTIMEaccum_date_LE(int *ret, int *d, int *l, int *r); -str MTIMEaccum_date_LE_cst(int *ret, int *r, int *l, date *cst); -str MTIMEaccum_date_LT(int *ret, int *d, int *l, int *r); -str MTIMEaccum_date_LT_cst(int *ret, int *r, int *l, date *cst); -str MTIMEaccum_date_NEQ(int *ret, int *d, int *l, int *r); -str MTIMEaccum_date_NEQ_cst(int *ret, int *r, int *l, date *cst); -str MTIMEaccum_date_cst_EQ(int *ret, int *r, date *cst, int *l); -str MTIMEaccum_date_cst_GE(int *ret, int *r, date *cst, int *l); -str MTIMEaccum_date_cst_GT(int *ret, int *r, date *cst, int *l); -str MTIMEaccum_date_cst_LE(int *ret, int *r, date *cst, int *l); -str MTIMEaccum_date_cst_LT(int *ret, int *r, date *cst, int *l); -str MTIMEaccum_date_cst_NEQ(int *ret, int *r, date *cst, int *l); -str MTIMEaccum_daytime_EQ(int *ret, int *d, int *l, int *r); -str MTIMEaccum_daytime_EQ_cst(int *ret, int *r, int *l, daytime *cst); -str MTIMEaccum_daytime_GE(int *ret, int *d, int *l, int *r); -str MTIMEaccum_daytime_GE_cst(int *ret, int *r, int *l, daytime *cst); -str MTIMEaccum_daytime_GT(int *ret, int *d, int *l, int *r); -str MTIMEaccum_daytime_GT_cst(int *ret, int *r, int *l, daytime *cst); -str MTIMEaccum_daytime_LE(int *ret, int *d, int *l, int *r); -str MTIMEaccum_daytime_LE_cst(int *ret, int *r, int *l, daytime *cst); -str MTIMEaccum_daytime_LT(int *ret, int *d, int *l, int *r); -str MTIMEaccum_daytime_LT_cst(int *ret, int *r, int *l, daytime *cst); -str MTIMEaccum_daytime_NEQ(int *ret, int *d, int *l, int *r); -str MTIMEaccum_daytime_NEQ_cst(int *ret, int *r, int *l, daytime *cst); -str MTIMEaccum_daytime_cst_EQ(int *ret, int *r, daytime *cst, int *l); -str MTIMEaccum_daytime_cst_GE(int *ret, int *r, daytime *cst, int *l); -str MTIMEaccum_daytime_cst_GT(int *ret, int *r, daytime *cst, int *l); -str MTIMEaccum_daytime_cst_LE(int *ret, int *r, daytime *cst, int *l); -str MTIMEaccum_daytime_cst_LT(int *ret, int *r, daytime *cst, int *l); -str MTIMEaccum_daytime_cst_NEQ(int *ret, int *r, daytime *cst, int *l); -str MTIMEaccum_timestamp_EQ(int *ret, int *d, int *l, int *r); -str MTIMEaccum_timestamp_EQ_cst(int *ret, int *r, int *l, timestamp *cst); -str MTIMEaccum_timestamp_GE(int *ret, int *d, int *l, int *r); -str MTIMEaccum_timestamp_GE_cst(int *ret, int *r, int *l, timestamp *cst); -str MTIMEaccum_timestamp_GT(int *ret, int *d, int *l, int *r); -str MTIMEaccum_timestamp_GT_cst(int *ret, int *r, int *l, timestamp *cst); -str MTIMEaccum_timestamp_LE(int *ret, int *d, int *l, int *r); -str MTIMEaccum_timestamp_LE_cst(int *ret, int *r, int *l, timestamp *cst); -str MTIMEaccum_timestamp_LT(int *ret, int *d, int *l, int *r); -str MTIMEaccum_timestamp_LT_cst(int *ret, int *r, int *l, timestamp *cst); -str MTIMEaccum_timestamp_NEQ(int *ret, int *d, int *l, int *r); -str MTIMEaccum_timestamp_NEQ_cst(int *ret, int *r, int *l, timestamp *cst); -str MTIMEaccum_timestamp_cst_EQ(int *ret, int *r, timestamp *cst, int *l); -str MTIMEaccum_timestamp_cst_GE(int *ret, int *r, timestamp *cst, int *l); -str MTIMEaccum_timestamp_cst_GT(int *ret, int *r, timestamp *cst, int *l); -str MTIMEaccum_timestamp_cst_LE(int *ret, int *r, timestamp *cst, int *l); -str MTIMEaccum_timestamp_cst_LT(int *ret, int *r, timestamp *cst, int *l); -str MTIMEaccum_timestamp_cst_NEQ(int *ret, int *r, timestamp *cst, int *l); str MTIMEbat_date_EQ(int *ret, int *l, int *r); str MTIMEbat_date_EQ_cst(int *ret, int *l, date *cst); str MTIMEbat_date_GE(int *ret, int *l, int *r); @@ -2088,8 +2039,6 @@ int OPTremoteQueriesImplementation(Clien int OPTreorderImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); str OPTsetDebugStr(int *ret, str *nme); int OPTstrengthReductionImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -str OPTtraceCall(MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); -int OPTtraceImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str OPTvector(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str OPTvectorOid(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str OPTwrapper(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); @@ -2108,6 +2057,8 @@ str PCRElike3(bit *ret, str *s, str *pat str PCRElike_join_pcre(int *ret, int *b, int *pat, str *esc); str PCRElike_select_pcre(int *ret, int *b, str *pat, str *esc); str PCRElike_uselect_pcre(int *ret, int *b, str *pat, str *esc); +str PCRElikesubselect1(bat *ret, bat *bid, str *pat, str *esc, bit *caseignore, bit *anti); +str PCRElikesubselect2(bat *ret, bat *bid, bat *sid, str *pat, str *esc, bit *caseignore, bit *anti); str PCREmatch(bit *ret, str *val, str *pat); str PCREnotilike2(bit *ret, str *s, str *pat); str PCREnotilike3(bit *ret, str *s, str *pat, str *esc); diff --git a/clients/python/monetdb/sql/cursors.py b/clients/python/monetdb/sql/cursors.py --- a/clients/python/monetdb/sql/cursors.py +++ b/clients/python/monetdb/sql/cursors.py @@ -158,6 +158,9 @@ class Cursor(object): # clear message history self.messages = [] + # convert to utf-8 + operation = unicode(operation).encode('utf-8') + # set the number of rows to fetch self.connection.command('Xreply_size %s' % self.arraysize) @@ -172,12 +175,8 @@ class Cursor(object): if isinstance(parameters, dict): query = operation % dict([(k, monetize.convert(v)) for (k,v) in parameters.items()]) - elif type(parameters) == list: - query = operation % tuple([monetize.convert(item) - for item in parameters]) - elif type(parameters) == tuple: - query = operation % tuple([monetize.convert(item) - for item in parameters]) + elif type(parameters) == list or type(parameters) == tuple: + query = operation % tuple([monetize.convert(item) for item in parameters]) elif isinstance(parameters, str): query = operation % monetize.convert(parameters) else: diff --git a/clients/python/monetdb/sql/monetize.py b/clients/python/monetdb/sql/monetize.py --- a/clients/python/monetdb/sql/monetize.py +++ b/clients/python/monetdb/sql/monetize.py @@ -22,6 +22,7 @@ functions for converting python objects import datetime import decimal +from monetdb.exceptions import ProgrammingError def monet_none(data): """ @@ -76,4 +77,9 @@ def convert(data): try: return mapping[type(data)](data) except KeyError: - raise ProgrammingError("type %s not supported as value" % type(data)) \ No newline at end of file + if hasattr(data, '__unicode__'): + return unicode(data).encode('utf-8') + elif hasattr(data, '__str__'): + return str(data) + else: + raise ProgrammingError("type %s not supported as value" % type(data)) \ No newline at end of file diff --git a/configure.ag b/configure.ag --- a/configure.ag +++ b/configure.ag @@ -1648,28 +1648,30 @@ if test "x$have_pthread" != xno; then esac CPPFLAGS="$save_CPPFLAGS" - case $GCC in - yes) + save_LIBS="$LIBS" + save_CPPFLAGS="$CPPFLAGS" + case $GCC-$have_pthread in + yes-auto|yes-yes) # use GCC's knowledge about the target platform, sets flags # for both the preprocessor as well as the linker - PTHREAD_INCS="$PTHREAD_INCS -pthread" - PTHREAD_LIBS="$PTHREAD_LIBS -pthread" - CPPFLAGS="$CPPFLAGS -pthread" - LIBS="$LIBS -pthread" + PTHREAD_INCS="-pthread" + PTHREAD_LIBS="-pthread" + CPPFLAGS="$CPPFLAGS $PTHREAD_INCS" + LIBS="$LIBS $PTHREAD_LIBS" ;; *) - save_LIBS="$LIBS" # ok, do old-fashioned stuff - LIBS="$LIBS $PTHREAD_LIBS" # in case user did --with-pthreads + CPPFLAGS="$CPPFLAGS $PTHREAD_INCS" # in case user did --with-pthreads + LIBS="$LIBS $PTHREAD_LIBS" pthread_found=yes AC_SEARCH_LIBS([sem_init], [pthreadGC2 pthreadGC1 pthreadGC pthread], - [PTHREAD_LIBS="$PTHREAD_LIBS $ac_cv_search_sem_init"], + [LIBS="$LIBS $ac_cv_search_sem_init"], [pthread_found=no]) if test x"$pthread_found" = xno ; then pthread_found=yes dnl sun AC_SEARCH_LIBS([sem_post], [pthread], - [PTHREAD_LIBS="$PTHREAD_LIBS -lpthread -lposix4"], + [LIBS="$LIBS -lpthread -lposix4"], [pthread_found=no], "-lposix4") fi @@ -1677,7 +1679,7 @@ if test "x$have_pthread" != xno; then pthread_found=yes dnl hp-ux AC_SEARCH_LIBS([sem_post], [pthread], - [PTHREAD_LIBS="$PTHREAD_LIBS -lpthread -lrt"], + [LIBS="$LIBS -lpthread -lrt"], [pthread_found=no], "-lrt") fi @@ -1687,7 +1689,7 @@ if test "x$have_pthread" != xno; then fi have_pthread=no fi - LIBS="$save_LIBS" + PTHREAD_LIBS="$LIBS" ;; esac @@ -1706,11 +1708,9 @@ if test "x$have_pthread" != xno; then dnl this function very ugly is overloaded with semaphore stuff dnl so we DO need to check for it, for platforms which have it dnl in a separate lib, like Solaris - oldLIBS="$LIBS" - LIBS="$PTHREAD_LIBS" AC_SEARCH_LIBS(sem_wait, rt) - PTHREAD_LIBS="$LIBS" - LIBS="$oldLIBS" + + LIBS="$save_LIBS" CPPFLAGS="$save_CPPFLAGS" fi diff --git a/gdk/Makefile.ag b/gdk/Makefile.ag --- a/gdk/Makefile.ag +++ b/gdk/Makefile.ag @@ -19,22 +19,11 @@ MTSAFE INCLUDES = ../common/options ../common/stream ../common/utils $(valgrind_CFLAGS) -EXTRA_DIST = gdk_scanselect_defs.mx - lib_gdk = { VERSION = $(GDK_VERSION) NAME = bat SOURCES = \ - gdk_scanselect_defs_bte.mx \ - gdk_scanselect_defs_sht.mx \ - gdk_scanselect_defs_int.mx \ - gdk_scanselect_defs_flt.mx \ - gdk_scanselect_defs_dbl.mx \ - gdk_scanselect_defs_lng.mx \ - gdk_scanselect_defs_str.mx \ - gdk_scanselect_defs_fix.mx \ - gdk_scanselect_defs_var.mx \ - gdk_scanselect.mx gdk.h gdk_batop.c \ + gdk.h gdk_batop.c gdk_select.c \ gdk_search.c gdk_search.h gdk_tm.c \ gdk_align.c gdk_bbp.c gdk_bbp.h \ gdk_heap.c gdk_setop.mx gdk_utils.c gdk_utils.h \ diff --git a/gdk/gdk.h b/gdk/gdk.h --- a/gdk/gdk.h +++ b/gdk/gdk.h @@ -1683,8 +1683,8 @@ gdk_export int BATordered_rev(BAT *b); gdk_export BAT *BATssort(BAT *b); gdk_export BAT *BATssort_rev(BAT *b); -gdk_export void GDKqsort(void *h, void *t, void *base, size_t n, int hs, int ts, int tpe); -gdk_export void GDKqsort_rev(void *h, void *t, void *base, size_t n, int hs, int ts, int tpe); +gdk_export void GDKqsort(void *h, void *t, const void *base, size_t n, int hs, int ts, int tpe); +gdk_export void GDKqsort_rev(void *h, void *t, const void *base, size_t n, int hs, int ts, int tpe); #define BAThordered(b) ((b)->htype == TYPE_void || (b)->hsorted) #define BATtordered(b) ((b)->ttype == TYPE_void || (b)->tsorted) _______________________________________________ Checkin-list mailing list Checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list