Changeset: 532270c5c45f for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=532270c5c45f
Added Files:
gdk/gdk_batop.c
monetdb5/modules/mal/Tests/xidlist.mal
monetdb5/modules/mal/Tests/xidlist.stable.err
monetdb5/modules/mal/Tests/xidlist.stable.out
monetdb5/modules/mal/xid.c
monetdb5/modules/mal/xid.h
monetdb5/modules/mal/xid.mal
monetdb5/optimizer/opt_xid.c
monetdb5/optimizer/opt_xid.h
sql/test/testdb/Tests/testdb-dump.stable.out.Windows
Removed Files:
gdk/gdk_batop.mx
Modified Files:
NT/installer32/MonetDB5-SQL-Installer.vdproj
NT/installer64/MonetDB5-SQL-Installer.vdproj
gdk/Makefile.ag
gdk/gdk.h
gdk/gdk_align.c
gdk/gdk_atoms.c
gdk/gdk_atoms.h
gdk/gdk_bat.c
gdk/gdk_bat.h
gdk/gdk_bbp.c
gdk/gdk_bbp.h
gdk/gdk_delta.c
gdk/gdk_delta.h
gdk/gdk_heap.c
gdk/gdk_logger.c
gdk/gdk_logger.h
gdk/gdk_posix.c
gdk/gdk_posix.h
gdk/gdk_sample.c
gdk/gdk_storage.c
gdk/gdk_system.c
gdk/gdk_system.h
gdk/gdk_tm.c
java/ChangeLog.Jul2012
java/Makefile.ag
java/build.properties
java/pom.xml
java/release.txt
java/src/nl/cwi/monetdb/jdbc/MonetConnection.java
monetdb5/modules/kernel/algebra.mx
monetdb5/modules/mal/Makefile.ag
monetdb5/modules/mal/Tests/All
monetdb5/modules/mal/mal_init.mal
monetdb5/optimizer/Makefile.ag
monetdb5/optimizer/opt_pipes.c
monetdb5/optimizer/opt_support.c
monetdb5/optimizer/opt_support.h
monetdb5/optimizer/opt_wrapper.c
monetdb5/optimizer/optimizer.mal
monetdb5/tests/gdkTests/Tests/void.stable.out
monetdb5/tests/suite_00/Tests/All
sql/test/BugTracker-2010/Tests/group-by_ordered_column.Bug-2564.stable.out.32bit
sql/test/BugTracker-2012/Tests/predicate_select.Bug-3090.stable.out
sql/test/BugTracker/Tests/jdbc_no_debug.SF-1739356.stable.out.32bit
sql/test/testdb/Tests/testdb-dump.timeout
sql/test/testdb/Tests/testdb-load.timeout
Branch: default
Log Message:
merge
diffs (truncated from 107865 to 300 lines):
diff --git a/NT/installer32/MonetDB5-SQL-Installer.vdproj
b/NT/installer32/MonetDB5-SQL-Installer.vdproj
--- a/NT/installer32/MonetDB5-SQL-Installer.vdproj
+++ b/NT/installer32/MonetDB5-SQL-Installer.vdproj
@@ -591,12 +591,6 @@
}
"Entry"
{
- "MsmKey" = "8:_B19E5558F57A40498434042A6A518D70"
- "OwnerKey" = "8:_UNDEFINED"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
"MsmKey" = "8:_B29D1CC37FAC4C7BAC52DD29A5303F05"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
@@ -2829,26 +2823,6 @@
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
}
-
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_B19E5558F57A40498434042A6A518D70"
- {
- "SourcePath" = "8:lib\\monetdb5\\batifthen.mal"
- "TargetName" = "8:batifthen.mal"
- "Tag" = "8:"
- "Folder" = "8:_B593DAA0787744D6A44D17884E0C3951"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:FALSE"
- "IsDependency" = "11:FALSE"
- "IsolateTo" = "8:"
- }
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_B29D1CC37FAC4C7BAC52DD29A5303F05"
{
"SourcePath" = "8:lib\\monetdb5\\zorder.mal"
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
@@ -105,12 +105,6 @@
}
"Entry"
{
- "MsmKey" = "8:_1AE601672DEA4DC8BA85FA9474186451"
- "OwnerKey" = "8:_UNDEFINED"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
"MsmKey" = "8:_1AF238588D2D4EA5A416D48291406811"
"OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED"
@@ -1229,26 +1223,6 @@
"IsDependency" = "11:FALSE"
"IsolateTo" = "8:"
}
-
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_1AE601672DEA4DC8BA85FA9474186451"
- {
- "SourcePath" = "8:lib\\monetdb5\\batifthen.mal"
- "TargetName" = "8:batifthen.mal"
- "Tag" = "8:"
- "Folder" = "8:_B593DAA0787744D6A44D17884E0C3951"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:FALSE"
- "IsDependency" = "11:FALSE"
- "IsolateTo" = "8:"
- }
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_1AF238588D2D4EA5A416D48291406811"
{
"SourcePath" =
"8:C:\\Libraries\\iconv-1.11.1.win64-vs10\\lib\\iconv.lib"
diff --git a/gdk/Makefile.ag b/gdk/Makefile.ag
--- a/gdk/Makefile.ag
+++ b/gdk/Makefile.ag
@@ -34,7 +34,7 @@ lib_gdk = {
gdk_scanselect_defs_str.mx \
gdk_scanselect_defs_fix.mx \
gdk_scanselect_defs_var.mx \
- gdk_scanselect.mx gdk.h gdk_batop.mx \
+ gdk_scanselect.mx gdk.h gdk_batop.c \
gdk_search.mx gdk_tm.c gdk_align.c gdk_bbp.c gdk_bbp.h \
gdk_heap.c gdk_setop.mx gdk_utils.c gdk_utils.h gdk_atoms.c
gdk_atoms.h \
gdk_qsort.c gdk_qsort_impl.h gdk_ssort.c gdk_ssort_impl.h \
diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -89,9 +89,9 @@
* [@cite{Goblin}]
* @end tex
* . A BAT is a
- * self-descriptive main-memory structure that represents the @strong{binary
- * relationship} between two atomic types.
- * The association can be defined over:
+ * self-descriptive main-memory structure that represents the
+ * @strong{binary relationship} between two atomic types. The
+ * association can be defined over:
* @table @code
* @item void:
* virtual-OIDs: a densely ascending column of OIDs (takes zero-storage).
@@ -104,13 +104,15 @@
* @item int:
* This is the C @strong{int} type (32-bit).
* @item oid:
- * Unique @strong{long int} values uses as object identifier. Highest bit
cleared always.
- * Thus, oids-s are 31-bit numbers on 32-bit systems, and 63-bit
numbers on 64-bit systems.
+ * Unique @strong{long int} values uses as object identifier. Highest
+ * bit cleared always. Thus, oids-s are 31-bit numbers on
+ * 32-bit systems, and 63-bit numbers on 64-bit systems.
* @item wrd:
* Machine-word sized integers
* (32-bit on 32-bit systems, 64-bit on 64-bit systems).
* @item ptr:
- * Memory pointer values. DEPRECATED. Can only be stored in transient BATs.
+ * Memory pointer values. DEPRECATED. Can only be stored in transient
+ * BATs.
* @item flt:
* The IEEE @strong{float} type.
* @item dbl:
@@ -120,52 +122,51 @@
* @item str:
* UTF-8 strings (Unicode). A zero-terminated byte sequence.
* @item bat:
- * Bat descriptor. This allows for recursive adminstered tables, but
- * severely complicates transaction management. Therefore, they
- * CAN ONLY BE STORED IN TRANSIENT BATs.
+ * Bat descriptor. This allows for recursive administered tables, but
+ * severely complicates transaction management. Therefore, they CAN
+ * ONLY BE STORED IN TRANSIENT BATs.
* @end table
*
* This model can be used as a back-end model underlying other -higher
* level- models, in order to achieve @strong{better performance} and
- * @strong{data independence} in one go. The relational model and
- * the object-oriented model can be mapped on BATs by vertically
- * splitting every table (or class) for each attribute. Each such a
- * column is then stored in a BAT with type @strong{bat[oid,attribute]}, where
+ * @strong{data independence} in one go. The relational model and the
+ * object-oriented model can be mapped on BATs by vertically splitting
+ * every table (or class) for each attribute. Each such a column is
+ * then stored in a BAT with type @strong{bat[oid,attribute]}, where
* the unique object identifiers link tuples in the different BATs.
* Relationship attributes in the object-oriented model hence are
- * mapped to @strong{bat[oid,oid]} tables, being equivalent to the concept of
- * @emph{join indexes}
- * @tex
- * [@cite{Valduriez87}]
- * @end tex
- * .
+ * mapped to @strong{bat[oid,oid]} tables, being equivalent to the
+ * concept of @emph{join indexes} @tex [@cite{Valduriez87}] @end tex .
*
* The set of built-in types can be extended with user-defined types
- * through an ADT interface. They are linked with the kernel to obtain
- * an enhanced library, or they are dynamically loaded upon request.
+ * through an ADT interface. They are linked with the kernel to
+ * obtain an enhanced library, or they are dynamically loaded upon
+ * request.
*
- * Types can be derived from other types. They represent something different
- * than that from which they are derived, but their internal storage management
- * is equal. This feature facilitates the work of extension programmers, by
- * enabling reuse of implementation code, but is also used to keep the GDK code
- * portable from 32-bits to 64-bits machines: the @strong{oid} and
@strong{ptr} types
- * are derived from @strong{int} on 32-bits machines, but is derived from
@strong{lng}
- * on 64 bits machines. This requires changes in only two lines of code each.
+ * Types can be derived from other types. They represent something
+ * different than that from which they are derived, but their internal
+ * storage management is equal. This feature facilitates the work of
+ * extension programmers, by enabling reuse of implementation code,
+ * but is also used to keep the GDK code portable from 32-bits to
+ * 64-bits machines: the @strong{oid} and @strong{ptr} types are
+ * derived from @strong{int} on 32-bits machines, but is derived from
+ * @strong{lng} on 64 bits machines. This requires changes in only two
+ * lines of code each.
*
* To accelerate lookup and search in BATs, GDK supports one built-in
- * search accelerator: hash tables. We choose an implementation efficient
- * for main-memory: bucket chained hash
+ * search accelerator: hash tables. We choose an implementation
+ * efficient for main-memory: bucket chained hash
* @tex
* [@cite{LehCar86,Analyti92}]
* @end tex
- * . Alternatively, when the table is sorted, it will resort to merge-scan
- * operations or binary lookups.
+ * . Alternatively, when the table is sorted, it will resort to
+ * merge-scan operations or binary lookups.
*
- * BATs are built on the concept of heaps, which are large pieces of main
- * memory. They can also consist of virtual memory, in case the working
- * set exceeds main-memory. In this case, GDK supports operations that
- * cluster the heaps of a BAT, in order to improve performance of its
- * main-memory.
+ * BATs are built on the concept of heaps, which are large pieces of
+ * main memory. They can also consist of virtual memory, in case the
+ * working set exceeds main-memory. In this case, GDK supports
+ * operations that cluster the heaps of a BAT, in order to improve
+ * performance of its main-memory.
*
*
* @- Rationale
@@ -175,15 +176,16 @@
*
* @itemize
* @item -
- * Given the fact that CPU speed and main-memory increase in
- * current workstation hardware for the last years has been exceeding
- * IO access speed increase, traditional disk-page oriented algorithms
- * do no longer take best advantage of hardware, in most database operations.
+ * Given the fact that CPU speed and main-memory increase in current
+ * workstation hardware for the last years has been exceeding IO
+ * access speed increase, traditional disk-page oriented algorithms do
+ * no longer take best advantage of hardware, in most database
+ * operations.
*
* Instead of having a disk-block oriented kernel with a large memory
- * cache, we choose to build a main-memory kernel, that only under large data
- * volumes slowly degrades to IO-bound performance, comparable to
- * traditional systems
+ * cache, we choose to build a main-memory kernel, that only under
+ * large data volumes slowly degrades to IO-bound performance,
+ * comparable to traditional systems
* @tex
* [@cite{boncz95,boncz96}]
* @end tex
@@ -207,20 +209,21 @@
*
* @item -
* Object-oriented systems often maintain a double cache, one with the
- * disk-based representation and a C pointer-based main-memory structure.
- * This causes expensive conversions and replicated storage management.
- * GDK does not do such `pointer swizzling'. It used virtual-memory
- * (@strong{mmap()}) and buffer management advice (@strong{madvise()}) OS
primitives to
- * cache only once. Tables take the same form in memory as on disk,
- * making the use of this technique transparent
+ * disk-based representation and a C pointer-based main-memory
+ * structure. This causes expensive conversions and replicated
+ * storage management. GDK does not do such `pointer swizzling'. It
+ * used virtual-memory (@strong{mmap()}) and buffer management advice
+ * (@strong{madvise()}) OS primitives to cache only once. Tables take
+ * the same form in memory as on disk, making the use of this
+ * technique transparent
* @tex
* [@cite{oo7}]
* @end tex
* .
* @end itemize
*
- * A RDBMS or OODBMS based on BATs strongly depends on our ability
- * to efficiently support tuples and to handle small joins, respectively.
+ * A RDBMS or OODBMS based on BATs strongly depends on our ability to
+ * efficiently support tuples and to handle small joins, respectively.
*
* The remainder of this document describes the Goblin Database kernel
* implementation at greater detail. It is organized as follows:
@@ -233,56 +236,58 @@
* @item @strong{Binary Association Tables}:
*
* As already mentioned, these are the primary data structure of GDK.
- * This chapter describes the kernel operations for creation, destruction
- * and basic manipulation of BATs and BUNs (i.e. tuples: Binary UNits).
+ * This chapter describes the kernel operations for creation,
+ * destruction and basic manipulation of BATs and BUNs (i.e. tuples:
+ * Binary UNits).
*
* @item @strong{BAT Buffer Pool:}
*
- * All BATs are registered in the BAT Buffer Pool. This directory is used
- * to guide swapping in and out of BATs. Here we find routines that guide
- * this swapping process.
+ * All BATs are registered in the BAT Buffer Pool. This directory is
+ * used to guide swapping in and out of BATs. Here we find routines
+ * that guide this swapping process.
*
* @item @strong{GDK Extensibility:}
*
- * Atoms can be defined using a unified ADT interface.
- * There is also an interface to extend the GDK library with
- * dynamically linked object code.
+ * Atoms can be defined using a unified ADT interface. There is also
+ * an interface to extend the GDK library with dynamically linked
+ * object code.
*
* @item @strong{GDK Utilities:}
*
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list