forked from smonkewitz/scisql
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME
169 lines (124 loc) · 6.9 KB
/
README
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
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
165
166
167
168
Science Tools for MySQL
=======================
sciSQL provides science-specific tools and extensions for SQL. Currently,
the project contains user defined functions (UDFs) and stored procedures for
MySQL in the areas of spherical geometry, statistics, and photometry. It is
distributed under the terms of the Apache License version 2.0.
Note that the doc/index.html file in the sciSQL distribution contains
all the instructions below, as well as documentation for all the sciSQL UDFs
and stored procedures.
Installation prerequisites:
---------------------------
- Python 2.5.x or later (http://www.python.org/download/)
- Python future 0.16 or later (http://python-future.org/index.html)
- MySQL server 5.x (http://dev.mysql.com/downloads/)
- MySQLdb 1.2.x (http://sourceforge.net/projects/mysql-python/)
- Mako 0.4 or later (http://www.makotemplates.org/download.html)
MySQLdb, a Python DB API 2.0 implementation for MySQL, is required in order
to run the unit tests and uninstall sciSQL. The Mako templating library is
required only if you wish to rebuild the HTML documentation. The Python
future library is required to allow building this software with both Python
versions 2 and 3.
In order to install the UDFs, you need write permission to the MySQL server
plug-in directory as well as a MySQL account with admin priviledges.
Databases reserved for sciSQL use:
----------------------------------
The following database names are reserved for use by sciSQL:
- scisql Contains sciSQL stored procedures.
- scisql_test Used by sciSQL unit tests.
- scisql_demo Contains sample data that can be used to
exercise the sciSQL UDFs.
The scisql_demo databases is dropped and re-created during installation. If you
are using it for other things, you must migrate its contents to a different
database prior to installing sciSQL. If you do not, YOU WILL LOSE DATA.
Even though the scisql and scisql_test databases are never automatically
dropped, their use is STRONGLY DISCOURAGED.
sciSQL configuration:
---------------------
Run ./configure from the top-level sciSQL directory. Passing --help will
yield a list of configuration options. Here are the ones most likely to require
tweaking:
--prefix Set this to the top-level MySQL server install directory
--mysql-user Set this to the name of a MySQL admin user
--mysql-socket Set this to the name of the MySQL server UNIX socket file
--scisql-prefix This string will be used as a prefix for all sciSQL UDF
and stored procedure names. You can specify an empty
string, which will result in unprefixed names. The
default is "scisql_".
You will be prompted for the MySQL admin user password during configuration.
Connection details, including this password, are stored in
build/c4che/.my.cnf in the MySQL options file format. This allows various
build steps to connect to MySQL without constantly prompting for a password.
Even though the .my.cnf file permissions are set such that only its creator
is allowed read/write access, for security reasons it is still recommended to
run `make distclean` once sciSQL has been installed. This will remove the
entire build directory and its contents.
If you wish to build/install only the sciSQL client utilities and documentation,
run configure with the --client-only option. In this case, a MySQL server or
client install is not required, the only executable generated is scisql_index
(a utility which generates HTM indexes for tables of circles or polygons stored
in tab-separated-value format), and --prefix can be set to a directory of your
choice.
Building and installation:
--------------------------
sciSQL is built, installed, and uninstalled with the usual make,
make install, and make uninstall commands.
The install command will CREATE the sciSQL UDFs, stored procedures, and
databases (including the scisql_demo database). It will also automatically
run the sciSQL unit tests. You can re-run the tests anytime with `make test`.
You may wish to regenerate the HTML documentation if you've chosen a
non-default value for --scisql-prefix, as the HTML distributed with release
tar-balls is built under the assumption that --scisql-prefix="scisql_".
To do this, run `make html_docs`.
Finally, note that after installation each UDF will be available under two
names: one including a version number and one without. For example, assuming
that --scisql-prefix="foo_" and that the sciSQL version number is 1.2.3,
a hypothetical UDF named "bar" would be available as:
foo_bar
foo_bar_1_2_3
The uninstall command will drop the versioned sciSQL UDFs and stored
procedures. It will also drop the unversioned UDFs/procedures, but only
if the unversioned UDF/procedure was created by the version of
sciSQL being uninstalled. As a consequence, it is possible to have
multiple versions of sciSQL installed at the same time, and the behavior
of two versions can be compared from within a single MySQL instance.
An unversioned name will resolve to the most recently installed versioned
name.
The uninstall command will also drop the scisql_demo database.
Rebuilding sciSQL:
------------------
If you've already installed sciSQL, say using a UDF/procedure name
prefix of "foo_", and then decide you'd like to change the prefix to "bar_",
do the following from the top-level sciSQL directory:
`make uninstall`
Uninstalls the UDFs and stored procedures named foo_*.
`make distclean`
Removes all build products and configuration files
`configure --scisql-prefix=bar_ ...`
Reconfigures sciSQL (sets new name prefix)
`make`
Rebuilds sciSQL.
`make install`
Reinstalls sciSQL.
No MySQL restart is required. Note that multiple installations of the same
version of sciSQL with different UDF/procedure name prefixes can coexist on
a single MySQL instance.
MySQL server restarts:
----------------------
Installing different versions of sciSQL, or multiple copies of the same
version with different UDF/procedure name prefixes, does not require a MySQL
server restart.
Only sciSQL developers should need to perform restarts. They are
required when changing the name of a UDF without changing the name of the
shared library installed into the MySQL plugin directory. In this case,
an attempt to install the updated shared library will sometimes result in
MySQL reporting that it cannot find symbol names that are actually
present. This is presumably due to MySQL server and/or OS level caching
effects, and restarting MySQL resolves the problem.
Reporting bugs and getting help:
--------------------------------
If you encounter test-case failures, or think you've identified a
bug in the sciSQL code, please file a report here:
https://bugs.launchpad.net/scisql/+filebug
For other help or inquiries, submit your questions here:
https://answers.launchpad.net/scisql/+addquestion