libtabula

Check-in [d80e2d46a2]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Merged trunk changes in
Timelines: family | ancestors | descendants | both | row-pimpl
Files: files | file ages | folders
SHA1: d80e2d46a2900a9bef75522354f8ee8783bb1d18
User & Date: tangent 2015-08-15 09:10:31
Context
2015-08-15
09:24
Removed a FIXME comment: its proposed "fix" doesn't work. check-in: 381f8225d9 user: tangent tags: row-pimpl
09:10
Merged trunk changes in check-in: d80e2d46a2 user: tangent tags: row-pimpl
09:09
Added lldb to the list of tools exrun can make use of, so we don't have to install gdb on OS X. Also made a few other tweaks to it while in there. check-in: 21b6f7c6f5 user: tangent tags: trunk
08:50
First cut at making Row take a Row::Impl as its first argument instead of a MYSQL_ROW, with all the MySQL C API conversion code moving into MySQLDBDriver. It builds, but test/array_index segfaults. check-in: f9e573bf51 user: tangent tags: row-pimpl
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to CMakeLists.txt.

140
141
142
143
144
145
146





147
148




149
150
151
152
153
154
155

add_subdirectory(doc)
add_subdirectory(src)
add_subdirectory(src/ssx)
add_subdirectory(test)
add_subdirectory(examples)






add_custom_target(dtest
	COMMAND ${PROJECT_SOURCE_DIR}/dtest -u test -p test)





# If ctags is present, add a top-level "tags" target which includes all
# files in both the build and source versions of src/*.  Conditional
# since it isn't always present on *ix, and almost never on Windows.
find_program(CTAGS_PATH ctags)
if (CTAGS_PATH)
    message(STATUS "Found ctags: ${CTAGS_PATH}")







>
>
>
>
>


>
>
>
>







140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164

add_subdirectory(doc)
add_subdirectory(src)
add_subdirectory(src/ssx)
add_subdirectory(test)
add_subdirectory(examples)

# Two testing targets based on the dtest script, one running it
# standalone, one under CTest.  The latter suppresses output and 
# only reports pass/fail.  The dtest target can't depend on "all"
# due to a CMake design weakness, while "test" does implicitly,
# since it's integrated into the CMake design.
add_custom_target(dtest
	COMMAND ${PROJECT_SOURCE_DIR}/dtest -u test -p test)
include(CTest)
if (BUILD_TESTING)
    add_test(dtest ${PROJECT_SOURCE_DIR}/dtest -u test -p test)
endif(BUILD_TESTING)

# If ctags is present, add a top-level "tags" target which includes all
# files in both the build and source versions of src/*.  Conditional
# since it isn't always present on *ix, and almost never on Windows.
find_program(CTAGS_PATH ctags)
if (CTAGS_PATH)
    message(STATUS "Found ctags: ${CTAGS_PATH}")

Changes to Wishlist.md.

10
11
12
13
14
15
16


17
18
19
20
21
22
23
Any Version
-----------

Items in this section can be done at any time because they do not break
either the API or the ABI.

*   test/manip doesn't test the escape manipulator!



*   The `DateTime` family's `time_t` conversion operators should detect
    DATETIME("0") type values and return `time_t(0)` rather than
    attempt to stuff an out-of-range value into a smaller box.

*   Any time you must hand-roll some SQL code in your program,
    consider whether it could be generalized to a widely-useful







>
>







10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Any Version
-----------

Items in this section can be done at any time because they do not break
either the API or the ABI.

*   test/manip doesn't test the escape manipulator!

*   Move unit tests out from under dtest umbrella into CTest.

*   The `DateTime` family's `time_t` conversion operators should detect
    DATETIME("0") type values and return `time_t(0)` rather than
    attempt to stuff an out-of-range value into a smaller box.

*   Any time you must hand-roll some SQL code in your program,
    consider whether it could be generalized to a widely-useful

Changes to dtest.

97
98
99
100
101
102
103



104
105

106
107
108
109
110
111
112
BFILE=$BASE/bmark.txt
if [ -f $BFILE ]
then
	if diff -u -w $BFILE $TMP
	then
		echo
		echo 'All tests passed.'



	fi
	rm -f $TMP

else
	mv $TMP $BFILE
	chmod -w $BFILE
	echo
	echo 'BENCHMARK FILE REGENERATED.'
	echo
fi







>
>
>


>







