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

[YSQL] Feature Support - TRIGGER #1156

Closed
nocaway opened this issue Apr 5, 2019 · 2 comments
Closed

[YSQL] Feature Support - TRIGGER #1156

nocaway opened this issue Apr 5, 2019 · 2 comments
Assignees
Labels
area/ysql Yugabyte SQL (YSQL) integration/graphql/hasura Features related to running Hasura GraphQL on YugabyteDB kind/enhancement This is an enhancement of an existing feature

Comments

@nocaway
Copy link
Contributor

nocaway commented Apr 5, 2019

Trigger are not yet supported.

@nocaway nocaway added kind/enhancement This is an enhancement of an existing feature area/ysql Yugabyte SQL (YSQL) labels Apr 5, 2019
@ndeodhar ndeodhar assigned m-iancu and d-uspenskiy and unassigned mbautin and nocaway Apr 16, 2019
@d-uspenskiy
Copy link
Contributor

Depends on #1155

@m-iancu m-iancu added the integration/graphql/hasura Features related to running Hasura GraphQL on YugabyteDB label Jun 13, 2019
m-iancu added a commit that referenced this issue Jul 22, 2019
Summary:
Support triggers and extensions as beta features.
Current limitations (to be addressed in followup commits):
 - for triggers, transition tables (i.e. REFERENCES clause) and
   constraint (deferrable) triggers are not yet supported.
 - extensions are supported in general but specific extensions may
    require additional features that are not yet supported (e.g. `CREATE TYPE`)

Test Plan:
Added the following tests to the TestPgRegressBetaFeatures suite:
- yb_pg_create_function_1
- yb_pg_create_function_2
- yb_pg_triggers
- yb_triggers
- yb_extensions

Reviewers: neil, mikhail, dmitry, neha

Reviewed By: neha

Subscribers: neha, kannan, yql

Differential Revision: https://phabricator.dev.yugabyte.com/D6843
@m-iancu
Copy link
Contributor

m-iancu commented Jul 22, 2019

Closed by 9f4c158.

@m-iancu m-iancu closed this as completed Jul 22, 2019
jaki pushed a commit to jaki/yugabyte-db that referenced this issue Aug 22, 2019
Since yugabyte#1156 (triggers) is already closed, the comments are outdated.
Resolve the first half of these yugabyte#1156 TODOs, mainly involving
uncommenting `CREATE TRIGGER` statements.  Create a workaround for the
current issue yugabyte#1611 that emerges during uncommenting.  Ignore missing
`DETAIL: duplicate key value violates unique...` messages as other tests
(e.g. `yb_index_including`) ignore them.  `yb_plpgsql` should still
pass.
jaki pushed a commit to jaki/yugabyte-db that referenced this issue Aug 22, 2019
Same procedure of uncommenting `CREATE TRIGGER` statements as previous
commit.  Introduce several new yugabyte#1668 issues from this.  `yb_plpgsql`
test should still pass.
jaki pushed a commit that referenced this issue Aug 26, 2019
Summary:
Enable `CREATE TYPE` and `DROP TYPE` for user-defined types, closing
issue #1152.  This includes user-defined composite types, enum types,
range types, base types, and shell types.  Also extend support to record
types, particularly those returning from functions, and close issues
#742 and #1676.

* Defer `ALTER TYPE` to issue #1893
* Map Postgres user-defined types either to existing Postgres base types
  or directly to Yugabyte types
* Apply fixes related to issue #1156 in regress test `yb_pg_plpgsql`
  (formerly named `yb_plpgsql`)
* Invalidate some `t_ybctid` attributes of `HeapTuple`s to get records
  working
* Discover and create a potentially related issue #1975
* Update several Postgres regress tests
* Create new Postgres regress tests
* Rename related tests from `yb_foo` to `yb_pg_foo` if they are
  derivatives of the vanilla Postgres `foo` test
* Port related tests from `foo` to `yb_pg_foo` by copying then modifying
* Fix an issue with the expected output of `TestPgDump` that is **not**
  related to UDTs and records

Assuming it still exists, see fine-grained commit history at
jj-kim/yugabyte-db/tree/support-user-defined-type.  Otherwise, here are
the commit message subjects (most recent to least recent).

