mirror of
https://github.com/postgres/postgres.git
synced 2026-02-21 08:50:51 -05:00
This feature allows jsonb data to be treated as a table and thus used in a FROM clause like other tabular data. Data can be selected from the jsonb using jsonpath expressions, and hoisted out of nested structures in the jsonb to form multiple rows, more or less like an outer join. Nikita Glukhov Reviewers have included (in no particular order) Andres Freund, Alexander Korotkov, Pavel Stehule, Andrew Alsup, Erik Rijkers, Zhihong Yu (whose name I previously misspelled), Himanshu Upadhyaya, Daniel Gustafsson, Justin Pryzby. Discussion: https://postgr.es/m/7e2cb85d-24cf-4abb-30a5-1a33715959bd@postgrespro.ru
72 lines
1.9 KiB
Makefile
72 lines
1.9 KiB
Makefile
#-------------------------------------------------------------------------
|
|
#
|
|
# Makefile for parser
|
|
#
|
|
# src/backend/parser/Makefile
|
|
#
|
|
#-------------------------------------------------------------------------
|
|
|
|
subdir = src/backend/parser
|
|
top_builddir = ../../..
|
|
include $(top_builddir)/src/Makefile.global
|
|
|
|
override CPPFLAGS := -I. -I$(srcdir) $(CPPFLAGS)
|
|
|
|
OBJS = \
|
|
analyze.o \
|
|
gram.o \
|
|
parse_agg.o \
|
|
parse_clause.o \
|
|
parse_coerce.o \
|
|
parse_collate.o \
|
|
parse_cte.o \
|
|
parse_enr.o \
|
|
parse_expr.o \
|
|
parse_func.o \
|
|
parse_jsontable.o \
|
|
parse_merge.o \
|
|
parse_node.o \
|
|
parse_oper.o \
|
|
parse_param.o \
|
|
parse_relation.o \
|
|
parse_target.o \
|
|
parse_type.o \
|
|
parse_utilcmd.o \
|
|
parser.o \
|
|
scan.o \
|
|
scansup.o
|
|
|
|
include $(top_srcdir)/src/backend/common.mk
|
|
|
|
|
|
# There is no correct way to write a rule that generates two files.
|
|
# Rules with two targets don't have that meaning, they are merely
|
|
# shorthand for two otherwise separate rules. If we have an action
|
|
# that in fact generates two or more files, we must choose one of them
|
|
# as primary and show it as the action's output, then make all of the
|
|
# other output files dependent on the primary, like this. Furthermore,
|
|
# the "touch" action is essential, because it ensures that gram.h is
|
|
# marked as newer than (or at least no older than) gram.c. Without that,
|
|
# make is likely to try to rebuild gram.h in subsequent runs, which causes
|
|
# failures in VPATH builds from tarballs.
|
|
|
|
gram.h: gram.c
|
|
touch $@
|
|
|
|
gram.c: BISONFLAGS += -d
|
|
gram.c: BISON_CHECK_CMD = $(PERL) $(srcdir)/check_keywords.pl $< $(top_srcdir)/src/include/parser/kwlist.h
|
|
|
|
|
|
scan.c: FLEXFLAGS = -CF -p -p
|
|
scan.c: FLEX_NO_BACKUP=yes
|
|
scan.c: FLEX_FIX_WARNING=yes
|
|
|
|
|
|
# Force these dependencies to be known even without dependency info built:
|
|
gram.o scan.o parser.o: gram.h
|
|
|
|
|
|
# gram.c, gram.h, and scan.c are in the distribution tarball, so they
|
|
# are not cleaned here.
|
|
clean distclean maintainer-clean:
|
|
rm -f lex.backup
|