mirror of
https://github.com/postgres/postgres.git
synced 2026-03-23 19:04:11 -04:00
Implementation of SQL property graph queries, according to SQL/PGQ standard (ISO/IEC 9075-16:2023). This adds: - GRAPH_TABLE table function for graph pattern matching - DDL commands CREATE/ALTER/DROP PROPERTY GRAPH - several new system catalogs and information schema views - psql \dG command - pg_get_propgraphdef() function for pg_dump and psql A property graph is a relation with a new relkind RELKIND_PROPGRAPH. It acts like a view in many ways. It is rewritten to a standard relational query in the rewriter. Access privileges act similar to a security invoker view. (The security definer variant is not currently implemented.) Starting documentation can be found in doc/src/sgml/ddl.sgml and doc/src/sgml/queries.sgml. Author: Peter Eisentraut <peter@eisentraut.org> Author: Ashutosh Bapat <ashutosh.bapat.oss@gmail.com> Reviewed-by: Junwang Zhao <zhjwpku@gmail.com> Reviewed-by: Ajay Pal <ajay.pal.k@gmail.com> Reviewed-by: Henson Choi <assam258@gmail.com> Discussion: https://www.postgresql.org/message-id/flat/a855795d-e697-4fa5-8698-d20122126567@eisentraut.org
52 lines
1.2 KiB
Meson
52 lines
1.2 KiB
Meson
# Copyright (c) 2022-2026, PostgreSQL Global Development Group
|
|
|
|
backend_sources += files(
|
|
'analyze.c',
|
|
'parse_agg.c',
|
|
'parse_clause.c',
|
|
'parse_coerce.c',
|
|
'parse_collate.c',
|
|
'parse_cte.c',
|
|
'parse_enr.c',
|
|
'parse_expr.c',
|
|
'parse_func.c',
|
|
'parse_graphtable.c',
|
|
'parse_jsontable.c',
|
|
'parse_merge.c',
|
|
'parse_node.c',
|
|
'parse_oper.c',
|
|
'parse_param.c',
|
|
'parse_relation.c',
|
|
'parse_target.c',
|
|
'parse_type.c',
|
|
'parse_utilcmd.c',
|
|
'scansup.c',
|
|
)
|
|
|
|
# Build a small utility static lib for the parser. The generation of the
|
|
# parser is slow, and building this separately avoids other parts of the
|
|
# backend having to wait till gram.h is generated.
|
|
parser_sources = files('parser.c')
|
|
|
|
backend_scanner = custom_target('scan',
|
|
input: 'scan.l',
|
|
output: 'scan.c',
|
|
command: [flex_cmd, '--no-backup', '--', '-CF', '-p', '-p'],
|
|
)
|
|
generated_sources += backend_scanner
|
|
parser_sources += backend_scanner
|
|
|
|
backend_parser = custom_target('gram',
|
|
input: 'gram.y',
|
|
kwargs: bison_kw,
|
|
)
|
|
generated_sources += backend_parser.to_list()
|
|
parser_sources += backend_parser
|
|
|
|
parser = static_library('parser',
|
|
parser_sources,
|
|
dependencies: [backend_code],
|
|
include_directories: include_directories('.'),
|
|
kwargs: internal_lib_args,
|
|
)
|
|
backend_link_with += parser
|