Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cargo-pgx schema to stdout by default #465

Merged
merged 3 commits into from
Mar 4, 2022
Merged

Conversation

Hoverbear
Copy link
Contributor

@Hoverbear Hoverbear commented Mar 2, 2022

This solves the same problem described in #437 but instead of changing the name, we have adapted the behavior of cargo pgx schema to default to stdout, as there is no real 'default' since many extensions don't use sql/ at all.

This was described in detail in #437 (comment)

ana@autonoma:~/git/zombodb/pgx/pgx-examples/arrays$ cargo pgx schema > out.sql
    Building for SQL generation with features ``
    Finished dev [unoptimized + debuginfo] target(s) in 0.08s
 Discovering SQL entities
  Discovered 14 SQL entities: 0 schemas (0 unique), 13 functions, 1 types, 0 enums, 0 sqls, 0 ords, 0 hashes, 0 aggregates
     Writing SQL entities to /dev/stdout

Outputs

/* 
This file is auto generated by pgx.

The ordering of items is not stable, it is driven by a dependency graph.
*/

-- pgx-examples/arrays/src/lib.rs:32
-- arrays::default_array
CREATE OR REPLACE FUNCTION arrays."default_array"() RETURNS integer[] /* alloc::vec::Vec<i32> */
STRICT
LANGUAGE c /* Rust */
AS 'MODULE_PATHNAME', 'default_array_wrapper';

-- pgx-examples/arrays/src/lib.rs:37
-- arrays::sum_array
-- requires:
--   default_array
CREATE OR REPLACE FUNCTION arrays."sum_array"(
	"input" integer[] DEFAULT default_array() /* pgx::datum::array::Array<i32> */
) RETURNS bigint /* i64 */
 STRICT
LANGUAGE c /* Rust */
AS 'MODULE_PATHNAME', 'sum_array_wrapper';

-- pgx-examples/arrays/src/lib.rs:86
-- arrays::strip_nulls
CREATE OR REPLACE FUNCTION arrays."strip_nulls"(
	"input" integer[] /* alloc::vec::Vec<core::option::Option<i32>> */
) RETURNS integer[] /* alloc::vec::Vec<i32> */
STRICT
LANGUAGE c /* Rust */
AS 'MODULE_PATHNAME', 'strip_nulls_wrapper';

-- pgx-examples/arrays/src/lib.rs:81
-- arrays::i32_array_with_nulls
CREATE OR REPLACE FUNCTION arrays."i32_array_with_nulls"() RETURNS integer[] /* alloc::vec::Vec<core::option::Option<i32>> */
STRICT
LANGUAGE c /* Rust */
AS 'MODULE_PATHNAME', 'i32_array_with_nulls_wrapper';

-- pgx-examples/arrays/src/lib.rs:9
-- arrays::sq_euclid_pgx
CREATE OR REPLACE FUNCTION arrays."sq_euclid_pgx"(
	"a" real[], /* pgx::datum::array::Array<f32> */
	"b" real[] /* pgx::datum::array::Array<f32> */
) RETURNS real /* f32 */
STRICT
LANGUAGE c /* Rust */
AS 'MODULE_PATHNAME', 'sq_euclid_pgx_wrapper';

-- pgx-examples/arrays/src/lib.rs:76
-- arrays::i32_array_no_nulls
CREATE OR REPLACE FUNCTION arrays."i32_array_no_nulls"() RETURNS integer[] /* alloc::vec::Vec<i32> */
STRICT
LANGUAGE c /* Rust */
AS 'MODULE_PATHNAME', 'i32_array_no_nulls_wrapper';

-- pgx-examples/arrays/src/lib.rs:66
-- arrays::static_names_set
CREATE OR REPLACE FUNCTION arrays."static_names_set"() RETURNS SETOF text[] /* alloc::vec::Vec<core::option::Option<&str>> */
STRICT
LANGUAGE c /* Rust */
AS 'MODULE_PATHNAME', 'static_names_set_wrapper';

