* wip: Update binary generator
Signed-off-by: Ana Hobden <[email protected]>
* wip: improvements from Sage
Signed-off-by: Ana Hobden <[email protected]>
* wip: slightly cursed generator placement
Signed-off-by: Ana Hobden <[email protected]>
* wip: better messages on generator checker
Signed-off-by: Ana Hobden <[email protected]>
* wip: sort inventory to achieve stable graph
Signed-off-by: Ana Hobden <[email protected]>
* wip: add example of desired macro
Signed-off-by: Ana Hobden <[email protected]>
* wip: get partial extension sql dependencies working
Signed-off-by: Ana Hobden <[email protected]>
* wip: cargo-fmt
Signed-off-by: Ana Hobden <[email protected]>
* wip: add missing files
Signed-off-by: Ana Hobden <[email protected]>
* wip: add control file for example
Signed-off-by: Ana Hobden <[email protected]>
* wip: correct some linkage
Signed-off-by: Ana Hobden <[email protected]>
* wip: format
Signed-off-by: Ana Hobden <[email protected]>
* wip: better bootstrap/finalize support
Signed-off-by: Ana Hobden <[email protected]>
* wip: bootstrap above schemas
Signed-off-by: Ana Hobden <[email protected]>
* wip: cleanup type registration
Signed-off-by: Ana Hobden <[email protected]>
* wip: improve structure some
Signed-off-by: Ana Hobden <[email protected]>
* wip: cleanup tests
Signed-off-by: Ana Hobden <[email protected]>
* wip: improve dot and verbose on cargo pgx schema
Signed-off-by: Ana Hobden <[email protected]>
* wip: support trace
Signed-off-by: Ana Hobden <[email protected]>
* wip: fix return arrow direction
Signed-off-by: Ana Hobden <[email protected]>
* wip: fix dot default
Signed-off-by: Ana Hobden <[email protected]>
* wip: better errors on unknown types
Signed-off-by: Ana Hobden <[email protected]>
* Don't look up the type oid for types that never use it
Getting function argument type oids can be surprisingly expensive; one
Promscale benchmark measures it as taking over 10% of runtime.
Fortunately, most types do not actually make use of this information,
and the `getarg_type()` call can be optimized out if this fact is
known. This commit adds an opt-in method for declaring that a type does
not make use of the `typeoid` in `from_datum()`, and updates
`pg_getarg()` to make use of this information.
This commit makes the following changes:
1. It adds a `const` boolean to `FromDatum` called `NEEDS_TYPID`. This
boolean is defaulted to `true`. Types that never use the `typeoid`
parameter to `from_datum()` can override this to `false`.
2. `pg_getarg()` updated to look at `T::NEEDS_TYPID` before calling
`get_getarg_type()`. If `T::NEEDS_TYPID == true` it calls
`get_getarg_type()` like it currently does for all types; if it is
`false` it instead passes `InvalidOid` as the (unused) `typeoid`
argument to `from_datum()`.
3. It edits a number of built in types to make use of this
optimization.
Since this feature is both opt-in and backwards compatible, it should
not break any downstream users.
* wip: handle inner impl trait on box and option
Signed-off-by: Ana Hobden <[email protected]>
* wip: Support PgBox
Signed-off-by: Ana Hobden <[email protected]>
* wip: resolve some lifetime issues with fn args
Signed-off-by: Ana Hobden <[email protected]>
* wip: resolve schema and name aliasing issues
Signed-off-by: Ana Hobden <[email protected]>
* wip: uncomment test
Signed-off-by: Ana Hobden <[email protected]>
* fmt
Signed-off-by: Ana Hobden <[email protected]>
* wip: Support variadic
Signed-off-by: Ana Hobden <[email protected]>
* wip: schema resolution a bit more strict
Signed-off-by: Ana Hobden <[email protected]>
* Don't run all tests in cargo pgx test
In a workspace this will run non-extension tests as well which is
inconsistent with `cargo test`. The old behavior can be recovered with
the new `--workspace` flag.
* wip: ord/hash linkage
Signed-off-by: Ana Hobden <[email protected]>
* wip: fix duplicated module magic
Signed-off-by: Ana Hobden <[email protected]>
* wip: handle non-existing sql dir
Signed-off-by: Ana Hobden <[email protected]>
* wip: ignore some tests
Signed-off-by: Ana Hobden <[email protected]>
* wip: fix errror example
Signed-off-by: Ana Hobden <[email protected]>
* wip: use old bindings
Signed-off-by: Ana Hobden <[email protected]>
* wip: fixups
Signed-off-by: Ana Hobden <[email protected]>
* wip: add some docs
Signed-off-by: Ana Hobden <[email protected]>
* chore: some cleaning and docs
Signed-off-by: Ana Hobden <[email protected]>
* chore: move around From/Intos
Signed-off-by: Ana Hobden <[email protected]>
* chore: more idiomatic structuring of pg_inventory
Signed-off-by: Ana Hobden <[email protected]>
* chore: create ToSql
Signed-off-by: Ana Hobden <[email protected]>
* chore: some tidying on pg_inventory
Signed-off-by: Ana Hobden <[email protected]>
* chore: rearrange some things:
Signed-off-by: Ana Hobden <[email protected]>
* chore: introduce build_base_edges
Signed-off-by: Ana Hobden <[email protected]>
* chore: fmt
Signed-off-by: Ana Hobden <[email protected]>
* chore: we can use a HashSet
Signed-off-by: Ana Hobden <[email protected]>
* feat: introduce skip_inventory attribute in certain places
Signed-off-by: Ana Hobden <[email protected]>
* chore: document skip_inventory
Signed-off-by: Ana Hobden <[email protected]>
* chore: fmt
Signed-off-by: Ana Hobden <[email protected]>
* chore: enable skip_inventory on all
Signed-off-by: Ana Hobden <[email protected]>
* chore: add functional doctests for several derives
Signed-off-by: Ana Hobden <[email protected]>
* chore: add some docs to pg_inventory
Signed-off-by: Ana Hobden <[email protected]>
* chore: functional test for PostgresEnum
Signed-off-by: Ana Hobden <[email protected]>
* chore: add functional test for PostgresType
Signed-off-by: Ana Hobden <[email protected]>
* chore: functional tests for PostgresOrd and PostgresHash
Signed-off-by: Ana Hobden <[email protected]>
* Added support for uuid PostgreSQL type
* Added formatting for Uuid type, compatible with PostgreSQL uuid_out result
* chore: update docs
Signed-off-by: Ana Hobden <[email protected]>
* chore: fix some documentation
Signed-off-by: Ana Hobden <[email protected]>
* chore: add pg_extern test
Signed-off-by: Ana Hobden <[email protected]>
* Added Uuid::as_bytes to allow conversion from pgx::Uuid to uuid::Uuid if necessary
* feat: initial 'creates' syntax for extension_sql
Signed-off-by: Ana Hobden <[email protected]>
* feat: extension_sql creates don't need pgbox, option, etc
Signed-off-by: Ana Hobden <[email protected]>
* feat: infer module paths for extension_sql creates
Signed-off-by: Ana Hobden <[email protected]>
* chore: fixup struct tests
Signed-off-by: Ana Hobden <[email protected]>
* chore: fmt
Signed-off-by: Ana Hobden <[email protected]>
* chore: cleanup PgxSql::build
Signed-off-by: Ana Hobden <[email protected]>
* chore: clean up logs some
Signed-off-by: Ana Hobden <[email protected]>
* chore: get inventory items parsing even when skipped
Signed-off-by: Ana Hobden <[email protected]>
* chore: Add a creates doc
Signed-off-by: Ana Hobden <[email protected]>
* chore: fix some comments
Signed-off-by: Ana Hobden <[email protected]>
* chore: Use block doc comments in some long places
Signed-off-by: Ana Hobden <[email protected]>
* chore: add pgx.control
Signed-off-by: Ana Hobden <[email protected]>
* chore: improve note about overrides
Signed-off-by: Ana Hobden <[email protected]>
* chore: patch variadic positioning
Signed-off-by: Ana Hobden <[email protected]>
* chore: use old pgx-pg-sys
Signed-off-by: Ana Hobden <[email protected]>
* chore: improve default sql path consistency
Signed-off-by: Ana Hobden <[email protected]>
* feat: let pgx schema take a pg11/12 etc param
Signed-off-by: Ana Hobden <[email protected]>
* chore: fixup schema arg req
Signed-off-by: Ana Hobden <[email protected]>
* chore: fmt
Signed-off-by: Ana Hobden <[email protected]>
* feat: remove need for pgx-utils or pgx-macros in user crates
Signed-off-by: Ana Hobden <[email protected]>
* chore: once again reset pg sys bindings
Signed-off-by: Ana Hobden <[email protected]>
* chore: fixup some stray pgx-utils imports
Signed-off-by: Ana Hobden <[email protected]>
* chore: clear out remaining pgx-utils needs for inventory
Signed-off-by: Ana Hobden <[email protected]>
* chore: improve some documentation
Signed-off-by: Ana Hobden <[email protected]>
* chore: once again reset pgx-pg-sys
Signed-off-by: Ana Hobden <[email protected]>
* feat: functional custom_sql test
Signed-off-by: Ana Hobden <[email protected]>
* wip: cleaning
Signed-off-by: Ana Hobden <[email protected]>
* chore: handle default inside option
Signed-off-by: Ana Hobden <[email protected]>
* feat: support Oid
Signed-off-by: Ana Hobden <[email protected]>
* feat: Oids in returns too
Signed-off-by: Ana Hobden <[email protected]>
* feat: partially support Box<dyn Iterator>
Signed-off-by: Ana Hobden <[email protected]>
* feat: finish Box<dyn Iterator>> support
Signed-off-by: Ana Hobden <[email protected]>
* chore: remove stray test
Signed-off-by: Ana Hobden <[email protected]>
* chore: fix handling of Oid in named
Signed-off-by: Ana Hobden <[email protected]>
* chore: add custom_sql to github actions
Signed-off-by: Ana Hobden <[email protected]>
* chore: workaround Rust 1.54/Inventory issue
Signed-off-by: Ana Hobden <[email protected]>
* chore: remove generated sqls
Signed-off-by: Ana Hobden <[email protected]>
* feat: extra annotations on extension_sql output
Signed-off-by: Ana Hobden <[email protected]>
* chore: support default with f64
Signed-off-by: Ana Hobden <[email protected]>
* chore: support bool in default
Signed-off-by: Ana Hobden <[email protected]>
* chore: strip debugging symbol
Signed-off-by: Ana Hobden <[email protected]>
* wip: checkpoint a new method supporting incremental compilation
Signed-off-by: Ana Hobden <[email protected]>
* wip: get links exposed in binary
Signed-off-by: Ana Hobden <[email protected]>
* wip: get symbols passing
Signed-off-by: Ana Hobden <[email protected]>
* wip: get custom_types example working
Signed-off-by: Ana Hobden <[email protected]>
* wip: make linker script more defined
Signed-off-by: Ana Hobden <[email protected]>
* wip: cleanup cargo lock
Signed-off-by: Ana Hobden <[email protected]>
* wip: update flake lock
Signed-off-by: Ana Hobden <[email protected]>
* wip: support arm
Signed-off-by: Ana Hobden <[email protected]>
* feat: clean up new sql generation method
Signed-off-by: Ana Hobden <[email protected]>
* chore: fixup extern ident fn
Signed-off-by: Ana Hobden <[email protected]>
* chore: handle duplicated schema names
Signed-off-by: Ana Hobden <[email protected]>
* chore: cleanup cargo pgx schema output
Signed-off-by: Ana Hobden <[email protected]>
* chore: return to proper typeids
Signed-off-by: Ana Hobden <[email protected]>
* chore: remove some cruft
Signed-off-by: Ana Hobden <[email protected]>
* feat: let cargo pgx schema work quieter
Signed-off-by: Ana Hobden <[email protected]>
* chore: repair cargo settings on examples
Signed-off-by: Ana Hobden <[email protected]>
* chore: cleanup imports
Signed-off-by: Ana Hobden <[email protected]>
* chore: improve formatting and output
Signed-off-by: Ana Hobden <[email protected]>
* chore: use feature flag in pgx-tests
Signed-off-by: Ana Hobden <[email protected]>
* chore: fixup tests
Signed-off-by: Ana Hobden <[email protected]>
* chore: update help
Signed-off-by: Ana Hobden <[email protected]>
* chore: use requires instead of before/after
Signed-off-by: Ana Hobden <[email protected]>
* chore: fixup tests
Signed-off-by: Ana Hobden <[email protected]>
* chore: remove skip_inventory
Signed-off-by: Ana Hobden <[email protected]>
* feat: suport requires in pg_extern
Signed-off-by: Ana Hobden <[email protected]>
* chore: cleanup requires code
Signed-off-by: Ana Hobden <[email protected]>
* chore: color a log
Signed-off-by: Ana Hobden <[email protected]>
* chore: improve positioning ref resolution
Signed-off-by: Ana Hobden <[email protected]>
* chore: docs
Signed-off-by: Ana Hobden <[email protected]>
* chore: support variadic!()
Signed-off-by: Ana Hobden <[email protected]>
* chore: improve requires resolution
Signed-off-by: Ana Hobden <[email protected]>
* chore: make graph stable
Signed-off-by: Ana Hobden <[email protected]>
* chore: fixup an extension_sql issue
Signed-off-by: Ana Hobden <[email protected]>
* chore: use correct pgx_marker location
Signed-off-by: Ana Hobden <[email protected]>
* chore: cleanup marker
Signed-off-by: Ana Hobden <[email protected]>
* chore: docs around marker
Signed-off-by: Ana Hobden <[email protected]>
* feat: better cargo-pgx output
Signed-off-by: Ana Hobden <[email protected]>
* chore: fix feature flag
Signed-off-by: Ana Hobden <[email protected]>
* chore: cleanup pgx schema output
Signed-off-by: Ana Hobden <[email protected]>
* chore: support requires schemas
Signed-off-by: Ana Hobden <[email protected]>
* chore: improve schema positioning resolution
Signed-off-by: Ana Hobden <[email protected]>
* chore: rename pgx-linker-script.sh
Signed-off-by: Ana Hobden <[email protected]>
* chore: fmt
Signed-off-by: Ana Hobden <[email protected]>
* chore: update flake lock
Signed-off-by: Ana Hobden <[email protected]>
* chore: add pg_schema docs
Signed-off-by: Ana Hobden <[email protected]>
* chore: improve some docs
Signed-off-by: Ana Hobden <[email protected]>
* chore: tidy some error conditions
Signed-off-by: Ana Hobden <[email protected]>
* chore: clean some docs
Signed-off-by: Ana Hobden <[email protected]>
* chore: some docs
Signed-off-by: Ana Hobden <[email protected]>
* chore: doc tests
Signed-off-by: Ana Hobden <[email protected]>
* chore: repair an example
Signed-off-by: Ana Hobden <[email protected]>
* chore: fix schemas example
Signed-off-by: Ana Hobden <[email protected]>
* chore: improve format
Signed-off-by: Ana Hobden <[email protected]>
* fix: repair docsrs build
Signed-off-by: Ana Hobden <[email protected]>
* feat: support testname in cargo pgx test
Signed-off-by: Ana Hobden <[email protected]>
* Update cargo-pgx/src/commands/test.rs
* chore: cleanup formatting
Signed-off-by: Ana Hobden <[email protected]>
* chore: update README.md
Signed-off-by: Ana Hobden <[email protected]>
* chore: add cargo pgx schema -o docs
Signed-off-by: Ana Hobden <[email protected]>
* chore: fixup comments
Signed-off-by: Ana Hobden <[email protected]>
* feat: add aggregate example
Signed-off-by: Ana Hobden <[email protected]>
* chore: fix messed up merge conflict resolution
It has been zero days since I forgot to hit save in VSCode and commited it.
* feat: migrate aggregate example to PgVarlena
Signed-off-by: Ana Hobden <[email protected]>
* chore: fixup doc links
Signed-off-by: Ana Hobden <[email protected]>
* chore: update dependencies
Signed-off-by: Ana Hobden <[email protected]>
* chore: fmt
Signed-off-by: Ana Hobden <[email protected]>
* chore: fmt
Signed-off-by: Ana Hobden <[email protected]>
* chore: document pgx::info and related macros more
Signed-off-by: Ana Hobden <[email protected]>
* chore: fix shmem example
Signed-off-by: Ana Hobden <[email protected]>
* chore: fix doc tests
Signed-off-by: Ana Hobden <[email protected]>
* chore: fixups
Signed-off-by: Ana Hobden <[email protected]>
* chore: how to update cargo-pgx, not pgx
Signed-off-by: Ana Hobden <[email protected]>
* chore: use pg10 compat syntax
Signed-off-by: Ana Hobden <[email protected]>
* chore: add example to ci
Signed-off-by: Ana Hobden <[email protected]>
* chore: cleanup imports
Signed-off-by: Ana Hobden <[email protected]>
* chore: make trigger test functional
Signed-off-by: Ana Hobden <[email protected]>
* chore: suggest rustfmt install when not found
Signed-off-by: Ana Hobden <[email protected]>
* chore: format
Signed-off-by: Ana Hobden <[email protected]>
* chore: move info to readme
Signed-off-by: Ana Hobden <[email protected]>
* chore: support -vvvvvvvv
Signed-off-by: Ana Hobden <[email protected]>
* chore: better example content
Signed-off-by: Ana Hobden <[email protected]>
* chore: remove stale finfo fns
Signed-off-by: Ana Hobden <[email protected]>
* chore: improve readme
Signed-off-by: Ana Hobden <[email protected]>
* chore: remove sql
Signed-off-by: Ana Hobden <[email protected]>
* chore: add freebsd, tweak gitignore
Signed-off-by: Ana Hobden <[email protected]>
* chore: format
Signed-off-by: Ana Hobden <[email protected]>
* chore: remove more generated SQL
Signed-off-by: Ana Hobden <[email protected]>
* chore: rename inventory stuff
Signed-off-by: Ana Hobden <[email protected]>
* chore: fix some renames
Signed-off-by: Ana Hobden <[email protected]>
* chore: correct cargo pgx package help
Signed-off-by: Ana Hobden <[email protected]>
* chore: fix 'Stopping' alignment
Signed-off-by: Ana Hobden <[email protected]>
* chore: format
Signed-off-by: Ana Hobden <[email protected]>
* chore: remove unused dependency
Signed-off-by: Ana Hobden <[email protected]>
* chore: correct a non-error
Signed-off-by: Ana Hobden <[email protected]>
* feat: enable new SQL generator on Mac
Signed-off-by: Ana Hobden <[email protected]>
* chore: update README.md
Signed-off-by: Ana Hobden <[email protected]>
* chore: newline fixes
Signed-off-by: Ana Hobden <[email protected]>
* - use `uname` to detect which operating system we're compiling on.
- for MacOS, the `-exported_symbols_list` doesn't want `=` to set its argument
* this file is no longer necessary
* `#[link(kind = "static")]` is not necessary
* when building the sql-generator binary, we don't need the `-Wl,-undefined,dynamic_lookup` bit.
We only need this for building the .so.
* chore: improve error passing slightly
Signed-off-by: Ana Hobden <[email protected]>
* chore: improve cargo new to work
Signed-off-by: Ana Hobden <[email protected]>
* fix(develop): use thinlto in debug
Signed-off-by: Ana Hobden <[email protected]>
* chore: cleanup aggregate example
Signed-off-by: Ana Hobden <[email protected]>
* chore: fixup template
Signed-off-by: Ana Hobden <[email protected]>
* chore: fix merge mistake
Signed-off-by: Ana Hobden <[email protected]>
* chore: reduce UB in public API
Signed-off-by: Ana Hobden <[email protected]>
* fix: reduce UB in public API
Signed-off-by: Ana Hobden <[email protected]>
* Articles (#198)
* chore: add articles page
Signed-off-by: Ana Hobden <[email protected]>
* chore: add clarifying 'a'
Signed-off-by: Ana Hobden <[email protected]>
* chore: add date comment
Signed-off-by: Ana Hobden <[email protected]>
* chore: add another article!
Signed-off-by: Ana Hobden <[email protected]>
* chore: add video link
Signed-off-by: Ana Hobden <[email protected]>
* chore: Update some article contents
Signed-off-by: Ana Hobden <[email protected]>
* chore: remove TODO link
Signed-off-by: Ana Hobden <[email protected]>
* fix: Mark several functions as unsafe. (#217)
* set a number of functions as unsafe, because we can't guarantee the pointers being passed in
* fix doctest
Co-authored-by: Eric B. Ridge <[email protected]>
* chore: fix some docs links (#219)
Signed-off-by: Ana Hobden <[email protected]>
* release: 0.2.0-beta.0 (#218)
Signed-off-by: Ana Hobden <[email protected]>
* fix: mark called_as_trigger as unsafe (#223)
* fix: Mark PgTupleDesk::from_pg_copy unsafe (#224)
Signed-off-by: Ana Hobden <[email protected]>
* fix: mark get_getarg_type unsafe (#226)
Signed-off-by: Ana Hobden <[email protected]>
* chore: update pgx-pg-sys default bindings
Signed-off-by: Ana Hobden <[email protected]>
Co-authored-by: Joshua Lockerman <[email protected]>
Co-authored-by: Dmytro Shteflyuk <[email protected]>
Co-authored-by: Eric B. Ridge <[email protected]>