Commit Graph

1568 Commits

Author SHA1 Message Date
Dimitri Fontaine
d1fce3728a Allow more PostgreSQL URI options, fix #199.
As per PostgreSQL documentation on connection strings, allow overriding
of main URI components in the options parts, with a percent-encoded
syntax for parameters. It allows to bypass the main URI parser
limitations as seen in #199 (how to have a password start with a
colon?).

See:
 http://www.postgresql.org/docs/9.3/interactive/libpq-connect.html#LIBPQ-CONNSTRING
2015-05-22 23:39:04 +02:00
Dimitri Fontaine
ba7b27b60a Travis: actually push the right version of the expected file. 2015-05-22 12:41:29 +02:00
Dimitri Fontaine
bffec4cc63 Allow for more options in the CSV escape character, fix #38.
To allow for importing JSON one-liners as-is in the database it can be
interesting to leverage the CSV parser in a compatible setup. That setup
requires being able to use any separator character as the escape
character.
2015-05-22 12:31:06 +02:00
Dimitri Fontaine
62931e0312 Fix unknown source type error, fix #237.
In passing also recognize the ".sqlite3" file type as being a SQLite
database file.
2015-05-22 11:32:30 +02:00
Dimitri Fontaine
dc86b5e600 Travis: Fix the text case connection string. 2015-05-21 16:29:14 +02:00
Dimitri Fontaine
abbc105c41 Implement CSV headers support.
Some CSV files are given with an header line containing the list of
their column names, use that when given the option "csv header".

Note that when both "skip header" and "csv header" options are used,
pgloader first skip as many required lines and then uses the next one as
the csv header.

Because of temporary failure to install the `ronn` documentation tool,
this patch only commits the changes to the source docs and omits to
update the man page (pgloader.1). A following patch is intended to be
pushed that fixed that.

See #236 which is using shell tricks to retrieve the field list from the
CSV file itself and motivated this patch to finally get written.
2015-05-21 12:55:23 +02:00
Dimitri Fontaine
dfb4cc2049 Allow dollars in CSV fields names, fix #236. 2015-05-21 12:51:39 +02:00
Dimitri Fontaine
533e6b623f Review upgrade config code, fix #235.
The database connection code needed to switch to the "new" connection
facilities, and there was a bug in the processing of template sections
wherein the template user would inherit the template property.
2015-05-19 18:12:10 +02:00
Dimitri Fontaine
204a740441 Merge pull request #233 from malept/accept-periods-in-csv-field-names
Accept periods in CSV field names
2015-05-15 16:38:18 +02:00
Mark Lee
dc04b40836 Accept periods in CSV field names
Periods are allowed in PG column names as well.
2015-05-15 07:22:07 -07:00
Dimitri Fontaine
ff78ebf048 Improve SQLite values parsing, fix #231.
It turns out that SQLite3 data type handling is back to kick us wherever
it hurts, this time by the driver deciding to return blob data (a vector
of unsigned bytes) when we expect properly encoded text data.

In the wikipedia data test case used to reproduce the bug, we're lucky
enough that the byte vectors actually map to properly encoded strings.

Of course doing the proper thing costs some performances.

I'd like to be able to decide if I should blame the SQLite driver or the
whole product on this one. The per-value data type handling still is a
disaster in my book, tho, which means it's crucially important for
pgloader to get it right and allow users to seemlessly migrate away from
using such a system.
2015-05-14 21:08:19 +02:00
Dimitri Fontaine
bf62e06ff6 Accept MySQL dbname beginning with digits, fix #230.
pgloader used to have a single database name parsing rule that is
supposed to be compliant with PostgreSQL identifier rules. Of course it
turns out that MySQL naming rules are different, so adjust the parser so
that the following connection string is accepted:

  mysql://root@localhost/3scale_system_development
2015-05-12 10:20:58 +02:00
Dimitri Fontaine
8e6e67f056 Be smarter about MSSQL column_default values, fix #207.
MS SQL default values can be quite... sophisticated, so get around with
using a more complex expression in the SQL query that retrieve the
default values.

The query and implementation has been largely provided by luqelinux and
jstans github users, and I finally merged manually their cumulated
efforts on this front.
2015-05-01 21:20:45 +02:00
Dimitri Fontaine
3848ad6ae5 SQLite integers can host bigints, fix #227. 2015-04-30 18:17:13 +02:00
Dimitri Fontaine
ebc0dcda4f Allow for empty-string SQLite column types, fix #220 again. 2015-04-30 17:18:14 +02:00
Dimitri Fontaine
95a5eb3184 Implement more COPY options, fix #218.
The COPY format now supports user defined delimiter and null options,
and we don't require the column names anymore as it's useless in that
context.
2015-04-30 14:30:16 +02:00
Dimitri Fontaine
53dcdfd8ef Fix handling of COPY data, fix #222.
When given a file in the COPY format, we should expect that its content
is already properly escaped as expected by PostgreSQL. Rather than
unescape the data then escape it again, add a new more of operation to
format-vector-row in which it won't even try to reformat the data.

In passing, fix an off-by-one bug in dealing with non-ascii characters.
2015-04-30 13:17:02 +02:00
Dimitri Fontaine
5759ae50bb Handle SQLite typemod in type name normalisation.
Should fix #220.
2015-04-28 21:33:25 +02:00
Dimitri Fontaine
40cfc4e7b7 Merge pull request #213 from weepee-org/centos7
Adds bootstrap for CentOS 7
2015-04-26 18:32:52 +02:00
Gert Van Gool
661a3dad30 Adds bootstrap for CentOS 7 2015-04-23 13:48:17 +02:00
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
11976d2c23 Fix census-places URL location of the source file. 2015-04-17 21:58:19 +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
77394bd029 Merge pull request #201 from jdufresne/fix-typo
Fix typo
2015-04-02 20:37:54 +02:00
Jon Dufresne
b88ef6bdea Fix typo. 2015-04-02 09:45:44 -07:00
Jon Dufresne
8038931f5a Remove trailing whitespace. 2015-04-02 09:45:36 -07:00
Dimitri Fontaine
8f57c90809 Merge pull request #196 from benesch/makefile-updates
Match pgloader-standalone target to pgloader target
2015-03-23 22:19:55 +01:00
Nikhil Benesch
fe35487048 Match pgloader-standalone target to pgloader target 2015-03-23 17:03:34 -04:00
Dimitri Fontaine
36eeb6f438 Fix header lines length to be dynamic too... 2015-03-21 17:35:34 +01:00
Dimitri Fontaine
f9d70dee5c Merge pull request #193 from chmouel/patch-1
Trivial spellling mistakes
2015-03-18 10:30:17 +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
095e1c7bbc Merge pull request #192 from wmorin/fix-typo
Fix explanation typo. Drop table if it exists
2015-03-12 17:25:24 +01:00
Willy Morin
eca61f8771 Fix explanation typo. Drop table if it exists 2015-03-12 11:42:21 +01:00
Dimitri Fontaine
9361b2113e Merge pull request #191 from mtyson01/specdates
Fix incorrect dates in specfile
2015-03-09 10:56:41 +01:00
Matt Tyson
24e6fc0384 Fix incorrect dates in specfile
RPM complains about these dates being invalid during the build process
2015-03-09 00:47:07 +00: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