supabase-postgres.git / summary / log / commit / refs

commit    a9162bfc310bdbd1db85a2d2421dd3f444290f8d
Author:   Oliver Rice <github@oliverrice.com>
Commit:   Div Arora <darora@users.noreply.github.com>
Date:     Mon Aug 05 21:26:08 2024 +0000

    postgis sql interface test


flake.nix | 2 +- nix/docs/adding-tests.md | 36 +- nix/tests/expected/postgis_sql_interface.out | 768 +++++++++++++++++++++++++++ nix/tests/expected/select_one.out | 1 - nix/tests/sql/postgis_sql_interface.sql | 20 + nix/tests/sql/select_one.sql | 1 - 6 files changed, 824 insertions(+), 4 deletions(-) diff --git a/flake.nix b/flake.nix index 5e8a3a8b..b44c68d8 100644 --- a/flake.nix +++ b/flake.nix @@ -421,7 +421,7 @@ #pg_prove -p 5432 -h localhost -d testing ${sqlTests}/*.sql - mkdir -p $out/regression_output + mkdir -p $out/regression_output pg_regress \ --use-existing \ --dbname=testing \ diff --git a/nix/docs/adding-tests.md b/nix/docs/adding-tests.md index 5f661235..e828a3ed 100644 --- a/nix/docs/adding-tests.md +++ b/nix/docs/adding-tests.md @@ -1,12 +1,46 @@ There are basically two types of tests you can add: - pgTAP based tests, and +- pg\_regress tests - Migration tests. -In both cases, a number of extensions may be installed into the database for +In all cases, a number of extensions may be installed into the database for use; you can see those in both [postgresql.conf.in](../tests/postgresql.conf.in) and [prime.sql](../tests/prime.sql) (extensions may be enabled in either place.) +## pg\_regress tests + +pg\_regress tests are in [tests/sql](./../tests/sql/) with output in [tests/expected](./../tests/expected/). +To create a new test, create a new SQL file in [tests/sql](./../tests/sql/) and then run: + +``` +nix flake check -L +``` + +Next, review the logs to identify where the test output was written + +``` +postgres> CREATE EXTENSION IF NOT EXISTS index_advisor; +postgres> CREATE EXTENSION +postgres> (using postmaster on localhost, port 5432) +postgres> ============== running regression test queries ============== +postgres> test new_test ... diff: /nix/store/5gk419ddz7mzzwhc9j6yj5i8lkw67pdl-tests/expected/new_test.out: No such file or directory +postgres> diff command failed with status 512: diff "/nix/store/5gk419ddz7mzzwhc9j6yj5i8lkw67pdl-tests/expected/new_test.out" "/nix/store/2fbrvnnr7iz6yigyf0rb0vxnyqvrgxzp-postgres-15.6-check-harness/regression_output/results/new_test.out" > "/nix/store/2fbrvnnr7iz6yigyf0rb0vxnyqvrgxzp-postgres-15.6-check-harness/regression_output/results/new_test.out.diff +``` + +and copy the `regression_output` directory to where you can review + +``` +cp -r /nix/store/2fbrvnnr7iz6yigyf0rb0vxnyqvrgxzp-postgres-15.6-check-harness/regression_output . +``` + +Then you can review the contents of `regression_output/results/new_test.out` to see if it matches what you expected. + +If it does match your expectations, copy the file to [tests/expected](./../tests/expected/) and the test will pass on the next run. + +If the output does not match your expectations, update the `<new_test>.sql` file, re-run with `nix flake check -L` and try again + + ## pgTAP tests These are super easy: simply add `.sql` files to the diff --git a/nix/tests/expected/postgis_sql_interface.out b/nix/tests/expected/postgis_sql_interface.out new file mode 100644 index 00000000..4065a18a --- /dev/null +++ b/nix/tests/expected/postgis_sql_interface.out @@ -0,0 +1,768 @@ +select + n.nspname as schema_name, + p.proname as function_name, + pg_catalog.pg_get_function_identity_arguments(p.oid) as argument_types, + pg_catalog.pg_get_function_result(p.oid) as return_type +from + pg_catalog.pg_proc p + join pg_catalog.pg_namespace n + on n.oid = p.pronamespace + join pg_catalog.pg_depend d + on d.objid = p.oid + join pg_catalog.pg_extension e + on e.oid = d.refobjid +where + e.extname = 'postgis' -- replace with your extension name + and n.nspname = 'public' + and d.deptype = 'e' +order by + schema_name, + function_name; + schema_name | function_name | argument_types | return_type +-------------+-------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------- + public | _postgis_deprecate | oldname text, newname text, version text | void + public | _postgis_index_extent | tbl regclass, col text | box2d + public | _postgis_join_selectivity | regclass, text, regclass, text, text | double precision + public | _postgis_pgsql_version | | text + public | _postgis_scripts_pgsql_version | | text + public | _postgis_selectivity | tbl regclass, att_name text, geom geometry, mode text | double precision + public | _postgis_stats | tbl regclass, att_name text, text | text + public | _st_3ddfullywithin | geom1 geometry, geom2 geometry, double precision | boolean + public | _st_3ddwithin | geom1 geometry, geom2 geometry, double precision | boolean + public | _st_3dintersects | geom1 geometry, geom2 geometry | boolean + public | _st_asgml | integer, geometry, integer, integer, text, text | text + public | _st_asx3d | integer, geometry, integer, integer, text | text + public | _st_bestsrid | geography | integer + public | _st_bestsrid | geography, geography | integer + public | _st_contains | geom1 geometry, geom2 geometry | boolean + public | _st_containsproperly | geom1 geometry, geom2 geometry | boolean + public | _st_coveredby | geog1 geography, geog2 geography | boolean + public | _st_coveredby | geom1 geometry, geom2 geometry | boolean + public | _st_covers | geom1 geometry, geom2 geometry | boolean + public | _st_covers | geog1 geography, geog2 geography | boolean + public | _st_crosses | geom1 geometry, geom2 geometry | boolean + public | _st_dfullywithin | geom1 geometry, geom2 geometry, double precision | boolean + public | _st_distancetree | geography, geography, double precision, boolean | double precision + public | _st_distancetree | geography, geography | double precision + public | _st_distanceuncached | geography, geography, boolean | double precision + public | _st_distanceuncached | geography, geography, double precision, boolean | double precision + public | _st_distanceuncached | geography, geography | double precision + public | _st_dwithin | geog1 geography, geog2 geography, tolerance double precision, use_spheroid boolean | boolean + public | _st_dwithin | geom1 geometry, geom2 geometry, double precision | boolean + public | _st_dwithinuncached | geography, geography, double precision, boolean | boolean + public | _st_dwithinuncached | geography, geography, double precision | boolean + public | _st_equals | geom1 geometry, geom2 geometry | boolean + public | _st_expand | geography, double precision | geography + public | _st_geomfromgml | text, integer | geometry + public | _st_intersects | geom1 geometry, geom2 geometry | boolean + public | _st_linecrossingdirection | line1 geometry, line2 geometry | integer + public | _st_longestline | geom1 geometry, geom2 geometry | geometry + public | _st_maxdistance | geom1 geometry, geom2 geometry | double precision + public | _st_orderingequals | geom1 geometry, geom2 geometry | boolean + public | _st_overlaps | geom1 geometry, geom2 geometry | boolean + public | _st_pointoutside | geography | geography + public | _st_sortablehash | geom geometry | bigint + public | _st_touches | geom1 geometry, geom2 geometry | boolean + public | _st_voronoi | g1 geometry, clip geometry, tolerance double precision, return_polygons boolean | geometry + public | _st_within | geom1 geometry, geom2 geometry | boolean + public | addauth | text | boolean + public | addgeometrycolumn | table_name character varying, column_name character varying, new_srid integer, new_type character varying, new_dim integer, use_typmod boolean | text + public | addgeometrycolumn | catalog_name character varying, schema_name character varying, table_name character varying, column_name character varying, new_srid_in integer, new_type character varying, new_dim integer, use_typmod boolean | text + public | addgeometrycolumn | schema_name character varying, table_name character varying, column_name character varying, new_srid integer, new_type character varying, new_dim integer, use_typmod boolean | text + public | box | box3d | box + public | box | geometry | box + public | box2d | box3d | box2d + public | box2d | geometry | box2d + public | box2d_in | cstring | box2d + public | box2d_out | box2d | cstring + public | box2df_in | cstring | box2df + public | box2df_out | box2df | cstring + public | box3d | geometry | box3d + public | box3d | box2d | box3d + public | box3d_in | cstring | box3d + public | box3d_out | box3d | cstring + public | box3dtobox | box3d | box + public | bytea | geography | bytea + public | bytea | geometry | bytea + public | checkauth | text, text, text | integer + public | checkauth | text, text | integer + public | checkauthtrigger | | trigger + public | contains_2d | geometry, box2df | boolean + public | contains_2d | box2df, box2df | boolean + public | contains_2d | box2df, geometry | boolean + public | disablelongtransactions | | text + public | dropgeometrycolumn | table_name character varying, column_name character varying | text + public | dropgeometrycolumn | catalog_name character varying, schema_name character varying, table_name character varying, column_name character varying | text + public | dropgeometrycolumn | schema_name character varying, table_name character varying, column_name character varying | text + public | dropgeometrytable | table_name character varying | text + public | dropgeometrytable | catalog_name character varying, schema_name character varying, table_name character varying | text + public | dropgeometrytable | schema_name character varying, table_name character varying | text + public | enablelongtransactions | | text + public | equals | geom1 geometry, geom2 geometry | boolean + public | find_srid | character varying, character varying, character varying | integer + public | geog_brin_inclusion_add_value | internal, internal, internal, internal | boolean + public | geography | geography, integer, boolean | geography + public | geography | bytea | geography + public | geography | geometry | geography + public | geography_analyze | internal | boolean + public | geography_cmp | geography, geography | integer + public | geography_distance_knn | geography, geography | double precision + public | geography_eq | geography, geography | boolean + public | geography_ge | geography, geography | boolean + public | geography_gist_compress | internal | internal + public | geography_gist_consistent | internal, geography, integer | boolean + public | geography_gist_decompress | internal | internal + public | geography_gist_distance | internal, geography, integer | double precision + public | geography_gist_penalty | internal, internal, internal | internal + public | geography_gist_picksplit | internal, internal | internal + public | geography_gist_same | box2d, box2d, internal | internal + public | geography_gist_union | bytea, internal | internal + public | geography_gt | geography, geography | boolean + public | geography_in | cstring, oid, integer | geography + public | geography_le | geography, geography | boolean + public | geography_lt | geography, geography | boolean + public | geography_out | geography | cstring + public | geography_overlaps | geography, geography | boolean + public | geography_recv | internal, oid, integer | geography + public | geography_send | geography | bytea + public | geography_spgist_choose_nd | internal, internal | void + public | geography_spgist_compress_nd | internal | internal + public | geography_spgist_config_nd | internal, internal | void + public | geography_spgist_inner_consistent_nd | internal, internal | void + public | geography_spgist_leaf_consistent_nd | internal, internal | boolean + public | geography_spgist_picksplit_nd | internal, internal | void + public | geography_typmod_in | cstring[] | integer + public | geography_typmod_out | integer | cstring + public | geom2d_brin_inclusion_add_value | internal, internal, internal, internal | boolean + public | geom3d_brin_inclusion_add_value | internal, internal, internal, internal | boolean + public | geom4d_brin_inclusion_add_value | internal, internal, internal, internal | boolean + public | geometry | text | geometry + public | geometry | geometry, integer, boolean | geometry + public | geometry | point | geometry + public | geometry | path | geometry + public | geometry | polygon | geometry + public | geometry | geography | geometry + public | geometry | bytea | geometry + public | geometry | box3d | geometry + public | geometry | box2d | geometry + public | geometry_above | geom1 geometry, geom2 geometry | boolean + public | geometry_analyze | internal | boolean + public | geometry_below | geom1 geometry, geom2 geometry | boolean + public | geometry_cmp | geom1 geometry, geom2 geometry | integer + public | geometry_contained_3d | geom1 geometry, geom2 geometry | boolean + public | geometry_contains | geom1 geometry, geom2 geometry | boolean + public | geometry_contains_3d | geom1 geometry, geom2 geometry | boolean + public | geometry_contains_nd | geometry, geometry | boolean + public | geometry_distance_box | geom1 geometry, geom2 geometry | double precision + public | geometry_distance_centroid | geom1 geometry, geom2 geometry | double precision + public | geometry_distance_centroid_nd | geometry, geometry | double precision + public | geometry_distance_cpa | geometry, geometry | double precision + public | geometry_eq | geom1 geometry, geom2 geometry | boolean + public | geometry_ge | geom1 geometry, geom2 geometry | boolean + public | geometry_gist_compress_2d | internal | internal + public | geometry_gist_compress_nd | internal | internal + public | geometry_gist_consistent_2d | internal, geometry, integer | boolean + public | geometry_gist_consistent_nd | internal, geometry, integer | boolean + public | geometry_gist_decompress_2d | internal | internal + public | geometry_gist_decompress_nd | internal | internal + public | geometry_gist_distance_2d | internal, geometry, integer | double precision + public | geometry_gist_distance_nd | internal, geometry, integer | double precision + public | geometry_gist_penalty_2d | internal, internal, internal | internal + public | geometry_gist_penalty_nd | internal, internal, internal | internal + public | geometry_gist_picksplit_2d | internal, internal | internal + public | geometry_gist_picksplit_nd | internal, internal | internal + public | geometry_gist_same_2d | geom1 geometry, geom2 geometry, internal | internal + public | geometry_gist_same_nd | geometry, geometry, internal | internal + public | geometry_gist_sortsupport_2d | internal | void + public | geometry_gist_union_2d | bytea, internal | internal + public | geometry_gist_union_nd | bytea, internal | internal + public | geometry_gt | geom1 geometry, geom2 geometry | boolean + public | geometry_hash | geometry | integer + public | geometry_in | cstring | geometry + public | geometry_le | geom1 geometry, geom2 geometry | boolean + public | geometry_left | geom1 geometry, geom2 geometry | boolean + public | geometry_lt | geom1 geometry, geom2 geometry | boolean + public | geometry_out | geometry | cstring + public | geometry_overabove | geom1 geometry, geom2 geometry | boolean + public | geometry_overbelow | geom1 geometry, geom2 geometry | boolean + public | geometry_overlaps | geom1 geometry, geom2 geometry | boolean + public | geometry_overlaps_3d | geom1 geometry, geom2 geometry | boolean + public | geometry_overlaps_nd | geometry, geometry | boolean + public | geometry_overleft | geom1 geometry, geom2 geometry | boolean + public | geometry_overright | geom1 geometry, geom2 geometry | boolean + public | geometry_recv | internal | geometry + public | geometry_right | geom1 geometry, geom2 geometry | boolean + public | geometry_same | geom1 geometry, geom2 geometry | boolean + public | geometry_same_3d | geom1 geometry, geom2 geometry | boolean + public | geometry_same_nd | geometry, geometry | boolean + public | geometry_send | geometry | bytea + public | geometry_sortsupport | internal | void + public | geometry_spgist_choose_2d | internal, internal | void + public | geometry_spgist_choose_3d | internal, internal | void + public | geometry_spgist_choose_nd | internal, internal | void + public | geometry_spgist_compress_2d | internal | internal + public | geometry_spgist_compress_3d | internal | internal + public | geometry_spgist_compress_nd | internal | internal + public | geometry_spgist_config_2d | internal, internal | void + public | geometry_spgist_config_3d | internal, internal | void + public | geometry_spgist_config_nd | internal, internal | void + public | geometry_spgist_inner_consistent_2d | internal, internal | void + public | geometry_spgist_inner_consistent_3d | internal, internal | void + public | geometry_spgist_inner_consistent_nd | internal, internal | void + public | geometry_spgist_leaf_consistent_2d | internal, internal | boolean + public | geometry_spgist_leaf_consistent_3d | internal, internal | boolean + public | geometry_spgist_leaf_consistent_nd | internal, internal | boolean + public | geometry_spgist_picksplit_2d | internal, internal | void + public | geometry_spgist_picksplit_3d | internal, internal | void + public | geometry_spgist_picksplit_nd | internal, internal | void + public | geometry_typmod_in | cstring[] | integer + public | geometry_typmod_out | integer | cstring + public | geometry_within | geom1 geometry, geom2 geometry | boolean + public | geometry_within_nd | geometry, geometry | boolean + public | geometrytype | geography | text + public | geometrytype | geometry | text + public | geomfromewkb | bytea | geometry + public | geomfromewkt | text | geometry + public | get_proj4_from_srid | integer | text + public | gettransactionid | | xid + public | gidx_in | cstring | gidx + public | gidx_out | gidx | cstring + public | gserialized_gist_joinsel_2d | internal, oid, internal, smallint | double precision + public | gserialized_gist_joinsel_nd | internal, oid, internal, smallint | double precision + public | gserialized_gist_sel_2d | internal, oid, internal, integer | double precision + public | gserialized_gist_sel_nd | internal, oid, internal, integer | double precision + public | is_contained_2d | box2df, box2df | boolean + public | is_contained_2d | geometry, box2df | boolean + public | is_contained_2d | box2df, geometry | boolean + public | json | geometry | json + public | jsonb | geometry | jsonb + public | lockrow | text, text, text | integer + public | lockrow | text, text, text, text, timestamp without time zone | integer + public | lockrow | text, text, text, timestamp without time zone | integer + public | lockrow | text, text, text, text | integer + public | longtransactionsenabled | | boolean + public | overlaps_2d | box2df, box2df | boolean + public | overlaps_2d | box2df, geometry | boolean + public | overlaps_2d | geometry, box2df | boolean + public | overlaps_geog | gidx, gidx | boolean + public | overlaps_geog | geography, gidx | boolean + public | overlaps_geog | gidx, geography | boolean + public | overlaps_nd | geometry, gidx | boolean + public | overlaps_nd | gidx, geometry | boolean + public | overlaps_nd | gidx, gidx | boolean + public | path | geometry | path + public | pgis_asflatgeobuf_finalfn | internal | bytea + public | pgis_asflatgeobuf_transfn | internal, anyelement, boolean | internal + public | pgis_asflatgeobuf_transfn | internal, anyelement, boolean, text | internal + public | pgis_asflatgeobuf_transfn | internal, anyelement | internal + public | pgis_asgeobuf_finalfn | internal | bytea + public | pgis_asgeobuf_transfn | internal, anyelement, text | internal + public | pgis_asgeobuf_transfn | internal, anyelement | internal + public | pgis_asmvt_combinefn | internal, internal | internal + public | pgis_asmvt_deserialfn | bytea, internal | internal + public | pgis_asmvt_finalfn | internal | bytea + public | pgis_asmvt_serialfn | internal | bytea + public | pgis_asmvt_transfn | internal, anyelement, text | internal + public | pgis_asmvt_transfn | internal, anyelement, text, integer, text, text | internal + public | pgis_asmvt_transfn | internal, anyelement, text, integer | internal + public | pgis_asmvt_transfn | internal, anyelement, text, integer, text | internal + public | pgis_asmvt_transfn | internal, anyelement | internal + public | pgis_geometry_accum_transfn | internal, geometry, double precision, integer | internal + public | pgis_geometry_accum_transfn | internal, geometry | internal + public | pgis_geometry_accum_transfn | internal, geometry, double precision | internal + public | pgis_geometry_clusterintersecting_finalfn | internal | geometry[] + public | pgis_geometry_clusterwithin_finalfn | internal | geometry[] + public | pgis_geometry_collect_finalfn | internal | geometry + public | pgis_geometry_makeline_finalfn | internal | geometry + public | pgis_geometry_polygonize_finalfn | internal | geometry + public | pgis_geometry_union_parallel_combinefn | internal, internal | internal + public | pgis_geometry_union_parallel_deserialfn | bytea, internal | internal + public | pgis_geometry_union_parallel_finalfn | internal | geometry + public | pgis_geometry_union_parallel_serialfn | internal | bytea + public | pgis_geometry_union_parallel_transfn | internal, geometry, double precision | internal + public | pgis_geometry_union_parallel_transfn | internal, geometry | internal + public | point | geometry | point + public | polygon | geometry | polygon + public | populate_geometry_columns | use_typmod boolean | text + public | populate_geometry_columns | tbl_oid oid, use_typmod boolean | integer + public | postgis_addbbox | geometry | geometry + public | postgis_cache_bbox | | trigger + public | postgis_constraint_dims | geomschema text, geomtable text, geomcolumn text | integer + public | postgis_constraint_srid | geomschema text, geomtable text, geomcolumn text | integer + public | postgis_constraint_type | geomschema text, geomtable text, geomcolumn text | character varying + public | postgis_dropbbox | geometry | geometry + public | postgis_extensions_upgrade | | text + public | postgis_full_version | | text + public | postgis_geos_noop | geometry | geometry + public | postgis_geos_version | | text + public | postgis_getbbox | geometry | box2d + public | postgis_hasbbox | geometry | boolean + public | postgis_index_supportfn | internal | internal + public | postgis_lib_build_date | | text + public | postgis_lib_revision | | text + public | postgis_lib_version | | text + public | postgis_libjson_version | | text + public | postgis_liblwgeom_version | | text + public | postgis_libprotobuf_version | | text + public | postgis_libxml_version | | text + public | postgis_noop | geometry | geometry + public | postgis_proj_version | | text + public | postgis_scripts_build_date | | text + public | postgis_scripts_installed | | text + public | postgis_scripts_released | | text + public | postgis_svn_version | | text + public | postgis_transform_geometry | geom geometry, text, text, integer | geometry + public | postgis_type_name | geomname character varying, coord_dimension integer, use_new_name boolean | character varying + public | postgis_typmod_dims | integer | integer + public | postgis_typmod_srid | integer | integer + public | postgis_typmod_type | integer | text + public | postgis_version | | text + public | postgis_wagyu_version | | text + public | spheroid_in | cstring | spheroid + public | spheroid_out | spheroid | cstring + public | st_3dclosestpoint | geom1 geometry, geom2 geometry | geometry + public | st_3ddfullywithin | geom1 geometry, geom2 geometry, double precision | boolean + public | st_3ddistance | geom1 geometry, geom2 geometry | double precision + public | st_3ddwithin | geom1 geometry, geom2 geometry, double precision | boolean + public | st_3dextent | geometry | box3d + public | st_3dintersects | geom1 geometry, geom2 geometry | boolean + public | st_3dlength | geometry | double precision + public | st_3dlineinterpolatepoint | geometry, double precision | geometry + public | st_3dlongestline | geom1 geometry, geom2 geometry | geometry + public | st_3dmakebox | geom1 geometry, geom2 geometry | box3d + public | st_3dmaxdistance | geom1 geometry, geom2 geometry | double precision + public | st_3dperimeter | geometry | double precision + public | st_3dshortestline | geom1 geometry, geom2 geometry | geometry + public | st_addmeasure | geometry, double precision, double precision | geometry + public | st_addpoint | geom1 geometry, geom2 geometry | geometry + public | st_addpoint | geom1 geometry, geom2 geometry, integer | geometry + public | st_affine | geometry, double precision, double precision, double precision, double precision, double precision, double precision | geometry + public | st_affine | geometry, double precision, double precision, double precision, double precision, double precision, double precision, double precision, double precision, double precision, double precision, double precision, double precision | geometry + public | st_angle | pt1 geometry, pt2 geometry, pt3 geometry, pt4 geometry | double precision + public | st_angle | line1 geometry, line2 geometry | double precision + public | st_area | geog geography, use_spheroid boolean | double precision + public | st_area | geometry | double precision + public | st_area | text | double precision + public | st_area2d | geometry | double precision + public | st_asbinary | geography | bytea + public | st_asbinary | geography, text | bytea + public | st_asbinary | geometry, text | bytea + public | st_asbinary | geometry | bytea + public | st_asencodedpolyline | geom geometry, nprecision integer | text + public | st_asewkb | geometry, text | bytea + public | st_asewkb | geometry | bytea + public | st_asewkt | geography | text + public | st_asewkt | geography, integer | text + public | st_asewkt | text | text + public | st_asewkt | geometry, integer | text + public | st_asewkt | geometry | text + public | st_asflatgeobuf | anyelement, boolean | bytea + public | st_asflatgeobuf | anyelement | bytea + public | st_asflatgeobuf | anyelement, boolean, text | bytea + public | st_asgeobuf | anyelement, text | bytea + public | st_asgeobuf | anyelement | bytea + public | st_asgeojson | r record, geom_column text, maxdecimaldigits integer, pretty_bool boolean | text + public | st_asgeojson | geom geometry, maxdecimaldigits integer, options integer | text + public | st_asgeojson | text | text + public | st_asgeojson | geog geography, maxdecimaldigits integer, options integer | text + public | st_asgml | geom geometry, maxdecimaldigits integer, options integer | text + public | st_asgml | text | text + public | st_asgml | geog geography, maxdecimaldigits integer, options integer, nprefix text, id text | text + public | st_asgml | version integer, geog geography, maxdecimaldigits integer, options integer, nprefix text, id text | text + public | st_asgml | version integer, geom geometry, maxdecimaldigits integer, options integer, nprefix text, id text | text + public | st_ashexewkb | geometry, text | text + public | st_ashexewkb | geometry | text + public | st_askml | text | text + public | st_askml | geog geography, maxdecimaldigits integer, nprefix text | text + public | st_askml | geom geometry, maxdecimaldigits integer, nprefix text | text + public | st_aslatlontext | geom geometry, tmpl text | text + public | st_asmarc21 | geom geometry, format text | text + public | st_asmvt | anyelement, text, integer | bytea + public | st_asmvt | anyelement, text | bytea + public | st_asmvt | anyelement | bytea + public | st_asmvt | anyelement, text, integer, text | bytea + public | st_asmvt | anyelement, text, integer, text, text | bytea + public | st_asmvtgeom | geom geometry, bounds box2d, extent integer, buffer integer, clip_geom boolean | geometry + public | st_assvg | text | text + public | st_assvg | geog geography, rel integer, maxdecimaldigits integer | text + public | st_assvg | geom geometry, rel integer, maxdecimaldigits integer | text + public | st_astext | geometry | text + public | st_astext | geography | text + public | st_astext | text | text + public | st_astext | geography, integer | text + public | st_astext | geometry, integer | text + public | st_astwkb | geom geometry, prec integer, prec_z integer, prec_m integer, with_sizes boolean, with_boxes boolean | bytea + public | st_astwkb | geom geometry[], ids bigint[], prec integer, prec_z integer, prec_m integer, with_sizes boolean, with_boxes boolean | bytea + public | st_asx3d | geom geometry, maxdecimaldigits integer, options integer | text + public | st_azimuth | geog1 geography, geog2 geography | double precision + public | st_azimuth | geom1 geometry, geom2 geometry | double precision + public | st_bdmpolyfromtext | text, integer | geometry + public | st_bdpolyfromtext | text, integer | geometry + public | st_boundary | geometry | geometry + public | st_boundingdiagonal | geom geometry, fits boolean | geometry + public | st_box2dfromgeohash | text, integer | box2d + public | st_buffer | text, double precision, integer | geometry + public | st_buffer | geography, double precision | geography + public | st_buffer | geography, double precision, integer | geography + public | st_buffer | geography, double precision, text | geography + public | st_buffer | text, double precision | geometry + public | st_buffer | text, double precision, text | geometry + public | st_buffer | geom geometry, radius double precision, quadsegs integer | geometry + public | st_buffer | geom geometry, radius double precision, options text | geometry + public | st_buildarea | geometry | geometry + public | st_centroid | geometry | geometry + public | st_centroid | text | geometry + public | st_centroid | geography, use_spheroid boolean | geography + public | st_chaikinsmoothing | geometry, integer, boolean | geometry + public | st_cleangeometry | geometry | geometry + public | st_clipbybox2d | geom geometry, box box2d | geometry + public | st_closestpoint | geom1 geometry, geom2 geometry | geometry + public | st_closestpointofapproach | geometry, geometry | double precision + public | st_clusterdbscan | geometry, eps double precision, minpoints integer | integer + public | st_clusterintersecting | geometry[] | geometry[] + public | st_clusterintersecting | geometry | geometry[] + public | st_clusterkmeans | geom geometry, k integer, max_radius double precision | integer + public | st_clusterwithin | geometry, double precision | geometry[] + public | st_clusterwithin | geometry[], double precision | geometry[] + public | st_collect | geom1 geometry, geom2 geometry | geometry + public | st_collect | geometry | geometry + public | st_collect | geometry[] | geometry + public | st_collectionextract | geometry | geometry + public | st_collectionextract | geometry, integer | geometry + public | st_collectionhomogenize | geometry | geometry + public | st_combinebbox | box3d, geometry | box3d + public | st_combinebbox | box2d, geometry | box2d + public | st_combinebbox | box3d, box3d | box3d + public | st_concavehull | param_geom geometry, param_pctconvex double precision, param_allow_holes boolean | geometry + public | st_contains | geom1 geometry, geom2 geometry | boolean + public | st_containsproperly | geom1 geometry, geom2 geometry | boolean + public | st_convexhull | geometry | geometry + public | st_coorddim | geometry geometry | smallint + public | st_coveredby | geom1 geometry, geom2 geometry | boolean + public | st_coveredby | text, text | boolean + public | st_coveredby | geog1 geography, geog2 geography | boolean + public | st_covers | geog1 geography, geog2 geography | boolean + public | st_covers | text, text | boolean + public | st_covers | geom1 geometry, geom2 geometry | boolean + public | st_cpawithin | geometry, geometry, double precision | boolean + public | st_crosses | geom1 geometry, geom2 geometry | boolean + public | st_curvetoline | geom geometry, tol double precision, toltype integer, flags integer | geometry + public | st_delaunaytriangles | g1 geometry, tolerance double precision, flags integer | geometry + public | st_dfullywithin | geom1 geometry, geom2 geometry, double precision | boolean + public | st_difference | geom1 geometry, geom2 geometry, gridsize double precision | geometry + public | st_dimension | geometry | integer + public | st_disjoint | geom1 geometry, geom2 geometry | boolean + public | st_distance | geom1 geometry, geom2 geometry | double precision + public | st_distance | geog1 geography, geog2 geography, use_spheroid boolean | double precision + public | st_distance | text, text | double precision + public | st_distancecpa | geometry, geometry | double precision + public | st_distancesphere | geom1 geometry, geom2 geometry | double precision + public | st_distancesphere | geom1 geometry, geom2 geometry, radius double precision | double precision + public | st_distancespheroid | geom1 geometry, geom2 geometry, spheroid | double precision + public | st_distancespheroid | geom1 geometry, geom2 geometry | double precision + public | st_dump | geometry | SETOF geometry_dump + public | st_dumppoints | geometry | SETOF geometry_dump + public | st_dumprings | geometry | SETOF geometry_dump + public | st_dumpsegments | geometry | SETOF geometry_dump + public | st_dwithin | geom1 geometry, geom2 geometry, double precision | boolean + public | st_dwithin | geog1 geography, geog2 geography, tolerance double precision, use_spheroid boolean | boolean + public | st_dwithin | text, text, double precision | boolean + public | st_endpoint | geometry | geometry + public | st_envelope | geometry | geometry + public | st_equals | geom1 geometry, geom2 geometry | boolean + public | st_estimatedextent | text, text, text, boolean | box2d + public | st_estimatedextent | text, text | box2d + public | st_estimatedextent | text, text, text | box2d + public | st_expand | box box2d, dx double precision, dy double precision | box2d + public | st_expand | geometry, double precision | geometry + public | st_expand | geom geometry, dx double precision, dy double precision, dz double precision, dm double precision | geometry + public | st_expand | box2d, double precision | box2d + public | st_expand | box3d, double precision | box3d + public | st_expand | box box3d, dx double precision, dy double precision, dz double precision | box3d + public | st_extent | geometry | box2d + public | st_exteriorring | geometry | geometry + public | st_filterbym | geometry, double precision, double precision, boolean | geometry + public | st_findextent | text, text, text | box2d + public | st_findextent | text, text | box2d + public | st_flipcoordinates | geometry | geometry + public | st_force2d | geometry | geometry + public | st_force3d | geom geometry, zvalue double precision | geometry + public | st_force3dm | geom geometry, mvalue double precision | geometry + public | st_force3dz | geom geometry, zvalue double precision | geometry + public | st_force4d | geom geometry, zvalue double precision, mvalue double precision | geometry + public | st_forcecollection | geometry | geometry + public | st_forcecurve | geometry | geometry + public | st_forcepolygonccw | geometry | geometry + public | st_forcepolygoncw | geometry | geometry + public | st_forcerhr | geometry | geometry + public | st_forcesfs | geometry | geometry + public | st_forcesfs | geometry, version text | geometry + public | st_frechetdistance | geom1 geometry, geom2 geometry, double precision | double precision + public | st_fromflatgeobuf | anyelement, bytea | SETOF anyelement + public | st_fromflatgeobuftotable | text, text, bytea | void + public | st_generatepoints | area geometry, npoints integer | geometry + public | st_generatepoints | area geometry, npoints integer, seed integer | geometry + public | st_geogfromtext | text | geography + public | st_geogfromwkb | bytea | geography + public | st_geographyfromtext | text | geography + public | st_geohash | geog geography, maxchars integer | text + public | st_geohash | geom geometry, maxchars integer | text + public | st_geomcollfromtext | text | geometry + public | st_geomcollfromtext | text, integer | geometry + public | st_geomcollfromwkb | bytea | geometry + public | st_geomcollfromwkb | bytea, integer | geometry + public | st_geometricmedian | g geometry, tolerance double precision, max_iter integer, fail_if_not_converged boolean | geometry + public | st_geometryfromtext | text | geometry + public | st_geometryfromtext | text, integer | geometry + public | st_geometryn | geometry, integer | geometry + public | st_geometrytype | geometry | text + public | st_geomfromewkb | bytea | geometry + public | st_geomfromewkt | text | geometry + public | st_geomfromgeohash | text, integer | geometry + public | st_geomfromgeojson | text | geometry + public | st_geomfromgeojson | jsonb | geometry + public | st_geomfromgeojson | json | geometry + public | st_geomfromgml | text | geometry + public | st_geomfromgml | text, integer | geometry + public | st_geomfromkml | text | geometry + public | st_geomfrommarc21 | marc21xml text | geometry + public | st_geomfromtext | text | geometry + public | st_geomfromtext | text, integer | geometry + public | st_geomfromtwkb | bytea | geometry + public | st_geomfromwkb | bytea, integer | geometry + public | st_geomfromwkb | bytea | geometry + public | st_gmltosql | text | geometry + public | st_gmltosql | text, integer | geometry + public | st_hasarc | geometry geometry | boolean + public | st_hausdorffdistance | geom1 geometry, geom2 geometry | double precision + public | st_hausdorffdistance | geom1 geometry, geom2 geometry, double precision | double precision + public | st_hexagon | size double precision, cell_i integer, cell_j integer, origin geometry | geometry + public | st_hexagongrid | size double precision, bounds geometry, OUT geom geometry, OUT i integer, OUT j integer | SETOF record + public | st_interiorringn | geometry, integer | geometry + public | st_interpolatepoint | line geometry, point geometry | double precision + public | st_intersection | text, text | geometry + public | st_intersection | geom1 geometry, geom2 geometry, gridsize double precision | geometry + public | st_intersection | geography, geography | geography + public | st_intersects | geog1 geography, geog2 geography | boolean + public | st_intersects | text, text | boolean + public | st_intersects | geom1 geometry, geom2 geometry | boolean + public | st_isclosed | geometry | boolean + public | st_iscollection | geometry | boolean + public | st_isempty | geometry | boolean + public | st_ispolygonccw | geometry | boolean + public | st_ispolygoncw | geometry | boolean + public | st_isring | geometry | boolean + public | st_issimple | geometry | boolean + public | st_isvalid | geometry, integer | boolean + public | st_isvalid | geometry | boolean + public | st_isvaliddetail | geom geometry, flags integer | valid_detail + public | st_isvalidreason | geometry | text + public | st_isvalidreason | geometry, integer | text + public | st_isvalidtrajectory | geometry | boolean + public | st_length | geometry | double precision + public | st_length | geog geography, use_spheroid boolean | double precision + public | st_length | text | double precision + public | st_length2d | geometry | double precision + public | st_length2dspheroid | geometry, spheroid | double precision + public | st_lengthspheroid | geometry, spheroid | double precision + public | st_letters | letters text, font json | geometry + public | st_linecrossingdirection | line1 geometry, line2 geometry | integer + public | st_linefromencodedpolyline | txtin text, nprecision integer | geometry + public | st_linefrommultipoint | geometry | geometry + public | st_linefromtext | text, integer | geometry + public | st_linefromtext | text | geometry + public | st_linefromwkb | bytea, integer | geometry + public | st_linefromwkb | bytea | geometry + public | st_lineinterpolatepoint | geometry, double precision | geometry + public | st_lineinterpolatepoints | geometry, double precision, repeat boolean | geometry + public | st_linelocatepoint | geom1 geometry, geom2 geometry | double precision + public | st_linemerge | geometry, boolean | geometry + public | st_linemerge | geometry | geometry + public | st_linestringfromwkb | bytea, integer | geometry + public | st_linestringfromwkb | bytea | geometry + public | st_linesubstring | geometry, double precision, double precision | geometry + public | st_linetocurve | geometry geometry | geometry + public | st_locatealong | geometry geometry, measure double precision, leftrightoffset double precision | geometry + public | st_locatebetween | geometry geometry, frommeasure double precision, tomeasure double precision, leftrightoffset double precision | geometry + public | st_locatebetweenelevations | geometry geometry, fromelevation double precision, toelevation double precision | geometry + public | st_longestline | geom1 geometry, geom2 geometry | geometry + public | st_m | geometry | double precision + public | st_makebox2d | geom1 geometry, geom2 geometry | box2d + public | st_makeenvelope | double precision, double precision, double precision, double precision, integer | geometry + public | st_makeline | geometry[] | geometry + public | st_makeline | geometry | geometry + public | st_makeline | geom1 geometry, geom2 geometry | geometry + public | st_makepoint | double precision, double precision, double precision | geometry + public | st_makepoint | double precision, double precision | geometry + public | st_makepoint | double precision, double precision, double precision, double precision | geometry + public | st_makepointm | double precision, double precision, double precision | geometry + public | st_makepolygon | geometry | geometry + public | st_makepolygon | geometry, geometry[] | geometry + public | st_makevalid | geometry | geometry + public | st_makevalid | geom geometry, params text | geometry + public | st_maxdistance | geom1 geometry, geom2 geometry | double precision + public | st_maximuminscribedcircle | geometry, OUT center geometry, OUT nearest geometry, OUT radius double precision | record + public | st_memcollect | geometry | geometry + public | st_memsize | geometry | integer + public | st_memunion | geometry | geometry + public | st_minimumboundingcircle | inputgeom geometry, segs_per_quarter integer | geometry + public | st_minimumboundingradius | geometry, OUT center geometry, OUT radius double precision | record + public | st_minimumclearance | geometry | double precision + public | st_minimumclearanceline | geometry | geometry + public | st_mlinefromtext | text, integer | geometry + public | st_mlinefromtext | text | geometry + public | st_mlinefromwkb | bytea, integer | geometry + public | st_mlinefromwkb | bytea | geometry + public | st_mpointfromtext | text | geometry + public | st_mpointfromtext | text, integer | geometry + public | st_mpointfromwkb | bytea, integer | geometry + public | st_mpointfromwkb | bytea | geometry + public | st_mpolyfromtext | text | geometry + public | st_mpolyfromtext | text, integer | geometry + public | st_mpolyfromwkb | bytea | geometry + public | st_mpolyfromwkb | bytea, integer | geometry + public | st_multi | geometry | geometry + public | st_multilinefromwkb | bytea | geometry + public | st_multilinestringfromtext | text | geometry + public | st_multilinestringfromtext | text, integer | geometry + public | st_multipointfromtext | text | geometry + public | st_multipointfromwkb | bytea, integer | geometry + public | st_multipointfromwkb | bytea | geometry + public | st_multipolyfromwkb | bytea, integer | geometry + public | st_multipolyfromwkb | bytea | geometry + public | st_multipolygonfromtext | text, integer | geometry + public | st_multipolygonfromtext | text | geometry + public | st_ndims | geometry | smallint + public | st_node | g geometry | geometry + public | st_normalize | geom geometry | geometry + public | st_npoints | geometry | integer + public | st_nrings | geometry | integer + public | st_numgeometries | geometry | integer + public | st_numinteriorring | geometry | integer + public | st_numinteriorrings | geometry | integer + public | st_numpatches | geometry | integer + public | st_numpoints | geometry | integer + public | st_offsetcurve | line geometry, distance double precision, params text | geometry + public | st_orderingequals | geom1 geometry, geom2 geometry | boolean + public | st_orientedenvelope | geometry | geometry + public | st_overlaps | geom1 geometry, geom2 geometry | boolean + public | st_patchn | geometry, integer | geometry + public | st_perimeter | geometry | double precision + public | st_perimeter | geog geography, use_spheroid boolean | double precision + public | st_perimeter2d | geometry | double precision + public | st_point | double precision, double precision | geometry + public | st_point | double precision, double precision, srid integer | geometry + public | st_pointfromgeohash | text, integer | geometry + public | st_pointfromtext | text, integer | geometry + public | st_pointfromtext | text | geometry + public | st_pointfromwkb | bytea, integer | geometry + public | st_pointfromwkb | bytea | geometry + public | st_pointinsidecircle | geometry, double precision, double precision, double precision | boolean + public | st_pointm | xcoordinate double precision, ycoordinate double precision, mcoordinate double precision, srid integer | geometry + public | st_pointn | geometry, integer | geometry + public | st_pointonsurface | geometry | geometry + public | st_points | geometry | geometry + public | st_pointz | xcoordinate double precision, ycoordinate double precision, zcoordinate double precision, srid integer | geometry + public | st_pointzm | xcoordinate double precision, ycoordinate double precision, zcoordinate double precision, mcoordinate double precision, srid integer | geometry + public | st_polyfromtext | text, integer | geometry + public | st_polyfromtext | text | geometry + public | st_polyfromwkb | bytea, integer | geometry + public | st_polyfromwkb | bytea | geometry + public | st_polygon | geometry, integer | geometry + public | st_polygonfromtext | text, integer | geometry + public | st_polygonfromtext | text | geometry + public | st_polygonfromwkb | bytea | geometry + public | st_polygonfromwkb | bytea, integer | geometry + public | st_polygonize | geometry[] | geometry + public | st_polygonize | geometry | geometry + public | st_project | geog geography, distance double precision, azimuth double precision | geography + public | st_quantizecoordinates | g geometry, prec_x integer, prec_y integer, prec_z integer, prec_m integer | geometry + public | st_reduceprecision | geom geometry, gridsize double precision | geometry + public | st_relate | geom1 geometry, geom2 geometry, text | boolean + public | st_relate | geom1 geometry, geom2 geometry | text + public | st_relate | geom1 geometry, geom2 geometry, integer | text + public | st_relatematch | text, text | boolean + public | st_removepoint | geometry, integer | geometry + public | st_removerepeatedpoints | geom geometry, tolerance double precision | geometry + public | st_reverse | geometry | geometry + public | st_rotate | geometry, double precision, geometry | geometry + public | st_rotate | geometry, double precision, double precision, double precision | geometry + public | st_rotate | geometry, double precision | geometry + public | st_rotatex | geometry, double precision | geometry + public | st_rotatey | geometry, double precision | geometry + public | st_rotatez | geometry, double precision | geometry + public | st_scale | geometry, geometry, origin geometry | geometry + public | st_scale | geometry, geometry | geometry + public | st_scale | geometry, double precision, double precision, double precision | geometry + public | st_scale | geometry, double precision, double precision | geometry + public | st_scroll | geometry, geometry | geometry + public | st_segmentize | geog geography, max_segment_length double precision | geography + public | st_segmentize | geometry, double precision | geometry + public | st_seteffectivearea | geometry, double precision, integer | geometry + public | st_setpoint | geometry, integer, geometry | geometry + public | st_setsrid | geog geography, srid integer | geography + public | st_setsrid | geom geometry, srid integer | geometry + public | st_sharedpaths | geom1 geometry, geom2 geometry | geometry + public | st_shiftlongitude | geometry | geometry + public | st_shortestline | geom1 geometry, geom2 geometry | geometry + public | st_simplify | geometry, double precision | geometry + public | st_simplify | geometry, double precision, boolean | geometry + public | st_simplifypolygonhull | geom geometry, vertex_fraction double precision, is_outer boolean | geometry + public | st_simplifypreservetopology | geometry, double precision | geometry + public | st_simplifyvw | geometry, double precision | geometry + public | st_snap | geom1 geometry, geom2 geometry, double precision | geometry + public | st_snaptogrid | geometry, double precision, double precision | geometry + public | st_snaptogrid | geometry, double precision, double precision, double precision, double precision | geometry + public | st_snaptogrid | geom1 geometry, geom2 geometry, double precision, double precision, double precision, double precision | geometry + public | st_snaptogrid | geometry, double precision | geometry + public | st_split | geom1 geometry, geom2 geometry | geometry + public | st_square | size double precision, cell_i integer, cell_j integer, origin geometry | geometry + public | st_squaregrid | size double precision, bounds geometry, OUT geom geometry, OUT i integer, OUT j integer | SETOF record + public | st_srid | geom geometry | integer + public | st_srid | geog geography | integer + public | st_startpoint | geometry | geometry + public | st_subdivide | geom geometry, maxvertices integer, gridsize double precision | SETOF geometry + public | st_summary | geography | text + public | st_summary | geometry | text + public | st_swapordinates | geom geometry, ords cstring | geometry + public | st_symdifference | geom1 geometry, geom2 geometry, gridsize double precision | geometry + public | st_symmetricdifference | geom1 geometry, geom2 geometry | geometry + public | st_tileenvelope | zoom integer, x integer, y integer, bounds geometry, margin double precision | geometry + public | st_touches | geom1 geometry, geom2 geometry | boolean + public | st_transform | geom geometry, from_proj text, to_srid integer | geometry + public | st_transform | geom geometry, from_proj text, to_proj text | geometry + public | st_transform | geom geometry, to_proj text | geometry + public | st_transform | geometry, integer | geometry + public | st_translate | geometry, double precision, double precision | geometry + public | st_translate | geometry, double precision, double precision, double precision | geometry + public | st_transscale | geometry, double precision, double precision, double precision, double precision | geometry + public | st_triangulatepolygon | g1 geometry | geometry + public | st_unaryunion | geometry, gridsize double precision | geometry + public | st_union | geom1 geometry, geom2 geometry, gridsize double precision | geometry + public | st_union | geom1 geometry, geom2 geometry | geometry + public | st_union | geometry[] | geometry + public | st_union | geometry, gridsize double precision | geometry + public | st_union | geometry | geometry + public | st_voronoilines | g1 geometry, tolerance double precision, extend_to geometry | geometry + public | st_voronoipolygons | g1 geometry, tolerance double precision, extend_to geometry | geometry + public | st_within | geom1 geometry, geom2 geometry | boolean + public | st_wkbtosql | wkb bytea | geometry + public | st_wkttosql | text | geometry + public | st_wrapx | geom geometry, wrap double precision, move double precision | geometry + public | st_x | geometry | double precision + public | st_xmax | box3d | double precision + public | st_xmin | box3d | double precision + public | st_y | geometry | double precision + public | st_ymax | box3d | double precision + public | st_ymin | box3d | double precision + public | st_z | geometry | double precision + public | st_zmax | box3d | double precision + public | st_zmflag | geometry | smallint + public | st_zmin | box3d | double precision + public | text | geometry | text + public | unlockrows | text | integer + public | updategeometrysrid | character varying, character varying, integer | text + public | updategeometrysrid | character varying, character varying, character varying, integer | text + public | updategeometrysrid | catalogn_name character varying, schema_name character varying, table_name character varying, column_name character varying, new_srid_in integer | text +(744 rows) + diff --git a/nix/tests/expected/select_one.out b/nix/tests/expected/select_one.out deleted file mode 100644 index d00491fd..00000000 --- a/nix/tests/expected/select_one.out +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/nix/tests/sql/postgis_sql_interface.sql b/nix/tests/sql/postgis_sql_interface.sql new file mode 100644 index 00000000..418635c5 --- /dev/null +++ b/nix/tests/sql/postgis_sql_interface.sql @@ -0,0 +1,20 @@ +select + n.nspname as schema_name, + p.proname as function_name, + pg_catalog.pg_get_function_identity_arguments(p.oid) as argument_types, + pg_catalog.pg_get_function_result(p.oid) as return_type +from + pg_catalog.pg_proc p + join pg_catalog.pg_namespace n + on n.oid = p.pronamespace + join pg_catalog.pg_depend d + on d.objid = p.oid + join pg_catalog.pg_extension e + on e.oid = d.refobjid +where + e.extname = 'postgis' -- replace with your extension name + and n.nspname = 'public' + and d.deptype = 'e' +order by + schema_name, + function_name; diff --git a/nix/tests/sql/select_one.sql b/nix/tests/sql/select_one.sql deleted file mode 100644 index ab290eb4..00000000 --- a/nix/tests/sql/select_one.sql +++ /dev/null @@ -1 +0,0 @@ -select 1; [parent: 9e1612ca2dad]