third_party: add libpg_query and sqlc
This adds sqlc, a SQL query code generator for Go (and other languages).
It in turn requires pganalyze's libpg_query, which is a C library for
parsing PostgreSQL queries.
To test:
$ bazel build @com_github_kyleconroy_sqlc//cmd/sqlc
In the future this will be used by Bazel rules to generate sources at
build time.
Change-Id: I369c9ab503e8ce6952fd3f73c233dd3d59922358
Reviewed-on: https://review.monogon.dev/c/monogon/+/882
Tested-by: Jenkins CI
Reviewed-by: Leopold Schabel <leo@monogon.tech>
diff --git a/third_party/libpg_query/external/BUILD.repo b/third_party/libpg_query/external/BUILD.repo
new file mode 100644
index 0000000..c0f98a7
--- /dev/null
+++ b/third_party/libpg_query/external/BUILD.repo
@@ -0,0 +1,63 @@
+filegroup(
+ name = "all",
+ srcs = glob(["**"]),
+ visibility = ["//visibility:public"],
+)
+
+cc_library(
+ name = "libpg_query",
+ srcs = glob([
+ "src/*.c",
+ "src/*.h",
+
+ "vendor/protobuf-c/protobuf-c.h",
+ "vendor/protobuf-c/protobuf-c.c",
+
+ "vendor/xxhash/xxhash.c",
+
+ "protobuf/pg_query.pb-c.c",
+ "protobuf/pg_query.pb-c.h",
+
+ "src/postgres/include/*.h",
+ "src/postgres/include/**/*.h",
+ ], [
+ "src/pg_query_enum_defs.c",
+ "src/pg_query_fingerprint_defs.c",
+ "src/pg_query_fingerprint_conds.c",
+ "src/pg_query_outfuncs_defs.c",
+ "src/pg_query_outfuncs_conds.c",
+ "src/pg_query_readfuncs_defs.c",
+ "src/pg_query_readfuncs_conds.c",
+ "src/pg_query_json_helper.c",
+ ]),
+ textual_hdrs = [
+ "src/pg_query_enum_defs.c",
+ "src/pg_query_fingerprint_defs.c",
+ "src/pg_query_fingerprint_conds.c",
+ "src/pg_query_outfuncs_defs.c",
+ "src/pg_query_outfuncs_conds.c",
+ "src/pg_query_readfuncs_defs.c",
+ "src/pg_query_readfuncs_conds.c",
+ "src/pg_query_json_helper.c",
+ ],
+ hdrs = [
+ "pg_query.h",
+ "vendor/xxhash/xxhash.h",
+ ],
+ # Unfortunate. We should patch this library so that this doesn't pollute
+ # all dependents.
+ includes = [
+ "vendor/xxhash",
+ "src/postgres/include",
+ "vendor",
+ "vendor/protobuf-c",
+ "src",
+ ],
+ copts = [
+ "-Iexternal/libpg_query/protobuf",
+ "-Iexternal/libpg_query/vendor/xxhash",
+ ],
+ visibility = [
+ "@com_github_pganalyze_pg_query_go_v2//:__subpackages__",
+ ],
+)