Mercurial > hg > MonetDB-extend
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.