Changeset: bc1ca04fd292 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=bc1ca04fd292
Modified Files:
        clients/R/MonetDB.R/src/mapi.c
        clients/odbc/driver/ODBCUtil.c
        clients/odbc/driver/SQLGetInfo.c
        configure.ag
        gdk/gdk_atoms.c
        monetdb5/modules/mal/tablet.c
        monetdb5/modules/mal/tokenizer.c
        monetdb5/modules/mal/urlbox.c
        monetdb5/optimizer/opt_dataflow.c
        monetdb5/optimizer/opt_dictionary.c
        monetdb5/optimizer/opt_evaluate.c
        monetdb5/optimizer/opt_octopus.c
        monetdb5/optimizer/opt_qep.c
        monetdb5/optimizer/opt_remoteQueries.c
        monetdb5/optimizer/opt_reorder.c
        monetdb5/optimizer/opt_strengthReduction.c
        monetdb5/optimizer/opt_wrapper.c
        monetdb5/scheduler/run_octopus.c
        sql/backends/monet5/rel_bin.c
        sql/jdbc/tests/Tests/Test_PSmetadata.stable.out
        sql/server/rel_dump.c
        sql/test/pg_regress/Tests/strings_cast.stable.err
        sql/test/pg_regress/Tests/strings_cast.stable.out
Branch: RIntegration
Log Message:

merge with Jan2014


diffs (truncated from 2602 to 300 lines):