* Comment out more of an unrelated issue
* Add more DISCARD TEMP just in case
* Add DISCARD TEMP to the end of some tests
* Set UDT type entity OIDs to invalid
* Combine some DROP TABLE statements
* Fix yb_pg_foreign_key expected output from 0294a9c
* Rename schedule collections to arrays
* Add yb_pg_rowtypes regress test
* Order tests in schedules; split yb_create_index
* Dynamically create type entities for certain UDTs
* Improve base type test with custom C func type
* Add base type test and handle more base type cases
* Increase fixed length type entity size to 8 bytes
* Reduce large diffs for yb_pg_jsonb test
* Add testjsonb table for yb_pg_jsonb test
* Reduce diff for yb_pg_jsonb Postgres regress tests
* Rename more Postgres regress tests
* Port case regress test to yb_pg_case
* Add missing feature tests to yb_feature_types
* Fix TestPgDump expected output discrepancy
* Uncomment/fix more statements in yb_arrays test
* Fix TestPgRegressBetaFeatures java test from tenk1
* Fix TestPgRegressPgMisc java test due to tenk1
* Remove WITH OIDS when creating tenk1 table
* Finish cleaning off yb_privileges test
* Resolve part of yb_privileges regress test
* Remap UDTs without mucking around sys attributes
* Increase timeout of TestPgRegressLargeTable
* Uncomment TODOs in yb_arrays test
* Remove TestPgTypes java test
* Uncomment more statements in yb_pg_json test
* Uncomment some statements in yb_pg_json test
* Remove intermediate UDT mapping for direct mapping
* Uncomment TODOs in yb_pg_enum regress test
* Update utils to have new UDTOIDs
* Add small test for record types
* Change function name in TestPgRegressTypesUDT.java
* Add test for creating and dropping types
* Rename several regress tests
* Redirect ALTER TYPE to issue #1893
* Create custom primitives for UDTs
* Fix and address #1676 comments in yb_plpgsql
* Address last half of #1156 comments in yb_plpgsql
* Address first half of #1156 comments in yb_plpgsql
* Update yb_plpgsql test expected output
* Support functions returning record type
* Create new debug utility YBCPgDataTypeToStr
* Don't error on domain type
* Update some existing yb_foo regress tests
* Add TODO comment for BYTEAARRAY to BYTEA
* Add tests for creating enums and ranges
* Rename yb_enum to yb_pg_enum
* Copy over CREATE TYPE tests
* Support user-defined enum and base types
* Remove IsYugaByteEnabled check for tup init
* Set base type of user-defined types to BYTEAARRAY
* Enable CREATE TYPE and DROP TYPE

Test Plan:
* `TestPgRegressArrays` java test, particularly `yb_pg_arrays` regress
  test
* `TestPgRegressAuthorization` java test, particularly
  `yb_pg_privileges` regress test
* `TestPgRegressBetaFeatures` java test, particularly `yb_pg_plpgsql`,
  `yb_plpgsql` regress tests
* `TestPgRegressFeature` java test, particularly `yb_feature_types`
  regress test
* `TestPgRegressPgMisc` java test, particularly `yb_pg_case`,
  `yb_pg_identity` regress tests
* `TestPgRegressTypesString` java test, particularly `yb_pg_json`,
  `yb_pg_jsonb` regress tests
* `TestPgRegressTypesUDT` java test, particularly `yb_base_type`,
  `yb_create_type`, `yb_pg_create_type`, `yb_pg_enum`,
  `yb_pg_rangetypes`, `yb_pg_rowtypes`

Unrelated tests that got added or changed:

* `yb_create_function` regress test, involving `TestPgRegressTypesUDT`
  java test
* `yb_create_index`, `yb_pg_create_index` regress tests, involving
  `TestPgRegressMisc`, `TestPgRegressTypesUDT` java tests
* `yb_create_table`, `yb_drop_table` regress tests, involving
  `TestPgRegressTable` java test
* `yb_feature_temp` regress test, involving `TestPgRegressFeature` java
  test
* `yb_pg_copy`, `yb_pg_create_table` regress tests, involving
  `TestPgRegressArrays`, `TestPgRegressBetaFeatures`,
  `TestPgRegressMisc`, `TestPgRegressPgMisc`,
  `TestPgRegressTypesString`, `TestPgRegressTypesUDT` java tests
* `yb_pg_foreign_key` regress test, involving `TestPgForeignKey` java
  test
* `yb_pg_int8` regress test, involving `TestPgRegressAuthorization`,
  `TestPgRegressTypesNumeric`, `TestPgRegressTypesUDT` java tests
* `yb_pg_triggers` regress test, involving `TestPgRegressBetaFeatures`
  java test
* `yb_select`, `yb_sequence` regress tests, involving
  `TestPgRegressPgMisc` java test
* `yb_triggers` regress test, involving `TestPgRegressBetaFeatures` java
  test

Reviewers: mihnea, neha

Reviewed By: neha

Subscribers: neil, kannan, yql

Differential Revision: https://phabricator.dev.yugabyte.com/D6900
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/ysql Yugabyte SQL (YSQL) integration/graphql/hasura Features related to running Hasura GraphQL on YugabyteDB kind/enhancement This is an enhancement of an existing feature
Projects
None yet
Development

No branches or pull requests

4 participants