-- pgx-examples/arrays/src/lib.rs:61
-- arrays::static_names
CREATE OR REPLACE FUNCTION arrays."static_names"() RETURNS text[] /* alloc::vec::Vec<core::option::Option<&str>> */
STRICT
LANGUAGE c /* Rust */
AS 'MODULE_PATHNAME', 'static_names_wrapper';

-- pgx-examples/arrays/src/lib.rs:48
-- arrays::sum_vec
CREATE OR REPLACE FUNCTION arrays."sum_vec"(
	"input" integer[] /* alloc::vec::Vec<core::option::Option<i32>> */
) RETURNS bigint /* i64 */
STRICT
LANGUAGE c /* Rust */
AS 'MODULE_PATHNAME', 'sum_vec_wrapper';

-- pgx-examples/arrays/src/lib.rs:18
-- arrays::approx_distance_pgx
CREATE OR REPLACE FUNCTION arrays."approx_distance_pgx"(
	"compressed" bigint[], /* pgx::datum::array::Array<i64> */
	"distances" double precision[] /* pgx::datum::array::Array<f64> */
) RETURNS double precision /* f64 */
IMMUTABLE PARALLEL SAFE STRICT
LANGUAGE c /* Rust */
AS 'MODULE_PATHNAME', 'approx_distance_pgx_wrapper';

-- pgx-examples/arrays/src/lib.rs:95
-- arrays::SomeStruct
CREATE TYPE arrays.SomeStruct;

-- pgx-examples/arrays/src/lib.rs:95
-- arrays::somestruct_in
CREATE OR REPLACE FUNCTION arrays."somestruct_in"(
	"input" cstring /* &cstr_core::CStr */
) RETURNS arrays.SomeStruct /* arrays::SomeStruct */
IMMUTABLE PARALLEL SAFE STRICT
LANGUAGE c /* Rust */
AS 'MODULE_PATHNAME', 'somestruct_in_wrapper';

-- pgx-examples/arrays/src/lib.rs:95
-- arrays::somestruct_out
CREATE OR REPLACE FUNCTION arrays."somestruct_out"(
	"input" arrays.SomeStruct /* arrays::SomeStruct */
) RETURNS cstring /* &cstr_core::CStr */
IMMUTABLE PARALLEL SAFE STRICT
LANGUAGE c /* Rust */
AS 'MODULE_PATHNAME', 'somestruct_out_wrapper';

-- pgx-examples/arrays/src/lib.rs:95
-- arrays::SomeStruct
CREATE TYPE arrays.SomeStruct (
	INTERNALLENGTH = variable,
	INPUT = arrays.somestruct_in, /* arrays::somestruct_in */
	OUTPUT = arrays.somestruct_out, /* arrays::somestruct_out */
	STORAGE = extended
);

-- pgx-examples/arrays/src/lib.rs:98
-- arrays::return_vec_of_customtype
CREATE OR REPLACE FUNCTION arrays."return_vec_of_customtype"() RETURNS arrays.SomeStruct[] /* alloc::vec::Vec<arrays::SomeStruct> */
STRICT
SET search_path TO @extschema@
LANGUAGE c /* Rust */
AS 'MODULE_PATHNAME', 'return_vec_of_customtype_wrapper';

It also syntax colors to stdout:

image

image

Signed-off-by: Ana Hobden <operator@hoverbear.org>
@Hoverbear Hoverbear self-assigned this Mar 2, 2022
@Hoverbear Hoverbear changed the base branch from master to develop March 4, 2022 20:06
@Hoverbear Hoverbear merged commit 277afe8 into develop Mar 4, 2022
@Hoverbear Hoverbear deleted the schema-to-stdout branch March 14, 2022 17:33
@Hoverbear Hoverbear mentioned this pull request Mar 16, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant