407 Commits

Author SHA1 Message Date
Dimitri Fontaine
da665c6b6e Fix previous commit for IXF support. 2015-04-17 23:45:59 +02:00
Dimitri Fontaine
0068a45e1c Fix parsing of qualified target table names, see #186.
We used to parse qualified table names as a simple string, which then
breaks attempts to be smart about how to quote idenfifiers. Some sources
are known to accept dots in quoted table names and we need to be able to
process that properly without tripping on qualified table names too
late.

Current code might not be the best approach as it's just using either a
cons or a string for table names internally, rather than defining a
proper data structure with a schema and a name slot.

Well, that's for a later cleanup patch, I happen to be lazy tonight.
2015-04-17 23:22:30 +02:00
Dimitri Fontaine
5ac396799a Be careful about the OS return code, fix #190.
Define a bunch of OS return codes and use them wisely, or at least in a
better way than just doing (uiop:quit) whenever there's something wrong,
without any difference whatsover to the caller.

Now we return a non-zero error code when we know something wrong did
happen. Which is more useful.
2015-04-17 22:30:04 +02:00
Dimitri Fontaine
2a6ad888d0 Implement basic HTTP status checking in fetch method. 2015-04-17 21:37:21 +02:00
Dimitri Fontaine
cb94993064 Fix #202, blind attempt, passes tests. 2015-04-06 19:47:38 +02:00
Dimitri Fontaine
36eeb6f438 Fix header lines length to be dynamic too... 2015-03-21 17:35:34 +01:00
Chmouel Boudjnah
9173ce82ba Trivial spellling mistakes
I was just browsing the code and my english mispelling OCD kicked in.
2015-03-18 09:40:54 +01:00
Dimitri Fontaine
48ab15a77d Auto-adjust summary table name column width.
Per gripe from Marcos, who argues that for a human readable format
breaking when table names are wider than expected at compile time is
quite a strange position to defend.
2015-03-16 14:55:46 +01:00
Dimitri Fontaine
7d2d09ce68 Add the option to preserve MySQL index names, fix #187.
See test/parse/hans.goeuro.load for an example usage of the new option.

In passing, any error when creating indexes is now properly reported and
logged, which was missing previously. Oops.
2015-03-07 20:19:47 +01:00
Dimitri Fontaine
d8510b031c Cleanup the MS SQL schema introspection queries, see #183. 2015-02-20 19:13:21 +01:00
Dimitri Fontaine
48f451bdbc Implement the option to disable triggers when loading data.
This option is dangerous and allows to skip ALL triggers when loading
data against PostgreSQL. This includes foreign key constraints
definitions and will allow loading data out of order.

When using both the options "create no table" and "disable triggers" it
will be possible to load data into a schema prepared by your favorite
external tool, at the cost of not validating FK constraints. Use with
care.

Fix #167.
2015-02-19 15:05:10 +01:00
Dimitri Fontaine
4f099e3ddc Merge pull request #179 from pborreli/typos
Fixed typos
2015-02-19 10:34:24 +01:00
Dimitri Fontaine
47288d2818 Fix whitespace and indentation. 2015-02-19 10:30:42 +01:00
Victor Kryukov
c38ef4c235 Make quoting identifiers more robust: do not quote already quoted string, and double quotes when quoting. Fix #180. 2015-02-19 10:26:44 +01:00
Dimitri Fontaine
5b19776d5b MS SQL casting rules for floats: there's no scale. See #177. 2015-02-19 10:15:35 +01:00
Pascal Borreli
1a18b5cfac Fixed typos 2015-02-18 23:17:16 +00:00
Dimitri Fontaine
7fd1ddaa5f Handle MS SQL columns of float types without scale, fix #177.
The default for MS SQL float types is to only have a precision defined,
as described in https://msdn.microsoft.com/en-us/library/ms173773.aspx,
but the pgloader code didn't know what to do with a float without scale.
2015-02-18 23:43:27 +01:00
Dimitri Fontaine
c5f0aeec93 The default DBF encoding still is ASCII. 2015-02-18 23:27:35 +01:00
Dimitri Fontaine
55584406fa Add encoding support for db3 sources, fix #176.
It appears that db3 files are not limited to the ASCII character
encoding that they were designed with, so let's clue pgloader about
that.

