Changeset: 84f55105229b for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=84f55105229b
Modified Files:
geom/monetdb5/geom.mx
monetdb5/mal/mal_recycle.c
monetdb5/mal/mal_recycle.h
monetdb5/modules/mal/Tests/inspect05.stable.out
monetdb5/modules/mal/Tests/inspect05.stable.out.Windows
monetdb5/modules/mal/clients.c
monetdb5/modules/mal/clients.mal
monetdb5/modules/mal/recycle.c
monetdb5/modules/mal/tablet_sql.c
monetdb5/modules/mal/trader.c
monetdb5/optimizer/opt_joinpath.c
monetdb5/optimizer/opt_octopus.c
monetdb5/optimizer/opt_pipes.c
monetdb5/optimizer/opt_recycler.c
monetdb5/scheduler/run_octopus.c
sql/backends/monet5/Makefile.ag
sql/backends/monet5/sql.mx
sql/backends/monet5/sql_gencode.c
sql/backends/monet5/sql_result.mx
sql/backends/monet5/sql_scenario.c
sql/storage/bat/bat_storage.c
sql/storage/bat/res_table.c
sql/storage/restrict/restrict_storage.c
Branch: headless
Log Message:
Merge with default branch.
diffs (truncated from 3185 to 300 lines):
diff --git a/NT/installer64/MonetDB5-SQL-Installer.vdproj
b/NT/installer64/MonetDB5-SQL-Installer.vdproj
--- a/NT/installer64/MonetDB5-SQL-Installer.vdproj
+++ b/NT/installer64/MonetDB5-SQL-Installer.vdproj
@@ -2681,7 +2681,7 @@
}
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_667BD650736E43C9A8B6899179FA0CAA"
{
- "SourcePath" = "8:share\\doc\\MonetDB-SQL-11.7.0\\dump-restore.txt"
+ "SourcePath" = "8:share\\doc\\MonetDB-SQL-11.8.0\\dump-restore.txt"
"TargetName" = "8:dump-restore.txt"
"Tag" = "8:"
"Folder" = "8:_6C21CE578F0941D09FDD9951A229FF37"
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
@@ -3479,6 +3479,7 @@ str CMDbatpartition(Client cntxt, MalBlk
str CMDbatpartition2(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
str CMDbatsingleton(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
str CMDbatunpack(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci);
+str CMDbbp(int *NS, int *HT, int *TT, int *CNT, int *REFCNT, int *LREFCNT, int
*LOCATION, int *HEAT, int *DIRTY, int *STATUS, int *KIND);
str CMDbbpCount(int *ret);
str CMDbbpDirty(int *ret);
str CMDbbpDiskReads(lng *ret);
diff --git a/clients/mapiclient/Tests/mclient--help.stable.err.Windows
b/clients/mapiclient/Tests/mclient--help.stable.err.Windows
--- a/clients/mapiclient/Tests/mclient--help.stable.err.Windows
+++ b/clients/mapiclient/Tests/mclient--help.stable.err.Windows
@@ -21,7 +21,7 @@ Options are:
-E charset | --encoding=charset specify encoding (character set) of the
terminal
-f kind | --format=kind specify output format {csv,tab,raw,sql,xml}
-H | --history load/save cmdline history (default off)
- -i | --interactive[=tm] read stdin after command line args, use time
formatting {ms,s,m}
+ -i | --interactive[=tm] interpret \ commands on stdin, use time
formatting {ms,s,m}
-l language | --language=lang {sql,mal}
-L logfile | --log=logfile save client/server interaction
-s stmt | --statement=stmt run single statement
@@ -35,6 +35,7 @@ SQL specific opions
-w nr | --width=nr for pagination
-D | --dump create an SQL dump
-N | --inserts use INSERT INTO statements when dumping
+The file argument can be - for stdin
# 18:57:57 >
# 18:57:57 > Done.
diff --git a/clients/odbc/driver/ODBCUtil.h b/clients/odbc/driver/ODBCUtil.h
--- a/clients/odbc/driver/ODBCUtil.h
+++ b/clients/odbc/driver/ODBCUtil.h
@@ -126,21 +126,18 @@ extern char *ODBCutf82wchar(const SQLCHA
} while (0)
#define fixWcharOut(r, s, sl, ws, wsl, wslp, cw, errfunc, hdl) \
do { \
- if (SQL_SUCCEEDED(r)) { \
- char *e = ODBCutf82wchar((s), (sl), (ws), (wsl) / (cw),
&(sl)); \
- if (e) { \
- /* General error */ \
- errfunc((hdl), "HY000", e, 0); \
- (r) = SQL_ERROR; \
- } else if ((sl) * (cw) >= (wsl)) { \
- /* String data, right-truncated */ \
- errfunc((hdl), "01004", NULL, 0); \
- (r) = SQL_SUCCESS_WITH_INFO; \
- } \
- if (wslp) \
- *(wslp) = (sl) * (cw); \
+ char *e = ODBCutf82wchar((s), (sl), (ws), (wsl) / (cw), &(sl));
\
+ if (e) { \
+ /* General error */ \
+ errfunc((hdl), "HY000", e, 0); \
+ (r) = SQL_ERROR; \
+ } else if ((sl) * (cw) >= (wsl)) { \
+ /* String data, right-truncated */ \
+ errfunc((hdl), "01004", NULL, 0); \
+ (r) = SQL_SUCCESS_WITH_INFO; \
} \
- free(s); \
+ if (wslp) \
+ *(wslp) = (sl) * (cw); \
} while (0)
#endif /* WITH_WCHAR */
diff --git a/clients/odbc/driver/SQLBrowseConnect.c
b/clients/odbc/driver/SQLBrowseConnect.c
--- a/clients/odbc/driver/SQLBrowseConnect.c
+++ b/clients/odbc/driver/SQLBrowseConnect.c
@@ -302,8 +302,11 @@ SQLBrowseConnectW(SQLHDBC ConnectionHand
addDbcError, dbc, return SQL_ERROR);
out = malloc(1024);
rc = SQLBrowseConnect_(dbc, in, SQL_NTS, out, 1024, &n);
- fixWcharOut(rc, out, n, OutConnectionString, BufferLength,
- StringLength2Ptr, 1, addDbcError, dbc);
+ if (SQL_SUCCEEDED(rc) || rc == SQL_NEED_DATA) {
+ fixWcharOut(rc, out, n, OutConnectionString, BufferLength,
+ StringLength2Ptr, 1, addDbcError, dbc);
+ }
+ free(out);
if (in)
free(in);
return rc;
diff --git a/clients/odbc/driver/SQLColAttribute.c
b/clients/odbc/driver/SQLColAttribute.c
--- a/clients/odbc/driver/SQLColAttribute.c
+++ b/clients/odbc/driver/SQLColAttribute.c
@@ -340,10 +340,14 @@ SQLColAttributeW(SQLHSTMT StatementHandl
rc = SQLColAttribute_(stmt, ColumnNumber, FieldIdentifier, ptr,
n, &n, NumericAttributePtr);
- if (ptr != CharacterAttributePtr)
- fixWcharOut(rc, ptr, n, CharacterAttributePtr, BufferLength,
- StringLengthPtr, 2, addStmtError, stmt);
- else if (StringLengthPtr)
+ if (ptr != CharacterAttributePtr) {
+ if (SQL_SUCCEEDED(rc)) {
+ fixWcharOut(rc, ptr, n, CharacterAttributePtr,
+ BufferLength, StringLengthPtr, 2,
+ addStmtError, stmt);
+ }
+ free(ptr);
+ } else if (StringLengthPtr)
*StringLengthPtr = n;
return rc;
diff --git a/clients/odbc/driver/SQLColAttributes.c
b/clients/odbc/driver/SQLColAttributes.c
--- a/clients/odbc/driver/SQLColAttributes.c
+++ b/clients/odbc/driver/SQLColAttributes.c
@@ -181,10 +181,14 @@ SQLColAttributesW(SQLHSTMT StatementHand
rc = SQLColAttributes_(stmt, ColumnNumber, FieldIdentifier, ptr,
n, &n, NumericAttributePtr);
- if (ptr != CharacterAttributePtr)
- fixWcharOut(rc, ptr, n, CharacterAttributePtr, BufferLength,
- StringLengthPtr, 2, addStmtError, stmt);
- else if (StringLengthPtr)
+ if (ptr != CharacterAttributePtr) {
+ if (SQL_SUCCEEDED(rc)) {
+ fixWcharOut(rc, ptr, n, CharacterAttributePtr,
+ BufferLength, StringLengthPtr, 2,
+ addStmtError, stmt);
+ }
+ free(ptr);
+ } else if (StringLengthPtr)
*StringLengthPtr = n;
return rc;
diff --git a/clients/odbc/driver/SQLDataSources.c
b/clients/odbc/driver/SQLDataSources.c
--- a/clients/odbc/driver/SQLDataSources.c
+++ b/clients/odbc/driver/SQLDataSources.c
@@ -147,12 +147,16 @@ SQLDataSourcesW(SQLHENV EnvironmentHandl
server, 100, &length1,
descr, 100, &length2);
- fixWcharOut(rc, server, length1,
- ServerName, BufferLength1, NameLength1,
- 1, addEnvError, env);
- fixWcharOut(rc, descr, length2,
- Description, BufferLength2, NameLength2,
- 1, addEnvError, env);
+ if (SQL_SUCCEEDED(rc)) {
+ fixWcharOut(rc, server, length1,
+ ServerName, BufferLength1, NameLength1,
+ 1, addEnvError, env);
+ fixWcharOut(rc, descr, length2,
+ Description, BufferLength2, NameLength2,
+ 1, addEnvError, env);
+ }
+ free(server);
+ free(descr);
return rc;
}
diff --git a/clients/odbc/driver/SQLDescribeCol.c
b/clients/odbc/driver/SQLDescribeCol.c
--- a/clients/odbc/driver/SQLDescribeCol.c
+++ b/clients/odbc/driver/SQLDescribeCol.c
@@ -225,8 +225,11 @@ SQLDescribeColW(SQLHSTMT StatementHandle
ColumnSizePtr,
DecimalDigitsPtr,
NullablePtr);
- fixWcharOut(rc, colname, n, ColumnName, BufferLength, NameLengthPtr,
- 1, addStmtError, stmt);
+ if (SQL_SUCCEEDED(rc)) {
+ fixWcharOut(rc, colname, n, ColumnName, BufferLength,
+ NameLengthPtr, 1, addStmtError, stmt);
+ }
+ free(colname);
return rc;
}
diff --git a/clients/odbc/driver/SQLDriverConnect.c
b/clients/odbc/driver/SQLDriverConnect.c
--- a/clients/odbc/driver/SQLDriverConnect.c
+++ b/clients/odbc/driver/SQLDriverConnect.c
@@ -434,8 +434,11 @@ SQLDriverConnectW(SQLHDBC ConnectionHand
out = malloc(n);
rc = SQLDriverConnect_(dbc, WindowHandle, in, SQL_NTS, out, n, &n,
DriverCompletion, 0);
- fixWcharOut(rc, out, n, OutConnectionString, BufferLength,
- StringLength2Ptr, 1, addDbcError, dbc);
+ if (SQL_SUCCEEDED(rc)) {
+ fixWcharOut(rc, out, n, OutConnectionString, BufferLength,
+ StringLength2Ptr, 1, addDbcError, dbc);
+ }
+ free(out);
if (in)
free(in);
return rc;
diff --git a/clients/odbc/driver/SQLGetConnectAttr.c
b/clients/odbc/driver/SQLGetConnectAttr.c
--- a/clients/odbc/driver/SQLGetConnectAttr.c
+++ b/clients/odbc/driver/SQLGetConnectAttr.c
@@ -196,10 +196,13 @@ SQLGetConnectAttrW(SQLHDBC ConnectionHan
rc = SQLGetConnectAttr_(dbc, Attribute, ptr, n, &n);
if (ptr != ValuePtr) {
- SQLSMALLINT nn = (SQLSMALLINT) n;
+ if (SQL_SUCCEEDED(rc)) {
+ SQLSMALLINT nn = (SQLSMALLINT) n;
- fixWcharOut(rc, ptr, nn, ValuePtr, BufferLength,
- StringLengthPtr, 2, addDbcError, dbc);
+ fixWcharOut(rc, ptr, nn, ValuePtr, BufferLength,
+ StringLengthPtr, 2, addDbcError, dbc);
+ }
+ free(ptr);
} else if (StringLengthPtr)
*StringLengthPtr = n;
diff --git a/clients/odbc/driver/SQLGetConnectOption.c
b/clients/odbc/driver/SQLGetConnectOption.c
--- a/clients/odbc/driver/SQLGetConnectOption.c
+++ b/clients/odbc/driver/SQLGetConnectOption.c
@@ -135,11 +135,15 @@ SQLGetConnectOptionW(SQLHDBC ConnectionH
rc = SQLGetConnectOption_(dbc, Option, ptr);
if (ptr != ValuePtr) {
- SQLSMALLINT n = (SQLSMALLINT) strlen((char *) ptr);
- SQLSMALLINT *nullp = NULL;
+ if (SQL_SUCCEEDED(rc)) {
+ SQLSMALLINT n = (SQLSMALLINT) strlen((char *) ptr);
+ SQLSMALLINT *nullp = NULL;
- fixWcharOut(rc, ptr, n, ValuePtr, SQL_MAX_OPTION_STRING_LENGTH,
- nullp, 2, addDbcError, dbc);
+ fixWcharOut(rc, ptr, n, ValuePtr,
+ SQL_MAX_OPTION_STRING_LENGTH, nullp, 2,
+ addDbcError, dbc);
+ }
+ free(ptr);
}
return rc;
diff --git a/clients/odbc/driver/SQLGetCursorName.c
b/clients/odbc/driver/SQLGetCursorName.c
--- a/clients/odbc/driver/SQLGetCursorName.c
+++ b/clients/odbc/driver/SQLGetCursorName.c
@@ -121,8 +121,11 @@ SQLGetCursorNameW(SQLHSTMT StatementHand
n++; /* account for NUL byte */
cursor = malloc(n);
rc = SQLGetCursorName_(stmt, cursor, BufferLength, &n);
- fixWcharOut(rc, cursor, n, CursorName, BufferLength,
- NameLengthPtr, 1, addStmtError, stmt);
+ if (SQL_SUCCEEDED(rc)) {
+ fixWcharOut(rc, cursor, n, CursorName, BufferLength,
+ NameLengthPtr, 1, addStmtError, stmt);
+ }
+ free(cursor);
return rc;
}
diff --git a/clients/odbc/driver/SQLGetDescField.c
b/clients/odbc/driver/SQLGetDescField.c
--- a/clients/odbc/driver/SQLGetDescField.c
+++ b/clients/odbc/driver/SQLGetDescField.c
@@ -377,10 +377,13 @@ SQLGetDescFieldW(SQLHDESC DescriptorHand
rc = SQLGetDescField_(desc, RecordNumber, FieldIdentifier, ptr, n, &n);
if (ptr != ValuePtr) {
- SQLSMALLINT nn = (SQLSMALLINT) n;
+ if (SQL_SUCCEEDED(rc)) {
+ SQLSMALLINT nn = (SQLSMALLINT) n;
- fixWcharOut(rc, ptr, nn, ValuePtr, BufferLength,
- StringLengthPtr, 2, addDescError, desc);
+ fixWcharOut(rc, ptr, nn, ValuePtr, BufferLength,
+ StringLengthPtr, 2, addDescError, desc);
+ }
+ free(ptr);
} else if (StringLengthPtr)
*StringLengthPtr = n;
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
@@ -867,10 +867,13 @@ SQLGetInfoW(SQLHDBC ConnectionHandle,
rc = SQLGetInfo_(dbc, InfoType, ptr, n, &n);
- if (ptr != InfoValuePtr)
- fixWcharOut(rc, ptr, n, InfoValuePtr, BufferLength,
- StringLengthPtr, 2, addDbcError, dbc);
- else if (StringLengthPtr)
+ if (ptr != InfoValuePtr) {
+ if (SQL_SUCCEEDED(rc)) {
+ fixWcharOut(rc, ptr, n, InfoValuePtr, BufferLength,
+ StringLengthPtr, 2, addDbcError, dbc);
+ }
+ free(ptr);
+ } else if (StringLengthPtr)
*StringLengthPtr = n;
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list