mirror of
https://github.com/dimitri/pgloader.git
synced 2026-02-05 06:21:40 +01:00
To be able to use "t" (or "nil") as a column name, pgloader needs to be able to generate lisp code where those symbols are available. It's simple enough in that a Common Lisp package that doesn't :use :cl fullfills the condition, so intern user symbols in a specially crafted package that doesn't :use :cl. Now, we still need to be able to run transformation code that is using the :cl package symbols and the pgloader.transforms functions too. In this commit we introduce a heuristic to pick symbols either as functions from pgloader.transforms or anything else in pgloader.user-symbols. And so that user code may use NIL too, we provide an override mechanism to the intern-symbol heuristic and use it only when parsing user code, not when producing Common Lisp code from the parsed load command.
97 lines
2.6 KiB
Makefile
97 lines
2.6 KiB
Makefile
TMPDIR ?= /tmp
|
|
TESTS = $(wildcard *.load)
|
|
OUT = $(TESTS:.load=.out)
|
|
|
|
REMOTE = archive.load bossa-all.load bossa.load census-places.load dbf-zip.load
|
|
LOCAL = $(filter-out $(REMOTE:.load=.out),$(OUT))
|
|
REGRESS= allcols.load \
|
|
csv-before-after.load \
|
|
csv-districts.load \
|
|
csv-parse-date.load \
|
|
csv-error.load \
|
|
csv-escape-mode.load \
|
|
csv-filename-pattern.load \
|
|
csv-header.load \
|
|
csv-json.load \
|
|
csv-keep-extra-blanks.load \
|
|
csv-non-printable.load \
|
|
csv-nulls.load \
|
|
csv-temp.load \
|
|
csv-trim-extra-blanks.load \
|
|
csv.load \
|
|
copy.load \
|
|
copy-hex.load \
|
|
dbf.load \
|
|
errors.load \
|
|
fixed.load \
|
|
fields-with-periods.load \
|
|
ixf.load \
|
|
overflow.load \
|
|
partial.load \
|
|
serial.load \
|
|
udc.load \
|
|
xzero.load
|
|
|
|
PGLOADER ?= ../build/bin/pgloader
|
|
|
|
regress: clean-out $(addprefix regress/out/, $(REGRESS:.load=.out)) ;
|
|
|
|
clean-out:
|
|
rm -f regress/out/*
|
|
|
|
local: prepare $(LOCAL)
|
|
|
|
remote: prepare $(REMOTE:.load=.out)
|
|
|
|
all: prepare $(OUT)
|
|
|
|
prepare: bossa.sql sakila
|
|
-dropdb -U postgres pgloader
|
|
-dropdb -U postgres stocks
|
|
-dropdb -U postgres ip4r
|
|
-createdb -U postgres -O `whoami` pgloader
|
|
-createdb -U postgres -O `whoami` stocks
|
|
-createdb -U postgres -O `whoami` ip4r
|
|
-psql -U postgres -d pgloader -c 'create extension ip4r'
|
|
-psql -U postgres -d ip4r -c 'create extension ip4r'
|
|
-psql -d stocks -f bossa.sql
|
|
|
|
errors.out: errors.load
|
|
-$(PGLOADER) $<
|
|
@echo
|
|
|
|
nofile.out: nofile.load
|
|
-$(PGLOADER) $<
|
|
@echo
|
|
|
|
csv-hstore.out: csv-hstore.load
|
|
@echo skipping $@
|
|
|
|
# sakila needs preparing a MySQL database too
|
|
$(TMPDIR)/sakila-db/sakila-schema.sql: data/sakila-db.zip
|
|
rm -rf $(TMPDIR)/sakila-db
|
|
unzip $< -d $(TMPDIR)
|
|
|
|
sakila: $(TMPDIR)/sakila-db/sakila-schema.sql
|
|
-dropdb -U postgres sakila
|
|
-createdb -U postgres -O `whoami` sakila
|
|
-echo "DROP DATABASE sakila" | mysql -u root
|
|
echo "SOURCE $(TMPDIR)/sakila-db/sakila-schema.sql" | mysql -u root
|
|
echo "SOURCE $(TMPDIR)/sakila-db/sakila-data.sql" | mysql -u root
|
|
|
|
sakila.out: sakila sakila.load
|
|
-$(PGLOADER) sakila.load
|
|
@echo
|
|
|
|
csv-districts-stdin.out: csv-districts-stdin.load
|
|
cat data/2013_Gaz_113CDs_national.txt | $(PGLOADER) $^
|
|
|
|
# General case where we do NOT expect any error
|
|
%.out: %.load
|
|
$(PGLOADER) $<
|
|
@echo
|
|
|
|
# Regression tests
|
|
regress/out/%.out: %.load
|
|
./regress.sh $(PGLOADER) $<
|