1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-12-24 14:20:59 +03:00

the begginning

This commit is contained in:
david hill
2016-01-06 14:08:59 -06:00
parent 66a31debcb
commit f6afc42dd0
18251 changed files with 16460679 additions and 2 deletions

96
writeengine/wrapper/Makefile Executable file
View File

@@ -0,0 +1,96 @@
include ../../rules.mak
include ../build/we_rules.mak
#******************************************************************************************
# $Id: Makefile 4589 2013-04-02 14:41:08Z rdempsey $
#
# Copyright (C) 2009-2013 Calpont Corporation
# All rights reserved
#*****************************************************************************************/
.PHONY: install clean test docs coverage leakcheck
PROGRAM=libwriteengine.so
VERSION=1.0.0
LIBRARY=$(PROGRAM).$(VERSION)
TLIBS+=-lwriteengine
GLIBS=$(TLIBS)
LLIBS=-L$(CALPONT_LIBRARY_PATH) -lbrm -lcacheutils
SRCS=writeengine.cpp we_colop.cpp we_colopcompress.cpp we_dctnrycompress.cpp we_tablemetadata.cpp
LINCLUDES=writeengine.h we_colop.h we_colopcompress.h we_dctnrycompress.h we_tablemetadata.h
OBJS=$(SRCS:.cpp=.o)
LOBJS=$(LOBJS_SHARED) $(LOBJS_DCTNRY) $(LOBJS_XML)
GOBJS=$(LOBJS:.o=-gcov.o)
$(LIBRARY): $(OBJS) $(LOBJS)
$(LINK.cpp) -shared -o $(LIBRARY) $(OBJS) $(LOBJS)
rm -f $(PROGRAM)
ln -s $(LIBRARY) $(PROGRAM)
make install
install: bootstrap
umask 002; \
mkdir -p $(INSTALL_ROOT_LIB) $(INSTALL_ROOT_INCLUDE); \
pushd $(INSTALL_ROOT_LIB) >/dev/null; \
rm -f $(LIBRARY) $(PROGRAM); \
ln -s $(LIBRARY) $(PROGRAM); \
popd >/dev/null; \
$(INSTALL) $(LIBRARY) $(INSTALL_ROOT_LIB)
bootstrap:
$(INSTALL) $(LINCLUDES) $(INSTALL_ROOT_INCLUDE)
clean:
rm -f $(LIBDIR)/tdriver.o $(OBJS) tdriver.o $(PROGRAM) $(LIBRARY) tdriver core *~ *.tag *-gcov.* *.gcov tdriver-gcov *.d *.swp *.dat
rm -rf html
docs:
doxygen $(EXPORT_ROOT)/etc/Doxyfile
tdriver: tdriver.o
$(LINK.cpp) -o $@ $^ $(TLIBS)
test:
xtest: $(LIBRARY) tdriver
$(IPCS_CLEANUP)
LD_LIBRARY_PATH=.:$(EXPORT_ROOT)/lib:/usr/local/lib ./tdriver
%-gcov.o: %.cpp
$(COMPILE.cpp) -o $@ $^
tdriver-gcov: CXXFLAGS+=-fprofile-arcs -ftest-coverage
tdriver-gcov: tdriver-gcov.o $(subst .o,-gcov.o,$(OBJS))
$(LINK.cpp) -o $@ $^ $(GLIBS) $(GOBJS)
coverage:
xcoverage: tdriver-gcov
$(IPCS_CLEANUP)
rm -f *.gcda
LD_LIBRARY_PATH=$(EXPORT_ROOT)/lib:/usr/local/lib ./tdriver-gcov
for file in $(SRCS); do \
bfile=`basename $$file .cpp`; \
gcov -o $${bfile}-gcov $$file >/dev/null; \
done
/usr/local/bin/genCoverage.pl $(SRCS)
leakcheck:
xleakcheck: $(LIBRARY) tdriver
$(IPCS_CLEANUP)
LD_LIBRARY_PATH=.:$(EXPORT_ROOT)/lib:/usr/local/lib valgrind --tool=memcheck --leak-check=yes ./tdriver
%.d: %.cpp
@set -e; rm -f $@; \
$(CC) -MM $(CPPFLAGS) $< > $@.$$$$; \
sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
rm -f $@.$$$$
ifndef BOOTSTRAP
-include $(SRCS:.cpp=.d) tdriver.d
endif

View File

@@ -0,0 +1,69 @@
# Copyright (C) 2014 InfiniDB, Inc.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; version 2 of
# the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
# MA 02110-1301, USA.
# $Id: Makefile.am 3720 2012-04-04 18:18:49Z rdempsey $
## Process this file with automake to produce Makefile.in
AM_CPPFLAGS = $(idb_cppflags) $(idb_common_includes)
AM_CFLAGS = $(idb_cflags)
AM_CXXFLAGS = $(idb_cxxflags)
AM_LDFLAGS = $(idb_ldflags)
lib_LTLIBRARIES = libwriteengine.la
libwriteengine_la_SOURCES = writeengine.cpp \
we_colop.cpp \
we_colopcompress.cpp \
we_dctnrycompress.cpp \
we_tablemetadata.cpp \
../shared/we_blockop.cpp \
../shared/we_brm.cpp \
../shared/we_cache.cpp \
../shared/we_chunkmanager.cpp \
../shared/we_config.cpp \
../shared/we_convertor.cpp \
../shared/we_dbfileop.cpp \
../shared/we_define.cpp \
../shared/we_fileop.cpp \
../shared/we_log.cpp \
../shared/we_stats.cpp \
../shared/we_bulkrollbackmgr.cpp \
../shared/we_simplesyslog.cpp \
../shared/we_bulkrollbackfilecompressed.cpp \
../shared/we_bulkrollbackfilecompressedhdfs.cpp \
../shared/we_bulkrollbackfile.cpp \
../shared/we_rbmetawriter.cpp \
../shared/we_dbrootextenttracker.cpp \
../shared/we_confirmhdfsdbfile.cpp \
../dictionary/we_dctnry.cpp \
../xml/we_xmlop.cpp \
../xml/we_xmljob.cpp \
../xml/we_xmlgendata.cpp \
../xml/we_xmlgenproc.cpp
libwriteengine_la_LDFLAGS = -version-info 1:0:0 $(AM_LDFLAGS)
libwriteengine_la_CPPFLAGS = -D_FILE_OFFSET_BITS=64 $(AM_CPPFLAGS)
libwriteengine_la_LIBADD =
include_HEADERS = writeengine.h we_colop.h we_colopcompress.h we_dctnrycompress.h we_tablemetadata.h
test:
coverage:
leakcheck:
docs:
bootstrap: install-data-am

View File

