Changeset: 1285a1adb76b for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=1285a1adb76b
Modified Files:
gdk/gdk_imprints.c
monetdb5/modules/atoms/str.c
monetdb5/modules/atoms/str.h
monetdb5/modules/kernel/algebra.c
monetdb5/modules/kernel/algebra.h
monetdb5/modules/kernel/batstr.c
monetdb5/modules/mal/pcre.c
sql/backends/monet5/datacell/petrinet.c
sql/backends/monet5/sql.c
sql/backends/monet5/sql.h
sql/backends/monet5/sql_scenario.c
sql/backends/monet5/sql_scenario.h
Branch: default
Log Message:
Merge with Oct2014 branch.
diffs (truncated from 1673 to 300 lines):
diff --git a/gdk/gdk_imprints.c b/gdk/gdk_imprints.c
--- a/gdk/gdk_imprints.c
+++ b/gdk/gdk_imprints.c
@@ -412,7 +412,7 @@ do {
\
uint##B##_t *im = (uint##B##_t *) imps; \
TYPE *col = (TYPE *) Tloc(b, b->batFirst); \
TYPE *bins = (TYPE *) inbins; \
- TYPE nil = TYPE##_nil;
\
+ TYPE nil = TYPE##_nil; \
prvmask = mask = 0; \
new = (IMPS_PAGE/sizeof(TYPE))-1; \
for (i = 0; i < b->batCount; i++) { \
@@ -453,23 +453,23 @@ do {
\
} \
GETBIN##B(bin,col[i]); \
mask = IMPSsetBit(B,mask,bin); \
- if (!cnt_bins[bin]++) {
\
+ if (!cnt_bins[bin]++) { \
min_bins[bin] = max_bins[bin] = i; \
- } else {
\
+ } else { \
/* nil value can not be min */ \
- if ((bin == 0) && (col[i] != nil)) {
\
- /* in case the first value was nil and
min_bin[0] \
- * has been initialized with it */
\
- if (col[min_bins[0]] == nil) {
\
- min_bins[0] = i;
\
- } else if (col[i] < col[min_bins[0]]) {
\
- min_bins[0] = i;
\
- }
\
- } else {
\
- if (col[i] < col[min_bins[bin]]) min_bins[bin]
= i; \
- }
\
- if (col[i] > col[max_bins[bin]]) max_bins[bin] = i;
\
- }
\
+ if ((bin == 0) && (col[i] != nil)) { \
+ /* in case the first value was nil and
min_bin[0] \
+ * has been initialized with it */ \
+ if (col[min_bins[0]] == nil) { \
+ min_bins[0] = i; \
+ } else if (col[i] < col[min_bins[0]]) { \
+ min_bins[0] = i; \
+ } \
+ } else { \
+ if (col[i] < col[min_bins[bin]]) min_bins[bin]
= i; \
+ } \
+ if (col[i] > col[max_bins[bin]]) max_bins[bin] = i; \
+ } \
} \
/* one last left */ \
if (prvmask == mask && dcnt > 0 && \
diff --git a/monetdb5/modules/atoms/str.c b/monetdb5/modules/atoms/str.c
--- a/monetdb5/modules/atoms/str.c
+++ b/monetdb5/modules/atoms/str.c
@@ -1453,7 +1453,9 @@ convertCase(BAT *from, BAT *to, str *res
BATiter toi = bat_iterator(to);
BATiter fromi = bat_iterator(BATmirror(from)); /* hashes work on head
columns */
size_t len = strlen(s);
- unsigned char *dst, *src = (unsigned char *) s, *end = (unsigned char
*) (src + len);
+ unsigned char *dst;
+ const unsigned char *src = (const unsigned char *) s;
+ const unsigned char *end = (const unsigned char *) (src + len);
BUN UTF8_CONV_r;
if (strNil(s)) {
@@ -1497,7 +1499,7 @@ convertCase(BAT *from, BAT *to, str *res
}
str
-STRSQLLength(int *res, str *s)
+STRSQLLength(int *res, const str *s)
{
str r = NULL;
str msg;
@@ -1515,65 +1517,58 @@ STRSQLLength(int *res, str *s)
*/
#include "mal_exception.h"
-str
-STRfindUnescapedOccurrence(str b, str c, str esc){
- str t;
-
- t= strstr(b,c);
- while( t){
- /* check for escaped version */
- if (t>b && *esc == *(t-1) ) {
- t= strstr(t+1,c);
- } else return t;
- }
- return 0;
-}
/*
* The SQL like function return a boolean
*/
static int
-STRlike(str s, str pat, str esc){
- str t,p;
+STRlike(const char *s, const char *pat, const char *esc)
+{
+ const char *t, *p;
- t= s;
- for( p= pat; *p && *t; p++){
- if(esc && *p == *esc) {
+ t = s;
+ for (p = pat; *p && *t; p++) {
+ if (esc && *p == *esc) {
p++;
- if( *p != *t) return FALSE;
+ if (*p != *t)
+ return FALSE;
t++;
- } else
- if( *p == '_') t++;
+ } else if (*p == '_')
+ t++;
+ else if (*p == '%') {
+ p++;
+ while (*p == '%')
+ p++;
+ if (*p == 0)
+ return TRUE; /* tail is acceptable */
+ for (; *p && *t; t++)
+ if (STRlike(t, p, esc))
+ return TRUE;
+ if (*p == 0 && *t == 0)
+ return TRUE;
+ return FALSE;
+ } else if (*p == *t)
+ t++;
else
- if( *p == '%'){
- p++;
- while(*p == '%') p++;
- if( *p == 0) return TRUE; /* tail is acceptable */
- for(; *p && *t; t++)
- if( STRlike(t,p,esc))
- return TRUE;
- if( *p == 0 && *t == 0) return TRUE;
return FALSE;
- } else
- if( *p == *t) t++;
- else return FALSE;
}
- if( *p == '%' && *(p+1)==0) return TRUE;
+ if (*p == '%' && *(p + 1) == 0)
+ return TRUE;
return *t == 0 && *p == 0;
}
str
-STRlikewrap(bit *ret, str *s, str *pat, str *esc){
+STRlikewrap(bit *ret, const str *s, const str *pat, const str *esc){
*ret = STRlike(*s,*pat,*esc);
return MAL_SUCCEED;
}
str
-STRlikewrap2(bit *ret, str *s, str *pat){
+STRlikewrap2(bit *ret, const str *s, const str *pat){
*ret = STRlike(*s,*pat,0);
return MAL_SUCCEED;
}
str
-STRtostr(str *res, str *src)
+STRtostr(str *res, const str *src)
{
if( *src == 0)
*res= GDKstrdup(str_nil);
@@ -1585,7 +1580,7 @@ STRtostr(str *res, str *src)
* The concatenate operator requires a type in most cases.
*/
str
-STRConcat(str *res, str *val1, str *val2)
+STRConcat(str *res, const str *val1, const str *val2)
{
size_t l1, l2;
const char *s1 = *val1;
@@ -1608,7 +1603,7 @@ STRConcat(str *res, str *val1, str *val2
}
str
-STRLength(int *res, str *arg1)
+STRLength(int *res, const str *arg1)
{
size_t l;
const char *s = *arg1;
@@ -1624,7 +1619,7 @@ STRLength(int *res, str *arg1)
}
str
-STRBytes(int *res, str *arg1)
+STRBytes(int *res, const str *arg1)
{
size_t l;
@@ -1635,7 +1630,7 @@ STRBytes(int *res, str *arg1)
}
str
-STRTail(str *res, str *arg1, int *offset)
+STRTail(str *res, const str *arg1, const int *offset)
{
int off = *offset;
const char *s = *arg1;
@@ -1666,7 +1661,7 @@ STRTail(str *res, str *arg1, int *offset
}
str
-STRSubString(str *res, str *arg1, int *offset, int *length)
+STRSubString(str *res, const str *arg1, const int *offset, const int *length)
{
int len, off = *offset, l = *length;
const char *s = *arg1;
@@ -1709,7 +1704,7 @@ STRSubString(str *res, str *arg1, int *o
}
str
-STRFromWChr(str *res, int *c)
+STRFromWChr(str *res, const int *c)
{
str s = *res = GDKmalloc(7);
@@ -1721,7 +1716,7 @@ STRFromWChr(str *res, int *c)
}
str
-STRWChrAt(int *res, str *arg1, int *at)
+STRWChrAt(int *res, const str *arg1, const int *at)
{
/* 64bit: should have wrd arg */
const char *s = *arg1;
@@ -1759,7 +1754,7 @@ STRcodeset(str *res)
}
str
-STRIconv(str *res, str *o, str *fp, str *tp)
+STRIconv(str *res, const str *o, const str *fp, const str *tp)
{
const char *f = *fp;
const char *t = *tp;
@@ -1798,7 +1793,7 @@ STRIconv(str *res, str *o, str *fp, str
}
str
-STRPrefix(bit *res, str *arg1, str *arg2)
+STRPrefix(bit *res, const str *arg1, const str *arg2)
{
size_t pl, i;
const char *s = *arg1;
@@ -1824,7 +1819,7 @@ STRPrefix(bit *res, str *arg1, str *arg2
}
str
-STRSuffix(bit *res, str *arg1, str *arg2)
+STRSuffix(bit *res, const str *arg1, const str *arg2)
{
size_t i, sl, sul;
const char *s = *arg1;
@@ -1852,19 +1847,19 @@ STRSuffix(bit *res, str *arg1, str *arg2
}
str
-STRLower(str *res, str *arg1)
+STRLower(str *res, const str *arg1)
{
return convertCase(UTF8_upperBat, UTF8_lowerBat, res, *arg1,
"str.lower");
}
str
-STRUpper(str *res, str *arg1)
+STRUpper(str *res, const str *arg1)
{
return convertCase(UTF8_lowerBat, UTF8_upperBat, res, *arg1,
"str.upper");
}
str
-STRstrSearch(int *res, str *haystack, str *needle)
+STRstrSearch(int *res, const str *haystack, const str *needle)
{
/* 64bit: should return wrd */
char *p;
@@ -1883,7 +1878,7 @@ STRstrSearch(int *res, str *haystack, st
}
str
-STRReverseStrSearch(int *res, str *arg1, str *arg2)
+STRReverseStrSearch(int *res, const str *arg1, const str *arg2)
{
/* 64bit: should return wrd */
size_t len, slen;
@@ -1911,7 +1906,7 @@ STRReverseStrSearch(int *res, str *arg1,
}
str
-STRStrip(str *res, str *arg1)
+STRStrip(str *res, const str *arg1)
{
const char *start = *arg1;
const char *s;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list