changeset 4:d84d840b4f86

Updates to text.
author Sjoerd Mullender <sjoerd@acm.org>
date Fri, 08 May 2015 15:13:39 +0200 (2015-05-08)
parents de61daddf5ab
children c3f23ea91e48
files reverse/README.rst
diffstat 1 files changed, 30 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- a/reverse/README.rst	Fri May 08 12:40:55 2015 +0200
+++ b/reverse/README.rst	Fri May 08 15:13:39 2015 +0200
@@ -292,26 +292,30 @@
 To bring all of this together, we have a ``Makefile``.  It uses the
 ``pkg-config`` command to find the location of the MonetDB
 installation and the arguments needed to compile the module.  This
-Makefile works on Fedora Linux if you have the packages
-``MonetDB-devel`` and ``MonetDB5-server-devel`` with all their
-dependencies installed (available in the feature release after the
-Feb2013 release cycle), and on Debian/Ubuntu if you have the packages
-``libmonetdb-dev`` and ``monetdb5-server-dev`` with all their
-dependencies installed (available starting in the Oct2014-SP3 bugfix
-release).  The file may need to be changed for other systems.
+Makefile works on Fedora Linux if you have the package
+``MonetDB5-server-devel`` with all its dependencies installed
+(available in the feature release after the Feb2013 release cycle),
+and on Debian/Ubuntu if you have the packages ``libmonetdb-dev`` and
+``monetdb5-server-dev`` with all their dependencies installed
+(available starting in the Oct2014-SP3 bugfix release).  The file may
+need to be changed for other systems.
 
 BAT Properties
 --------------
 
-MonetDB makes extensive use of a number of properties that can be set
-on the columns of BATs.  It is crucial that these properties don't
-lie.
+MonetDB makes extensive use of a number of property flags that can be
+set on the columns of BATs.  It is crucial that these property flags
+don't lie.  When the server is started with the ``-d10`` option, the
+server checks these property flags and exits with a failed assertion
+when a flag is set incorrectly (or the server issues a warning when it
+was built with assertions disabled).
 
-Properties are Boolean flags, i.e. they are either true (set) or false
-(not set).  When a property is not set, it means that either the
-property doesn't hold or it is unknown whether the property holds.
+Property flags are Boolean flags, i.e. they are either true (set) or
+false (not set).  When a property flag is not set, it means that
+either the property doesn't hold or it is unknown whether the property
+holds.
 
-The properties are
+The property flags are
 
 ``sorted``
   the column is sorted in ascending order
@@ -329,15 +333,21 @@
   there are nil values in the column (this property isn't used
   internally)
 
-The properties ``sorted`` and ``revsorted`` may both be set at the
+The property flags ``sorted`` and ``revsorted`` may both be set at the
 same time.  When they are, it implies that all values are equal to
 each other.
 
-The ``key`` property is actually two bits.  The lower bit is set if
-the property holds.  If, in addition, the upper bit is also set, it
+The ``key`` property flag is actually two bits.  The lower bit is set
+if the property holds.  If, in addition, the upper bit is also set, it
 means that the property must hold, i.e. when an attempt is made to
 insert a new value that already occurs, the insert must fail.
 
-Note that the function ``BUNappend`` maintains the properties the best
-it can.  That is why in the example we didn't do anything with the
-properties.
+Note that most of the properties are true for an empty column, hence
+when ``BATnew`` returns, all property flags except for ``nil`` are set
+(there are no nils in an empty column).  This means that as soon as
+you start adding data to a column, you must deal with the property
+flags.
+
+Note also that the function ``BUNappend`` maintains the property flags
+the best it can.  That is why in the example we didn't need to do
+anything with the property flags.