diff --git a/clients/R/MonetDB.R/src/mapi.c b/clients/R/MonetDB.R/src/mapi.c
--- a/clients/R/MonetDB.R/src/mapi.c
+++ b/clients/R/MonetDB.R/src/mapi.c
@@ -257,8 +257,8 @@ SEXP mapiRead(SEXP conn) {
                while (response_buf_offset + block_length > response_buf_len) {
                        response_buf_len += ALLOCSIZE;
                        if (DEBUG) {
-                               printf("II: Reallocating memory, new size 
%lu\n",
-                                               (unsigned long) 
response_buf_len);
+                               printf("II: Reallocating memory, new size 
"SZFMT"\n",
+                                               response_buf_len);
                        }
                        response_buf = realloc(response_buf, response_buf_len);
                        if (response_buf == NULL) {
@@ -278,7 +278,7 @@ SEXP mapiRead(SEXP conn) {
        size_t i;
        for (i = 0; i < response_buf_offset; i++) {
                if (response_buf[i] == '\0') {
-                       warning("Removed a NULL character from response at 
offset %lu of %lu",(unsigned long) i,(unsigned long) response_buf_offset);
+                       warning("Removed a NULL character from response at 
offset "SZFMT" of "SZFMT"",i,response_buf_offset);
                        response_buf[i] = '\t';
                }
        }
diff --git a/clients/odbc/driver/ODBCUtil.c b/clients/odbc/driver/ODBCUtil.c
--- a/clients/odbc/driver/ODBCUtil.c
+++ b/clients/odbc/driver/ODBCUtil.c
@@ -290,7 +290,7 @@ static struct scalars {
 } scalars[] = {
        {"ascii", 1, "\"ascii\"(\1)", },
        {"bit_length", 1, NULL, },
-       {"char", 1, NULL, },
+       {"char", 1, "\"code\"(\1)", },
        {"char_length", 1, "\"char_length\"(\1)", },
        {"character_length", 1, "\"character_length\"(\1)", },
        {"concat", 2, "\"concat\"(\1,\2)", },
@@ -356,6 +356,7 @@ static struct scalars {
        {"now", 0, "\"now\"()", },
        {"quarter", 1, "((\"month\"(\1) - 1) / 3 + 1)", },
        {"second", 1, "\"second\"(\1)", },
+       {"timestampadd", 3, NULL, },
        {"timestampdiff", 3, NULL, },
        {"week", 1, "\"week\"(\1)", },
        {"year", 1, "\"year\"(\1)", },
@@ -378,7 +379,7 @@ static struct convert {
        { "SQL_DECIMAL", "decimal(18,7)", },
        { "SQL_DOUBLE", "double", },
        { "SQL_FLOAT", "float", },
-       { "SQL_GUID", "uuid", },
+       /* { "SQL_GUID", "uuid", }, */
        { "SQL_INTEGER", "integer", },
        { "SQL_INTERVAL_DAY", "interval day", },
        { "SQL_INTERVAL_DAY_TO_HOUR", "interval day to hour", },
@@ -402,7 +403,7 @@ static struct convert {
        { "SQL_TIMESTAMP", "timestamp", },
        { "SQL_TINYINT", "tinyint", },
        { "SQL_VARBINARY", "binary large object", },
-       { "SQL_VARCHAR", "character large object", },
+       { "SQL_VARCHAR", "character varying", },
        { "SQL_WCHAR", "character", },
        { "SQL_WLONGVARCHAR", "character large object", },
        { "SQL_WVARCHAR", "character large object", },
@@ -565,7 +566,7 @@ ODBCTranslateSQL(ODBCDbc *dbc, const SQL
                        while (*p == ' ')
                                p++;
                        proc = p;
-                       while (*p && isascii(*p) && isalnum(*p))
+                       while (*p && isascii(*p) && (*p == '_' || isalnum(*p)))
                                p++;
                        if (p == proc ||
                            (isascii(*proc) && !isalpha(*proc)))
@@ -619,7 +620,7 @@ ODBCTranslateSQL(ODBCDbc *dbc, const SQL
                        while (*p == ' ')
                                p++;
                        scalarfunc = p;
-                       while (*p && isascii(*p) && isalnum(*p))
+                       while (*p && isascii(*p) && (*p == '_' || isalnum(*p)))
                                p++;
                        if (p == scalarfunc ||
                            (isascii(*scalarfunc) && !isalpha(*scalarfunc)))
diff --git a/clients/odbc/driver/SQLGetInfo.c b/clients/odbc/driver/SQLGetInfo.c
--- a/clients/odbc/driver/SQLGetInfo.c
+++ b/clients/odbc/driver/SQLGetInfo.c
@@ -51,7 +51,7 @@ SQLGetInfo_(ODBCDbc *dbc,
        int nValue = 0;
        char buf[64];
        const char *sValue = NULL;      /* iff non-NULL, return string value */
-       int len = 0;
+       int len = sizeof(SQLUINTEGER);  /* most common size to return */
 
        /* For some info types an active connection is needed */
        if (!dbc->Connected &&
@@ -66,10 +66,10 @@ SQLGetInfo_(ODBCDbc *dbc,
 
        switch (InfoType) {
        case SQL_ACCESSIBLE_PROCEDURES:
-               sValue = "Y";
+               sValue = "Y";   /* "N" */
                break;
        case SQL_ACCESSIBLE_TABLES:
-               sValue = "N";
+               sValue = "N";   /* "Y" */
                break;
        case SQL_ACTIVE_ENVIRONMENTS:
                nValue = 0;     /* 0 = no limit */
@@ -83,10 +83,8 @@ SQLGetInfo_(ODBCDbc *dbc,
                        SQL_AF_MAX |
                        SQL_AF_MIN |
                        SQL_AF_SUM;
-               len = sizeof(SQLUINTEGER);
                break;
        case SQL_ALTER_DOMAIN:
-               nValue = 0;
                /* SQL_AD_ADD_CONSTRAINT_DEFERRABLE |
                 * SQL_AD_ADD_CONSTRAINT_INITIALLY_DEFERRED |
                 * SQL_AD_ADD_CONSTRAINT_INITIALLY_IMMEDIATE |
@@ -96,114 +94,133 @@ SQLGetInfo_(ODBCDbc *dbc,
                 * SQL_AD_CONSTRAINT_NAME_DEFINITION |
                 * SQL_AD_DROP_DOMAIN_CONSTRAINT |
                 * SQL_AD_DROP_DOMAIN_DEFAULT */
-               len = sizeof(SQLUINTEGER);
                break;
        case SQL_ALTER_TABLE:
-               nValue = SQL_AT_ADD_COLUMN_DEFAULT |
+               nValue = SQL_AT_ADD_COLUMN | /* ODBC 2.0, deprecated value */
+                       SQL_AT_ADD_COLUMN_DEFAULT |
                        SQL_AT_ADD_COLUMN_SINGLE |
                        SQL_AT_ADD_CONSTRAINT |
                        SQL_AT_ADD_TABLE_CONSTRAINT |
                        SQL_AT_CONSTRAINT_NAME_DEFINITION |
+                       SQL_AT_DROP_COLUMN | /* ODBC 2.0, deprecated value */
+                       SQL_AT_DROP_COLUMN_CASCADE |
+                       SQL_AT_DROP_COLUMN_DEFAULT |
                        SQL_AT_DROP_COLUMN_RESTRICT |
+                       SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE |
                        SQL_AT_DROP_TABLE_CONSTRAINT_RESTRICT |
                        SQL_AT_SET_COLUMN_DEFAULT;
-               /* SQL_AT_ADD_COLUMN_SINGLE |
-                * SQL_AT_ADD_COLUMN_COLLATION |
-                * SQL_AT_ADD_COLUMN_DEFAULT |
-                * SQL_AT_ADD_TABLE_CONSTRAINT |
-                * SQL_AT_ADD_TABLE_CONSTRAINT |
+               /* SQL_AT_ADD_COLUMN_COLLATION |
                 * SQL_AT_CONSTRAINT_DEFERRABLE |
                 * SQL_AT_CONSTRAINT_INITIALLY_DEFERRED |
                 * SQL_AT_CONSTRAINT_INITIALLY_IMMEDIATE |
-                * SQL_AT_CONSTRAINT_NAME_DEFINITION |
-                * SQL_AT_DROP_COLUMN_CASCADE |
-                * SQL_AT_DROP_COLUMN_DEFAULT |
-                * SQL_AT_DROP_COLUMN_RESTRICT |
-                * SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE |
-                * SQL_AT_DROP_TABLE_CONSTRAINT_RESTRICT |
-                * SQL_AT_SET_COLUMN_DEFAULT |
                 * SQL_AT_CONSTRAINT_NON_DEFERRABLE */
-               len = sizeof(SQLUINTEGER);
                break;
+#ifdef SQL_ASYNC_DBC_FUNCTIONS
+       case SQL_ASYNC_DBC_FUNCTIONS:
+               nValue = SQL_ASYNC_DBC_NOT_CAPABLE;
+               /* SQL_ASYNC_DBC_CAPABLE */
+               break;
+#endif
        case SQL_ASYNC_MODE:
                nValue = SQL_AM_NONE;
                /* SQL_AM_CONNECTION, SQL_AM_STATEMENT */
-               len = sizeof(SQLUINTEGER);
                break;
+#ifdef SQL_ASYNC_NOTIFICATION
+       case SQL_ASYNC_NOTIFICATION:
+               nValue = SQL_ASYNC_NOTIFICATION_NOT_CAPABLE;
+               /* SQL_ASYNC_NOTIFICATION_CAPABLE */
+               break;
+#endif
        case SQL_BATCH_ROW_COUNT:
                nValue = SQL_BRC_EXPLICIT;
                /* SQL_BRC_PROCEDURES | SQL_BRC_ROLLED_UP */
-               len = sizeof(SQLUINTEGER);
                break;
        case SQL_BATCH_SUPPORT:
                nValue = SQL_BS_ROW_COUNT_EXPLICIT | SQL_BS_SELECT_EXPLICIT;
                /* SQL_BS_ROW_COUNT_PROC |
                 * SQL_BS_SELECT_PROC */
-               len = sizeof(SQLUINTEGER);
                break;
        case SQL_BOOKMARK_PERSISTENCE:
-               nValue = 0;     /* bookmarks not supported */
                /* SQL_BP_CLOSE |
                 * SQL_BP_DELETE |
                 * SQL_BP_DROP |
                 * SQL_BP_OTHER_HSTMT |
                 * SQL_BP_TRANSACTION |
                 * SQL_BP_UPDATE */
-               len = sizeof(SQLUINTEGER);
                break;
        case SQL_CATALOG_LOCATION:
-               nValue = 0;     /* catalogs not supported */
                /* SQL_CL_END, SQL_CL_START */
                len = sizeof(SQLUSMALLINT);
                break;
        case SQL_CATALOG_NAME:
-               sValue = "N";
+               sValue = "N";   /* "Y" */
                break;
        case SQL_CATALOG_NAME_SEPARATOR:
        case SQL_CATALOG_TERM:
                sValue = "";
                break;
        case SQL_CATALOG_USAGE:
-               nValue = 0;
                /* SQL_CU_DML_STATEMENTS |
                 * SQL_CU_INDEX_DEFINITION |
                 * SQL_CU_PRIVILEGE_DEFINITION |
                 * SQL_CU_PROCEDURE_INVOCATION |
                 * SQL_CU_TABLE_DEFINITION */
-               len = sizeof(SQLUINTEGER);
                break;
        case SQL_COLLATION_SEQ:
                sValue = "UTF-8";
                break;
        case SQL_COLUMN_ALIAS:
-               sValue = "Y";
+               sValue = "Y";   /* "N" */
                break;
        case SQL_CONCAT_NULL_BEHAVIOR:
                nValue = SQL_CB_NULL;
                /* SQL_CB_NON_NULL */
                len = sizeof(SQLUSMALLINT);
                break;
+       case SQL_CONVERT_TINYINT:
+       case SQL_CONVERT_SMALLINT:
+       case SQL_CONVERT_INTEGER:
        case SQL_CONVERT_BIGINT:
+               nValue = SQL_CVT_BIGINT |
+                       SQL_CVT_BIT |
+                       SQL_CVT_CHAR |
+                       SQL_CVT_DECIMAL |
+                       SQL_CVT_DOUBLE |
+                       SQL_CVT_FLOAT |
+                       SQL_CVT_INTEGER |
+                       SQL_CVT_INTERVAL_DAY_TIME |
+                       SQL_CVT_INTERVAL_YEAR_MONTH |
+                       SQL_CVT_LONGVARCHAR |
+                       SQL_CVT_NUMERIC |
+                       SQL_CVT_REAL |
+                       SQL_CVT_SMALLINT |
+                       SQL_CVT_TINYINT |
+                       SQL_CVT_VARCHAR;
+               break;
        case SQL_CONVERT_BINARY:
+       case SQL_CONVERT_LONGVARBINARY:
+       case SQL_CONVERT_VARBINARY:
+               nValue = SQL_CVT_BINARY |
+                       SQL_CVT_CHAR |
+                       SQL_CVT_LONGVARBINARY |
+                       SQL_CVT_LONGVARCHAR |
+                       SQL_CVT_VARBINARY |
+                       SQL_CVT_VARCHAR;
+               /* SQL_CVT_GUID */
+               break;
        case SQL_CONVERT_BIT:
+               nValue = SQL_CVT_BIGINT |
+                       SQL_CVT_BIT |
+                       SQL_CVT_CHAR |
+                       SQL_CVT_INTEGER |
+                       SQL_CVT_LONGVARCHAR |
+                       SQL_CVT_SMALLINT |
+                       SQL_CVT_TINYINT |
+                       SQL_CVT_VARCHAR;
+               break;
        case SQL_CONVERT_CHAR:
-       case SQL_CONVERT_DATE:
-       case SQL_CONVERT_DECIMAL:
-       case SQL_CONVERT_DOUBLE:
-       case SQL_CONVERT_FLOAT:
-       case SQL_CONVERT_INTEGER:
-       case SQL_CONVERT_INTERVAL_DAY_TIME:
-       case SQL_CONVERT_INTERVAL_YEAR_MONTH:
-       case SQL_CONVERT_LONGVARBINARY:
+       case SQL_CONVERT_VARCHAR:
        case SQL_CONVERT_LONGVARCHAR:
-       case SQL_CONVERT_NUMERIC:
-       case SQL_CONVERT_REAL:
-       case SQL_CONVERT_SMALLINT:
-       case SQL_CONVERT_TIME:
-       case SQL_CONVERT_TIMESTAMP:
-       case SQL_CONVERT_TINYINT:
-       case SQL_CONVERT_VARBINARY:
-       case SQL_CONVERT_VARCHAR:
                nValue = SQL_CVT_BIGINT |
                        SQL_CVT_BINARY |
                        SQL_CVT_BIT |
@@ -226,12 +243,84 @@ SQLGetInfo_(ODBCDbc *dbc,
                        SQL_CVT_VARBINARY |
                        SQL_CVT_VARCHAR |
                        SQL_CVT_GUID;
-               len = sizeof(SQLUINTEGER);
+               break;
+       case SQL_CONVERT_DATE:
+               nValue = SQL_CVT_CHAR |
+                       SQL_CVT_DATE |
+                       SQL_CVT_LONGVARCHAR |
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to