This commit build
770cbe3526
and the pgloader Makefile has been updated to momentarily fetch cl-db3
from github rather than Quicklisp so that it's possible to enjoy the new
feature immediately.
2015-02-18 22:40:03 +01:00
Dimitri Fontaine
8f4eb73cad Use the "table name" option when loading from DBF, fix #175.
The command parser for DBF sources wasn't (anymore?) considering the
value of the "table name = " option, only considering the option from
the connection string.

Make it so that the option now takes preference over the DSN tablename
option when both are set.
2015-02-18 14:52:14 +01:00
Dimitri Fontaine
b00e1bba7f Allow backslash and at-sign in user names, fix #171.
When connection to MS SQL it's sometimes needed to be able to use @ or \
as part of the username, which is now possible.
2015-02-11 11:56:52 +01:00
Pierre Ducroquet
894df76b36 Introduce a new rule specific for username string
This allows dots in username.
2015-02-04 23:22:38 +01:00
Dimitri Fontaine
7ccbb45763 Be smarter about MS SQL bit to boolean conversion, should fix #162.
This is a blind patch given that I couldn't CREATE TABLE as per the bug
report to try and see by myself what's happening. Better have some tests
going on though.
2015-02-03 13:39:09 +01:00
Dimitri Fontaine
100e942c22 Force quoting of some identifiers, per pg rules, fix #161.
PostgreSQL requires that an idenfitier begin with letters or underscore
only, so an identifier that begins with a digit must be quoted. In the
current coding pgloader will unecessarily quote some identifiers that
begin with a unicode accentuated letter, but that's only cosmetic and
isn't worth worrying about (famous last words).
2015-01-29 10:40:12 +01:00
Dimitri Fontaine
d02f5c3992 Allow quoting table names in pgsql uri, fix #163. 2015-01-29 10:10:40 +01:00
Dimitri Fontaine
3e5115c493 Fix MS SQL index names.
As MS SQL index names may contain dots, replace dots with underscores.
That should fix #158 once again.
2015-01-26 16:56:39 +01:00
Dimitri Fontaine
95961a42b8 Replace dots with underscores in MS SQL fk names.
That should help fixing #158 where MS SQL uses the following name for
one of its fkey: fk_dbo.track_dbo.artist_artistid. PostgreSQL refuses fk
names with dots in it.
2015-01-24 17:23:08 +01:00
Dimitri Fontaine
13faf3e4f8 Blind try at fixing #158.
The call to format-pgsql-create-fkey was passing the fkey cons rather
than just the fk definition structure as an argument.
2015-01-23 19:59:04 +01:00
Dimitri Fontaine
8ce967744c Add support for http_proxy environment variable to install quicklisp.
See #153.
2015-01-21 15:57:29 +01:00
Dimitri Fontaine
ce5a61face Catch PostgreSQL internal errors too, fixes #155. 2015-01-21 13:01:28 +01:00
Dimitri Fontaine
86fab763a8 Fix "typo" where SBCL's init and save hook were swapped... fix #153. 2015-01-20 10:06:10 +01:00
zickzackv
5e1ebe0dd8 add missing conditional compilation for sbcl
Added missing #+sbcl for sb-ext:*muffled-warnings*.  prevented succesfully building the application with ccl
2015-01-18 22:48:35 +01:00
Dimitri Fontaine
d494fbd4ca Fix fixed and copy connection initialisation methods. 2015-01-16 10:06:51 +01:00
Dimitri Fontaine
30511b4d4d Master's branch is now 3.2.git-hash. 2015-01-16 09:56:25 +01:00
Dimitri Fontaine
f2790fd136 Some more --self-upgrade failing tests. 2015-01-15 17:48:22 +01:00
Dimitri Fontaine
290916b0f0 Attempt at fixing --self-upgrade.
The option currently only works within the same build environment where
the image was first build, as noted in #133. This is an attempt at
convincing ASDF not to load systems that pgloader depends on in order to
be able to load only the new pgloader definition.