97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
BFILE=$BASE/bmark.txt
if [ -f $BFILE ]
then
	if diff -u -w $BFILE $TMP
	then
		echo
		echo 'All tests passed.'
		ec=0
	else
		ec=1
	fi
	rm -f $TMP
	exit $ec
else
	mv $TMP $BFILE
	chmod -w $BFILE
	echo
	echo 'BENCHMARK FILE REGENERATED.'
	echo
fi

Changes to exrun.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15


16
17
18
19
20

21
22
23
24
25
26
27
28
29
30



31
32
33




34
35
36
37
38
39
40
..
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#!/bin/sh
BASE="$(dirname "$0")"
BUILD=`pwd`

if [ -z "$1" ]
then
	echo "usage: $0 [TOOL] <example> [args...]"
	echo
	echo "   Runs the given example, using the library in the current directory"
	echo "   instead of using the system library search mechanism.  Accepts an "
	echo "   arbitrary number of arguments."
	echo
	echo "   TOOL can be 'valgrind', 'gdb', or 'ldd', which causes exrun to"
	echo "   run the example program under the given tool."
	echo


	exit 1
fi

TOOL=
PROG=$1

if [ "$PROG" = 'valgrind' ]
then
	TOOL='valgrind'
	shift
	PROG=$1
elif [ "$PROG" = 'gdb' ]
then
	TOOL='gdb --args'
	shift
	PROG=$1



elif [ "$PROG" = 'ldd' ]
then
	TOOL='ldd'




	shift
	PROG=$1
fi

shift

if [ ! -x "$PROG" ]
................................................................................
		echo
		exit 1
	fi
fi

if [ `uname -s` = 'Darwin' ]
then
	DYLD_LIBRARY_PATH=. $TOOL $PROG $*
elif [ `uname -o` = 'Cygwin' ]
then
	# Cygwin build case; see below for bash-as-DOS-shell case
	PATH=. $TOOL $PROG $*
elif [ -e /usr/bin/ldd ]
then
	if [ `uname -s` = 'SunOS' ]
	then
		LD_LIBRARY_PATH=.:/usr/mysql/lib/mysql $TOOL $PROG $*
	else
		LD_LIBRARY_PATH=. $TOOL $PROG $*
	fi
else
	echo "ERROR: I don't grok this system's dynamic linkage system."
fi






|
|
|
|
|
|
|
|
|
>
>





>



<
<



|
<
>
>
>



>
>
>
>







 







|



|




|

|




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26


27
28
29
30

31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
..
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#!/bin/sh
BASE="$(dirname "$0")"
BUILD=`pwd`

if [ -z "$1" ]
then
	cat <<USAGE
	usage: $0 [TOOL] <example> [args...]

	   Runs the given example or test program using the library in the
	   build directory instead of using the system library search
	   mechanism.  Accepts an arbitrary number of arguments.

	   TOOL can be 'valgrind', 'gdb', 'lldb', or 'ldd', which causes
	   exrun to run the example or test program under the given tool.

USAGE
	exit 1
fi

TOOL=
PROG=$1
ARGSEP=
if [ "$PROG" = 'valgrind' ]
then
	TOOL='valgrind'


elif [ "$PROG" = 'gdb' ]
then
	TOOL='gdb --args'
elif [ "$PROG" = 'lldb' ]

then
	TOOL='lldb -f'
	ARGSEP="-- "
elif [ "$PROG" = 'ldd' ]
then
	TOOL='ldd'
fi

if [ -n "$TOOL" ]
then
	shift
	PROG=$1
fi

shift

if [ ! -x "$PROG" ]
................................................................................
		echo
		exit 1
	fi
fi

if [ `uname -s` = 'Darwin' ]
then
	DYLD_LIBRARY_PATH=. $TOOL $PROG $ARGSEP"$@"
elif [ `uname -o` = 'Cygwin' ]
then
	# Cygwin build case; see below for bash-as-DOS-shell case
	PATH=. $TOOL $PROG "$@"
elif [ -e /usr/bin/ldd ]
then
	if [ `uname -s` = 'SunOS' ]
	then
		LD_LIBRARY_PATH=.:/usr/mysql/lib/mysql $TOOL $PROG "$@"
	else
		LD_LIBRARY_PATH=. $TOOL $PROG "$@"
	fi
else
	echo "ERROR: I don't grok this system's dynamic linkage system."
fi