postgresql/src/backend/commands/Makefile
Heikki Linnakangas c532d15ddd Split copy.c into four files.
Copy.c has grown really large. Split it into more manageable parts:

- copy.c now contains only a few functions that are common to COPY FROM
  and COPY TO.

- copyto.c contains code for COPY TO.

- copyfrom.c contains code for initializing COPY FROM, and inserting the
  tuples to the correct table.

- copyfromparse.c contains code for reading from the client/file/program,
  and parsing the input text/CSV/binary format into tuples.

All of these parts are fairly complicated, and fairly independent of each
other. There is a patch being discussed to implement parallel COPY FROM,
which will add a lot of new code to the COPY FROM path, and another patch
which would allow INSERTs to use the same multi-insert machinery as COPY
FROM, both of which will require refactoring that code. With those two
patches, there's going to be a lot of code churn in copy.c anyway, so now
seems like a good time to do this refactoring.

The CopyStateData struct is also split. All the formatting options, like
FORMAT, QUOTE, ESCAPE, are put in a new CopyFormatOption struct, which
is used by both COPY FROM and TO. Other state data are kept in separate
CopyFromStateData and CopyToStateData structs.

Reviewed-by: Soumyadeep Chakraborty, Erik Rijkers, Vignesh C, Andres Freund
Discussion: https://www.postgresql.org/message-id/8e15b560-f387-7acc-ac90-763986617bfb%40iki.fi
2020-11-23 10:50:50 +02:00

66 lines
1.1 KiB
Makefile

#-------------------------------------------------------------------------
#
# Makefile--
# Makefile for backend/commands
#
# IDENTIFICATION
# src/backend/commands/Makefile
#
#-------------------------------------------------------------------------
subdir = src/backend/commands
top_builddir = ../../..
include $(top_builddir)/src/Makefile.global
OBJS = \
aggregatecmds.o \
alter.o \
amcmds.o \
analyze.o \
async.o \
cluster.o \
collationcmds.o \
comment.o \
constraint.o \
conversioncmds.o \
copy.o \
copyfrom.o \
copyfromparse.o \
copyto.o \
createas.o \
dbcommands.o \
define.o \
discard.o \
dropcmds.o \
event_trigger.o \
explain.o \
extension.o \
foreigncmds.o \
functioncmds.o \
indexcmds.o \
lockcmds.o \
matview.o \
opclasscmds.o \
operatorcmds.o \
policy.o \
portalcmds.o \
prepare.o \
proclang.o \
publicationcmds.o \
schemacmds.o \
seclabel.o \
sequence.o \
statscmds.o \
subscriptioncmds.o \
tablecmds.o \
tablespace.o \
trigger.o \
tsearchcmds.o \
typecmds.o \
user.o \
vacuum.o \
variable.o \
view.o
include $(top_srcdir)/src/backend/common.mk