* Return sequence parameters in a list of the form created by the parser. */
| 1940 | * Return sequence parameters in a list of the form created by the parser. |
| 1941 | */ |
| 1942 | List * |
| 1943 | sequence_options(Oid relid) |
| 1944 | { |
| 1945 | HeapTuple pgstuple; |
| 1946 | Form_pg_sequence pgsform; |
| 1947 | List *options = NIL; |
| 1948 | |
| 1949 | pgstuple = SearchSysCache1(SEQRELID, relid); |
| 1950 | if (!HeapTupleIsValid(pgstuple)) |
| 1951 | elog(ERROR, "cache lookup failed for sequence %u", relid); |
| 1952 | pgsform = (Form_pg_sequence) GETSTRUCT(pgstuple); |
| 1953 | |
| 1954 | /* Use makeFloat() for 64-bit integers, like gram.y does. */ |
| 1955 | options = lappend(options, |
| 1956 | makeDefElem("cache", (Node *) makeFloat(psprintf(INT64_FORMAT, pgsform->seqcache)), -1)); |
| 1957 | options = lappend(options, |
| 1958 | makeDefElem("cycle", (Node *) makeInteger(pgsform->seqcycle), -1)); |
| 1959 | options = lappend(options, |
| 1960 | makeDefElem("increment", (Node *) makeFloat(psprintf(INT64_FORMAT, pgsform->seqincrement)), -1)); |
| 1961 | options = lappend(options, |
| 1962 | makeDefElem("maxvalue", (Node *) makeFloat(psprintf(INT64_FORMAT, pgsform->seqmax)), -1)); |
| 1963 | options = lappend(options, |
| 1964 | makeDefElem("minvalue", (Node *) makeFloat(psprintf(INT64_FORMAT, pgsform->seqmin)), -1)); |
| 1965 | options = lappend(options, |
| 1966 | makeDefElem("start", (Node *) makeFloat(psprintf(INT64_FORMAT, pgsform->seqstart)), -1)); |
| 1967 | |
| 1968 | ReleaseSysCache(pgstuple); |
| 1969 | |
| 1970 | return options; |
| 1971 | } |
| 1972 | |
| 1973 | /* |
| 1974 | * Return sequence parameters (formerly for use by information schema) |
no test coverage detected