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