While it looks sound in principle, I failed to have it work in the lab.
Given that previous to this patch nothing works at all, it's not a
regression, let's push it as is makes the code saner.

Also, it looks like asdf::*immutable-systems* is what we want here, but
that's asdf 3.1.x and we're not there yet.
2015-01-14 20:54:11 +01:00
Dimitri Fontaine
9f45b9864a Implement support for update and delete rules for MysQL FKeys, fixes #141. 2015-01-14 18:35:48 +01:00
Eric Jiang
47aa02d844 Add unix-timestamp-to-timestamptz transform. 2015-01-14 18:05:53 +01:00
Dimitri Fontaine
b403c40d30 Implement support for MySQL comments, fix #126.
Only table (BASE TABLE) and columns comments are supported now. I didn't
even try to see if more are possible and interesting to support.
2015-01-09 01:49:56 +01:00
Dimitri Fontaine
cd46b6cbed Clean up common code for sources.
Only move code around, creating a src/sources/common directory with
several files in there so as to split the too big src/sources.lisp.
2015-01-08 23:17:40 +01:00
Dimitri Fontaine
7fcee2617d Fix hooks.lisp to have SBCL extensions #+sbcl protected. 2015-01-08 09:30:24 +01:00
Dimitri Fontaine
5f520737e6 Improve loading of external libs, fixes #142.
Loading external libs at application startup time is not convenient as
it forces users to install freetds everywhere even when they don't need
it. This patch makes it so that freetds is only loaded when pgloader is
asked to load from a MS SQL database source.

Note that we could have done the same for SSL if it wasn't possibly used
to connect to PostgreSQL, which isn't optional in current pgloader
implementation.
2015-01-07 22:23:12 +01:00
Dimitri Fontaine
9da649d028 Typo fix. 2015-01-06 12:36:22 +01:00
Dimitri Fontaine
2caefb0836 Fix and improve new summary reporting. 2015-01-06 12:36:14 +01:00
Dimitri Fontaine
ad8fb0b2a4 Implement machine readable summary files, fixes #144.
It's now possible to have pgloader print out its summary in one of
several formats: human-readable (default), csv, copy or json. The
choice of format is made depending on the extension of the summary
filename picked on the command line with the option --summary.
2015-01-06 01:22:01 +01:00
Dimitri Fontaine
d9f5bff5e0 Cleanup some code location. 2015-01-06 01:18:54 +01:00
Dimitri Fontaine
a86369a03d Improve the CLI situation a bit.
Fix bugs related to parsing the new COPY type, and make it so that we
know how to parse options (and fields, and other type dependant things)
even when --type is missing, in care the source URL has the information.
2015-01-06 00:07:31 +01:00
Dimitri Fontaine
e1bc6425e2 Implement support for PostgreSQL COPY format, fix #145.
PostgreSQL COPY format is not really CSV but something way easier to
parse. Funnily enough, parsing it as CSV is not that easy, so we add
here a special simple parser for the COPY format.

It should be quite useful too try loading again reject data files from
pgloader after manual fixing, too. It's still missing some documentation
without any good excuse for that, will add soon.
2015-01-02 18:49:17 +01:00
Dimitri Fontaine
6d76bc57e3 Allow - from the command line to process from standard input.
Also augment the documentation with examples of bare stdin reading and
of advantages of the unix pipes to stream even remove archived content
down to PostgreSQL.
2014-12-27 21:20:40 +01:00
Dimitri Fontaine
40f3c4f769 Improve HTTP handling of CSV and Fixed data sources.
In passing also allow --field to specify the whole field list, there's
no point in forcing the user to have as many --field switches on the
command line as they have columns in their data source file.
2014-12-27 17:02:19 +01:00