@@ -0,0 +1,830 @@
# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
# Copyright (C) 2014 InfiniDB, Inc.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; version 2 of
# the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
# MA 02110-1301, USA.
# $Id: Makefile.am 3720 2012-04-04 18:18:49Z rdempsey $
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = writeengine/wrapper
DIST_COMMON = $(include_HEADERS) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/compilerflags.m4 \
$(top_srcdir)/m4/functions.m4 $(top_srcdir)/m4/install.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)"
libLTLIBRARIES_INSTALL = $(INSTALL)
LTLIBRARIES = $(lib_LTLIBRARIES)
libwriteengine_la_DEPENDENCIES =
am_libwriteengine_la_OBJECTS = libwriteengine_la-writeengine.lo \
libwriteengine_la-we_colop.lo \
libwriteengine_la-we_colopcompress.lo \
libwriteengine_la-we_dctnrycompress.lo \
libwriteengine_la-we_tablemetadata.lo \
libwriteengine_la-we_blockop.lo libwriteengine_la-we_brm.lo \
libwriteengine_la-we_cache.lo \
libwriteengine_la-we_chunkmanager.lo \
libwriteengine_la-we_config.lo \
libwriteengine_la-we_convertor.lo \
libwriteengine_la-we_dbfileop.lo \
libwriteengine_la-we_define.lo libwriteengine_la-we_fileop.lo \
libwriteengine_la-we_log.lo libwriteengine_la-we_stats.lo \
libwriteengine_la-we_bulkrollbackmgr.lo \
libwriteengine_la-we_simplesyslog.lo \
libwriteengine_la-we_bulkrollbackfilecompressed.lo \
libwriteengine_la-we_bulkrollbackfilecompressedhdfs.lo \
libwriteengine_la-we_bulkrollbackfile.lo \
libwriteengine_la-we_rbmetawriter.lo \
libwriteengine_la-we_dbrootextenttracker.lo \
libwriteengine_la-we_confirmhdfsdbfile.lo \
libwriteengine_la-we_dctnry.lo libwriteengine_la-we_xmlop.lo \
libwriteengine_la-we_xmljob.lo \
libwriteengine_la-we_xmlgendata.lo \
libwriteengine_la-we_xmlgenproc.lo
libwriteengine_la_OBJECTS = $(am_libwriteengine_la_OBJECTS)
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
$(AM_CXXFLAGS) $(CXXFLAGS)
CXXLD = $(CXX)
CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \
$(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
SOURCES = $(libwriteengine_la_SOURCES)
DIST_SOURCES = $(libwriteengine_la_SOURCES)
includeHEADERS_INSTALL = $(INSTALL_HEADER)
HEADERS = $(include_HEADERS)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LDFLAGS = @LDFLAGS@
LEX = @LEX@
LEXLIB = @LEXLIB@
LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
POW_LIB = @POW_LIB@
RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
VERSION = @VERSION@
XML2_CONFIG = @XML2_CONFIG@
XML_CPPFLAGS = @XML_CPPFLAGS@
XML_LIBS = @XML_LIBS@
YACC = @YACC@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_F77 = @ac_ct_F77@
ac_ct_RANLIB = @ac_ct_RANLIB@
ac_ct_STRIP = @ac_ct_STRIP@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
etcdir = @etcdir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
idb_brm_libs = @idb_brm_libs@
idb_cflags = @idb_cflags@
idb_common_includes = @idb_common_includes@
idb_common_ldflags = @idb_common_ldflags@
idb_common_libs = @idb_common_libs@
idb_cppflags = @idb_cppflags@
idb_cxxflags = @idb_cxxflags@
idb_exec_libs = @idb_exec_libs@
idb_ldflags = @idb_ldflags@
idb_oam_libs = @idb_oam_libs@
idb_write_libs = @idb_write_libs@
idbinstall = @idbinstall@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localdir = @localdir@
localstatedir = @localstatedir@
mandir = @mandir@
march_flags = @march_flags@
mibdir = @mibdir@
mkdir_p = @mkdir_p@
mysqldir = @mysqldir@
netsnmp_libs = @netsnmp_libs@
netsnmpagntdir = @netsnmpagntdir@
netsnmpdir = @netsnmpdir@
netsnmplibrdir = @netsnmplibrdir@
netsnmpmachdir = @netsnmpmachdir@
netsnmpsysdir = @netsnmpsysdir@
oldincludedir = @oldincludedir@
postdir = @postdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
sbindir = @sbindir@
sharedir = @sharedir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
toolsdir = @toolsdir@
AM_CPPFLAGS = $(idb_cppflags) $(idb_common_includes)
AM_CFLAGS = $(idb_cflags)
AM_CXXFLAGS = $(idb_cxxflags)
AM_LDFLAGS = $(idb_ldflags)
lib_LTLIBRARIES = libwriteengine.la
libwriteengine_la_SOURCES = writeengine.cpp \
we_colop.cpp \
we_colopcompress.cpp \
we_dctnrycompress.cpp \
we_tablemetadata.cpp \
../shared/we_blockop.cpp \
../shared/we_brm.cpp \
../shared/we_cache.cpp \
../shared/we_chunkmanager.cpp \
../shared/we_config.cpp \
../shared/we_convertor.cpp \
../shared/we_dbfileop.cpp \
../shared/we_define.cpp \
../shared/we_fileop.cpp \
../shared/we_log.cpp \
../shared/we_stats.cpp \
../shared/we_bulkrollbackmgr.cpp \
../shared/we_simplesyslog.cpp \
../shared/we_bulkrollbackfilecompressed.cpp \
../shared/we_bulkrollbackfilecompressedhdfs.cpp \
../shared/we_bulkrollbackfile.cpp \
../shared/we_rbmetawriter.cpp \
../shared/we_dbrootextenttracker.cpp \
../shared/we_confirmhdfsdbfile.cpp \
../dictionary/we_dctnry.cpp \
../xml/we_xmlop.cpp \
../xml/we_xmljob.cpp \
../xml/we_xmlgendata.cpp \
../xml/we_xmlgenproc.cpp
libwriteengine_la_LDFLAGS = -version-info 1:0:0 $(AM_LDFLAGS)
libwriteengine_la_CPPFLAGS = -D_FILE_OFFSET_BITS=64 $(AM_CPPFLAGS)
libwriteengine_la_LIBADD =
include_HEADERS = writeengine.h we_colop.h we_colopcompress.h we_dctnrycompress.h we_tablemetadata.h
all: all-am
.SUFFIXES:
.SUFFIXES: .cpp .lo .o .obj
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu writeengine/wrapper/Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu writeengine/wrapper/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
@$(NORMAL_INSTALL)
test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)"
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
f=$(am__strip_dir) \
echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
$(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
else :; fi; \
done
uninstall-libLTLIBRARIES:
@$(NORMAL_UNINSTALL)
@set -x; list='$(lib_LTLIBRARIES)'; for p in $$list; do \
p=$(am__strip_dir) \
echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \
$(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \
done
clean-libLTLIBRARIES:
-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
test "$$dir" != "$$p" || dir=.; \
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
libwriteengine.la: $(libwriteengine_la_OBJECTS) $(libwriteengine_la_DEPENDENCIES)
$(CXXLINK) -rpath $(libdir) $(libwriteengine_la_LDFLAGS) $(libwriteengine_la_OBJECTS) $(libwriteengine_la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwriteengine_la-we_blockop.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwriteengine_la-we_brm.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwriteengine_la-we_bulkrollbackfile.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwriteengine_la-we_bulkrollbackfilecompressed.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwriteengine_la-we_bulkrollbackfilecompressedhdfs.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwriteengine_la-we_bulkrollbackmgr.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwriteengine_la-we_cache.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwriteengine_la-we_chunkmanager.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwriteengine_la-we_colop.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwriteengine_la-we_colopcompress.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwriteengine_la-we_config.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwriteengine_la-we_confirmhdfsdbfile.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwriteengine_la-we_convertor.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwriteengine_la-we_dbfileop.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwriteengine_la-we_dbrootextenttracker.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwriteengine_la-we_dctnry.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwriteengine_la-we_dctnrycompress.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwriteengine_la-we_define.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwriteengine_la-we_fileop.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwriteengine_la-we_log.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwriteengine_la-we_rbmetawriter.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwriteengine_la-we_simplesyslog.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwriteengine_la-we_stats.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwriteengine_la-we_tablemetadata.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwriteengine_la-we_xmlgendata.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwriteengine_la-we_xmlgenproc.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwriteengine_la-we_xmljob.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwriteengine_la-we_xmlop.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libwriteengine_la-writeengine.Plo@am__quote@
.cpp.o:
@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
.cpp.obj:
@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.cpp.lo:
@am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
libwriteengine_la-writeengine.lo: writeengine.cpp
@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwriteengine_la-writeengine.lo -MD -MP -MF "$(DEPDIR)/libwriteengine_la-writeengine.Tpo" -c -o libwriteengine_la-writeengine.lo `test -f 'writeengine.cpp' || echo '$(srcdir)/'`writeengine.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libwriteengine_la-writeengine.Tpo" "$(DEPDIR)/libwriteengine_la-writeengine.Plo"; else rm -f "$(DEPDIR)/libwriteengine_la-writeengine.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='writeengine.cpp' object='libwriteengine_la-writeengine.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwriteengine_la-writeengine.lo `test -f 'writeengine.cpp' || echo '$(srcdir)/'`writeengine.cpp
libwriteengine_la-we_colop.lo: we_colop.cpp
@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwriteengine_la-we_colop.lo -MD -MP -MF "$(DEPDIR)/libwriteengine_la-we_colop.Tpo" -c -o libwriteengine_la-we_colop.lo `test -f 'we_colop.cpp' || echo '$(srcdir)/'`we_colop.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libwriteengine_la-we_colop.Tpo" "$(DEPDIR)/libwriteengine_la-we_colop.Plo"; else rm -f "$(DEPDIR)/libwriteengine_la-we_colop.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='we_colop.cpp' object='libwriteengine_la-we_colop.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwriteengine_la-we_colop.lo `test -f 'we_colop.cpp' || echo '$(srcdir)/'`we_colop.cpp
libwriteengine_la-we_colopcompress.lo: we_colopcompress.cpp
@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwriteengine_la-we_colopcompress.lo -MD -MP -MF "$(DEPDIR)/libwriteengine_la-we_colopcompress.Tpo" -c -o libwriteengine_la-we_colopcompress.lo `test -f 'we_colopcompress.cpp' || echo '$(srcdir)/'`we_colopcompress.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libwriteengine_la-we_colopcompress.Tpo" "$(DEPDIR)/libwriteengine_la-we_colopcompress.Plo"; else rm -f "$(DEPDIR)/libwriteengine_la-we_colopcompress.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='we_colopcompress.cpp' object='libwriteengine_la-we_colopcompress.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwriteengine_la-we_colopcompress.lo `test -f 'we_colopcompress.cpp' || echo '$(srcdir)/'`we_colopcompress.cpp
libwriteengine_la-we_dctnrycompress.lo: we_dctnrycompress.cpp
@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwriteengine_la-we_dctnrycompress.lo -MD -MP -MF "$(DEPDIR)/libwriteengine_la-we_dctnrycompress.Tpo" -c -o libwriteengine_la-we_dctnrycompress.lo `test -f 'we_dctnrycompress.cpp' || echo '$(srcdir)/'`we_dctnrycompress.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libwriteengine_la-we_dctnrycompress.Tpo" "$(DEPDIR)/libwriteengine_la-we_dctnrycompress.Plo"; else rm -f "$(DEPDIR)/libwriteengine_la-we_dctnrycompress.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='we_dctnrycompress.cpp' object='libwriteengine_la-we_dctnrycompress.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwriteengine_la-we_dctnrycompress.lo `test -f 'we_dctnrycompress.cpp' || echo '$(srcdir)/'`we_dctnrycompress.cpp
libwriteengine_la-we_tablemetadata.lo: we_tablemetadata.cpp
@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwriteengine_la-we_tablemetadata.lo -MD -MP -MF "$(DEPDIR)/libwriteengine_la-we_tablemetadata.Tpo" -c -o libwriteengine_la-we_tablemetadata.lo `test -f 'we_tablemetadata.cpp' || echo '$(srcdir)/'`we_tablemetadata.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libwriteengine_la-we_tablemetadata.Tpo" "$(DEPDIR)/libwriteengine_la-we_tablemetadata.Plo"; else rm -f "$(DEPDIR)/libwriteengine_la-we_tablemetadata.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='we_tablemetadata.cpp' object='libwriteengine_la-we_tablemetadata.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwriteengine_la-we_tablemetadata.lo `test -f 'we_tablemetadata.cpp' || echo '$(srcdir)/'`we_tablemetadata.cpp
libwriteengine_la-we_blockop.lo: ../shared/we_blockop.cpp
@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwriteengine_la-we_blockop.lo -MD -MP -MF "$(DEPDIR)/libwriteengine_la-we_blockop.Tpo" -c -o libwriteengine_la-we_blockop.lo `test -f '../shared/we_blockop.cpp' || echo '$(srcdir)/'`../shared/we_blockop.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libwriteengine_la-we_blockop.Tpo" "$(DEPDIR)/libwriteengine_la-we_blockop.Plo"; else rm -f "$(DEPDIR)/libwriteengine_la-we_blockop.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../shared/we_blockop.cpp' object='libwriteengine_la-we_blockop.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwriteengine_la-we_blockop.lo `test -f '../shared/we_blockop.cpp' || echo '$(srcdir)/'`../shared/we_blockop.cpp
libwriteengine_la-we_brm.lo: ../shared/we_brm.cpp
@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwriteengine_la-we_brm.lo -MD -MP -MF "$(DEPDIR)/libwriteengine_la-we_brm.Tpo" -c -o libwriteengine_la-we_brm.lo `test -f '../shared/we_brm.cpp' || echo '$(srcdir)/'`../shared/we_brm.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libwriteengine_la-we_brm.Tpo" "$(DEPDIR)/libwriteengine_la-we_brm.Plo"; else rm -f "$(DEPDIR)/libwriteengine_la-we_brm.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../shared/we_brm.cpp' object='libwriteengine_la-we_brm.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwriteengine_la-we_brm.lo `test -f '../shared/we_brm.cpp' || echo '$(srcdir)/'`../shared/we_brm.cpp
libwriteengine_la-we_cache.lo: ../shared/we_cache.cpp
@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwriteengine_la-we_cache.lo -MD -MP -MF "$(DEPDIR)/libwriteengine_la-we_cache.Tpo" -c -o libwriteengine_la-we_cache.lo `test -f '../shared/we_cache.cpp' || echo '$(srcdir)/'`../shared/we_cache.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libwriteengine_la-we_cache.Tpo" "$(DEPDIR)/libwriteengine_la-we_cache.Plo"; else rm -f "$(DEPDIR)/libwriteengine_la-we_cache.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../shared/we_cache.cpp' object='libwriteengine_la-we_cache.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwriteengine_la-we_cache.lo `test -f '../shared/we_cache.cpp' || echo '$(srcdir)/'`../shared/we_cache.cpp
libwriteengine_la-we_chunkmanager.lo: ../shared/we_chunkmanager.cpp
@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwriteengine_la-we_chunkmanager.lo -MD -MP -MF "$(DEPDIR)/libwriteengine_la-we_chunkmanager.Tpo" -c -o libwriteengine_la-we_chunkmanager.lo `test -f '../shared/we_chunkmanager.cpp' || echo '$(srcdir)/'`../shared/we_chunkmanager.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libwriteengine_la-we_chunkmanager.Tpo" "$(DEPDIR)/libwriteengine_la-we_chunkmanager.Plo"; else rm -f "$(DEPDIR)/libwriteengine_la-we_chunkmanager.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../shared/we_chunkmanager.cpp' object='libwriteengine_la-we_chunkmanager.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwriteengine_la-we_chunkmanager.lo `test -f '../shared/we_chunkmanager.cpp' || echo '$(srcdir)/'`../shared/we_chunkmanager.cpp
libwriteengine_la-we_config.lo: ../shared/we_config.cpp
@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwriteengine_la-we_config.lo -MD -MP -MF "$(DEPDIR)/libwriteengine_la-we_config.Tpo" -c -o libwriteengine_la-we_config.lo `test -f '../shared/we_config.cpp' || echo '$(srcdir)/'`../shared/we_config.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libwriteengine_la-we_config.Tpo" "$(DEPDIR)/libwriteengine_la-we_config.Plo"; else rm -f "$(DEPDIR)/libwriteengine_la-we_config.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../shared/we_config.cpp' object='libwriteengine_la-we_config.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwriteengine_la-we_config.lo `test -f '../shared/we_config.cpp' || echo '$(srcdir)/'`../shared/we_config.cpp
libwriteengine_la-we_convertor.lo: ../shared/we_convertor.cpp
@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwriteengine_la-we_convertor.lo -MD -MP -MF "$(DEPDIR)/libwriteengine_la-we_convertor.Tpo" -c -o libwriteengine_la-we_convertor.lo `test -f '../shared/we_convertor.cpp' || echo '$(srcdir)/'`../shared/we_convertor.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libwriteengine_la-we_convertor.Tpo" "$(DEPDIR)/libwriteengine_la-we_convertor.Plo"; else rm -f "$(DEPDIR)/libwriteengine_la-we_convertor.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../shared/we_convertor.cpp' object='libwriteengine_la-we_convertor.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwriteengine_la-we_convertor.lo `test -f '../shared/we_convertor.cpp' || echo '$(srcdir)/'`../shared/we_convertor.cpp
libwriteengine_la-we_dbfileop.lo: ../shared/we_dbfileop.cpp
@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwriteengine_la-we_dbfileop.lo -MD -MP -MF "$(DEPDIR)/libwriteengine_la-we_dbfileop.Tpo" -c -o libwriteengine_la-we_dbfileop.lo `test -f '../shared/we_dbfileop.cpp' || echo '$(srcdir)/'`../shared/we_dbfileop.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libwriteengine_la-we_dbfileop.Tpo" "$(DEPDIR)/libwriteengine_la-we_dbfileop.Plo"; else rm -f "$(DEPDIR)/libwriteengine_la-we_dbfileop.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../shared/we_dbfileop.cpp' object='libwriteengine_la-we_dbfileop.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwriteengine_la-we_dbfileop.lo `test -f '../shared/we_dbfileop.cpp' || echo '$(srcdir)/'`../shared/we_dbfileop.cpp
libwriteengine_la-we_define.lo: ../shared/we_define.cpp
@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwriteengine_la-we_define.lo -MD -MP -MF "$(DEPDIR)/libwriteengine_la-we_define.Tpo" -c -o libwriteengine_la-we_define.lo `test -f '../shared/we_define.cpp' || echo '$(srcdir)/'`../shared/we_define.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libwriteengine_la-we_define.Tpo" "$(DEPDIR)/libwriteengine_la-we_define.Plo"; else rm -f "$(DEPDIR)/libwriteengine_la-we_define.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../shared/we_define.cpp' object='libwriteengine_la-we_define.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwriteengine_la-we_define.lo `test -f '../shared/we_define.cpp' || echo '$(srcdir)/'`../shared/we_define.cpp
libwriteengine_la-we_fileop.lo: ../shared/we_fileop.cpp
@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwriteengine_la-we_fileop.lo -MD -MP -MF "$(DEPDIR)/libwriteengine_la-we_fileop.Tpo" -c -o libwriteengine_la-we_fileop.lo `test -f '../shared/we_fileop.cpp' || echo '$(srcdir)/'`../shared/we_fileop.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libwriteengine_la-we_fileop.Tpo" "$(DEPDIR)/libwriteengine_la-we_fileop.Plo"; else rm -f "$(DEPDIR)/libwriteengine_la-we_fileop.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../shared/we_fileop.cpp' object='libwriteengine_la-we_fileop.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwriteengine_la-we_fileop.lo `test -f '../shared/we_fileop.cpp' || echo '$(srcdir)/'`../shared/we_fileop.cpp
libwriteengine_la-we_log.lo: ../shared/we_log.cpp
@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwriteengine_la-we_log.lo -MD -MP -MF "$(DEPDIR)/libwriteengine_la-we_log.Tpo" -c -o libwriteengine_la-we_log.lo `test -f '../shared/we_log.cpp' || echo '$(srcdir)/'`../shared/we_log.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libwriteengine_la-we_log.Tpo" "$(DEPDIR)/libwriteengine_la-we_log.Plo"; else rm -f "$(DEPDIR)/libwriteengine_la-we_log.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../shared/we_log.cpp' object='libwriteengine_la-we_log.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwriteengine_la-we_log.lo `test -f '../shared/we_log.cpp' || echo '$(srcdir)/'`../shared/we_log.cpp
libwriteengine_la-we_stats.lo: ../shared/we_stats.cpp
@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwriteengine_la-we_stats.lo -MD -MP -MF "$(DEPDIR)/libwriteengine_la-we_stats.Tpo" -c -o libwriteengine_la-we_stats.lo `test -f '../shared/we_stats.cpp' || echo '$(srcdir)/'`../shared/we_stats.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libwriteengine_la-we_stats.Tpo" "$(DEPDIR)/libwriteengine_la-we_stats.Plo"; else rm -f "$(DEPDIR)/libwriteengine_la-we_stats.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../shared/we_stats.cpp' object='libwriteengine_la-we_stats.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwriteengine_la-we_stats.lo `test -f '../shared/we_stats.cpp' || echo '$(srcdir)/'`../shared/we_stats.cpp
libwriteengine_la-we_bulkrollbackmgr.lo: ../shared/we_bulkrollbackmgr.cpp
@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwriteengine_la-we_bulkrollbackmgr.lo -MD -MP -MF "$(DEPDIR)/libwriteengine_la-we_bulkrollbackmgr.Tpo" -c -o libwriteengine_la-we_bulkrollbackmgr.lo `test -f '../shared/we_bulkrollbackmgr.cpp' || echo '$(srcdir)/'`../shared/we_bulkrollbackmgr.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libwriteengine_la-we_bulkrollbackmgr.Tpo" "$(DEPDIR)/libwriteengine_la-we_bulkrollbackmgr.Plo"; else rm -f "$(DEPDIR)/libwriteengine_la-we_bulkrollbackmgr.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../shared/we_bulkrollbackmgr.cpp' object='libwriteengine_la-we_bulkrollbackmgr.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwriteengine_la-we_bulkrollbackmgr.lo `test -f '../shared/we_bulkrollbackmgr.cpp' || echo '$(srcdir)/'`../shared/we_bulkrollbackmgr.cpp
libwriteengine_la-we_simplesyslog.lo: ../shared/we_simplesyslog.cpp
@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwriteengine_la-we_simplesyslog.lo -MD -MP -MF "$(DEPDIR)/libwriteengine_la-we_simplesyslog.Tpo" -c -o libwriteengine_la-we_simplesyslog.lo `test -f '../shared/we_simplesyslog.cpp' || echo '$(srcdir)/'`../shared/we_simplesyslog.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libwriteengine_la-we_simplesyslog.Tpo" "$(DEPDIR)/libwriteengine_la-we_simplesyslog.Plo"; else rm -f "$(DEPDIR)/libwriteengine_la-we_simplesyslog.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../shared/we_simplesyslog.cpp' object='libwriteengine_la-we_simplesyslog.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwriteengine_la-we_simplesyslog.lo `test -f '../shared/we_simplesyslog.cpp' || echo '$(srcdir)/'`../shared/we_simplesyslog.cpp
libwriteengine_la-we_bulkrollbackfilecompressed.lo: ../shared/we_bulkrollbackfilecompressed.cpp
@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwriteengine_la-we_bulkrollbackfilecompressed.lo -MD -MP -MF "$(DEPDIR)/libwriteengine_la-we_bulkrollbackfilecompressed.Tpo" -c -o libwriteengine_la-we_bulkrollbackfilecompressed.lo `test -f '../shared/we_bulkrollbackfilecompressed.cpp' || echo '$(srcdir)/'`../shared/we_bulkrollbackfilecompressed.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libwriteengine_la-we_bulkrollbackfilecompressed.Tpo" "$(DEPDIR)/libwriteengine_la-we_bulkrollbackfilecompressed.Plo"; else rm -f "$(DEPDIR)/libwriteengine_la-we_bulkrollbackfilecompressed.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../shared/we_bulkrollbackfilecompressed.cpp' object='libwriteengine_la-we_bulkrollbackfilecompressed.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwriteengine_la-we_bulkrollbackfilecompressed.lo `test -f '../shared/we_bulkrollbackfilecompressed.cpp' || echo '$(srcdir)/'`../shared/we_bulkrollbackfilecompressed.cpp
libwriteengine_la-we_bulkrollbackfilecompressedhdfs.lo: ../shared/we_bulkrollbackfilecompressedhdfs.cpp
@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwriteengine_la-we_bulkrollbackfilecompressedhdfs.lo -MD -MP -MF "$(DEPDIR)/libwriteengine_la-we_bulkrollbackfilecompressedhdfs.Tpo" -c -o libwriteengine_la-we_bulkrollbackfilecompressedhdfs.lo `test -f '../shared/we_bulkrollbackfilecompressedhdfs.cpp' || echo '$(srcdir)/'`../shared/we_bulkrollbackfilecompressedhdfs.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libwriteengine_la-we_bulkrollbackfilecompressedhdfs.Tpo" "$(DEPDIR)/libwriteengine_la-we_bulkrollbackfilecompressedhdfs.Plo"; else rm -f "$(DEPDIR)/libwriteengine_la-we_bulkrollbackfilecompressedhdfs.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../shared/we_bulkrollbackfilecompressedhdfs.cpp' object='libwriteengine_la-we_bulkrollbackfilecompressedhdfs.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwriteengine_la-we_bulkrollbackfilecompressedhdfs.lo `test -f '../shared/we_bulkrollbackfilecompressedhdfs.cpp' || echo '$(srcdir)/'`../shared/we_bulkrollbackfilecompressedhdfs.cpp
libwriteengine_la-we_bulkrollbackfile.lo: ../shared/we_bulkrollbackfile.cpp
@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwriteengine_la-we_bulkrollbackfile.lo -MD -MP -MF "$(DEPDIR)/libwriteengine_la-we_bulkrollbackfile.Tpo" -c -o libwriteengine_la-we_bulkrollbackfile.lo `test -f '../shared/we_bulkrollbackfile.cpp' || echo '$(srcdir)/'`../shared/we_bulkrollbackfile.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libwriteengine_la-we_bulkrollbackfile.Tpo" "$(DEPDIR)/libwriteengine_la-we_bulkrollbackfile.Plo"; else rm -f "$(DEPDIR)/libwriteengine_la-we_bulkrollbackfile.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../shared/we_bulkrollbackfile.cpp' object='libwriteengine_la-we_bulkrollbackfile.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwriteengine_la-we_bulkrollbackfile.lo `test -f '../shared/we_bulkrollbackfile.cpp' || echo '$(srcdir)/'`../shared/we_bulkrollbackfile.cpp
libwriteengine_la-we_rbmetawriter.lo: ../shared/we_rbmetawriter.cpp
@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwriteengine_la-we_rbmetawriter.lo -MD -MP -MF "$(DEPDIR)/libwriteengine_la-we_rbmetawriter.Tpo" -c -o libwriteengine_la-we_rbmetawriter.lo `test -f '../shared/we_rbmetawriter.cpp' || echo '$(srcdir)/'`../shared/we_rbmetawriter.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libwriteengine_la-we_rbmetawriter.Tpo" "$(DEPDIR)/libwriteengine_la-we_rbmetawriter.Plo"; else rm -f "$(DEPDIR)/libwriteengine_la-we_rbmetawriter.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../shared/we_rbmetawriter.cpp' object='libwriteengine_la-we_rbmetawriter.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwriteengine_la-we_rbmetawriter.lo `test -f '../shared/we_rbmetawriter.cpp' || echo '$(srcdir)/'`../shared/we_rbmetawriter.cpp
libwriteengine_la-we_dbrootextenttracker.lo: ../shared/we_dbrootextenttracker.cpp
@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwriteengine_la-we_dbrootextenttracker.lo -MD -MP -MF "$(DEPDIR)/libwriteengine_la-we_dbrootextenttracker.Tpo" -c -o libwriteengine_la-we_dbrootextenttracker.lo `test -f '../shared/we_dbrootextenttracker.cpp' || echo '$(srcdir)/'`../shared/we_dbrootextenttracker.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libwriteengine_la-we_dbrootextenttracker.Tpo" "$(DEPDIR)/libwriteengine_la-we_dbrootextenttracker.Plo"; else rm -f "$(DEPDIR)/libwriteengine_la-we_dbrootextenttracker.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../shared/we_dbrootextenttracker.cpp' object='libwriteengine_la-we_dbrootextenttracker.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwriteengine_la-we_dbrootextenttracker.lo `test -f '../shared/we_dbrootextenttracker.cpp' || echo '$(srcdir)/'`../shared/we_dbrootextenttracker.cpp
libwriteengine_la-we_confirmhdfsdbfile.lo: ../shared/we_confirmhdfsdbfile.cpp
@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwriteengine_la-we_confirmhdfsdbfile.lo -MD -MP -MF "$(DEPDIR)/libwriteengine_la-we_confirmhdfsdbfile.Tpo" -c -o libwriteengine_la-we_confirmhdfsdbfile.lo `test -f '../shared/we_confirmhdfsdbfile.cpp' || echo '$(srcdir)/'`../shared/we_confirmhdfsdbfile.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libwriteengine_la-we_confirmhdfsdbfile.Tpo" "$(DEPDIR)/libwriteengine_la-we_confirmhdfsdbfile.Plo"; else rm -f "$(DEPDIR)/libwriteengine_la-we_confirmhdfsdbfile.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../shared/we_confirmhdfsdbfile.cpp' object='libwriteengine_la-we_confirmhdfsdbfile.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwriteengine_la-we_confirmhdfsdbfile.lo `test -f '../shared/we_confirmhdfsdbfile.cpp' || echo '$(srcdir)/'`../shared/we_confirmhdfsdbfile.cpp
libwriteengine_la-we_dctnry.lo: ../dictionary/we_dctnry.cpp
@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwriteengine_la-we_dctnry.lo -MD -MP -MF "$(DEPDIR)/libwriteengine_la-we_dctnry.Tpo" -c -o libwriteengine_la-we_dctnry.lo `test -f '../dictionary/we_dctnry.cpp' || echo '$(srcdir)/'`../dictionary/we_dctnry.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libwriteengine_la-we_dctnry.Tpo" "$(DEPDIR)/libwriteengine_la-we_dctnry.Plo"; else rm -f "$(DEPDIR)/libwriteengine_la-we_dctnry.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../dictionary/we_dctnry.cpp' object='libwriteengine_la-we_dctnry.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwriteengine_la-we_dctnry.lo `test -f '../dictionary/we_dctnry.cpp' || echo '$(srcdir)/'`../dictionary/we_dctnry.cpp
libwriteengine_la-we_xmlop.lo: ../xml/we_xmlop.cpp
@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwriteengine_la-we_xmlop.lo -MD -MP -MF "$(DEPDIR)/libwriteengine_la-we_xmlop.Tpo" -c -o libwriteengine_la-we_xmlop.lo `test -f '../xml/we_xmlop.cpp' || echo '$(srcdir)/'`../xml/we_xmlop.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libwriteengine_la-we_xmlop.Tpo" "$(DEPDIR)/libwriteengine_la-we_xmlop.Plo"; else rm -f "$(DEPDIR)/libwriteengine_la-we_xmlop.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../xml/we_xmlop.cpp' object='libwriteengine_la-we_xmlop.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwriteengine_la-we_xmlop.lo `test -f '../xml/we_xmlop.cpp' || echo '$(srcdir)/'`../xml/we_xmlop.cpp
libwriteengine_la-we_xmljob.lo: ../xml/we_xmljob.cpp
@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwriteengine_la-we_xmljob.lo -MD -MP -MF "$(DEPDIR)/libwriteengine_la-we_xmljob.Tpo" -c -o libwriteengine_la-we_xmljob.lo `test -f '../xml/we_xmljob.cpp' || echo '$(srcdir)/'`../xml/we_xmljob.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libwriteengine_la-we_xmljob.Tpo" "$(DEPDIR)/libwriteengine_la-we_xmljob.Plo"; else rm -f "$(DEPDIR)/libwriteengine_la-we_xmljob.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../xml/we_xmljob.cpp' object='libwriteengine_la-we_xmljob.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwriteengine_la-we_xmljob.lo `test -f '../xml/we_xmljob.cpp' || echo '$(srcdir)/'`../xml/we_xmljob.cpp
libwriteengine_la-we_xmlgendata.lo: ../xml/we_xmlgendata.cpp
@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwriteengine_la-we_xmlgendata.lo -MD -MP -MF "$(DEPDIR)/libwriteengine_la-we_xmlgendata.Tpo" -c -o libwriteengine_la-we_xmlgendata.lo `test -f '../xml/we_xmlgendata.cpp' || echo '$(srcdir)/'`../xml/we_xmlgendata.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libwriteengine_la-we_xmlgendata.Tpo" "$(DEPDIR)/libwriteengine_la-we_xmlgendata.Plo"; else rm -f "$(DEPDIR)/libwriteengine_la-we_xmlgendata.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../xml/we_xmlgendata.cpp' object='libwriteengine_la-we_xmlgendata.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwriteengine_la-we_xmlgendata.lo `test -f '../xml/we_xmlgendata.cpp' || echo '$(srcdir)/'`../xml/we_xmlgendata.cpp
libwriteengine_la-we_xmlgenproc.lo: ../xml/we_xmlgenproc.cpp
@am__fastdepCXX_TRUE@ if $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libwriteengine_la-we_xmlgenproc.lo -MD -MP -MF "$(DEPDIR)/libwriteengine_la-we_xmlgenproc.Tpo" -c -o libwriteengine_la-we_xmlgenproc.lo `test -f '../xml/we_xmlgenproc.cpp' || echo '$(srcdir)/'`../xml/we_xmlgenproc.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/libwriteengine_la-we_xmlgenproc.Tpo" "$(DEPDIR)/libwriteengine_la-we_xmlgenproc.Plo"; else rm -f "$(DEPDIR)/libwriteengine_la-we_xmlgenproc.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../xml/we_xmlgenproc.cpp' object='libwriteengine_la-we_xmlgenproc.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libwriteengine_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libwriteengine_la-we_xmlgenproc.lo `test -f '../xml/we_xmlgenproc.cpp' || echo '$(srcdir)/'`../xml/we_xmlgenproc.cpp
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
distclean-libtool:
-rm -f libtool
uninstall-info-am:
install-includeHEADERS: $(include_HEADERS)
@$(NORMAL_INSTALL)
test -z "$(includedir)" || $(mkdir_p) "$(DESTDIR)$(includedir)"
@list='$(include_HEADERS)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=$(am__strip_dir) \
echo " $(includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includedir)/$$f'"; \
$(includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \
done
uninstall-includeHEADERS:
@$(NORMAL_UNINSTALL)
@list='$(include_HEADERS)'; for p in $$list; do \
f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(includedir)/$$f'"; \
rm -f "$(DESTDIR)$(includedir)/$$f"; \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$tags $$unique; \
fi
ctags: CTAGS
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
list='$(DISTFILES)'; for file in $$list; do \
case $$file in \
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
esac; \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
$(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
if test -d $$d/$$file; then \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-am
all-am: Makefile $(LTLIBRARIES) $(HEADERS)
installdirs:
for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)"; do \
test -z "$$dir" || $(mkdir_p) "$$dir"; \
done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
mostlyclean-am
distclean: distclean-am
-rm -rf ./$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-libtool distclean-tags
dvi: dvi-am
dvi-am:
html: html-am
info: info-am
info-am:
install-data-am: install-includeHEADERS
install-exec-am: install-libLTLIBRARIES
install-info: install-info-am
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -rf ./$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
mostlyclean-libtool
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-includeHEADERS uninstall-info-am \
uninstall-libLTLIBRARIES
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
clean-libLTLIBRARIES clean-libtool ctags distclean \
distclean-compile distclean-generic distclean-libtool \
distclean-tags distdir dvi dvi-am html html-am info info-am \
install install-am install-data install-data-am install-exec \
install-exec-am install-includeHEADERS install-info \
install-info-am install-libLTLIBRARIES install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
pdf pdf-am ps ps-am tags uninstall uninstall-am \
uninstall-includeHEADERS uninstall-info-am \
uninstall-libLTLIBRARIES
test:
coverage:
leakcheck:
docs:
bootstrap: install-data-am
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,340 @@
/* Copyright (C) 2014 InfiniDB, Inc.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; version 2 of
the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
MA 02110-1301, USA. */
// $Id: we_colop.h 4728 2013-08-08 19:26:10Z chao $
/** @file */
#ifndef _WE_COLOP_H_
#define _WE_COLOP_H_
#include <stdlib.h>
#include "we_dbfileop.h"
#include "brmtypes.h"
#include "we_dbrootextenttracker.h"
#include "we_tablemetadata.h"
#include "we_dctnry.h"
#if defined(_MSC_VER) && defined(WRITEENGINE_DLLEXPORT)
#define EXPORT __declspec(dllexport)
#else
#define EXPORT
#endif
/** Namespace WriteEngine */
namespace WriteEngine
{
class Log;
//const int COL_DATATYPE_NUM = 15;
//const char ColDataTypeStr[COL_DATATYPE_NUM][20] = { "bit", "tinyint", "char", "smallint", "decimal", "medint", "integer", "float", "date", "bigint",
// "double", "datetime", "varchar", "clob", "blob" };
/** Class ColumnOp */
class ColumnOp : public DbFileOp
{
public:
/**
* @brief Constructor
*/
EXPORT ColumnOp();
EXPORT ColumnOp(Log* logger);
/**
* @brief Default Destructor
*/
EXPORT virtual ~ColumnOp();
EXPORT virtual int allocRowId(const TxnID& txnid,
bool useStartingExtent,
Column& column,
uint64_t totalRow,
RID* rowIdArray,
HWM& hwm,
bool& newExtent,
uint64_t& rowsLeft,
HWM& newHwm,
bool& newFile,
ColStructList& newColStructList,
DctnryStructList& newDctnryStructList,
std::vector<boost::shared_ptr<DBRootExtentTracker> > & dbRootExtentTrackers,
bool insertSelect = false,
bool isBatchInsert = false,
OID tableOid = 0, bool isFirstBatchPm = false);
/**
* @brief Create column file(s)
*/
EXPORT virtual int createColumn(Column& column,
int colNo,
int colWidth,
execplan::CalpontSystemCatalog::ColDataType colDataType,
ColType colType,
FID dataFid,
uint16_t dbRoot,
uint32_t partition);
/**
* @brief Fills up a column with null/default values in all non-empty rows as the reference column. The reference column
* would typically be another column of the same table.
*
* @param column The new colum
* @param refCol The reference column for identifying valid rows
* @param defaultVal The default value of the new column
* @param dictOid The dictionary store OID for a dictionary column
* @param dictColWidth The dictionary string width for a dictionary column
*/
//BUG931
EXPORT virtual int fillColumn(const TxnID& txnid,
Column& column,
Column& refCol,
void* defaultVal,
Dctnry* dctnry,
ColumnOp* refColOp,
const OID dictOid = 0,
const int dictColWidth = 0,
const std::string defaultValStr = "",
bool autoincrement = false);
/**
* @brief Create a table file
*/
EXPORT virtual int createTable() const;
/**
* @brief Drop column file(s)
*/
EXPORT virtual int dropColumn(const FID dataFid);
/**
* @brief Drop column and dictionary file(s)
*/
EXPORT virtual int dropFiles(const std::vector<int32_t>& dataFids);
/**
* @brief Delete file(s) for the given partition
*/
EXPORT virtual int dropPartitions(const std::vector<OID>& dataFids,
const std::vector<BRM::PartitionInfo>& partitions);
EXPORT virtual int deleteOIDsFromExtentMap(const std::vector<int32_t>& dataFids);
/**
* @brief Drop a table file
*/
int dropTable() const { return NO_ERROR; }
/**
* @brief Expand the abbreviated extent to a full extent for this column.
*/
EXPORT virtual int expandAbbrevExtent(const Column& column);
/**
* @brief Add an extent to the specified column OID and DBRoot.
* When this function returns, the file position will be located at the
* end of the file. If the applicable column segment file does not exist,
* extendColumn() will create the new segment file.
* The extent must already exist in the extentmap prior to calling this fctn.
*
* @param column Column struct with input column attributes.
* @param leaveFileOpen Leave the db file open when leaving this function
* @param hwm The fbo of the column segment file where the new extent begins
* @param startLbid The starting LBID for the new extent.
* @param allocSize Number of blocks to be written for an extent
* @param dbRoot The DBRoot of the file with the new extent.
* @param partition Partition num of the file with the new extent.
* @param segment The segment number of the file with the new extent.
* @param segFile (out) Name of segment file to which the extent is added.
* @param pFile (out) FILE ptr to the file where the extent is added.
* @param newFile (out) Indicates if extent was added to new or existing file
* @param hdrs (out) Contents of headers if file is compressed.
* @return returns NO_ERROR if success.
*/
EXPORT int extendColumn(const Column& column,
bool leaveFileOpen,
HWM hwm,
BRM::LBID_t startLbid,
int allocSize,
uint16_t dbRoot,
uint32_t partition,
uint16_t segment,
std::string& segFile,
IDBDataFile*& pFile,
bool& newFile,
char* hdrs = NULL);
/**
* @brief Add an extent to the OID specified in the column argument.
* When this function returns, the file position will be located at the
* end of the file.
*
* @param column Column struct with input column attributes.
* @param dbRoot (in) The DBRoot of the file with the new extent.
* @param partition (in) The partition num of the file with the new extent.
* @param segment (in) The segment number of the file with the new extent.
* @param segFile (out) Name of segment file to which the extent is added.
* @param startLbid (out) The starting LBID for the new extent.
* @param newFile (out) Indicates if extent was added to new or existing file
* @param hdsr (out) Contents of headers if file is compressed.
* @param allocSize (out) number of blocks to be written for an extent
* @return returns NO_ERROR if success.
*/
EXPORT int addExtent(const Column& column,
uint16_t dbRoot,
uint32_t partition,
uint16_t segment,
std::string& segFile,
BRM::LBID_t& startLbid,
bool& newFile,
int& allocSize,
char* hdrs = NULL);
/**
* @brief Get columne data type
*/
EXPORT virtual bool getColDataType(const char* name, execplan::CalpontSystemCatalog::ColDataType& colDataType) const;
/**
* @brief Initialize the column
*/
EXPORT virtual void initColumn(Column& column) const;
/**
* @brief Check whether it is an empty row
*/
EXPORT virtual bool isEmptyRow(unsigned char* buf, int offset, const Column& column);
/**
* @brief Check whether it is a valid column
*/
EXPORT virtual bool isValid(Column& column) const;
/**
* @brief Open column file, segFile is set to the name of the column
* segment file that is opened.
*/
EXPORT virtual int openColumnFile(Column& column,
std::string& segFile,
bool useTmpSuffix,
int ioBuffSize=DEFAULT_BUFSIZ) const;
/**
* @brief Open table file
*/
int openTableFile() const { return NO_ERROR; }
/**
* @brief Delete a file
*/
EXPORT virtual void setColParam(Column& column, int colNo = 0,
int colWidth = 0,
execplan::CalpontSystemCatalog::ColDataType colDataType = execplan::CalpontSystemCatalog::INT,
ColType colType = WR_INT,
FID dataFid = 0,
int comppre = 0,
uint16_t dbRoot = 0,
uint32_t partition = 0,
uint16_t segment = 0) const;
/**
* @brief Write row(s)
*/
EXPORT virtual int writeRow(Column& curCol,
uint64_t totalRow,
const RID* rowIdArray,
const void* valArray,
bool bDelete = false);
/**
* @brief Write row(s) for update and delete @Bug 1886,2870
*/
EXPORT virtual int writeRows(Column& curCol,
uint64_t totalRow,
const RIDList& ridList,
const void* valArray,
const void* oldValArray=0,
bool bDelete = false);
/**
* @brief Write row(s) for update and delete @Bug 1886,2870
*/
EXPORT virtual int writeRowsValues(Column& curCol,
uint64_t totalRow,
const RIDList& ridList,
const void* valArray);
/**
* @brief Test if the pFile is an abbreviated extent.
*/
virtual bool abbreviatedExtent(IDBDataFile* pFile, int colWidth) const = 0;
/**
* @brief Caculate the number of blocks in file.
*/
virtual int blocksInFile(IDBDataFile* pFile) const = 0;
/**
* @brief Clear a column
*/
EXPORT void clearColumn(Column& column) const;
/**
* @brief open a data file of column
*/
virtual IDBDataFile* openFile(const Column& column, uint16_t dbRoot, uint32_t partition,
uint16_t segment, std::string& segFile, bool useTmpSuffix, const char* mode = "r+b",
int ioBuffSize = DEFAULT_BUFSIZ) const = 0;
/**
* @brief backup blocks to version buffer
*/
int writeVB(IDBDataFile* pSource, const OID sourceOid, IDBDataFile* pTarget, const OID targetOid,
const std::vector<uint32_t>& fboList, const BRM::VBRange& freeList,
size_t& nBlocksProcessed, const size_t fboCurrentOffset);
/**
* @brief restore blocks from version buffer
*/
int copyVB(IDBDataFile* pSource, const BRM::VER_t txnD, const OID oid, std::vector<uint32_t>& fboList,
std::vector<BRM::LBIDRange>& rangeList);
protected:
/**
* @brief close column file
*/
EXPORT virtual void closeColumnFile(Column& column) const;
/**
* @brief populate readBuf with data in block #lbid
*/
virtual int readBlock(IDBDataFile* pFile, unsigned char* readBuf, const uint64_t fbo) = 0;
/**
* @brief output writeBuf to pFile starting at position fbo
*/
virtual int saveBlock(IDBDataFile* pFile, const unsigned char* writeBuf, const uint64_t fbo) = 0;
private:
};
} //end of namespace
#undef EXPORT
#endif // _WE_COLOP_H_

View File

@@ -0,0 +1,211 @@
/* Copyright (C) 2014 InfiniDB, Inc.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; version 2 of
the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
MA 02110-1301, USA. */
// $Id: we_colopcompress.cpp 4726 2013-08-07 03:38:36Z bwilkinson $
/** @file */
#include <stdio.h>
#include <string.h>
#include <vector>
#include "we_log.h"
#include "we_chunkmanager.h"
#include "idbcompress.h"
#include "we_colopcompress.h"
namespace WriteEngine
{
class ChunkManager;
// --------------------------------------------------------------------------------------------
// ColumnOp with compression type 0
// --------------------------------------------------------------------------------------------
/**
* Constructor
*/
ColumnOpCompress0::ColumnOpCompress0()
{
m_compressionType = 0;
}
ColumnOpCompress0::ColumnOpCompress0(Log* logger)
{
m_compressionType = 0;
setDebugLevel( logger->getDebugLevel() );
setLogger ( logger );
}
/**
* Default Destructor
*/
ColumnOpCompress0::~ColumnOpCompress0()
{}
// @bug 5572 - HDFS usage: add *.tmp file backup flag
IDBDataFile* ColumnOpCompress0::openFile(
const Column& column, const uint16_t dbRoot, const uint32_t partition, const uint16_t segment,
std::string& segFile, bool useTmpSuffix, const char* mode, const int ioBuffSize) const
{
return FileOp::openFile(column.dataFile.fid, dbRoot, partition, segment, segFile,
mode, column.colWidth, useTmpSuffix);
}
bool ColumnOpCompress0::abbreviatedExtent(IDBDataFile* pFile, int colWidth) const
{
long long fsize;
if (getFileSize(pFile, fsize) == NO_ERROR)
{
return (fsize == INITIAL_EXTENT_ROWS_TO_DISK*colWidth);
}
// TODO: Log error
return false;
}
int ColumnOpCompress0::blocksInFile(IDBDataFile* pFile) const
{
long long fsize;
if (getFileSize(pFile, fsize) == NO_ERROR)
{
return (fsize / BYTE_PER_BLOCK);
}
// TODO: Log error
return 0;
}
int ColumnOpCompress0::readBlock(IDBDataFile* pFile, unsigned char* readBuf, const uint64_t fbo)
{
return readDBFile(pFile, readBuf, fbo, true);
}
int ColumnOpCompress0::saveBlock(IDBDataFile* pFile, const unsigned char* writeBuf, const uint64_t fbo)
{
return writeDBFileFbo(pFile, writeBuf, fbo, 1);
}
// --------------------------------------------------------------------------------------------
// ColumnOp with compression type 1
// --------------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------------
/**
* Constructor
*/
ColumnOpCompress1::ColumnOpCompress1(Log* logger)
{
m_compressionType = 1;
m_chunkManager = new ChunkManager();
if (logger)
{
setDebugLevel( logger->getDebugLevel() );
setLogger ( logger );
}
m_chunkManager->fileOp(this);
}
/**
* Default Destructor
*/
ColumnOpCompress1::~ColumnOpCompress1()
{
if (m_chunkManager)
{
delete m_chunkManager;
}
}
// @bug 5572 - HDFS usage: add *.tmp file backup flag
IDBDataFile* ColumnOpCompress1::openFile(
const Column& column, const uint16_t dbRoot, const uint32_t partition, const uint16_t segment,
std::string& segFile, bool useTmpSuffix, const char* mode, const int ioBuffSize) const
{
return m_chunkManager->getFilePtr(column, dbRoot, partition, segment, segFile,
mode, ioBuffSize, useTmpSuffix);
}
bool ColumnOpCompress1::abbreviatedExtent(IDBDataFile* pFile, int colWidth) const
{
return (blocksInFile(pFile) == INITIAL_EXTENT_ROWS_TO_DISK*colWidth/BYTE_PER_BLOCK);
}
int ColumnOpCompress1::blocksInFile(IDBDataFile* pFile) const
{
CompFileHeader compFileHeader;
readHeaders(pFile, compFileHeader.fControlData, compFileHeader.fPtrSection);
compress::IDBCompressInterface compressor;
return compressor.getBlockCount(compFileHeader.fControlData);
}
int ColumnOpCompress1::readBlock(IDBDataFile* pFile, unsigned char* readBuf, const uint64_t fbo)
{
return m_chunkManager->readBlock(pFile, readBuf, fbo);
}
int ColumnOpCompress1::saveBlock(IDBDataFile* pFile, const unsigned char* writeBuf, const uint64_t fbo)
{
return m_chunkManager->saveBlock(pFile, writeBuf, fbo);
}
int ColumnOpCompress1::flushFile(int rc, std::map<FID,FID> & columnOids)
{
return m_chunkManager->flushChunks(rc, columnOids);
}
int ColumnOpCompress1::expandAbbrevColumnExtent(
IDBDataFile* pFile, uint16_t dbRoot, uint64_t emptyVal, int width)
{
// update the uncompressed initial chunk to full chunk
RETURN_ON_ERROR(m_chunkManager->expandAbbrevColumnExtent(pFile, emptyVal, width));
// let the base to physically expand extent.
return FileOp::expandAbbrevColumnExtent(pFile, dbRoot, emptyVal, width);
}
int ColumnOpCompress1::updateColumnExtent(IDBDataFile* pFile, int nBlocks)
{
return m_chunkManager->updateColumnExtent(pFile, nBlocks);
}
void ColumnOpCompress1::closeColumnFile(Column& column) const
{
// Leave file closing to chunk manager.
column.dataFile.pFile = NULL;
}
} //end of namespace

View File

@@ -0,0 +1,180 @@
/* Copyright (C) 2014 InfiniDB, Inc.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; version 2 of
the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
MA 02110-1301, USA. */
// $Id: we_colopcompress.h 4726 2013-08-07 03:38:36Z bwilkinson $
/** @file */
#ifndef _WE_COLOP_COMPRESS_H_
#define _WE_COLOP_COMPRESS_H_
#include <stdlib.h>
#include "we_colop.h"
#include "we_chunkmanager.h"
#if defined(_MSC_VER) && defined(WRITEENGINE_DLLEXPORT)
#define EXPORT __declspec(dllexport)
#else
#define EXPORT
#endif
/** Namespace WriteEngine */
namespace WriteEngine
{
/** Class ColumnOpCompress0 */
class ColumnOpCompress0 : public ColumnOp
{
public:
/**
* @brief Constructor
*/
EXPORT ColumnOpCompress0();
EXPORT ColumnOpCompress0(Log* logger);
/**
* @brief Default Destructor
*/
EXPORT virtual ~ColumnOpCompress0();
/**
* @brief virtual method in ColumnOp
*/
IDBDataFile* openFile(const Column& column, uint16_t dbRoot, uint32_t partition,
uint16_t segment, std::string& segFile, bool useTmpSuffix, const char* mode = "r+b",
int ioBuffSize = DEFAULT_BUFSIZ) const;
/**
* @brief virtual method in ColumnOp
*/
bool abbreviatedExtent(IDBDataFile* pFile, int colWidth) const;
/**
* @brief virtual method in ColumnOp
*/
int blocksInFile(IDBDataFile* pFile) const;
protected:
/**
* @brief virtual method in ColumnOp
*/
int readBlock(IDBDataFile* pFile, unsigned char* readBuf, const uint64_t fbo);
/**
* @brief virtual method in ColumnOp
*/
int saveBlock(IDBDataFile* pFile, const unsigned char* writeBuf, const uint64_t fbo);
private:
};
/** Class ColumnOpCompress1 */
class ColumnOpCompress1 : public ColumnOp
{
public:
/**
* @brief Constructor
*/
EXPORT ColumnOpCompress1(Log* logger=0);
/**
* @brief Default Destructor
*/
EXPORT virtual ~ColumnOpCompress1();
/**
* @brief virtual method in FileOp
*/
EXPORT int flushFile(int rc, std::map<FID,FID> & columnOids);
/**
* @brief virtual method in FileOp
*/
int expandAbbrevColumnExtent(IDBDataFile* pFile, uint16_t dbRoot, uint64_t emptyVal, int width);
/**
* @brief virtual method in ColumnOp
*/
IDBDataFile* openFile(const Column& column, uint16_t dbRoot, uint32_t partition,
uint16_t segment, std::string& segFile, bool useTmpSuffix, const char* mode = "r+b",
int ioBuffSize = DEFAULT_BUFSIZ) const;
/**
* @brief virtual method in ColumnOp
*/
bool abbreviatedExtent(IDBDataFile* pFile, int colWidth) const;
/**
* @brief virtual method in ColumnOp
*/
int blocksInFile(IDBDataFile* pFile) const;
// void chunkManager(ChunkManager* cm);
/**
* @brief virtual method in FileOp
*/
void setTransId(const TxnID& transId) {ColumnOp::setTransId(transId); if (m_chunkManager) m_chunkManager->setTransId(transId);}
void setBulkFlag(bool isBulkLoad) {m_chunkManager->setBulkFlag(isBulkLoad);};
void setFixFlag(bool isFix) {m_chunkManager->setFixFlag(isFix);};
protected:
/**
* @brief virtual method in FileOp
*/
int updateColumnExtent(IDBDataFile* pFile, int nBlocks);
/**
* @brief virtual method in ColumnOp
*/
void closeColumnFile(Column& column) const;
/**
* @brief virtual method in ColumnOp
*/
int readBlock(IDBDataFile* pFile, unsigned char* readBuf, const uint64_t fbo);
/**
* @brief virtual method in ColumnOp
*/
int saveBlock(IDBDataFile* pFile, const unsigned char* writeBuf, const uint64_t fbo);
/**
* @brief Set the IsInsert flag in the ChunkManager.
* This forces flush at end of statement. Used only for bulk insert.
*/
void setIsInsert(bool isInsert) { m_chunkManager->setIsInsert(isInsert); }
private:
};
} //end of namespace
#undef EXPORT
#endif // _WE_COLOP_COMPRESS_H_

View File

@@ -0,0 +1,181 @@
/* Copyright (C) 2014 InfiniDB, Inc.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; version 2 of
the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
MA 02110-1301, USA. */
// $Id: we_dctnrycompress.cpp 4726 2013-08-07 03:38:36Z bwilkinson $
/** @file */
#include <stdio.h>
#include <string.h>
#include <vector>
using namespace std;
#include "we_log.h"
#include "we_brm.h"
#include "we_chunkmanager.h"
#include "we_dctnrycompress.h"
namespace WriteEngine
{
class ChunkManager;
// -----------------------------------------------------------------------------
// Dctnry with compression type 0
// -----------------------------------------------------------------------------
/**
* Constructor
*/
DctnryCompress0::DctnryCompress0()
{
m_compressionType = 0;
}
DctnryCompress0::DctnryCompress0(Log* logger)
{
m_compressionType = 0;
setDebugLevel( logger->getDebugLevel() );
setLogger ( logger );
}
/**
* Default Destructor
*/
DctnryCompress0::~DctnryCompress0()
{}
// -----------------------------------------------------------------------------
// Dctnry with compression type 1
// -----------------------------------------------------------------------------
/**
* Constructor
*/
DctnryCompress1::DctnryCompress1(Log* logger)
{
m_compressionType = 1;
m_chunkManager = new ChunkManager();
if (logger)
{
setDebugLevel( logger->getDebugLevel() );
setLogger ( logger );
}
m_chunkManager->fileOp(this);
}
/**
* Default Destructor
*/
DctnryCompress1::~DctnryCompress1()
{
if (m_chunkManager)
delete m_chunkManager;
}
int DctnryCompress1::updateDctnryExtent(IDBDataFile* pFile, int nBlocks)
{
return m_chunkManager->updateDctnryExtent(pFile, nBlocks);
}
IDBDataFile* DctnryCompress1::createDctnryFile(const char *name,int width,const char *mode,int ioBuffSize)
{
return m_chunkManager->createDctnryFile(
m_dctnryOID, width, m_dbRoot, m_partition, m_segment, name, mode, ioBuffSize);
}
// @bug 5572 - HDFS usage: add *.tmp file backup flag
IDBDataFile* DctnryCompress1::openDctnryFile(bool useTmpSuffix)
{
return m_chunkManager->getFilePtr(
m_dctnryOID, m_dbRoot, m_partition, m_segment, m_segFileName, "r+b", DEFAULT_BUFSIZ, useTmpSuffix);
}
void DctnryCompress1::closeDctnryFile(bool doFlush, std::map<FID,FID> & columnOids)
{
if (doFlush)
m_chunkManager->flushChunks(NO_ERROR, columnOids);
else
m_chunkManager->cleanUp(columnOids);
m_dFile = NULL;
}
int DctnryCompress1::numOfBlocksInFile()
{
return m_chunkManager->getBlockCount(m_dFile);
}
int DctnryCompress1::readDBFile(IDBDataFile* pFile, unsigned char* readBuf, const uint64_t lbid,
const bool isFbo)
{
int fbo = lbid;
if (!isFbo)
RETURN_ON_ERROR(lbidToFbo(lbid, fbo));
return m_chunkManager->readBlock(pFile, readBuf, fbo);
}
int DctnryCompress1::writeDBFile(IDBDataFile* pFile, const unsigned char* writeBuf, const uint64_t lbid,
const int numOfBlock)
{
int fbo = 0;
RETURN_ON_ERROR(lbidToFbo(lbid, fbo));
for (int i = 0; i < numOfBlock; i++)
RETURN_ON_ERROR(m_chunkManager->saveBlock(pFile, writeBuf, fbo+i));
return NO_ERROR;
}
int DctnryCompress1::writeDBFileNoVBCache(IDBDataFile* pFile,
const unsigned char * writeBuf, const int fbo,
const int numOfBlock)
{
//int fbo = 0;
//RETURN_ON_ERROR(lbidToFbo(lbid, fbo));
for (int i = 0; i < numOfBlock; i++)
RETURN_ON_ERROR(m_chunkManager->saveBlock(pFile, writeBuf, fbo+i));
return NO_ERROR;
}
int DctnryCompress1::flushFile(int rc, std::map<FID,FID> & columnOids)
{
return m_chunkManager->flushChunks(rc, columnOids);
}
int DctnryCompress1::lbidToFbo(const uint64_t lbid, int& fbo)
{
uint16_t dbRoot;
uint16_t segment;
uint32_t partition;
return BRMWrapper::getInstance()->getFboOffset(lbid, dbRoot, partition, segment, fbo);
}
} //end of namespace

View File

@@ -0,0 +1,155 @@
/* Copyright (C) 2014 InfiniDB, Inc.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; version 2 of
the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
MA 02110-1301, USA. */
// $Id: we_dctnrycompress.h 4726 2013-08-07 03:38:36Z bwilkinson $
/** @file */
#ifndef _WE_DCTNRY_COMPRESS_H_
#define _WE_DCTNRY_COMPRESS_H_
#include <stdlib.h>
#include "we_dctnry.h"
#include "we_chunkmanager.h"
#if defined(_MSC_VER) && defined(WRITEENGINE_DLLEXPORT)
#define EXPORT __declspec(dllexport)
#else
#define EXPORT
#endif
/** Namespace WriteEngine */
namespace WriteEngine
{
/** Class DctnryCompress */
class DctnryCompress0 : public Dctnry
{
public:
/**
* @brief Constructor
*/
EXPORT DctnryCompress0();
EXPORT DctnryCompress0(Log* logger);
/**
* @brief Default Destructor
*/
EXPORT virtual ~DctnryCompress0();
};
/** Class DctnryCompress1 */
class DctnryCompress1 : public Dctnry
{
public:
/**
* @brief Constructor
*/
EXPORT DctnryCompress1(Log* logger=0);
/**
* @brief Default Destructor
*/
EXPORT virtual ~DctnryCompress1();
/**
* @brief virtual method in FileOp
*/
EXPORT int flushFile(int rc, std::map<FID,FID> & columnOids);
/**
* @brief virtual method in DBFileOp
*/
EXPORT int readDBFile(IDBDataFile* pFile, unsigned char* readBuf, const uint64_t lbid,
const bool isFbo = false );
/**
* @brief virtual method in DBFileOp
*/
EXPORT int writeDBFile(IDBDataFile* pFile, const unsigned char* writeBuf, const uint64_t lbid,
const int numOfBlock = 1);
/**
* @brief virtual method in DBFileOp
*/
EXPORT int writeDBFileNoVBCache(IDBDataFile* pFile,
const unsigned char * writeBuf, const int fbo,
const int numOfBlock = 1);
/**
* @brief virtual method in Dctnry
*/
IDBDataFile* createDctnryFile(const char *name, int width, const char *mode, int ioBuffSize);
/**
* @brief virtual method in Dctnry
*/
IDBDataFile* openDctnryFile(bool useTmpSuffix);
/**
* @brief virtual method in Dctnry
*/
void closeDctnryFile(bool doFlush, std::map<FID,FID> & columnOids);
/**
* @brief virtual method in Dctnry
*/
int numOfBlocksInFile();
/**
* @brief For bulkload to use
*/
void setMaxActiveChunkNum(unsigned int maxActiveChunkNum) { m_chunkManager->setMaxActiveChunkNum(maxActiveChunkNum); };
void setBulkFlag(bool isBulkLoad) {m_chunkManager->setBulkFlag(isBulkLoad);};
void setFixFlag(bool isFix) {m_chunkManager->setFixFlag(isFix);};
int checkFixLastDictChunk () { return m_chunkManager->checkFixLastDictChunk(m_dctnryOID, m_dbRoot, m_partition, m_segment); };
// void chunkManager(ChunkManager* cm);
/**
* @brief virtual method in FileOp
*/
void setTransId(const TxnID& transId) {Dctnry::setTransId(transId); if(m_chunkManager) m_chunkManager->setTransId(transId);}
/**
* @brief Set the IsInsert flag in the ChunkManager.
* This forces flush at end of statement. Used only for bulk insert.
*/
void setIsInsert(bool isInsert) { m_chunkManager->setIsInsert(isInsert); }
protected:
/**
* @brief virtual method in FileOp
*/
int updateDctnryExtent(IDBDataFile* pFile, int nBlocks);
/**
* @brief convert lbid to fbo
*/
int lbidToFbo(const uint64_t lbid, int& fbo);
};
} //end of namespace
#undef EXPORT
#endif // _WE_DCTNRY_COMPRESS_H_

View File

@@ -0,0 +1,108 @@
/* Copyright (C) 2014 InfiniDB, Inc.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; version 2 of
the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
MA 02110-1301, USA. */
// $Id$
//
/** @file */
#include <cassert>
#include <limits>
using namespace std;
#include <boost/thread/thread.hpp>
#include <boost/thread/mutex.hpp>
#include "we_tablemetadata.h"
namespace WriteEngine
{
/*static*/
boost::mutex TableMetaData::map_mutex;
/*static*/
TableMetaData::TableMetaDataMap TableMetaData::fTableMetaDataMap;
TableMetaData* TableMetaData::makeTableMetaData(uint32_t tableOid)
{
boost::mutex::scoped_lock lock(map_mutex);
TableMetaData* instance;
TableMetaDataMap::const_iterator it = fTableMetaDataMap.find(tableOid);
if (it == fTableMetaDataMap.end())
{
instance = new TableMetaData();
fTableMetaDataMap[tableOid] = instance;
return instance;
}
return it->second;
}
/* static */
void TableMetaData::removeTableMetaData(uint32_t tableOid)
{
boost::mutex::scoped_lock lock(map_mutex);
TableMetaDataMap::iterator it = fTableMetaDataMap.find(tableOid);
if (it != fTableMetaDataMap.end())
{
delete (*it).second;
fTableMetaDataMap.erase(it);
}
}
TableMetaData::TableMetaData()
{
}
TableMetaData::~TableMetaData()
{
}
ColExtsInfo & TableMetaData::getColExtsInfo (OID columnOid)
{
boost::mutex::scoped_lock lock(fColsExtsInfoLock);
ColsExtsInfoMap::iterator it = fColsExtsInfoMap.find(columnOid);
if (it != fColsExtsInfoMap.end())
{
return it->second;
}
else
{
ColExtsInfo colExtsInfo;
fColsExtsInfoMap[columnOid] = colExtsInfo;
return fColsExtsInfoMap[columnOid];
}
}
void TableMetaData::setColExtsInfo (OID columnOid, ColExtsInfo colExtsInfo)
{
boost::mutex::scoped_lock lock(fColsExtsInfoLock);
ColsExtsInfoMap::iterator it = fColsExtsInfoMap.find(columnOid);
if (it != fColsExtsInfoMap.end())
{
it->second = colExtsInfo;
}
else
{
fColsExtsInfoMap[columnOid] = colExtsInfo;
}
}
ColsExtsInfoMap& TableMetaData::getColsExtsInfoMap()
{
boost::mutex::scoped_lock lock(fColsExtsInfoLock);
return fColsExtsInfoMap;
}
} //end of namespace
// vim:ts=4 sw=4:

View File

@@ -0,0 +1,103 @@
/* Copyright (C) 2014 InfiniDB, Inc.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; version 2 of
the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
MA 02110-1301, USA. */
// $Id$
//
/** @file */
#ifndef WE_TABLEMETADATA_H__
#define WE_TABLEMETADATA_H__
#include <stdint.h>
#include "we_type.h"
#include "brmtypes.h"
#include <map>
#include <vector>
#if defined(_MSC_VER) && defined(WRITEENGINE_DLLEXPORT)
#define EXPORT __declspec(dllexport)
#else
#define EXPORT
#endif
namespace WriteEngine
{
struct ColExtInfo {
uint16_t dbRoot;
uint32_t partNum;
uint16_t segNum;
HWM hwm;
RID lastRid;
int64_t max;
int64_t min;
bool isNewExt;
bool current;
uint16_t compType;
bool isDict;
ColExtInfo() :
dbRoot(0),
partNum(0),
segNum(0),
hwm(0),
lastRid(0),
max(0),
min(0),
isNewExt(false),
current(true),
compType(2),
isDict(false)
{}
};
typedef std::vector<ColExtInfo> ColExtsInfo;
typedef std::map<OID, ColExtsInfo> ColsExtsInfoMap;
class TableMetaData
{
public:
typedef std::map <uint32_t, TableMetaData*> TableMetaDataMap;
EXPORT static TableMetaData* makeTableMetaData(uint32_t tableOid);
/** remove and delete the instance map to the tableOid
* @param tableOid
*/
EXPORT static void removeTableMetaData(uint32_t tableOid);
EXPORT ColExtsInfo & getColExtsInfo (OID columnOid);
EXPORT void setColExtsInfo (OID columnOid, ColExtsInfo colExtsInfo);
EXPORT ColsExtsInfoMap& getColsExtsInfoMap();
private:
/** Constuctors */
explicit TableMetaData();
explicit TableMetaData(const TableMetaData& rhs);
~TableMetaData();
static boost::mutex map_mutex;
static TableMetaDataMap fTableMetaDataMap;
boost::mutex fColsExtsInfoLock;
ColsExtsInfoMap fColsExtsInfoMap;
};
} //end of namespace
#undef EXPORT
#endif
// vim:ts=4 sw=4:

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,698 @@
/* Copyright (C) 2014 InfiniDB, Inc.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; version 2 of
the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
MA 02110-1301, USA. */
// $Id: writeengine.h 4726 2013-08-07 03:38:36Z bwilkinson $
/** @file */
#ifndef _WRITE_ENGINE_H_
#define _WRITE_ENGINE_H_
#include <stdio.h>
#include <string>
// the header file for fd
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
// end
#include <boost/lexical_cast.hpp>
#ifdef _MSC_VER
#include <unordered_map>
#else
#include <tr1/unordered_map>
#endif
#include "we_brm.h"
#include "we_colop.h"
#include "we_dctnry.h"
#include "we_index.h"
#include "we_tablemetadata.h"
#include "we_dbrootextenttracker.h"
#include "we_rbmetawriter.h"
#include "brmtypes.h"
#include "we_chunkmanager.h"
#define IO_BUFF_SIZE 81920
#if defined(_MSC_VER) && defined(WRITEENGINE_DLLEXPORT)
#define EXPORT __declspec(dllexport)
#else
#define EXPORT
#endif
/** Namespace WriteEngine */
namespace WriteEngine
{
//... Total compression operation: un_compresssed, compressed
const int UN_COMPRESSED_OP = 0;
const int COMPRESSED_OP = 1;
const int TOTAL_COMPRESS_OP = 2;
//...Forward class declarations
class Log;
// Bug4312. During transactions, we need to mark each extent modified as invalid.
// In order to prevent thrashing, marking the same extent everytime we get an lbid
// for an extent, we remember the starting lbid for each extent marked for the
// transaction. We also add a sequence number so we can age them out of the list
// for truly long running transactions.
struct TxnLBIDRec
{
std::tr1::unordered_map<BRM::LBID_t, uint32_t> m_LBIDMap;
uint32_t m_lastSeqnum;
uint32_t m_squashedLbids;
TxnLBIDRec() : m_lastSeqnum(0), m_squashedLbids(0) {};
~TxnLBIDRec() {}
void AddLBID(BRM::LBID_t lbid)
{
m_LBIDMap[lbid] = ++m_lastSeqnum;
}
};
typedef boost::shared_ptr<TxnLBIDRec> SP_TxnLBIDRec_t;
/** Class WriteEngineWrapper */
class WriteEngineWrapper : public WEObj
{
public:
/**
* @brief Constructor
*/
EXPORT WriteEngineWrapper();
EXPORT WriteEngineWrapper(const WriteEngineWrapper& rhs);
/**
* @brief Default Destructor
*/
EXPORT ~WriteEngineWrapper();
/************************************************************************
* Interface definitions
************************************************************************/
/**
* @brief Performs static/global initialization for BRMWrapper.
* Should be called once from the main thread.
*/
EXPORT static void init(unsigned subSystemID);
/**
* @brief Build a index from an oid file (NOTE: this is write engine internal used function, just for test purpose and not for generic use
*/
int buildIndex(const OID& colOid, const OID& treeOid, const OID& listOid,
execplan::CalpontSystemCatalog::ColDataType colDataType, int width, int hwm,
bool resetFile, uint64_t& totalRows, int maxRow = IDX_DEFAULT_READ_ROW)
{ return -1; }
/**
* @brief Build a index from a file
*/
int buildIndex(const std::string& sourceFileName, const OID& treeOid, const OID& listOid,
execplan::CalpontSystemCatalog::ColDataType colDataType, int width, int hwm, bool resetFile,
uint64_t& totalRows, const std::string& indexName, Log* pLogger,
int maxRow = IDX_DEFAULT_READ_ROW)
{ return -1; }
/**
* @brief Close a index file
*/
void closeIndex() { }
/**
* @brief Close a dictionary
*/
int closeDctnry(const TxnID& txnid, int i, bool realClose = true) { return m_dctnry[op(i)]->closeDctnry(realClose); }
/**
* @brief Commit transaction
*/
int commit(const TxnID& txnid)
{ m_txnLBIDMap.erase(txnid); return BRMWrapper::getInstance()->commit(txnid); }
/**
* @brief Convert interface value list to internal value array
*/
EXPORT void convertValArray(size_t totalRow, const ColType colType,
ColTupleList& curTupleList, void* valArray,
bool bFromList = true) ;
/**
* @brief Create a column, include object ids for column data and bitmap files
* @param dataOid column datafile object id
* @param dataType column data type
* @param dataWidth column width
* @param dbRoot DBRoot under which file is to be located (1-based)
* @param partition Starting partition number for segment file path (0-based).
* @param compressionType compression type
*/
EXPORT int createColumn(const TxnID& txnid, const OID& dataOid,
execplan::CalpontSystemCatalog::ColDataType dataType, int dataWidth,
uint16_t dbRoot, uint32_t partition=0, int compressionType = 0);
//BUG931
/**
* @brief Fill a new column with default value using row-ids from a reference column
*
* @param txnid Transaction id
* @param dataOid OID of the new column
* @param dataType Data-type of the new column
* @param dataWidth Width of the new column
* @param defaultVal Default value to be filled in the new column
* @param refColOID OID of the reference column
* @param refColDataType Data-type of the referecne column
* @param refColWidth Width of the reference column
*/
EXPORT int fillColumn(const TxnID& txnid, const OID& dataOid, execplan::CalpontSystemCatalog::ColDataType dataType,
int dataWidth, ColTuple defaultVal,
const OID& refColOID, execplan::CalpontSystemCatalog::ColDataType refColDataType,
int refColWidth, int refCompressionType, bool isNULL, int compressionType,
const std::string& defaultValStr, const OID& dictOid = 0, bool autoincrement = false);
/**
* @brief Create a index related files, include object ids for index tree and list files
* @param treeOid index tree file object id
* @param listOid index list file object id
*/
int createIndex(const TxnID& txnid, const OID& treeOid, const OID& listOid)
{ int rc = -1; return rc;}
/**
* @brief Create dictionary
* @param dctnryOid dictionary signature file object id
* @param partition Starting partition number for segment file path (0-based).
* @param segment segment number
* @param compressionType compression type
*/
EXPORT int createDctnry(const TxnID& txnid, const OID& dctnryOid,
int colWidth, uint16_t dbRoot,
uint32_t partiotion=0, uint16_t segment=0, int compressionType = 0);
/**
* @brief Delete a list of rows from a table
* @param colStructList column struct list
* @param colOldValueList column old values list (return value)
* @param rowIdList row id list
*/
EXPORT int deleteRow(const TxnID& txnid, std::vector<ColStructList>& colExtentsStruct,
std::vector<void *>& colOldValueList, std::vector<RIDList>& ridLists, const int32_t tableOid);
/**
* @brief Delete a list of rows from a table
* @param colStructList column struct list
* @param rowIdList row id list
*/
EXPORT int deleteBadRows(const TxnID& txnid, ColStructList& colStructs,
RIDList& ridList, DctnryStructList& dctnryStructList);
/**
* @brief delete a dictionary signature and its token
* @param dctnryStruct dictionary structure
* @param dctnryTuple dictionary tuple
*/
//ITER17_Obsolete
// int deleteToken(const TxnID& txnid, Token& token); // Files need already open
// int deleteToken(const TxnID& txnid, DctnryStruct& dctnryStruct, Token& token);
/**
* @brief Drop a column, include object ids for column data file
* @param dataOid column datafile object id
*/
int dropColumn(const TxnID& txnid, const OID dataOid)
{ return m_colOp[0]->dropColumn((FID) dataOid); }
/**
* @brief Drop files
* @param dataOids column and dictionary datafile object id
*/
int dropFiles(const TxnID& txnid, const std::vector<int32_t> & dataOids)
{ return m_colOp[0]->dropFiles(dataOids); }
/**
* @brief Delete files for one partition
* @param dataOids column and dictionary datafile object id
*/
int deletePartitions(const std::vector<OID> & dataOids,
const std::vector<BRM::PartitionInfo>& partitions)
{ return m_colOp[0]->dropPartitions(dataOids, partitions); }
int deleteOIDsFromExtentMap (const TxnID& txnid, const std::vector<int32_t>& dataOids)
{ return m_colOp[0]->deleteOIDsFromExtentMap(dataOids); }
/**
* @brief Create a index related files, include object ids for index tree and list files
* @param treeOid index tree file object id
* @param listOid index list file object id
*/
int dropIndex(const TxnID& txnid, const OID& treeOid, const OID& listOid)
{ return -1; }
/**
* @brief Drop a dictionary
* @param dctnryOid dictionary signature file object id
* @param treeOid dictionary tree file object id
* @param listOid index list file object id
*/
int dropDctnry(const TxnID& txnid, const OID& dctnryOid, const OID& treeOid, const OID& listOid)
{ return m_dctnry[0]->dropDctnry(dctnryOid); }
/**
* @brief Flush VM write cache
* @param None
*/
EXPORT void flushVMCache() const;
/**
* @brief Insert values into a table
* @param colStructList column structure list
* @param colValueList column value list
* @param dicStringListt dictionary values list
* @param dbRootExtentTrackers dbrootTrackers
* @param bFirstExtentOnThisPM true when there is no extent on this PM
* @param insertSelect if insert with select, the hwm block is skipped
* @param isAutoCommitOn if autocommit on, only the hwm block is versioned,
* else eveything is versioned
* @param tableOid used to get table meta data
* @param isFirstBatchPm to track if this batch is first batch for this PM.
*/
EXPORT int insertColumnRecs(const TxnID& txnid,
ColStructList& colStructList,
ColValueList& colValueList,
DctnryStructList& dctnryStructList,
DictStrList& dictStrList,
std::vector<boost::shared_ptr<DBRootExtentTracker> > & dbRootExtentTrackers,
RBMetaWriter* fRBMetaWriter,
bool bFirstExtentOnThisPM,
bool insertSelect = false,
bool isAutoCommitOn = false,
OID tableOid = 0,
bool isFirstBatchPm = false);
/**
* @brief Insert values into systables
* @param colStructList column structure list
* @param colValueList column value list
* @param dicStringListt dictionary values list
*/
EXPORT int insertColumnRec_SYS(const TxnID& txnid,
ColStructList& colStructList,
ColValueList& colValueList,
DctnryStructList& dctnryStructList,
DictStrList& dictStrList,
const int32_t tableOid);
/**
* @brief Insert a row
* @param colStructList column structure list
* @param colValueList column value list
* @param dicStringListt dictionary values list
*/
EXPORT int insertColumnRec_Single(const TxnID& txnid,
ColStructList& colStructList,
ColValueList& colValueList,
DctnryStructList& dctnryStructList,
DictStrList& dictStrList,
const int32_t tableOid);
/**
* @brief Open dictionary
* @param txnid relevant transaction
* @param dctnryStruct dictionary column to open
* @param useTmpSuffix Bulk HDFS usage: use *.tmp file suffix
*/
// @bug 5572 - HDFS usage: add *.tmp file backup flag
int openDctnry(const TxnID& txnid, DctnryStruct dctnryStruct, bool useTmpSuffix)
{
int compress_op = op(dctnryStruct.fCompressionType);
m_dctnry[compress_op]->setTransId(txnid);
return m_dctnry[compress_op]->openDctnry(
dctnryStruct.dctnryOid,
dctnryStruct.fColDbRoot,
dctnryStruct.fColPartition,
dctnryStruct.fColSegment,
useTmpSuffix);
}
/**
* @brief Rollback transaction (common portion)
*/
EXPORT int rollbackCommon(const TxnID& txnid, int sessionId);
/**
* @brief Rollback transaction
*/
EXPORT int rollbackTran(const TxnID& txnid, int sessionId);
/**
* @brief Rollback transaction
*/
EXPORT int rollbackBlocks(const TxnID& txnid, int sessionId);
/**
* @brief Rollback transaction
*/
EXPORT int rollbackVersion(const TxnID& txnid, int sessionId);
/**
* @brief Set the IsInsert flag in the ChunkManagers.
* This forces flush at end of block. Used only for bulk insert.
*/
void setIsInsert(bool bIsInsert)
{
m_colOp[COMPRESSED_OP]->chunkManager()->setIsInsert(bIsInsert);
m_dctnry[COMPRESSED_OP]->chunkManager()->setIsInsert(true);
}
/**
* @brief Get the IsInsert flag as set in the ChunkManagers.
* Since both chunk managers are supposed to be in lockstep as regards the
* isInsert flag, we need only grab one.
*
*/
bool getIsInsert()
{
return m_colOp[COMPRESSED_OP]->chunkManager()->getIsInsert();
}
std::tr1::unordered_map<TxnID, SP_TxnLBIDRec_t>& getTxnMap()
{
return m_txnLBIDMap;
};
/**
* @brief Flush the ChunkManagers.
*/
int flushChunks(int rc, const std::map<FID, FID> & columOids)
{
int rtn1 = m_colOp[COMPRESSED_OP]->chunkManager()->flushChunks(rc, columOids);
int rtn2 = m_dctnry[COMPRESSED_OP]->chunkManager()->flushChunks(rc, columOids);
return (rtn1 != NO_ERROR ? rtn1 : rtn2);
}
/**
* @brief Set the transaction id into all fileops
*/
void setTransId(const TxnID& txnid)
{
for (int i = 0; i < TOTAL_COMPRESS_OP; i++)
{
m_colOp[i]->setTransId(txnid);
m_dctnry[i]->setTransId(txnid);
}
}
/**
* @brief Set the fIsBulk id into all fileops
*/
void setBulkFlag(bool isBulk)
{
for (int i = 0; i < TOTAL_COMPRESS_OP; i++)
{
m_colOp[i]->setBulkFlag(isBulk);
m_dctnry[i]->setBulkFlag(isBulk);
}
}
/**
* @brief Set the fIsFix into all fileops
*/
void setFixFlag(bool isFix = false)
{
for (int i = 0; i < TOTAL_COMPRESS_OP; i++)
{
m_colOp[i]->setFixFlag(isFix);
m_dctnry[i]->setFixFlag(isFix);
}
}
/**
* @brief let chunkmanager start transaction.
*
*/
int startTransaction(const TxnID& txnid)
{
int rc = 0;
rc = m_colOp[COMPRESSED_OP]->chunkManager()->startTransaction(txnid);
//if ( rc == 0)
// rc = m_dctnry[COMPRESSED_OP]->chunkManager()->startTransaction(txnid);
return rc;
}
/**
* @brief let chunkmanager confirm transaction.
*
*/
int confirmTransaction (const TxnID& txnid)
{
int rc = 0;
rc = m_colOp[COMPRESSED_OP]->chunkManager()->confirmTransaction (txnid);
return rc;
}
/**
* @brief let chunkmanager end transaction.
*
*/
int endTransaction(const TxnID& txnid, bool success)
{
int rc = 0;
rc = m_colOp[COMPRESSED_OP]->chunkManager()->endTransaction(txnid, success);
//if ( rc == 0)
// rc = m_dctnry[COMPRESSED_OP]->chunkManager()->endTransaction(txnid, success);
return rc;
}
/**
* @brief Tokenize a dictionary signature into a token
* @param dctnryStruct dictionary structure
* @param dctnryTuple dictionary tuple
* @param useTmpSuffix Bulk HDFS usage: use *.tmp file suffix
*/
EXPORT int tokenize(const TxnID& txnid, DctnryTuple&, int compType ); // Files need open first
EXPORT int tokenize(const TxnID& txnid, DctnryStruct& dctnryStruct, DctnryTuple& dctnryTuple,
bool useTmpSuffix);
/**
* @brief Update values into a column (New one)
* @param colStructList column structure list
* @param colValueList column value list
* @param colOldValueList column old values list (return value)
* @param ridList row id list
*/
EXPORT int updateColumnRec(const TxnID& txnid,
std::vector<ColStructList>& colExtentsStruct,
ColValueList& colValueList,
std::vector<void *>& colOldValueList,
std::vector<RIDList>& ridLists,
std::vector<DctnryStructList>& dctnryExtentsStruct,
DctnryValueList& dctnryValueList,
const int32_t tableOid);
/**
* @brief Update values into columns
* @param colStructList column structure list
* @param colValueList column value list
* @param ridList row id list
*/
EXPORT int updateColumnRecs(const TxnID& txnid,
std::vector<ColStruct>& colStructList,
ColValueList& colValueList,
const RIDList & ridLists,
const int32_t tableOid);
/**
* @brief Release specified table lock.
* @param lockID Table lock id to be released.
* @param errorMsg Return error message
*/
EXPORT int clearTableLockOnly(uint64_t lockID,
std::string& errorMsg);
/**
* @brief Rollback the specified table
* @param tableOid Table to be rolled back
* @param lockID Table lock id of the table to be rolled back.
* Currently used for logging only.
* @param tableName Name of table associated with tableOid.
* Currently used for logging only.
* @param applName Application that is driving this bulk rollback.
* Currently used for logging only.
* @param debugConsole Enable logging to console
* @param errorMsg Return error message
*/
EXPORT int bulkRollback(OID tableOid,
uint64_t lockID,
const std::string& tableName,
const std::string& applName,
bool debugConsole, std::string& errorMsg);
/**
* @brief update SYSCOLUMN next value
* @param oidValueMap
*/
EXPORT int updateNextValue(const TxnID txnId, const OID& columnoid, const uint64_t nextVal, const uint32_t sessionID, const uint16_t dbRoot);
/**
* @brief write active datafiles to disk
*
*/
EXPORT int flushDataFiles(int rc, const TxnID txnId, std::map<FID,FID> & columnOids);
/**
* @brief Process versioning for batch insert - only version the hwm block.
*/
EXPORT int processBatchVersions(const TxnID& txnid, std::vector<Column> columns, std::vector<BRM::LBIDRange> & rangeList);
EXPORT void writeVBEnd(const TxnID& txnid, std::vector<BRM::LBIDRange> & rangeList);
/************************************************************************
* Future implementations
************************************************************************/
/**
* @brief Begin transaction
*/
// todo: add implementation when we work on version control
// int beginTran(const TransID transOid) { return NO_ERROR; }
/**
* @brief End transaction
*/
// todo: add implementation when we work on version control
// int endTran(const TransID transOid) { return NO_ERROR; }
/************************************************************************
* Internal use definitions
************************************************************************/
private:
/**
* @brief Check whether the passing parameters are valid
*/
int checkValid(const TxnID& txnid, const ColStructList& colStructList, const ColValueList& colValueList, const RIDList& ridList) const;
/**
* @brief Convert interface column type to a internal column type
*/
// void convertColType(void* curStruct, const FuncType curType = FUNC_WRITE_ENGINE) const;
void convertValue(const ColType colType, void* valArray, size_t pos, boost::any& data, bool fromList = true);
/**
* @brief Convert column value to its internal representation
*
* @param colType Column data-type
* @param value Memory pointer for storing output value. Should be pre-allocated
* @param data Column data
*/
void convertValue(const ColType colType, void* value, boost::any& data);
/**
* @brief Print input value from DDL/DML processors
*/
void printInputValue(const ColStructList& colStructList, const ColValueList& colValueList, const RIDList& ridList) const;
/**
* @brief Process version buffer
*/
int processVersionBuffer(IDBDataFile* pFile, const TxnID& txnid, const ColStruct& colStruct,
int width, int totalRow, const RID* rowIdArray,
std::vector<BRM::LBIDRange> & rangeList);
/**
* @brief Process version buffers for update and delete @Bug 1886,2870
*/
int processVersionBuffers(IDBDataFile* pFile, const TxnID& txnid, const ColStruct& colStruct,
int width, int totalRow, const RIDList& ridList,
std::vector<BRM::LBIDRange> & rangeList);
int processBeginVBCopy(const TxnID& txnid, const std::vector<ColStruct> & colStructList, const RIDList & ridList,
std::vector<BRM::VBRange> & freeList, std::vector<std::vector<uint32_t> > & fboLists,
std::vector<std::vector<BRM::LBIDRange> > & rangeLists, std::vector<BRM::LBIDRange>& rangeListTot);
void setDebugLevel(const DebugLevel level)
{
WEObj::setDebugLevel(level);
for (int i = 0; i < TOTAL_COMPRESS_OP; i++)
{
m_colOp[i]->setDebugLevel(level);
m_dctnry[i]->setDebugLevel(level);
}
} // todo: cleanup
/**
* @brief Common methods to write values to a column
*/
int writeColumnRec(const TxnID& txnid, const ColStructList& colStructList,
ColValueList& colValueList,
RID* rowIdArray, const ColStructList& newColStructList,
ColValueList& newColValueList, const int32_t tableOid,
bool useTmpSuffix, bool versioning = true);
//@Bug 1886,2870 pass the address of ridList vector
int writeColumnRec(const TxnID& txnid, const ColStructList& colStructList,
const ColValueList& colValueList, std::vector<void *>& colOldValueList,
const RIDList& ridList, const int32_t tableOid,
bool convertStructFlag = true, ColTupleList::size_type nRows = 0);
//For update column from column to use
int writeColumnRecords(const TxnID& txnid, std::vector<ColStruct>& colStructList,
ColValueList& colValueList, const RIDList & ridLists,
const int32_t tableOid, bool versioning = true);
/**
* @brief util method to convert rowid to a column file
*
*/
int convertRidToColumn(RID& rid, uint16_t& dbRoot, uint32_t& partition, uint16_t& segment,
const RID filesPerColumnPartition, const RID extentsPerSegmentFile,
const RID extentRows, uint16_t startDBRoot, unsigned dbrootCnt);
// Bug 4312: We use a hash set to hold the set of starting LBIDS for a given
// txn so that we don't waste time marking the same extent as invalid. This
// list should be trimmed if it gets too big.
int AddLBIDtoList(const TxnID txnid,
std::vector<BRM::LBID_t>& lbids,
std::vector<execplan::CalpontSystemCatalog::ColDataType>& colDataTypes,
const ColStruct& colStruct,
const int fbo);
int RemoveTxnFromLBIDMap(const TxnID txnid);
int op(int compressionType) { return (compressionType > 0 ? COMPRESSED_OP : UN_COMPRESSED_OP); }
// This is a Map of sets of LBIDS for each transaction. A Transaction's list will be removed upon commit or rollback.
std::tr1::unordered_map<TxnID, SP_TxnLBIDRec_t> m_txnLBIDMap;
ColumnOp* m_colOp[TOTAL_COMPRESS_OP]; // column operations
Dctnry* m_dctnry[TOTAL_COMPRESS_OP]; // dictionary operations
OpType m_opType; // operation type
DebugLevel m_debugLevel; // debug level
};
} //end of namespace
#undef EXPORT
#endif // _WRITE_ENGINE_H_