pg_query_go
Go library to parse and normalize SQL queries using the PostgreSQL query parser
File Explorer
Download Latest Version (.zip)- ci.yml
- amapi.h
- attmap.h
- attnum.h
- brin_internal.h
- brin_tuple.h
- clog.h
- commit_ts.h
- detoast.h
- genam.h
- gin.h
- gokeep.go
- htup.h
- htup_details.h
- itup.h
- parallel.h
- printtup.h
- relation.h
- relscan.h
- rmgr.h
- rmgrlist.h
- sdir.h
- skey.h
- slru.h
- stratnum.h
- sysattr.h
- table.h
- tableam.h
- tidstore.h
- toast_compression.h
- transam.h
- tsmapi.h
- tupconvert.h
- tupdesc.h
- tupmacs.h
- twophase.h
- xact.h
- xlog.h
- xlog_internal.h
- xlogbackup.h
- xlogdefs.h
- xlogprefetcher.h
- xlogreader.h
- xlogrecord.h
- xlogrecovery.h
- archive_module.h
- gokeep.go
- catalog.h
- catversion.h
- dependency.h
- genbki.h
- gokeep.go
- index.h
- indexing.h
- namespace.h
- objectaccess.h
- objectaddress.h
- pg_aggregate.h
- pg_aggregate_d.h
- pg_am.h
- pg_am_d.h
- pg_attribute.h
- pg_attribute_d.h
- pg_authid.h
- pg_authid_d.h
- pg_class.h
- pg_class_d.h
- pg_collation.h
- pg_collation_d.h
- pg_constraint.h
- pg_constraint_d.h
- pg_control.h
- pg_conversion.h
- pg_conversion_d.h
- pg_database.h
- pg_database_d.h
- pg_depend.h
- pg_depend_d.h
- pg_event_trigger.h
- pg_event_trigger_d.h
- pg_index.h
- pg_index_d.h
- pg_language.h
- pg_language_d.h
- pg_namespace.h
- pg_namespace_d.h
- pg_opclass.h
- pg_opclass_d.h
- pg_operator.h
- pg_operator_d.h
- pg_opfamily.h
- pg_opfamily_d.h
- pg_partitioned_table.h
- pg_partitioned_table_d.h
- pg_proc.h
- pg_proc_d.h
- pg_publication.h
- pg_publication_d.h
- pg_replication_origin.h
- pg_replication_origin_d.h
- pg_statistic.h
- pg_statistic_d.h
- pg_statistic_ext.h
- pg_statistic_ext_d.h
- pg_transform.h
- pg_transform_d.h
- pg_trigger.h
- pg_trigger_d.h
- pg_ts_config.h
- pg_ts_config_d.h
- pg_ts_dict.h
- pg_ts_dict_d.h
- pg_ts_parser.h
- pg_ts_parser_d.h
- pg_ts_template.h
- pg_ts_template_d.h
- pg_type.h
- pg_type_d.h
- storage.h
- syscache_ids.h
- async.h
- dbcommands.h
- defrem.h
- event_trigger.h
- explain.h
- gokeep.go
- prepare.h
- tablespace.h
- trigger.h
- user.h
- vacuum.h
- cryptohash.h
- file_perm.h
- file_utils.h
- gokeep.go
- hashfn.h
- hashfn_unstable.h
- int.h
- keywords.h
- kwlookup.h
- pg_prng.h
- relpath.h
- scram-common.h
- sha2.h
- string.h
- unicode_east_asian_fw_table.h
- unicode_nonspacing_table.h
- gokeep.go
- timestamp.h
- execdesc.h
- executor.h
- functions.h
- gokeep.go
- instrument.h
- spi.h
- tablefunc.h
- tuptable.h
- fdwapi.h
- gokeep.go
- gokeep.go
- jit.h
- dshash.h
- gokeep.go
- ilist.h
- pairingheap.h
- simplehash.h
- sort_template.h
- stringinfo.h
- auth.h
- crypt.h
- gokeep.go
- hba.h
- libpq-be.h
- libpq.h
- pqcomm.h
- pqformat.h
- pqsignal.h
- protocol.h
- sasl.h
- scram.h
- gokeep.go
- pg_wchar.h
- stringinfo_mb.h
- bitmapset.h
- execnodes.h
- extensible.h
- gokeep.go
- lockoptions.h
- makefuncs.h
- memnodes.h
- miscnodes.h
- nodeFuncs.h
- nodes.h
- nodetags.h
- params.h
- parsenodes.h
- pathnodes.h
- pg_list.h
- plannodes.h
- primnodes.h
- print.h
- queryjumble.h
- replnodes.h
- supportnodes.h
- tidbitmap.h
- value.h
- cost.h
- geqo.h
- geqo_gene.h
- gokeep.go
- optimizer.h
- paths.h
- planmain.h
- analyze.h
- gokeep.go
- kwlist.h
- parse_agg.h
- parse_coerce.h
- parse_expr.h
- parse_func.h
- parse_node.h
- parse_oper.h
- parse_relation.h
- parse_type.h
- parser.h
- parsetree.h
- scanner.h
- scansup.h
- gokeep.go
- partdefs.h
- arch-arm.h
- arch-hppa.h
- arch-ppc.h
- arch-x86.h
- fallback.h
- generic-gcc.h
- generic-msvc.h
- generic-sunpro.h
- generic.h
- gokeep.go
- gokeep.go
- inet.h
- gokeep.go
- in.h
- tcp.h
- gokeep.go
- resource.h
- select.h
- socket.h
- un.h
- wait.h
- dlfcn.h
- gokeep.go
- grp.h
- netdb.h
- pwd.h
- file.h
- gokeep.go
- param.h
- time.h
- dirent.h
- gokeep.go
- unistd.h
- utime.h
- atomics.h
- gokeep.go
- pg_bitutils.h
- pg_bswap.h
- pg_crc32c.h
- pg_iovec.h
- simd.h
- win32.h
- win32_port.h
- gokeep.go
- instr_time.h
- autovacuum.h
- bgworker.h
- bgworker_internals.h
- bgwriter.h
- gokeep.go
- interrupt.h
- pgarch.h
- postmaster.h
- startup.h
- syslogger.h
- walsummarizer.h
- walwriter.h
- gokeep.go
- regex.h
- gokeep.go
- logicallauncher.h
- logicalproto.h
- logicalworker.h
- origin.h
- reorderbuffer.h
- slot.h
- slotsync.h
- syncrep.h
- walreceiver.h
- walsender.h
- gokeep.go
- prs2lock.h
- rewriteHandler.h
- rewriteManip.h
- rewriteSupport.h
- block.h
- buf.h
- bufmgr.h
- bufpage.h
- condition_variable.h
- dsm.h
- dsm_impl.h
- fd.h
- fileset.h
- gokeep.go
- ipc.h
- item.h
- itemid.h
- itemptr.h
- large_object.h
- latch.h
- lmgr.h
- lock.h
- lockdefs.h
- lwlock.h
- lwlocknames.h
- off.h
- pg_sema.h
- pg_shmem.h
- pmsignal.h
- predicate.h
- proc.h
- procarray.h
- proclist_types.h
- procnumber.h
- procsignal.h
- read_stream.h
- relfilelocator.h
- s_lock.h
- sharedfileset.h
- shm_mq.h
- shm_toc.h
- shmem.h
- sinval.h
- smgr.h
- spin.h
- standby.h
- standbydefs.h
- sync.h
- cmdtag.h
- cmdtaglist.h
- deparse_utility.h
- dest.h
- fastpath.h
- gokeep.go
- pquery.h
- tcopprot.h
- utility.h
- gokeep.go
- ts_cache.h
- acl.h
- aclchk_internal.h
- array.h
- ascii.h
- backend_progress.h
- backend_status.h
- builtins.h
- bytea.h
- catcache.h
- date.h
- datetime.h
- datum.h
- dsa.h
- elog.h
- errcodes.h
- expandeddatum.h
- expandedrecord.h
- float.h
- fmgroids.h
- fmgrprotos.h
- fmgrtab.h
- gokeep.go
- guc.h
- guc_hooks.h
- guc_tables.h
- hsearch.h
- injection_point.h
- inval.h
- logtape.h
- lsyscache.h
- memdebug.h
- memutils.h
- memutils_internal.h
- memutils_memorychunk.h
- numeric.h
- palloc.h
- partcache.h
- pg_locale.h
- pgstat_internal.h
- plancache.h
- portal.h
- probes.h
- ps_status.h
- queryenvironment.h
- regproc.h
- rel.h
- relcache.h
- reltrigger.h
- resowner.h
- ruleutils.h
- sharedtuplestore.h
- snapmgr.h
- snapshot.h
- sortsupport.h
- syscache.h
- timeout.h
- timestamp.h
- tuplesort.h
- tuplestore.h
- typcache.h
- varlena.h
- wait_event.h
- wait_event_types.h
- xml.h
- c.h
- copyfuncs.funcs.c
- copyfuncs.switch.c
- equalfuncs.funcs.c
- equalfuncs.switch.c
- fmgr.h
- funcapi.h
- gokeep.go
- gram.h
- gramparse.h
- kwlist_d.h
- miscadmin.h
- pg_config.h
- pg_config_ext.h
- pg_config_manual.h
- pg_config_os.h
- pg_getopt.h
- pg_trace.h
- pgstat.h
- pgtime.h
- pl_gram.h
- pl_reserved_kwlist.h
- pl_reserved_kwlist_d.h
- pl_unreserved_kwlist.h
- pl_unreserved_kwlist_d.h
- plerrcodes.h
- plpgsql.h
- port.h
- postgres.h
- postgres_ext.h
- varatt.h
- gokeep.go
- pg_query.pb-c.h
- pg_query.pb.h
- gokeep.go
- protobuf-c.h
- gokeep.go
- xxhash.h
- gokeep.go
- pg_query.h
- pg_query_enum_defs.c
- pg_query_fingerprint_conds.c
- pg_query_fingerprint_defs.c
- pg_query_json_helper.c
- pg_query_outfuncs_conds.c
- pg_query_outfuncs_defs.c
- pg_query_readfuncs_conds.c
- pg_query_readfuncs_defs.c
- postgres_deparse.h
- protobuf-c.h
- xxhash.h
- build_cgo.go
- COPYRIGHT
- doc.go
- parser.go
- pg_query.c
- pg_query.pb-c.c
- pg_query_deparse.c
- pg_query_fingerprint.c
- pg_query_fingerprint.h
- pg_query_internal.h
- pg_query_is_utility_stmt.c
- pg_query_json_plpgsql.c
- pg_query_json_plpgsql.h
- pg_query_normalize.c
- pg_query_outfuncs.h
- pg_query_outfuncs_json.c
- pg_query_outfuncs_protobuf.c
- pg_query_parse.c
- pg_query_parse_plpgsql.c
- pg_query_raw_tree_walker_supports.c
- pg_query_readfuncs.h
- pg_query_readfuncs_protobuf.c
- pg_query_scan.c
- pg_query_split.c
- pg_query_summary.c
- pg_query_summary.h
- pg_query_summary_statement_type.c
- pg_query_summary_truncate.c
- postgres_deparse.c
- protobuf-c.c
- src_backend_catalog_namespace.c
- src_backend_catalog_pg_proc.c
- src_backend_commands_define.c
- src_backend_nodes_bitmapset.c
- src_backend_nodes_copyfuncs.c
- src_backend_nodes_equalfuncs.c
- src_backend_nodes_extensible.c
- src_backend_nodes_list.c
- src_backend_nodes_makefuncs.c
- src_backend_nodes_nodeFuncs.c
- src_backend_nodes_value.c
- src_backend_parser_gram.c
- src_backend_parser_parser.c
- src_backend_parser_scan.c
- src_backend_parser_scansup.c
- src_backend_storage_ipc_ipc.c
- src_backend_tcop_postgres.c
- src_backend_utils_activity_pgstat_database.c
- src_backend_utils_adt_datum.c
- src_backend_utils_adt_expandeddatum.c
- src_backend_utils_adt_format_type.c
- src_backend_utils_adt_numutils.c
- src_backend_utils_adt_ruleutils.c
- src_backend_utils_error_assert.c
- src_backend_utils_error_elog.c
- src_backend_utils_fmgr_fmgr.c
- src_backend_utils_init_globals.c
- src_backend_utils_mb_mbutils.c
- src_backend_utils_misc_guc_tables.c
- src_backend_utils_mmgr_alignedalloc.c
- src_backend_utils_mmgr_aset.c
- src_backend_utils_mmgr_bump.c
- src_backend_utils_mmgr_generation.c
- src_backend_utils_mmgr_mcxt.c
- src_backend_utils_mmgr_slab.c
- src_common_encnames.c
- src_common_hashfn.c
- src_common_keywords.c
- src_common_kwlist_d.h
- src_common_kwlookup.c
- src_common_psprintf.c
- src_common_stringinfo.c
- src_common_wchar.c
- src_pl_plpgsql_src_pl_comp.c
- src_pl_plpgsql_src_pl_funcs.c
- src_pl_plpgsql_src_pl_gram.c
- src_pl_plpgsql_src_pl_handler.c
- src_pl_plpgsql_src_pl_reserved_kwlist_d.h
- src_pl_plpgsql_src_pl_scanner.c
- src_pl_plpgsql_src_pl_unreserved_kwlist_d.h
- src_port_pg_bitutils.c
- src_port_pgstrcasecmp.c
- src_port_qsort.c
- src_port_snprintf.c
- src_port_strerror.c
- src_port_strlcpy.c
- string_to_bytes.go
- xxhash.c
- gokeep.sh
- fingerprint.json
- .gitignore
- benchmark_test.go
- CHANGELOG.md
- fingerprint_test.go
- go.mod
- go.sum
- is_utility_test.go
- LICENSE
- LICENSE.POSTGRESQL
- Makefile
- makefuncs.go
- normalize_test.go
- parse_test.go
- pg_query.go
- pg_query.pb.go
- README.md
- split_test.go
- summary_test.go
# Installation Guide
1. Get the code
git clone https://github.com/pganalyze/pg_query_go
Downloads the entire project code from GitHub to your computer.
cd pg_query_go
Moves into the project folder you just downloaded.
2. Go
Medium RecommendedPrerequisites
$ go run main.go
Runs the Go program directly without a separate build step.
go build -a
Compiles the Go program into an executable.
If the build finishes without errors, it worked. If you used go run ., check the terminal output.
Pulled directly from this repo's README.
3. Make
MediumPrerequisites
- Git Needed to download the project code from GitHub.
- Make Usually pre-installed on Linux/macOS. On Windows, install separately (e.g. via MSYS2 or WSL).
make
Compiles the code based on the generated build configuration to produce an executable.
If it finishes without errors, it worked. Try running the generated executable directly.
// repository documentation
Was this content helpful?
(0 ratings)
