[-]
[+]
|
Changed |
cego.changes
|
|
[-]
[+]
|
Changed |
cego.spec
^
|
|
[-]
[+]
|
Deleted |
cego-2.19.5.tar.bz2/samples/cgplustest/.deps
^
|
-(directory)
|
[-]
[+]
|
Deleted |
cego-2.19.5.tar.bz2/samples/cgplustest/.deps/CegoCPlusTest.Po
^
|
@@ -1 +0,0 @@
-# dummy
|
[-]
[+]
|
Deleted |
cego-2.19.5.tar.bz2/samples/cgwraptest/.deps
^
|
-(directory)
|
[-]
[+]
|
Deleted |
cego-2.19.5.tar.bz2/samples/cgwraptest/.deps/cgwtest.Po
^
|
@@ -1 +0,0 @@
-# dummy
|
[-]
[+]
|
Changed |
cego-2.19.6.tar.bz2/configure
^
|
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for Cego 2.19.5.
+# Generated by GNU Autoconf 2.69 for Cego 2.19.6.
#
# Report bugs to <lemke@lemke-it.com>.
#
@@ -590,8 +590,8 @@
# Identity of this package.
PACKAGE_NAME='Cego'
PACKAGE_TARNAME='cego'
-PACKAGE_VERSION='2.19.5'
-PACKAGE_STRING='Cego 2.19.5'
+PACKAGE_VERSION='2.19.6'
+PACKAGE_STRING='Cego 2.19.6'
PACKAGE_BUGREPORT='lemke@lemke-it.com'
PACKAGE_URL=''
@@ -1326,7 +1326,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures Cego 2.19.5 to adapt to many kinds of systems.
+\`configure' configures Cego 2.19.6 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1396,7 +1396,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of Cego 2.19.5:";;
+ short | recursive ) echo "Configuration of Cego 2.19.6:";;
esac
cat <<\_ACEOF
@@ -1507,7 +1507,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-Cego configure 2.19.5
+Cego configure 2.19.6
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2051,7 +2051,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by Cego $as_me 2.19.5, which was
+It was created by Cego $as_me 2.19.6, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2914,7 +2914,7 @@
# Define the identity of the package.
PACKAGE='cego'
- VERSION='2.19.5'
+ VERSION='2.19.6'
cat >>confdefs.h <<_ACEOF
@@ -16608,7 +16608,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by Cego $as_me 2.19.5, which was
+This file was extended by Cego $as_me 2.19.6, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -16674,7 +16674,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-Cego config.status 2.19.5
+Cego config.status 2.19.6
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
|
[-]
[+]
|
Changed |
cego-2.19.6.tar.bz2/configure.ac
^
|
@@ -2,7 +2,7 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.69])
-AC_INIT([Cego], [2.19.5], [lemke@lemke-it.com])
+AC_INIT([Cego], [2.19.6], [lemke@lemke-it.com])
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
AC_CONFIG_SRCDIR([config.h.in])
AC_CONFIG_HEADERS([config.h])
|
[-]
[+]
|
Changed |
cego-2.19.6.tar.bz2/samples/cgplustest/Makefile
^
|
@@ -136,13 +136,13 @@
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = ${SHELL} /Users/lemke/work/cego-2.19.5/missing aclocal-1.13
+ACLOCAL = ${SHELL} /Users/lemke/work/cego-2.19.6/missing aclocal-1.13
AMTAR = $${TAR-tar}
AM_DEFAULT_VERBOSITY = 1
AR = ar
-AUTOCONF = ${SHELL} /Users/lemke/work/cego-2.19.5/missing autoconf
-AUTOHEADER = ${SHELL} /Users/lemke/work/cego-2.19.5/missing autoheader
-AUTOMAKE = ${SHELL} /Users/lemke/work/cego-2.19.5/missing automake-1.13
+AUTOCONF = ${SHELL} /Users/lemke/work/cego-2.19.6/missing autoconf
+AUTOHEADER = ${SHELL} /Users/lemke/work/cego-2.19.6/missing autoheader
+AUTOMAKE = ${SHELL} /Users/lemke/work/cego-2.19.6/missing automake-1.13
AWK = awk
CC = clang
CCDEPMODE = depmode=gcc3
@@ -182,7 +182,7 @@
LIPO = lipo
LN_S = ln -s
LTLIBOBJS =
-MAKEINFO = ${SHELL} /Users/lemke/work/cego-2.19.5/missing makeinfo
+MAKEINFO = ${SHELL} /Users/lemke/work/cego-2.19.6/missing makeinfo
MANIFEST_TOOL = :
MKDIR_P = ../.././install-sh -c -d
NM = /usr/bin/nm
@@ -194,21 +194,21 @@
PACKAGE = cego
PACKAGE_BUGREPORT = lemke@lemke-it.com
PACKAGE_NAME = Cego
-PACKAGE_STRING = Cego 2.19.5
+PACKAGE_STRING = Cego 2.19.6
PACKAGE_TARNAME = cego
PACKAGE_URL =
-PACKAGE_VERSION = 2.19.5
+PACKAGE_VERSION = 2.19.6
PATH_SEPARATOR = :
RANLIB = ranlib
SED = /usr/bin/sed
SET_MAKE =
SHELL = /bin/sh
STRIP = strip
-VERSION = 2.19.5
-abs_builddir = /Users/lemke/work/cego-2.19.5/samples/cgplustest
-abs_srcdir = /Users/lemke/work/cego-2.19.5/samples/cgplustest
-abs_top_builddir = /Users/lemke/work/cego-2.19.5
-abs_top_srcdir = /Users/lemke/work/cego-2.19.5
+VERSION = 2.19.6
+abs_builddir = /Users/lemke/work/cego-2.19.6/samples/cgplustest
+abs_srcdir = /Users/lemke/work/cego-2.19.6/samples/cgplustest
+abs_top_builddir = /Users/lemke/work/cego-2.19.6
+abs_top_srcdir = /Users/lemke/work/cego-2.19.6
ac_ct_AR = ar
ac_ct_CC = clang
ac_ct_CXX =
@@ -238,7 +238,7 @@
htmldir = ${docdir}
includedir = ${prefix}/include
infodir = ${datarootdir}/info
-install_sh = ${SHELL} /Users/lemke/work/cego-2.19.5/install-sh
+install_sh = ${SHELL} /Users/lemke/work/cego-2.19.6/install-sh
libdir = ${exec_prefix}/lib
libexecdir = ${exec_prefix}/libexec
localedir = ${datarootdir}/locale
|
[-]
[+]
|
Changed |
cego-2.19.6.tar.bz2/samples/cgwraptest/Makefile
^
|
@@ -136,13 +136,13 @@
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = ${SHELL} /Users/lemke/work/cego-2.19.5/missing aclocal-1.13
+ACLOCAL = ${SHELL} /Users/lemke/work/cego-2.19.6/missing aclocal-1.13
AMTAR = $${TAR-tar}
AM_DEFAULT_VERBOSITY = 1
AR = ar
-AUTOCONF = ${SHELL} /Users/lemke/work/cego-2.19.5/missing autoconf
-AUTOHEADER = ${SHELL} /Users/lemke/work/cego-2.19.5/missing autoheader
-AUTOMAKE = ${SHELL} /Users/lemke/work/cego-2.19.5/missing automake-1.13
+AUTOCONF = ${SHELL} /Users/lemke/work/cego-2.19.6/missing autoconf
+AUTOHEADER = ${SHELL} /Users/lemke/work/cego-2.19.6/missing autoheader
+AUTOMAKE = ${SHELL} /Users/lemke/work/cego-2.19.6/missing automake-1.13
AWK = awk
CC = clang
CCDEPMODE = depmode=gcc3
@@ -182,7 +182,7 @@
LIPO = lipo
LN_S = ln -s
LTLIBOBJS =
-MAKEINFO = ${SHELL} /Users/lemke/work/cego-2.19.5/missing makeinfo
+MAKEINFO = ${SHELL} /Users/lemke/work/cego-2.19.6/missing makeinfo
MANIFEST_TOOL = :
MKDIR_P = ../.././install-sh -c -d
NM = /usr/bin/nm
@@ -194,21 +194,21 @@
PACKAGE = cego
PACKAGE_BUGREPORT = lemke@lemke-it.com
PACKAGE_NAME = Cego
-PACKAGE_STRING = Cego 2.19.5
+PACKAGE_STRING = Cego 2.19.6
PACKAGE_TARNAME = cego
PACKAGE_URL =
-PACKAGE_VERSION = 2.19.5
+PACKAGE_VERSION = 2.19.6
PATH_SEPARATOR = :
RANLIB = ranlib
SED = /usr/bin/sed
SET_MAKE =
SHELL = /bin/sh
STRIP = strip
-VERSION = 2.19.5
-abs_builddir = /Users/lemke/work/cego-2.19.5/samples/cgwraptest
-abs_srcdir = /Users/lemke/work/cego-2.19.5/samples/cgwraptest
-abs_top_builddir = /Users/lemke/work/cego-2.19.5
-abs_top_srcdir = /Users/lemke/work/cego-2.19.5
+VERSION = 2.19.6
+abs_builddir = /Users/lemke/work/cego-2.19.6/samples/cgwraptest
+abs_srcdir = /Users/lemke/work/cego-2.19.6/samples/cgwraptest
+abs_top_builddir = /Users/lemke/work/cego-2.19.6
+abs_top_srcdir = /Users/lemke/work/cego-2.19.6
ac_ct_AR = ar
ac_ct_CC = clang
ac_ct_CXX =
@@ -238,7 +238,7 @@
htmldir = ${docdir}
includedir = ${prefix}/include
infodir = ${datarootdir}/info
-install_sh = ${SHELL} /Users/lemke/work/cego-2.19.5/install-sh
+install_sh = ${SHELL} /Users/lemke/work/cego-2.19.6/install-sh
libdir = ${exec_prefix}/lib
libexecdir = ${exec_prefix}/libexec
localedir = ${datarootdir}/locale
|
[-]
[+]
|
Changed |
cego-2.19.6.tar.bz2/src/CegoSelect.cc
^
|
@@ -21,6 +21,7 @@
// base includes
#include <lfcbase/Datetime.h>
#include <lfcbase/SetT.h>
+#include <lfcbase/StackT.h>
// cego includes
#include "CegoSelect.h"
@@ -1284,7 +1285,7 @@
}
if ( _attrCondFlag[_joinLevel] == true )
{
- // _pLogger->log(_modId, Logger::DEBUG, Chain("Setting attrcond = ") + _attrCond[_joinLevel].toChain());
+ _pLogger->log(_modId, Logger::DEBUG, Chain("Setting attrcond = ") + _attrCond[_joinLevel].toChain());
bool doSetup = true;
@@ -1580,6 +1581,12 @@
void CegoSelect::consolidateConjunctionList()
{
+ // first step :
+ // ============
+ // we have to check for predicates, where the referenced tables
+ // are the same. These predicates are merged then.
+ // This is important to analyse the corresponding table join order
+
bool finished = false;
while ( finished == false )
@@ -1652,6 +1659,37 @@
(*pPred)->setCheckedRec(false);
pPred = _conjunctionList.Next();
}
+
+ // second step :
+ // ============
+ // the conjunction list is ordered regarding the
+ // amount of referenced tables.
+ // predicates with more referenced tables are put to the beginning
+ // of the list.
+ // The ordered conjunction list results in an appropriate table join order
+ // ( method buildJoinTables ), so predicates with index conditions for two joined
+ // tables ( a = b ) are treated first before constant comparisions ( a = 'alpha' )
+
+ StackT<CegoPredDesc*> orderedStack;
+
+ int growSize = 1;
+ while ( orderedStack.Size() < _conjunctionList.Size() )
+ {
+
+ pPred = _conjunctionList.First();
+ while ( pPred )
+ {
+ if ( (*pPred)->getTableRefSet().Size() == growSize )
+ orderedStack.Push(*pPred);
+ pPred = _conjunctionList.Next();
+ }
+ growSize++;
+ }
+
+ _conjunctionList.Empty();
+ CegoPredDesc *pP;
+ while ( orderedStack.Pop(pP))
+ _conjunctionList.Insert(pP);
}
@@ -1663,6 +1701,11 @@
void CegoSelect::buildJoinTables()
{
+
+#ifdef CGDEBUG
+ _pLogger->log(_modId, Logger::DEBUG, Chain("*** Building jon table list"));
+#endif
+
// growStep is the number of tables to join with the next join step
// we start with growStep 1
int growStep=1;
@@ -1672,15 +1715,29 @@
bool isGrowing = true;
while ( isGrowing )
{
+
isGrowing = false;
+
CegoPredDesc **pPred = _conjunctionList.First();
while ( pPred )
{
- // cout << "Analysing predicate .." << endl;
ListT<CegoContentObject*> newObjectList;
-
getPredObjectList(*pPred, newObjectList);
+#ifdef CGDEBUG
+ _pLogger->log(_modId, Logger::DEBUG, Chain("Analysing predicate ") + (*pPred)->toChain());
+
+ Chain tlist;
+ CegoContentObject **pDO = newObjectList.First();
+ while ( pDO )
+ {
+ tlist = tlist + Chain(" ") + (*pDO)->getTabName();
+ pDO = newObjectList.Next();
+ }
+
+ _pLogger->log(_modId, Logger::DEBUG, Chain("Found ") + Chain(newObjectList.Size()) + Chain(" tables [") + tlist + Chain("]"));
+#endif
+
CegoContentObject** pOE = _joinList.First();
while ( pOE )
{
@@ -1701,11 +1758,29 @@
}
if ( newObjectList.Size() == growStep )
- {
+ {
+
+#ifdef CGDEBUG
+ Chain tlist;
+ CegoContentObject **pDO = newObjectList.First();
+ while ( pDO )
+ {
+ tlist = tlist + Chain(" ") + (*pDO)->getTabName();
+ pDO = newObjectList.Next();
+ }
+
+ _pLogger->log(_modId, Logger::DEBUG, Chain("Adding ") + Chain(newObjectList.Size()) + Chain(" tables to join list [") + tlist + Chain("]"));
+#endif
+
_joinList += newObjectList;
isGrowing = true;
+
+ pPred = _conjunctionList.First();
+ }
+ else
+ {
+ pPred = _conjunctionList.Next();
}
- pPred = _conjunctionList.Next();
}
}
growStep++;
@@ -2524,7 +2599,6 @@
return;
}
-
if ( _selectMode == AGGREGATION || _selectMode == GROUPING )
{
CegoExpr** pExpr = _exprList.First();
@@ -2972,7 +3046,6 @@
}
}
-
len += sizeof(int);
if (_pUnionSelect)
|