mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2026-10-27 23:20:05 -05:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7066841467 | ||
|
|
c0c9543323 | ||
|
|
4c50940634 | ||
|
|
f7836b67af | ||
|
|
e3225b6565 | ||
|
|
0bbe35a7f6 | ||
|
|
662d0d5699 | ||
|
|
8f72beb9d6 | ||
|
|
b507eb8857 | ||
|
|
aaab5c51a7 | ||
|
|
955bb22cd1 | ||
|
|
37b19e0be2 | ||
|
|
a5ad956088 | ||
|
|
1e1e1f027a | ||
|
|
2c013c9f0f | ||
|
|
c5ca45c461 | ||
|
|
04fa7dee68 | ||
|
|
efe613d13e | ||
|
|
befd4b1fa8 | ||
|
|
6d26d5833f | ||
|
|
345cfd7c60 | ||
|
|
c956f730e9 | ||
|
|
5f81d2b4b1 | ||
|
|
8f020c1ee6 | ||
|
|
4f7bcc2919 | ||
|
|
50b1ba5c80 | ||
|
|
11cfea3860 | ||
|
|
5e0dfff42a | ||
|
|
53bd2c2dc6 | ||
|
|
6820b85902 | ||
|
|
b36004b702 | ||
|
|
6465dc951c | ||
|
|
2d8aff6ca0 | ||
|
|
fbe7b56054 | ||
|
|
cb05d2924f | ||
|
|
ae0624ae8a | ||
|
|
44f9ba4a57 | ||
|
|
7686c33cbd | ||
|
|
ca8e14455f |
No files matched your search
+74
-4
@@ -161,6 +161,9 @@ Name Version
|
||||
@mui/system 5.5.3 MIT https://github.com/mui/material-ui.git
|
||||
@mui/types 7.1.3 MIT https://github.com/mui/material-ui.git
|
||||
@mui/utils 5.5.3 MIT https://github.com/mui/material-ui.git
|
||||
@nodelib/fs.scandir 2.1.5 MIT https://github.com/nodelib/nodelib/tree/master/packages/fs/fs.scandir
|
||||
@nodelib/fs.stat 2.0.5 MIT https://github.com/nodelib/nodelib/tree/master/packages/fs/fs.stat
|
||||
@nodelib/fs.walk 1.2.8 MIT https://github.com/nodelib/nodelib/tree/master/packages/fs/fs.walk
|
||||
@popperjs/core 2.11.4 MIT https://github.com/popperjs/popper-core.git
|
||||
@popperjs/core 2.10.2 MIT https://github.com/popperjs/popper-core.git
|
||||
@projectstorm/geometry 6.6.1 MIT https://github.com/projectstorm/react-diagrams.git
|
||||
@@ -177,7 +180,9 @@ Name Version
|
||||
@tippyjs/react 4.2.6 MIT git+https://github.com/atomiks/tippyjs-react.git
|
||||
@types/classnames 2.3.1 MIT Unknown
|
||||
@types/json-schema 7.0.9 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
|
||||
@types/minimist 1.2.2 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
|
||||
@types/node 16.11.6 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
|
||||
@types/normalize-package-data 2.4.1 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
|
||||
@types/prop-types 15.7.4 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
|
||||
@types/react 16.14.10 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
|
||||
@types/react 16.14.20 MIT https://github.com/DefinitelyTyped/DefinitelyTyped.git
|
||||
@@ -194,6 +199,8 @@ ajv-keywords 3.5.2
|
||||
alertifyjs 1.7.1 MIT git@github.com:MohammadYounes/AlertifyJS.git
|
||||
alphanum-sort 1.0.2 MIT https://github.com/TrySound/alphanum-sort.git
|
||||
ansi-styles 3.2.1 MIT https://github.com/chalk/ansi-styles.git
|
||||
array-union 3.0.1 MIT https://github.com/sindresorhus/array-union.git
|
||||
arrify 1.0.1 MIT https://github.com/sindresorhus/arrify.git
|
||||
aspen-core 1.0.5 MIT git+https://github.com/neeksandhu/aspen-core.git
|
||||
aspen-decorations 1.1.1 MIT git+https://github.com/neeksandhu/aspen-decorations.git
|
||||
aspen-tree-model 1.0.5 MIT git+https://github.com/neeksandhu/aspen-tree-model.git
|
||||
@@ -221,8 +228,11 @@ bootstrap4-toggle 3.6.1
|
||||
bowser 2.11.0 MIT git+https://github.com/lancedikson/bowser.git
|
||||
brace 0.11.1 MIT git://github.com/thlorenz/brace.git
|
||||
brace-expansion 1.1.11 MIT git://github.com/juliangruber/brace-expansion.git
|
||||
braces 3.0.2 MIT https://github.com/micromatch/braces.git
|
||||
browserfs 1.4.3 MIT https://github.com/jvilk/BrowserFS.git
|
||||
browserslist 4.17.6 MIT https://github.com/browserslist/browserslist.git
|
||||
camelcase 6.3.0 MIT https://github.com/sindresorhus/camelcase.git
|
||||
camelcase-keys 7.0.2 MIT https://github.com/sindresorhus/camelcase-keys.git
|
||||
camelize 1.0.0 MIT git://github.com/substack/camelize.git
|
||||
caniuse-api 3.0.0 MIT https://github.com/nyalab/caniuse-api.git
|
||||
chalk 2.4.2 MIT https://github.com/chalk/chalk.git
|
||||
@@ -260,8 +270,12 @@ dagre 0.8.5
|
||||
date-fns 2.25.0 MIT https://github.com/date-fns/date-fns
|
||||
debug 4.3.2 MIT git://github.com/visionmedia/debug.git
|
||||
debug 4.3.3 MIT git://github.com/debug-js/debug.git
|
||||
decamelize 5.0.1 MIT https://github.com/sindresorhus/decamelize.git
|
||||
decamelize 1.2.0 MIT https://github.com/sindresorhus/decamelize.git
|
||||
decamelize-keys 1.1.0 MIT https://github.com/dsblv/decamelize-keys.git
|
||||
deep-diff 1.0.2 MIT git://github.com/flitbit/diff.git
|
||||
diff-arrays-of-objects 1.1.9 MIT git+https://github.com/malcolmvr/diff-arrays-of-objects.git
|
||||
dir-glob 3.0.1 MIT https://github.com/kevva/dir-glob.git
|
||||
dom-align 1.12.2 MIT git@github.com:yiminghe/dom-align.git
|
||||
dom-helpers 5.2.1 MIT git+https://github.com/react-bootstrap/dom-helpers.git
|
||||
dom-serializer 1.3.2 MIT git://github.com/cheeriojs/dom-renderer.git
|
||||
@@ -269,29 +283,45 @@ dropzone 5.9.3
|
||||
emojis-list 3.0.0 MIT git+https://github.com/kikobeats/emojis-list.git
|
||||
engine.io-client 6.0.2 MIT https://github.com/socketio/engine.io-client.git
|
||||
engine.io-parser 5.0.3 MIT git@github.com:socketio/engine.io-parser.git
|
||||
error-ex 1.3.2 MIT https://github.com/qix-/node-error-ex.git
|
||||
escalade 3.1.1 MIT https://github.com/lukeed/escalade.git
|
||||
escape-string-regexp 1.0.5 MIT https://github.com/sindresorhus/escape-string-regexp.git
|
||||
fast-deep-equal 3.1.3 MIT git+https://github.com/epoberezkin/fast-deep-equal.git
|
||||
fast-glob 3.2.11 MIT https://github.com/mrmlnc/fast-glob.git
|
||||
fast-json-stable-stringify 2.1.0 MIT git://github.com/epoberezkin/fast-json-stable-stringify.git
|
||||
fast-memoize 2.5.2 MIT git+https://github.com/caiogondim/fast-memoize.git
|
||||
filename-reserved-regex 2.0.0 MIT https://github.com/sindresorhus/filename-reserved-regex.git
|
||||
fill-range 7.0.1 MIT https://github.com/jonschlinkert/fill-range.git
|
||||
find-up 5.0.0 MIT https://github.com/sindresorhus/find-up.git
|
||||
follow-redirects 1.14.8 MIT git@github.com:follow-redirects/follow-redirects.git
|
||||
function-bind 1.1.1 MIT git://github.com/Raynos/function-bind.git
|
||||
gensync 1.0.0-beta.2 MIT https://github.com/loganfsmyth/gensync.git
|
||||
globals 11.12.0 MIT https://github.com/sindresorhus/globals.git
|
||||
globby 12.2.0 MIT https://github.com/sindresorhus/globby.git
|
||||
graphlib 2.1.8 MIT https://github.com/dagrejs/graphlib.git
|
||||
hard-rejection 2.1.0 MIT https://github.com/sindresorhus/hard-rejection.git
|
||||
has 1.0.3 MIT git://github.com/tarruda/has.git
|
||||
has-cors 1.1.0 MIT git://github.com/component/has-cors.git
|
||||
has-flag 3.0.0 MIT https://github.com/sindresorhus/has-flag.git
|
||||
has-flag 4.0.0 MIT https://github.com/sindresorhus/has-flag.git
|
||||
history 5.3.0 MIT https://github.com/remix-run/history.git
|
||||
html-escaper 2.0.2 MIT https://github.com/WebReflection/html-escaper.git
|
||||
html2canvas 1.3.2 MIT git@github.com:niklasvh/html2canvas.git
|
||||
ignore 5.2.0 MIT git@github.com:kaelzhang/node-ignore.git
|
||||
immutability-helper 3.1.1 MIT git+https://github.com/kolodny/immutability-helper.git
|
||||
imports-loader 2.0.0 MIT https://github.com/webpack-contrib/imports-loader.git
|
||||
indent-string 5.0.0 MIT https://github.com/sindresorhus/indent-string.git
|
||||
insert-if 1.2.0 MIT git+https://github.com/chipto/insert-if.git
|
||||
ip-address 7.1.0 MIT git://github.com/beaugunderson/ip-address.git
|
||||
is-absolute-url 3.0.3 MIT https://github.com/sindresorhus/is-absolute-url.git
|
||||
is-any-array 1.0.1 MIT https://github.com/cheminfo-js/is-any-array.git
|
||||
is-arrayish 0.2.1 MIT https://github.com/qix-/node-is-arrayish.git
|
||||
is-core-module 2.9.0 MIT git+https://github.com/inspect-js/is-core-module.git
|
||||
is-extglob 2.1.1 MIT https://github.com/jonschlinkert/is-extglob.git
|
||||
is-glob 4.0.3 MIT https://github.com/micromatch/is-glob.git
|
||||
is-in-browser 1.1.3 MIT git+https://github.com/tuxsudo/is-in-browser.git
|
||||
is-number 7.0.0 MIT https://github.com/jonschlinkert/is-number.git
|
||||
is-plain-obj 1.1.0 MIT https://github.com/sindresorhus/is-plain-obj.git
|
||||
is-relative 1.0.0 MIT https://github.com/jonschlinkert/is-relative.git
|
||||
is-unc-path 1.0.0 MIT https://github.com/jonschlinkert/is-unc-path.git
|
||||
javascript-natural-sort 0.7.1 MIT https://github.com/Bill4Time/javascript-natural-sort.git
|
||||
@@ -302,6 +332,7 @@ js-tokens 4.0.0
|
||||
jsbn 1.1.0 MIT https://github.com/andyperlitch/jsbn.git
|
||||
jsesc 2.5.2 MIT https://github.com/mathiasbynens/jsesc.git
|
||||
json-bignumber 1.0.2 MIT git@github.com:wbuss/JSONBigNumber.git
|
||||
json-parse-even-better-errors 2.3.1 MIT https://github.com/npm/json-parse-even-better-errors
|
||||
json-schema-traverse 1.0.0 MIT git+https://github.com/epoberezkin/json-schema-traverse.git
|
||||
json-schema-traverse 0.4.1 MIT git+https://github.com/epoberezkin/json-schema-traverse.git
|
||||
json-source-map 0.6.1 MIT git+https://github.com/epoberezkin/json-source-map.git
|
||||
@@ -317,19 +348,29 @@ jss-plugin-props-sort 10.8.2
|
||||
jss-plugin-rule-value-function 10.8.2 MIT https://github.com/cssinjs/jss
|
||||
jss-plugin-vendor-prefixer 10.8.2 MIT https://github.com/cssinjs/jss
|
||||
karma-coverage 2.0.3 MIT git://github.com/karma-runner/karma-coverage.git
|
||||
kind-of 6.0.3 MIT https://github.com/jonschlinkert/kind-of.git
|
||||
lilconfig 2.0.3 MIT https://github.com/antonk52/lilconfig
|
||||
lines-and-columns 1.1.6 MIT https://github.com/eventualbuddha/lines-and-columns.git
|
||||
loader-utils 2.0.2 MIT https://github.com/webpack/loader-utils.git
|
||||
loader-utils 1.4.0 MIT https://github.com/webpack/loader-utils.git
|
||||
locate-path 6.0.0 MIT https://github.com/sindresorhus/locate-path.git
|
||||
lodash 4.17.21 MIT https://github.com/lodash/lodash.git
|
||||
lodash.memoize 4.1.2 MIT https://github.com/lodash/lodash.git
|
||||
lodash.uniq 4.5.0 MIT https://github.com/lodash/lodash.git
|
||||
loose-envify 1.4.0 MIT git://github.com/zertosh/loose-envify.git
|
||||
lunr 0.7.2 MIT https://github.com/olivernn/lunr.js.git
|
||||
make-dir 3.1.0 MIT https://github.com/sindresorhus/make-dir.git
|
||||
map-obj 4.3.0 MIT https://github.com/sindresorhus/map-obj.git
|
||||
map-obj 1.0.1 MIT https://github.com/sindresorhus/map-obj.git
|
||||
matches-selector 0.0.1 MIT https://github.com/ForbesLindesay/matches-selector.git
|
||||
memoize-one 5.2.1 MIT https://github.com/alexreardon/memoize-one.git
|
||||
meow 10.1.2 MIT https://github.com/sindresorhus/meow.git
|
||||
merge2 1.4.1 MIT git@github.com:teambition/merge2.git
|
||||
micromatch 4.0.4 MIT https://github.com/micromatch/micromatch.git
|
||||
mime 2.5.2 MIT https://github.com/broofa/mime
|
||||
min-indent 1.0.1 MIT https://github.com/thejameskyle/min-indent
|
||||
minimist 1.2.6 MIT git://github.com/substack/minimist.git
|
||||
minimist-options 4.1.0 MIT https://github.com/vadimdemedes/minimist-options.git
|
||||
ml-array-max 1.2.3 MIT git+https://github.com/mljs/array.git
|
||||
ml-array-min 1.2.2 MIT git+https://github.com/mljs/array.git
|
||||
ml-array-rescale 1.3.6 MIT git+https://github.com/mljs/array.git
|
||||
@@ -345,16 +386,22 @@ nanopop 2.1.0
|
||||
node-releases 2.0.1 MIT https://github.com/chicoxyzzy/node-releases.git
|
||||
normalize-url 6.1.0 MIT https://github.com/sindresorhus/normalize-url.git
|
||||
notificar 1.0.1 MIT git+https://github.com/neeksandhu/notificar.git
|
||||
notistack 1.0.10 MIT git+https://github.com/iamhosseindhv/notistack.git
|
||||
notistack 2.0.5 MIT git+https://github.com/iamhosseindhv/notistack.git
|
||||
object-assign 4.1.1 MIT https://github.com/sindresorhus/object-assign.git
|
||||
p-limit 3.1.0 MIT https://github.com/sindresorhus/p-limit.git
|
||||
p-locate 5.0.0 MIT https://github.com/sindresorhus/p-locate.git
|
||||
p-reduce 1.0.0 MIT https://github.com/sindresorhus/p-reduce.git
|
||||
p-series 1.1.0 MIT https://github.com/sindresorhus/p-series.git
|
||||
parse-json 5.2.0 MIT https://github.com/sindresorhus/parse-json.git
|
||||
parseqs 0.0.6 MIT https://github.com/get/querystring.git
|
||||
parseuri 0.0.6 MIT https://github.com/get/parseuri.git
|
||||
path-exists 4.0.0 MIT https://github.com/sindresorhus/path-exists.git
|
||||
path-fx 2.1.1 MIT git+https://github.com/NeekSandhu/path-fx.git
|
||||
path-type 4.0.0 MIT https://github.com/sindresorhus/path-type.git
|
||||
pathfinding 0.4.18 MIT git://github.com/qiao/PathFinding.js.git
|
||||
performance-now 2.1.0 MIT git://github.com/braveg1rl/performance-now.git
|
||||
pgadmin4-tree 1.0.0 MIT Unknown
|
||||
picomatch 2.3.0 MIT https://github.com/micromatch/picomatch.git
|
||||
picomodal 3.0.0 MIT https://github.com/Nycto/PicoModal.git
|
||||
popper.js 1.16.1-lts MIT git+https://github.com/FezVrasta/popper.js.git
|
||||
popper.js 1.16.1 MIT git+https://github.com/FezVrasta/popper.js.git
|
||||
@@ -391,6 +438,8 @@ postcss-unique-selectors 5.0.1
|
||||
postcss-value-parser 4.1.0 MIT https://github.com/TrySound/postcss-value-parser.git
|
||||
prop-types 15.7.2 MIT https://github.com/facebook/prop-types.git
|
||||
punycode 2.1.1 MIT https://github.com/bestiejs/punycode.js.git
|
||||
queue-microtask 1.2.3 MIT git://github.com/feross/queue-microtask.git
|
||||
quick-lru 5.1.1 MIT https://github.com/sindresorhus/quick-lru.git
|
||||
raf 3.4.1 MIT git://github.com/chrisdickinson/raf.git
|
||||
rc-align 4.0.11 MIT git@github.com:react-component/align.git
|
||||
rc-dropdown 3.3.0 MIT git@github.com:react-component/dropdown.git
|
||||
@@ -422,10 +471,15 @@ react-table 7.7.0
|
||||
react-transition-state 1.1.3 MIT https://github.com/szhsin/react-transition-state.git
|
||||
react-virtualized-auto-sizer 1.0.6 MIT https://github.com/bvaughn/react-virtualized-auto-sizer.git
|
||||
react-window 1.8.6 MIT https://github.com/bvaughn/react-window.git
|
||||
read-pkg 6.0.0 MIT https://github.com/sindresorhus/read-pkg.git
|
||||
read-pkg-up 8.0.0 MIT https://github.com/sindresorhus/read-pkg-up.git
|
||||
redent 4.0.0 MIT https://github.com/sindresorhus/redent.git
|
||||
regenerator-runtime 0.13.9 MIT https://github.com/facebook/regenerator/tree/master/packages/runtime
|
||||
require-from-string 2.0.2 MIT https://github.com/floatdrop/require-from-string.git
|
||||
resize-observer-polyfill 1.5.1 MIT https://github.com/que-etc/resize-observer-polyfill.git
|
||||
reusify 1.0.4 MIT git+https://github.com/mcollina/reusify.git
|
||||
rifm 0.7.0 MIT https://github.com/istarkov/rifm.git
|
||||
run-parallel 1.2.0 MIT git://github.com/feross/run-parallel.git
|
||||
safe-buffer 5.1.2 MIT git://github.com/feross/safe-buffer.git
|
||||
scheduler 0.19.1 MIT https://github.com/facebook/react.git
|
||||
scheduler 0.20.2 MIT https://github.com/facebook/react.git
|
||||
@@ -434,14 +488,17 @@ schema-utils 1.0.0
|
||||
select2 4.0.13 MIT git://github.com/select2/select2.git
|
||||
shallowequal 1.1.0 MIT https://github.com/dashed/shallowequal.git
|
||||
shim-loader 1.0.1 MIT https://github.com/zinserjan/shim-loader
|
||||
slash 4.0.0 MIT https://github.com/sindresorhus/slash.git
|
||||
slickgrid 2.3.16 MIT git+https://github.com/6pac/SlickGrid.git
|
||||
snapsvg-cjs 0.0.6 MIT git+https://github.com/geelen/Snap.svg-cjs.git
|
||||
socket.io-client 4.3.2 MIT https://github.com/socketio/socket.io-client.git
|
||||
socket.io-parser 4.1.1 MIT https://github.com/socketio/socket.io-parser.git
|
||||
source-list-map 1.1.2 MIT https://github.com/webpack/source-list-map.git
|
||||
spdx-expression-parse 3.0.1 MIT https://github.com/jslicense/spdx-expression-parse.js.git
|
||||
split.js 1.6.4 MIT https://github.com/nathancahill/split
|
||||
stable 0.1.8 MIT https://github.com/Two-Screen/stable.git
|
||||
strip-comments 2.0.1 MIT https://github.com/jonschlinkert/strip-comments.git
|
||||
strip-indent 4.0.0 MIT https://github.com/sindresorhus/strip-indent.git
|
||||
styled-components 5.3.3 MIT git+https://github.com/styled-components/styled-components.git
|
||||
stylehacks 5.0.1 MIT https://github.com/cssnano/cssnano.git
|
||||
stylis 4.0.13 MIT https://github.com/thysultan/stylis.js
|
||||
@@ -457,6 +514,8 @@ tiny-emitter 2.1.0
|
||||
tiny-warning 1.0.3 MIT https://github.com/alexreardon/tiny-warning.git
|
||||
tippy.js 6.3.5 MIT git+https://github.com/atomiks/tippyjs.git
|
||||
to-fast-properties 2.0.0 MIT https://github.com/sindresorhus/to-fast-properties.git
|
||||
to-regex-range 5.0.1 MIT https://github.com/micromatch/to-regex-range.git
|
||||
trim-newlines 4.0.2 MIT https://github.com/sindresorhus/trim-newlines.git
|
||||
unc-path-regex 0.1.2 MIT https://github.com/regexhq/unc-path-regex.git
|
||||
underscore 1.13.1 MIT git://github.com/jashkenas/underscore.git
|
||||
uniqs 2.0.0 MIT git://github.com/fgnass/uniqs.git
|
||||
@@ -474,6 +533,7 @@ xterm-addon-fit 0.5.0
|
||||
xterm-addon-search 0.8.1 MIT https://github.com/xtermjs/xterm.js
|
||||
xterm-addon-web-links 0.4.0 MIT https://github.com/xtermjs/xterm.js
|
||||
yeast 0.1.2 MIT https://github.com/unshiftio/yeast.git
|
||||
yocto-queue 0.1.0 MIT https://github.com/sindresorhus/yocto-queue.git
|
||||
@fortawesome/fontawesome-free 5.15.4 (CC-BY-4.0 AND OFL-1.1 AND MIT) https://github.com/FortAwesome/Font-Awesome
|
||||
@react-leaflet/core 1.1.1 Hippocratic-2.1 https://github.com/PaulLeCam/react-leaflet.git
|
||||
react-leaflet 3.2.2 Hippocratic-2.1 https://github.com/PaulLeCam/react-leaflet.git
|
||||
@@ -483,6 +543,9 @@ boolbase 1.0.0
|
||||
css-color-keywords 1.0.0 ISC https://github.com/sonicdoe/css-color-keywords.git
|
||||
css-declaration-sorter 6.1.3 ISC https://github.com/Siilwyn/css-declaration-sorter.git
|
||||
electron-to-chromium 1.3.889 ISC https://github.com/kilian/electron-to-chromium/
|
||||
fastq 1.13.0 ISC git+https://github.com/mcollina/fastq.git
|
||||
glob-parent 5.1.2 ISC https://github.com/gulpjs/glob-parent.git
|
||||
hosted-git-info 4.1.0 ISC git+https://github.com/npm/hosted-git-info.git
|
||||
icss-utils 5.1.0 ISC git+https://github.com/css-modules/icss-utils.git
|
||||
is-resolvable 1.1.0 ISC https://github.com/shinnn/is-resolvable.git
|
||||
jsonrepair 2.2.1 ISC https://github.com/josdejong/jsonrepair.git
|
||||
@@ -498,6 +561,7 @@ semver 6.3.0
|
||||
vanilla-picker 2.12.1 ISC https://github.com/Sphinxxxx/vanilla-picker.git
|
||||
yallist 4.0.0 ISC git+https://github.com/isaacs/yallist.git
|
||||
yaml 1.10.2 ISC https://github.com/eemeli/yaml.git
|
||||
yargs-parser 20.2.9 ISC https://github.com/yargs/yargs-parser.git
|
||||
ace-builds 1.4.13 BSD-3-Clause https://github.com/ajaxorg/ace-builds.git
|
||||
hoist-non-react-statics 3.3.2 BSD-3-Clause git://github.com/mridgway/hoist-non-react-statics.git
|
||||
hyphenate-style-name 1.0.4 BSD-3-Clause git+ssh://git@github.com/rexxars/hyphenate-style-name.git
|
||||
@@ -511,6 +575,7 @@ source-map 0.5.7
|
||||
source-map 0.6.1 BSD-3-Clause http://github.com/mozilla/source-map.git
|
||||
source-map-js 0.6.2 BSD-3-Clause http://github.com/7rulnik/source-map.git
|
||||
sprintf-js 1.1.2 BSD-3-Clause https://github.com/alexei/sprintf.js.git
|
||||
anti-trojan-source 1.4.0 Apache-2.0 https://github.com/lirantal/anti-trojan-source.git
|
||||
bootstrap-datepicker 1.9.0 Apache-2.0 https://github.com/uxsolutions/bootstrap-datepicker.git
|
||||
eve 0.5.4 Apache-2.0 git@github.com:adobe-webplatform/eve.git
|
||||
jmespath 0.15.0 Apache-2.0 git://github.com/jmespath/jmespath.js
|
||||
@@ -519,8 +584,9 @@ paths-js 0.4.11
|
||||
rc-dock 3.2.10 Apache-2.0 https://github.com/ticlo/rc-dock.git
|
||||
rc-new-window 0.1.13 Apache-2.0 https://github.com/ticlo/rc-new-window.git
|
||||
snapsvg 0.5.1 Apache-2.0 git@github.com:adobe-webplatform/Snap.svg.git
|
||||
caniuse-lite 1.0.30001278 CC-BY-4.0 https://github.com/browserslist/caniuse-lite.git
|
||||
caniuse-lite 1.0.30001309 CC-BY-4.0 https://github.com/browserslist/caniuse-lite.git
|
||||
spdx-correct 3.1.1 Apache-2.0 https://github.com/jslicense/spdx-correct.js.git
|
||||
validate-npm-package-license 3.0.4 Apache-2.0 https://github.com/kemitchell/validate-npm-package-license.js.git
|
||||
caniuse-lite 1.0.30001338 CC-BY-4.0 https://github.com/browserslist/caniuse-lite.git
|
||||
css-select 4.1.3 BSD-2-Clause git://github.com/fb55/css-select.git
|
||||
css-what 5.1.0 BSD-2-Clause https://github.com/fb55/css-what
|
||||
domelementtype 2.2.0 BSD-2-Clause git://github.com/fb55/domelementtype.git
|
||||
@@ -528,17 +594,21 @@ domhandler 4.2.2
|
||||
domutils 2.8.0 BSD-2-Clause git://github.com/fb55/domutils.git
|
||||
entities 2.2.0 BSD-2-Clause git://github.com/fb55/entities.git
|
||||
leaflet 1.7.1 BSD-2-Clause git://github.com/Leaflet/Leaflet.git
|
||||
normalize-package-data 3.0.3 BSD-2-Clause git://github.com/npm/normalize-package-data.git
|
||||
nth-check 2.0.1 BSD-2-Clause https://github.com/fb55/nth-check
|
||||
uri-js 4.4.1 BSD-2-Clause http://github.com/garycourt/uri-js
|
||||
FileSaver 0.10.0 UNKNOWN Unknown
|
||||
heap 0.2.5 UNKNOWN git://github.com/qiao/heap.js.git
|
||||
mdn-data 2.0.14 CC0-1.0 https://github.com/mdn/data.git
|
||||
spdx-license-ids 3.0.11 CC0-1.0 https://github.com/jslicense/spdx-license-ids.git
|
||||
mousetrap 1.6.5 Apache-2.0 WITH LLVM-exception git://github.com/ccampbell/mousetrap.git
|
||||
pako 1.0.11 (MIT AND Zlib) https://github.com/nodeca/pako.git
|
||||
precond 0.2.3 MIT* https://github.com/MathieuTurcotte/node-precond.git
|
||||
webcabin-docker 2.2.5 MIT* Unknown
|
||||
spdx-exceptions 2.3.0 CC-BY-3.0 https://github.com/kemitchell/spdx-exceptions.json.git
|
||||
tablesorter 2.31.3 (MIT OR GPL-2.0) git://github.com/Mottie/tablesorter.git
|
||||
tslib 2.3.0 0BSD https://github.com/Microsoft/tslib.git
|
||||
type-fest 1.4.0 (MIT OR CC0-1.0) https://github.com/sindresorhus/type-fest.git
|
||||
|
||||
464 dependencies listed.
|
||||
534 dependencies listed.
|
||||
|
||||
@@ -273,15 +273,10 @@ REM Main build sequence Ends
|
||||
REM YARN END
|
||||
|
||||
REM WGET
|
||||
REM Comment out the below for loop as the latest version (0.62.0) having
|
||||
REM some problem, so for the time being hardcoded the version to 0.61.0
|
||||
REM FOR /f "tokens=2 delims='" %%i IN ('yarn info nw ^| findstr "latest: "') DO SET "NW_VERSION=%%i"
|
||||
REM :GET_NW
|
||||
REM wget https://dl.nwjs.io/v%NW_VERSION%/nwjs-v%NW_VERSION%-win-x64.zip -O "%TMPDIR%\nwjs-v%NW_VERSION%-win-x64.zip"
|
||||
REM IF %ERRORLEVEL% NEQ 0 GOTO GET_NW
|
||||
|
||||
SET "NW_VERSION=0.61.0"
|
||||
wget https://dl.nwjs.io/v%NW_VERSION%/nwjs-v%NW_VERSION%-win-x64.zip -O "%TMPDIR%\nwjs-v%NW_VERSION%-win-x64.zip"
|
||||
FOR /f "tokens=2 delims='" %%i IN ('yarn info nw ^| findstr "latest: "') DO SET "NW_VERSION=%%i"
|
||||
:GET_NW
|
||||
wget https://dl.nwjs.io/v%NW_VERSION%/nwjs-v%NW_VERSION%-win-x64.zip -O "%TMPDIR%\nwjs-v%NW_VERSION%-win-x64.zip"
|
||||
IF %ERRORLEVEL% NEQ 0 GOTO GET_NW
|
||||
|
||||
tar -C "%TMPDIR%" -xvf "%TMPDIR%\nwjs-v%NW_VERSION%-win-x64.zip" || EXIT /B 1
|
||||
REM WGET END
|
||||
|
||||
@@ -122,7 +122,7 @@ debian:
|
||||
|
||||
docker:
|
||||
echo $(APP_NAME)
|
||||
docker build -t ${APP_NAME} -t $(APP_NAME):latest -t $(APP_NAME):$(APP_RELEASE) -t $(APP_NAME):$(APP_RELEASE).$(APP_REVISION) .
|
||||
docker build --pull -t ${APP_NAME} -t $(APP_NAME):latest -t $(APP_NAME):$(APP_RELEASE) -t $(APP_NAME):$(APP_RELEASE).$(APP_REVISION) .
|
||||
|
||||
docs:
|
||||
LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 $(MAKE) -C docs/en_US -f Makefile.sphinx html
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 46 KiB |
@@ -11,6 +11,7 @@ notes for it.
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
release_notes_6_10
|
||||
release_notes_6_9
|
||||
release_notes_6_8
|
||||
release_notes_6_7
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
************
|
||||
Version 6.10
|
||||
************
|
||||
|
||||
Release date: 2022-06-02
|
||||
|
||||
This release contains a number of bug fixes and new features since the release of pgAdmin 4 v6.9.
|
||||
|
||||
New features
|
||||
************
|
||||
|
||||
| `Issue #7364 <https://redmine.postgresql.org/issues/7364>`_ - Added the ability to resize columns on dashboard tables.
|
||||
|
||||
Housekeeping
|
||||
************
|
||||
|
||||
| `Issue #7283 <https://redmine.postgresql.org/issues/7283>`_ - PG 15 compatibility issues fixed.
|
||||
| `Issue #7337 <https://redmine.postgresql.org/issues/7337>`_ - Port connect server password dialog to React.
|
||||
|
||||
Bug fixes
|
||||
*********
|
||||
|
||||
| `Issue #6962 <https://redmine.postgresql.org/issues/6962>`_ - Fixed the browser tree overlapping nodes and expansion issue.
|
||||
| `Issue #7002 <https://redmine.postgresql.org/issues/7002>`_ - Added the ability to detect and warn users about bidirectional Unicode characters.
|
||||
| `Issue #7347 <https://redmine.postgresql.org/issues/7347>`_ - Ensure that when Authentication buttons are disabled their text is visible in the Dark and High contrast theme.
|
||||
| `Issue #7368 <https://redmine.postgresql.org/issues/7368>`_ - Ensure that unwanted APIs should not be getting called for BigAnimal.
|
||||
| `Issue #7372 <https://redmine.postgresql.org/issues/7372>`_ - Tell Docker to always pull the latest base images when building containers.
|
||||
| `Issue #7373 <https://redmine.postgresql.org/issues/7373>`_ - Fixed an issue with geometry window zoom mouse scroll not working.
|
||||
| `Issue #7374 <https://redmine.postgresql.org/issues/7374>`_ - Fixed an issue when switching between connections in the Query Tool dropdown, the background and foreground colors should be changed.
|
||||
| `Issue #7376 <https://redmine.postgresql.org/issues/7376>`_ - Fixed an issue where a popup for unsaved changes appears when clicking on the open file button for a blank query editor.
|
||||
| `Issue #7380 <https://redmine.postgresql.org/issues/7380>`_ - Added support for multi-cell selection in the query tool grid.
|
||||
| `Issue #7383 <https://redmine.postgresql.org/issues/7383>`_ - Fixed an issue where Preferences are not saved when the dialog is maximized.
|
||||
| `Issue #7388 <https://redmine.postgresql.org/issues/7388>`_ - Fixed an issue where an error message fills the entire window if the query is long.
|
||||
| `Issue #7393 <https://redmine.postgresql.org/issues/7393>`_ - Ensure that the editor position should not get changed once it is opened.
|
||||
| `Issue #7394 <https://redmine.postgresql.org/issues/7394>`_ - Fixed an issue where geometry is not visible when a single cell is selected.
|
||||
| `Issue #7399 <https://redmine.postgresql.org/issues/7399>`_ - Added missing toggle case keyboard shortcuts to the query tool.
|
||||
| `Issue #7402 <https://redmine.postgresql.org/issues/7402>`_ - Ensure that Dashboard graphs should be refreshed on changing the node from the browser tree.
|
||||
| `Issue #7403 <https://redmine.postgresql.org/issues/7403>`_ - Fixed an issue where comments on domain constraints were not visible when selecting a domain node.
|
||||
| `Issue #7405 <https://redmine.postgresql.org/issues/7405>`_ - Ensure that null values are accepted for the numeric columns in react-data-grid.
|
||||
| `Issue #7408 <https://redmine.postgresql.org/issues/7408>`_ - Fixed an issue when a table has a column with an array type with length or precision, the column type is not selected while editing the table.
|
||||
@@ -128,10 +128,7 @@ _build_runtime() {
|
||||
# YARN END
|
||||
|
||||
# WGET:
|
||||
# Comment out the below line as the latest version (0.62.0) having some
|
||||
# problem, so for the time being hardcoded the version to 0.61.0
|
||||
# NW_VERSION=$(yarn info nw | grep latest | awk -F "'" '{ print $2}')
|
||||
NW_VERSION="0.61.0"
|
||||
NW_VERSION=$(yarn info nw | grep latest | awk -F "'" '{ print $2}')
|
||||
|
||||
pushd "${BUILDROOT}" > /dev/null
|
||||
while true;do
|
||||
@@ -145,6 +142,13 @@ _build_runtime() {
|
||||
# Copy nwjs into the staging directory
|
||||
mkdir -p "${DESKTOPROOT}/usr/${APP_NAME}/bin"
|
||||
|
||||
# The chmod command below is needed to fix the permission issue of
|
||||
# the NWjs binaries and files.
|
||||
# Change the permission for others and group the same as the owner
|
||||
chmod -R og=u "${BUILDROOT}/nwjs-v${NW_VERSION}-linux-x64"/*
|
||||
# Explicitly remove write permissions for others and group
|
||||
chmod -R og-w "${BUILDROOT}/nwjs-v${NW_VERSION}-linux-x64"/*
|
||||
|
||||
# YARN:
|
||||
# cp -r "${BUILDROOT}/node_modules/nw/nwjs"/* "${DESKTOPROOT}/usr/${APP_NAME}/bin"
|
||||
# YARN END
|
||||
|
||||
@@ -33,10 +33,7 @@ _build_runtime() {
|
||||
# YARN END
|
||||
|
||||
# WGET:
|
||||
# Comment out the below line as the latest version (0.62.0) having some
|
||||
# problem, so for the time being hardcoded the version to 0.61.0
|
||||
# NW_VERSION=$(yarn info nw | grep latest | awk -F "'" '{ print $2}')
|
||||
NW_VERSION="0.61.0"
|
||||
NW_VERSION=$(yarn info nw | grep latest | awk -F "'" '{ print $2}')
|
||||
|
||||
pushd "${BUILD_ROOT}" > /dev/null
|
||||
while true;do
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"eslint": "^6.3.0",
|
||||
"nw": "0.61.0"
|
||||
"nw": "^0.64.0"
|
||||
},
|
||||
"scripts": {
|
||||
"linter": "yarn eslint --no-eslintrc -c .eslintrc.js --ext .js ."
|
||||
|
||||
+4
-4
@@ -1008,10 +1008,10 @@ number-is-nan@^1.0.0:
|
||||
resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
|
||||
integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
|
||||
|
||||
nw@0.61.0:
|
||||
version "0.61.0"
|
||||
resolved "https://registry.yarnpkg.com/nw/-/nw-0.61.0.tgz#c35e80be4ad7a5570659796d66bdc16d11e0e890"
|
||||
integrity sha512-SazcPW9+kplf7/K2KuTaamOFGtKnnH4Gs/cHHRMf9luTkCGe2cFsnb6/fEP5xvu9tpoW9Z/oUKzj9lZ6kylFWQ==
|
||||
nw@^0.64.0:
|
||||
version "0.64.1"
|
||||
resolved "https://registry.yarnpkg.com/nw/-/nw-0.64.1.tgz#eaf96dd22081a679316b86d31405a54b37ba7181"
|
||||
integrity sha512-+h1qQlhBdW56Xbe5EVojb2zfjo/fccM7rzecHTiNBl++FHA3nAGxn2UrwmqpUa+v/mQ5+EUFXpBlmkbl4y4fEg==
|
||||
dependencies:
|
||||
chalk "~1.1.3"
|
||||
decompress "^4.2.0"
|
||||
|
||||
+5
-5
@@ -43,7 +43,7 @@ APP_ICON = 'pg-icon'
|
||||
|
||||
# Application version number components
|
||||
APP_RELEASE = 6
|
||||
APP_REVISION = 9
|
||||
APP_REVISION = 10
|
||||
|
||||
# Application version suffix, e.g. 'beta1', 'dev'. Usually an empty string
|
||||
# for GA releases.
|
||||
@@ -52,7 +52,7 @@ APP_SUFFIX = ''
|
||||
# Numeric application version for upgrade checks. Should be in the format:
|
||||
# [X]XYYZZ, where X is the release version, Y is the revision, with a leading
|
||||
# zero if needed, and Z represents the suffix, with a leading zero if needed
|
||||
APP_VERSION_INT = 60900
|
||||
APP_VERSION_INT = 61000
|
||||
|
||||
# DO NOT CHANGE!
|
||||
# The application version string, constructed from the components
|
||||
@@ -447,19 +447,19 @@ STORAGE_DIR = os.path.join(DATA_DIR, 'storage')
|
||||
##########################################################################
|
||||
DEFAULT_BINARY_PATHS = {
|
||||
"pg": "",
|
||||
"pg-9.6": "",
|
||||
"pg-10": "",
|
||||
"pg-11": "",
|
||||
"pg-12": "",
|
||||
"pg-13": "",
|
||||
"pg-14": "",
|
||||
"pg-15": "",
|
||||
"ppas": "",
|
||||
"ppas-9.6": "",
|
||||
"ppas-10": "",
|
||||
"ppas-11": "",
|
||||
"ppas-12": "",
|
||||
"ppas-13": "",
|
||||
"ppas-14": ""
|
||||
"ppas-14": "",
|
||||
"ppas-15": ""
|
||||
}
|
||||
|
||||
##########################################################################
|
||||
|
||||
+4
-3
@@ -97,6 +97,7 @@
|
||||
"@types/react-dom": "^16.0.11",
|
||||
"ajv": "^8.8.2",
|
||||
"alertifyjs": "git+https://github.com/EnterpriseDB/AlertifyJS/#72c1d794f5b6d4ec13a68d123c08f19021afe263",
|
||||
"anti-trojan-source": "^1.4.0",
|
||||
"aspen-decorations": "^1.0.2",
|
||||
"axios": "^0.21.1",
|
||||
"babelify": "~10.0.0",
|
||||
@@ -140,18 +141,18 @@
|
||||
"moment-timezone": "^0.5.34",
|
||||
"mousetrap": "^1.6.3",
|
||||
"notificar": "^1.0.1",
|
||||
"notistack": "^1.0.10",
|
||||
"notistack": "^2.0.0",
|
||||
"path-fx": "^2.0.0",
|
||||
"pathfinding": "^0.4.18",
|
||||
"paths-js": "^0.4.9",
|
||||
"pgadmin4-tree": "git+https://github.com/EnterpriseDB/pgadmin4-treeview/#2c288ccc0ae0c98b41e56e79abf1204be3861702",
|
||||
"pgadmin4-tree": "git+https://github.com/EnterpriseDB/pgadmin4-treeview/#b0287d39b54de28cb2a83f0c19a95ce823f6feae",
|
||||
"postcss": "^8.2.15",
|
||||
"raf": "^3.4.1",
|
||||
"rc-dock": "^3.2.9",
|
||||
"react": "^17.0.1",
|
||||
"react-aspen": "^1.1.0",
|
||||
"react-checkbox-tree": "^1.7.2",
|
||||
"react-data-grid": "git+https://github.com/adityatoshniwal/react-data-grid.git/#1dc310dfaf5afea359404e867b7cf54953f47d1e",
|
||||
"react-data-grid": "git+https://github.com/adityatoshniwal/react-data-grid.git/#8d9bc16ddd7c419acfbbd1c1cc2b70eb9f5b453c",
|
||||
"react-dom": "^17.0.1",
|
||||
"react-draggable": "^4.4.4",
|
||||
"react-leaflet": "^3.2.2",
|
||||
|
||||
@@ -1284,7 +1284,7 @@ class ServerNode(PGChildNodeView):
|
||||
}
|
||||
)
|
||||
|
||||
def connect(self, gid, sid, user_name=None, resp_json=False):
|
||||
def connect(self, gid, sid):
|
||||
"""
|
||||
Connect the Server and return the connection object.
|
||||
Verification Process before Connection:
|
||||
@@ -1410,8 +1410,7 @@ class ServerNode(PGChildNodeView):
|
||||
# not provided, or password has not been saved earlier.
|
||||
if prompt_password or prompt_tunnel_password:
|
||||
return self.get_response_for_password(
|
||||
server, 428, prompt_password, prompt_tunnel_password,
|
||||
user=user_name, resp_json=resp_json
|
||||
server, 428, prompt_password, prompt_tunnel_password
|
||||
)
|
||||
|
||||
status = True
|
||||
@@ -1427,8 +1426,7 @@ class ServerNode(PGChildNodeView):
|
||||
except Exception as e:
|
||||
current_app.logger.exception(e)
|
||||
return self.get_response_for_password(
|
||||
server, 401, True, True, getattr(e, 'message', str(e)),
|
||||
resp_json=resp_json)
|
||||
server, 401, True, True, getattr(e, 'message', str(e)))
|
||||
|
||||
if not status:
|
||||
|
||||
@@ -1440,7 +1438,7 @@ class ServerNode(PGChildNodeView):
|
||||
return internal_server_error(errmsg)
|
||||
|
||||
return self.get_response_for_password(
|
||||
server, 401, True, True, errmsg, resp_json=resp_json
|
||||
server, 401, True, True, errmsg
|
||||
)
|
||||
else:
|
||||
if save_password and config.ALLOW_SAVE_PASSWORD:
|
||||
@@ -1864,8 +1862,7 @@ class ServerNode(PGChildNodeView):
|
||||
return internal_server_error(errormsg=str(e))
|
||||
|
||||
def get_response_for_password(self, server, status, prompt_password=False,
|
||||
prompt_tunnel_password=False, errmsg=None,
|
||||
user=None, resp_json=False):
|
||||
prompt_tunnel_password=False, errmsg=None):
|
||||
|
||||
if server.use_ssh_tunnel:
|
||||
data = {
|
||||
@@ -1888,11 +1885,7 @@ class ServerNode(PGChildNodeView):
|
||||
return make_json_response(
|
||||
success=0,
|
||||
status=status,
|
||||
result=render_template(
|
||||
'servers/tunnel_password.html',
|
||||
_=gettext,
|
||||
**data,
|
||||
) if not resp_json else data
|
||||
result=data
|
||||
)
|
||||
else:
|
||||
data = {
|
||||
@@ -1908,11 +1901,7 @@ class ServerNode(PGChildNodeView):
|
||||
return make_json_response(
|
||||
success=0,
|
||||
status=status,
|
||||
result=render_template(
|
||||
'servers/password.html',
|
||||
_=gettext,
|
||||
**data
|
||||
) if not resp_json else data
|
||||
result=data
|
||||
)
|
||||
|
||||
def clear_saved_password(self, gid, sid):
|
||||
|
||||
@@ -182,7 +182,6 @@ class DatabaseView(PGChildNodeView):
|
||||
if self.manager is None:
|
||||
return gone(errormsg=_("Could not find the server."))
|
||||
|
||||
self.datlastsysoid = 0
|
||||
self.datistemplate = False
|
||||
if action and action in ["drop"]:
|
||||
self.conn = self.manager.connection()
|
||||
@@ -193,8 +192,7 @@ class DatabaseView(PGChildNodeView):
|
||||
# provide generic connection
|
||||
if kwargs['did'] in self.manager.db_info:
|
||||
self._db = self.manager.db_info[kwargs['did']]
|
||||
self.datlastsysoid, self.datistemplate, \
|
||||
datallowconn = \
|
||||
self.datistemplate, datallowconn = \
|
||||
get_attributes_from_db_info(self.manager, kwargs)
|
||||
|
||||
if datallowconn is False:
|
||||
@@ -252,14 +250,10 @@ class DatabaseView(PGChildNodeView):
|
||||
|
||||
def retrieve_last_system_oid(self):
|
||||
last_system_oid = 0
|
||||
if self.blueprint.show_system_objects:
|
||||
last_system_oid = 0
|
||||
elif (
|
||||
self.manager.db_info is not None and
|
||||
self.manager.did in self.manager.db_info
|
||||
):
|
||||
last_system_oid = (self.manager.db_info[self.manager.did])[
|
||||
'datlastsysoid']
|
||||
|
||||
if not self.blueprint.show_system_objects:
|
||||
last_system_oid = self._DATABASE_LAST_SYSTEM_OID
|
||||
|
||||
return last_system_oid
|
||||
|
||||
def get_nodes(self, gid, sid, is_schema_diff=False):
|
||||
@@ -269,8 +263,7 @@ class DatabaseView(PGChildNodeView):
|
||||
# if is_schema_diff then no need to show system templates.
|
||||
if is_schema_diff and self.manager.db_info is not None and \
|
||||
self.manager.did in self.manager.db_info:
|
||||
last_system_oid = \
|
||||
self.manager.db_info[self.manager.did]['datlastsysoid']
|
||||
last_system_oid = self._DATABASE_LAST_SYSTEM_OID
|
||||
|
||||
server_node_res = self.manager
|
||||
|
||||
@@ -436,7 +429,8 @@ class DatabaseView(PGChildNodeView):
|
||||
|
||||
result = res['rows'][0]
|
||||
result['is_sys_obj'] = (
|
||||
result['oid'] <= self.datlastsysoid or self.datistemplate)
|
||||
result['oid'] <= self._DATABASE_LAST_SYSTEM_OID or
|
||||
self.datistemplate)
|
||||
# Fetching variable for database
|
||||
SQL = render_template(
|
||||
"/".join([self.template_path, 'get_variables.sql']),
|
||||
|
||||
@@ -210,11 +210,6 @@ class CastView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
# Set template path for the SQL scripts
|
||||
self.template_path = 'casts/sql/#{0}#'.format(self.manager.version)
|
||||
|
||||
self.datlastsysoid = \
|
||||
self.manager.db_info[kwargs['did']]['datlastsysoid'] \
|
||||
if self.manager.db_info is not None and \
|
||||
kwargs['did'] in self.manager.db_info else 0
|
||||
|
||||
self.datistemplate = False
|
||||
if (
|
||||
self.manager.db_info is not None and
|
||||
@@ -238,7 +233,7 @@ class CastView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
:return:
|
||||
"""
|
||||
last_system_oid = 0 if self.blueprint.show_system_objects else \
|
||||
self.datlastsysoid
|
||||
self._DATABASE_LAST_SYSTEM_OID
|
||||
sql = render_template(
|
||||
"/".join([self.template_path, self._PROPERTIES_SQL]),
|
||||
datlastsysoid=last_system_oid,
|
||||
@@ -270,7 +265,7 @@ class CastView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
"""
|
||||
res = []
|
||||
last_system_oid = 0 if self.blueprint.show_system_objects else \
|
||||
self.datlastsysoid
|
||||
self._DATABASE_LAST_SYSTEM_OID
|
||||
|
||||
sql = render_template(
|
||||
"/".join([self.template_path, self._NODES_SQL]),
|
||||
@@ -348,7 +343,7 @@ class CastView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
:return:
|
||||
"""
|
||||
last_system_oid = 0 if not self.blueprint.show_system_objects else \
|
||||
self.datlastsysoid
|
||||
self._DATABASE_LAST_SYSTEM_OID
|
||||
sql = render_template(
|
||||
"/".join([self.template_path, self._PROPERTIES_SQL]),
|
||||
cid=cid,
|
||||
@@ -407,7 +402,7 @@ class CastView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
# we need oid to add object in tree at browser, below sql will
|
||||
# gives the same
|
||||
last_system_oid = 0 if self.blueprint.show_system_objects else \
|
||||
self.datlastsysoid
|
||||
self._DATABASE_LAST_SYSTEM_OID
|
||||
sql = render_template(
|
||||
"/".join([self.template_path, self._PROPERTIES_SQL]),
|
||||
srctyp=data['srctyp'],
|
||||
@@ -584,7 +579,7 @@ class CastView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
"""
|
||||
if cid is not None:
|
||||
last_system_oid = 0 if self.blueprint.show_system_objects else \
|
||||
self.datlastsysoid
|
||||
self._DATABASE_LAST_SYSTEM_OID
|
||||
sql = render_template(
|
||||
"/".join([self.template_path, self._PROPERTIES_SQL]),
|
||||
cid=cid,
|
||||
@@ -769,13 +764,9 @@ class CastView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
"""
|
||||
res = dict()
|
||||
|
||||
last_system_oid = 0
|
||||
if self.manager.db_info is not None and did in self.manager.db_info:
|
||||
last_system_oid = (self.manager.db_info[did])['datlastsysoid']
|
||||
|
||||
sql = render_template(
|
||||
"/".join([self.template_path, self._NODES_SQL]),
|
||||
datlastsysoid=last_system_oid,
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID,
|
||||
showsysobj=self.blueprint.show_system_objects,
|
||||
schema_diff=True
|
||||
)
|
||||
|
||||
@@ -196,11 +196,6 @@ class EventTriggerView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
self.conn = self.manager.connection(did=kwargs['did'])
|
||||
self.template_path = 'event_triggers/sql/9.3_plus'
|
||||
|
||||
self.datlastsysoid = \
|
||||
self.manager.db_info[kwargs['did']]['datlastsysoid'] \
|
||||
if self.manager.db_info is not None and \
|
||||
kwargs['did'] in self.manager.db_info else 0
|
||||
|
||||
self.datistemplate = False
|
||||
if (
|
||||
self.manager.db_info is not None and
|
||||
@@ -370,7 +365,7 @@ class EventTriggerView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
|
||||
result = res['rows'][0]
|
||||
result['is_sys_obj'] = (
|
||||
result['oid'] <= self.datlastsysoid or
|
||||
result['oid'] <= self._DATABASE_LAST_SYSTEM_OID or
|
||||
self.datistemplate)
|
||||
result = self._formatter(result)
|
||||
|
||||
|
||||
@@ -139,11 +139,6 @@ class ExtensionView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
self.conn = self.manager.connection(did=kwargs['did'])
|
||||
self.template_path = self.EXT_TEMPLATE_PATH
|
||||
|
||||
self.datlastsysoid = \
|
||||
self.manager.db_info[kwargs['did']]['datlastsysoid'] \
|
||||
if self.manager.db_info is not None and \
|
||||
kwargs['did'] in self.manager.db_info else 0
|
||||
|
||||
self.datistemplate = False
|
||||
if (
|
||||
self.manager.db_info is not None and
|
||||
@@ -257,7 +252,8 @@ class ExtensionView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
)
|
||||
|
||||
res['rows'][0]['is_sys_obj'] = (
|
||||
res['rows'][0]['oid'] <= self.datlastsysoid or self.datistemplate)
|
||||
res['rows'][0]['oid'] <= self._DATABASE_LAST_SYSTEM_OID or
|
||||
self.datistemplate)
|
||||
|
||||
return True, res['rows'][0]
|
||||
|
||||
|
||||
+2
-6
@@ -216,11 +216,6 @@ class ForeignDataWrapperView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
)
|
||||
self.conn = self.manager.connection(did=kwargs['did'])
|
||||
self.qtIdent = driver.qtIdent
|
||||
self.datlastsysoid = \
|
||||
self.manager.db_info[kwargs['did']]['datlastsysoid'] \
|
||||
if self.manager.db_info is not None and \
|
||||
kwargs['did'] in self.manager.db_info else 0
|
||||
|
||||
self.datistemplate = False
|
||||
if (
|
||||
self.manager.db_info is not None and
|
||||
@@ -380,7 +375,8 @@ class ForeignDataWrapperView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
)
|
||||
|
||||
res['rows'][0]['is_sys_obj'] = (
|
||||
res['rows'][0]['oid'] <= self.datlastsysoid or self.datistemplate)
|
||||
res['rows'][0]['oid'] <= self._DATABASE_LAST_SYSTEM_OID or
|
||||
self.datistemplate)
|
||||
|
||||
if res['rows'][0]['fdwoptions'] is not None:
|
||||
res['rows'][0]['fdwoptions'] = tokenize_options(
|
||||
|
||||
+2
-6
@@ -207,11 +207,6 @@ class ForeignServerView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
kwargs['sid']
|
||||
)
|
||||
self.conn = self.manager.connection(did=kwargs['did'])
|
||||
self.datlastsysoid = \
|
||||
self.manager.db_info[kwargs['did']]['datlastsysoid'] \
|
||||
if self.manager.db_info is not None and \
|
||||
kwargs['did'] in self.manager.db_info else 0
|
||||
|
||||
self.datistemplate = False
|
||||
if (
|
||||
self.manager.db_info is not None and
|
||||
@@ -369,7 +364,8 @@ class ForeignServerView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
return False, gone(self.not_found_error_msg())
|
||||
|
||||
res['rows'][0]['is_sys_obj'] = (
|
||||
res['rows'][0]['oid'] <= self.datlastsysoid or self.datistemplate)
|
||||
res['rows'][0]['oid'] <= self._DATABASE_LAST_SYSTEM_OID or
|
||||
self.datistemplate)
|
||||
|
||||
if res['rows'][0]['fsrvoptions'] is not None:
|
||||
res['rows'][0]['fsrvoptions'] = tokenize_options(
|
||||
|
||||
+2
-6
@@ -225,11 +225,6 @@ class UserMappingView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
kwargs['sid']
|
||||
)
|
||||
self.conn = self.manager.connection(did=kwargs['did'])
|
||||
self.datlastsysoid = \
|
||||
self.manager.db_info[kwargs['did']]['datlastsysoid'] \
|
||||
if self.manager.db_info is not None and \
|
||||
kwargs['did'] in self.manager.db_info else 0
|
||||
|
||||
self.datistemplate = False
|
||||
if (
|
||||
self.manager.db_info is not None and
|
||||
@@ -388,7 +383,8 @@ class UserMappingView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
return False, gone(self.not_found_error_msg())
|
||||
|
||||
res['rows'][0]['is_sys_obj'] = (
|
||||
res['rows'][0]['oid'] <= self.datlastsysoid or self.datistemplate)
|
||||
res['rows'][0]['oid'] <= self._DATABASE_LAST_SYSTEM_OID or
|
||||
self.datistemplate)
|
||||
|
||||
if res['rows'][0]['umoptions'] is not None:
|
||||
res['rows'][0]['umoptions'] = tokenize_options(
|
||||
|
||||
@@ -230,11 +230,6 @@ class LanguageView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
self.driver = get_driver(PG_DEFAULT_DRIVER)
|
||||
self.manager = self.driver.connection_manager(kwargs['sid'])
|
||||
self.conn = self.manager.connection(did=kwargs['did'])
|
||||
self.datlastsysoid = \
|
||||
self.manager.db_info[kwargs['did']]['datlastsysoid'] \
|
||||
if self.manager.db_info is not None and \
|
||||
kwargs['did'] in self.manager.db_info else 0
|
||||
|
||||
self.datistemplate = False
|
||||
if (
|
||||
self.manager.db_info is not None and
|
||||
@@ -378,7 +373,8 @@ class LanguageView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
return False, gone(self._NOT_FOUND_LANG_INFORMATION)
|
||||
|
||||
res['rows'][0]['is_sys_obj'] = (
|
||||
res['rows'][0]['oid'] <= self.datlastsysoid or self.datistemplate)
|
||||
res['rows'][0]['oid'] <= self._DATABASE_LAST_SYSTEM_OID or
|
||||
self.datistemplate)
|
||||
|
||||
sql = render_template(
|
||||
"/".join([self.template_path, self._ACL_SQL]),
|
||||
|
||||
@@ -221,10 +221,6 @@ class PublicationView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
self.driver = get_driver(PG_DEFAULT_DRIVER)
|
||||
self.manager = self.driver.connection_manager(kwargs['sid'])
|
||||
self.conn = self.manager.connection(did=kwargs['did'])
|
||||
self.datlastsysoid = self.manager.db_info[kwargs['did']][
|
||||
'datlastsysoid'] if self.manager.db_info is not None \
|
||||
and kwargs['did'] in self.manager.db_info else 0
|
||||
|
||||
# Set the template path for the SQL scripts
|
||||
self.template_path = (
|
||||
"publications/sql/#{0}#".format(self.manager.version)
|
||||
|
||||
@@ -140,11 +140,6 @@ def check_precondition(f):
|
||||
return gone(errormsg=gettext("Could not find the server."))
|
||||
|
||||
self.conn = self.manager.connection(did=kwargs['did'])
|
||||
self.datlastsysoid = \
|
||||
self.manager.db_info[kwargs['did']]['datlastsysoid'] \
|
||||
if self.manager.db_info is not None and \
|
||||
kwargs['did'] in self.manager.db_info else 0
|
||||
|
||||
self.datistemplate = False
|
||||
if (
|
||||
self.manager.db_info is not None and
|
||||
@@ -571,7 +566,8 @@ It may have been removed by another user.
|
||||
# Making copy of output for future use
|
||||
copy_data = dict(res['rows'][0])
|
||||
copy_data['is_sys_obj'] = (
|
||||
copy_data['oid'] <= self.datlastsysoid or self.datistemplate)
|
||||
copy_data['oid'] <= self._DATABASE_LAST_SYSTEM_OID or
|
||||
self.datistemplate)
|
||||
copy_data = self._formatter(copy_data, scid)
|
||||
|
||||
return ajax_response(
|
||||
|
||||
@@ -155,11 +155,6 @@ class AggregateView(PGChildNodeView):
|
||||
kwargs['sid']
|
||||
)
|
||||
self.conn = self.manager.connection(did=kwargs['did'])
|
||||
self.datlastsysoid = \
|
||||
self.manager.db_info[kwargs['did']]['datlastsysoid'] \
|
||||
if self.manager.db_info is not None and \
|
||||
kwargs['did'] in self.manager.db_info else 0
|
||||
|
||||
self.datistemplate = False
|
||||
if (
|
||||
self.manager.db_info is not None and
|
||||
@@ -317,7 +312,7 @@ class AggregateView(PGChildNodeView):
|
||||
SQL = render_template("/".join([self.template_path,
|
||||
self._PROPERTIES_SQL]),
|
||||
scid=scid, agid=agid,
|
||||
datlastsysoid=self.datlastsysoid)
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID)
|
||||
status, res = self.conn.execute_dict(SQL)
|
||||
|
||||
if not status:
|
||||
@@ -327,7 +322,8 @@ class AggregateView(PGChildNodeView):
|
||||
return False, gone(self.not_found_error_msg())
|
||||
|
||||
res['rows'][0]['is_sys_obj'] = (
|
||||
res['rows'][0]['oid'] <= self.datlastsysoid or self.datistemplate)
|
||||
res['rows'][0]['oid'] <= self._DATABASE_LAST_SYSTEM_OID or
|
||||
self.datistemplate)
|
||||
|
||||
return True, res['rows'][0]
|
||||
|
||||
|
||||
+2
-6
@@ -146,11 +146,6 @@ class CatalogObjectView(PGChildNodeView):
|
||||
kwargs['sid']
|
||||
)
|
||||
self.conn = self.manager.connection(did=kwargs['did'])
|
||||
self.datlastsysoid = \
|
||||
self.manager.db_info[kwargs['did']]['datlastsysoid'] \
|
||||
if self.manager.db_info is not None and \
|
||||
kwargs['did'] in self.manager.db_info else 0
|
||||
|
||||
self.datistemplate = False
|
||||
if (
|
||||
self.manager.db_info is not None and
|
||||
@@ -306,7 +301,8 @@ class CatalogObjectView(PGChildNodeView):
|
||||
gettext("""Could not find the specified catalog object."""))
|
||||
|
||||
res['rows'][0]['is_sys_obj'] = (
|
||||
res['rows'][0]['oid'] <= self.datlastsysoid or self.datistemplate)
|
||||
res['rows'][0]['oid'] <= self._DATABASE_LAST_SYSTEM_OID or
|
||||
self.datistemplate)
|
||||
|
||||
return ajax_response(
|
||||
response=res['rows'][0],
|
||||
|
||||
+1
-6
@@ -173,11 +173,6 @@ class CatalogObjectColumnsView(PGChildNodeView):
|
||||
kwargs['sid']
|
||||
)
|
||||
self.conn = self.manager.connection(did=kwargs['did'])
|
||||
self.datlastsysoid = \
|
||||
self.manager.db_info[kwargs['did']]['datlastsysoid'] \
|
||||
if self.manager.db_info is not None and \
|
||||
kwargs['did'] in self.manager.db_info else 0
|
||||
|
||||
self.datistemplate = False
|
||||
if (
|
||||
self.manager.db_info is not None and
|
||||
@@ -288,7 +283,7 @@ class CatalogObjectColumnsView(PGChildNodeView):
|
||||
return gone(gettext("""Could not find the specified column."""))
|
||||
|
||||
res['rows'][0]['is_sys_obj'] = (
|
||||
res['rows'][0]['attrelid'] <= self.datlastsysoid or
|
||||
res['rows'][0]['attrelid'] <= self._DATABASE_LAST_SYSTEM_OID or
|
||||
self.datistemplate)
|
||||
|
||||
return ajax_response(
|
||||
|
||||
@@ -192,11 +192,6 @@ class CollationView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
kwargs['sid']
|
||||
)
|
||||
self.conn = self.manager.connection(did=kwargs['did'])
|
||||
self.datlastsysoid = \
|
||||
self.manager.db_info[kwargs['did']]['datlastsysoid'] \
|
||||
if self.manager.db_info is not None and \
|
||||
kwargs['did'] in self.manager.db_info else 0
|
||||
|
||||
self.datistemplate = False
|
||||
if (
|
||||
self.manager.db_info is not None and
|
||||
@@ -354,7 +349,7 @@ class CollationView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
SQL = render_template("/".join([self.template_path,
|
||||
self._PROPERTIES_SQL]),
|
||||
scid=scid, coid=coid,
|
||||
datlastsysoid=self.datlastsysoid)
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID)
|
||||
status, res = self.conn.execute_dict(SQL)
|
||||
|
||||
if not status:
|
||||
@@ -364,7 +359,8 @@ class CollationView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
return False, gone(self.not_found_error_msg())
|
||||
|
||||
res['rows'][0]['is_sys_obj'] = (
|
||||
res['rows'][0]['oid'] <= self.datlastsysoid or self.datistemplate)
|
||||
res['rows'][0]['oid'] <= self._DATABASE_LAST_SYSTEM_OID or
|
||||
self.datistemplate)
|
||||
|
||||
return True, res['rows'][0]
|
||||
|
||||
|
||||
@@ -282,11 +282,6 @@ class DomainView(PGChildNodeView, DataTypeReader, SchemaDiffObjectCompare):
|
||||
# Get database connection
|
||||
self.conn = self.manager.connection(did=kwargs['did'])
|
||||
self.qtIdent = driver.qtIdent
|
||||
self.datlastsysoid = \
|
||||
self.manager.db_info[kwargs['did']]['datlastsysoid'] \
|
||||
if self.manager.db_info is not None and \
|
||||
kwargs['did'] in self.manager.db_info else 0
|
||||
|
||||
self.datistemplate = False
|
||||
if (
|
||||
self.manager.db_info is not None and
|
||||
@@ -458,7 +453,7 @@ It may have been removed by another user or moved to another schema.
|
||||
|
||||
# Set System Domain Status
|
||||
data['sysdomain'] = False
|
||||
if doid <= self.manager.db_info[did]['datlastsysoid'] or \
|
||||
if doid <= self._DATABASE_LAST_SYSTEM_OID or \
|
||||
self.datistemplate:
|
||||
data['sysdomain'] = True
|
||||
|
||||
|
||||
+2
-6
@@ -260,11 +260,6 @@ class DomainConstraintView(PGChildNodeView):
|
||||
self.manager = driver.connection_manager(kwargs['sid'])
|
||||
self.conn = self.manager.connection(did=kwargs['did'])
|
||||
self.qtIdent = driver.qtIdent
|
||||
self.datlastsysoid = \
|
||||
self.manager.db_info[kwargs['did']]['datlastsysoid'] \
|
||||
if self.manager.db_info is not None and \
|
||||
kwargs['did'] in self.manager.db_info else 0
|
||||
|
||||
self.datistemplate = False
|
||||
if (
|
||||
self.manager.db_info is not None and
|
||||
@@ -413,7 +408,8 @@ class DomainConstraintView(PGChildNodeView):
|
||||
|
||||
data = res['rows'][0]
|
||||
data['is_sys_obj'] = (
|
||||
data['oid'] <= self.datlastsysoid or self.datistemplate)
|
||||
data['oid'] <= self._DATABASE_LAST_SYSTEM_OID or
|
||||
self.datistemplate)
|
||||
return ajax_response(
|
||||
response=data,
|
||||
status=200
|
||||
|
||||
+5
@@ -17,6 +17,11 @@ ALTER DOMAIN {{ conn|qtIdent(data.basensp, data.name) }} OWNER TO {{ conn|qtIden
|
||||
|
||||
ALTER DOMAIN {{ conn|qtIdent(data.basensp, data.name) }}
|
||||
ADD CONSTRAINT {{ conn|qtIdent(c.conname) }} CHECK ({{ c.consrc }}){% if not c.convalidated %} NOT VALID{% endif %}{% endif -%};
|
||||
{% if c.description %}
|
||||
|
||||
COMMENT ON CONSTRAINT {{ conn|qtIdent(c.conname) }} ON DOMAIN {{ conn|qtIdent(data.basensp, data.name) }}
|
||||
IS '{{ c.description }}';
|
||||
{% endif %}
|
||||
{% endfor -%}
|
||||
{% endif %}
|
||||
|
||||
|
||||
+10
@@ -22,11 +22,21 @@ ALTER DOMAIN {{ conn|qtIdent(o_data.basensp, o_data.name) }} OWNER TO {% if data
|
||||
|
||||
ALTER DOMAIN {{ conn|qtIdent(o_data.basensp, o_data.name) }}
|
||||
ADD CONSTRAINT {{ conn|qtIdent(c.conname) }} CHECK ({{ c.consrc }}){% if not c.convalidated %} NOT VALID{% endif %}{% endif -%};
|
||||
{% if c.description %}
|
||||
|
||||
COMMENT ON CONSTRAINT {{ conn|qtIdent(c.conname) }} ON DOMAIN {{ conn|qtIdent(o_data.basensp, o_data.name) }}
|
||||
IS '{{ c.description }}';
|
||||
{% endif %}
|
||||
{% endfor -%}
|
||||
{% for c in data.constraints.changed %}{% if c.conname and c.consrc %}
|
||||
|
||||
ALTER DOMAIN {{ conn|qtIdent(o_data.basensp, o_data.name) }}
|
||||
ADD CONSTRAINT {{ conn|qtIdent(c.conname) }} CHECK ({{ c.consrc }}){% if not c.convalidated %} NOT VALID{% endif %}{% endif -%};
|
||||
{% if c.description %}
|
||||
|
||||
COMMENT ON CONSTRAINT {{ conn|qtIdent(c.conname) }} ON DOMAIN {{ conn|qtIdent(o_data.basensp, o_data.name) }}
|
||||
IS '{{ c.description }}';
|
||||
{% endif %}
|
||||
{% endfor -%}
|
||||
{% endif %}
|
||||
|
||||
|
||||
+6
@@ -65,6 +65,12 @@ ALTER DOMAIN {{ conn|qtIdent(o_data.basensp, name) }}
|
||||
|
||||
ALTER DOMAIN {{ conn|qtIdent(o_data.basensp, name) }}
|
||||
ADD CONSTRAINT {{ conn|qtIdent(c.conname) }} CHECK ({{ c.consrc }}){% if not c.convalidated %} NOT VALID{% endif %}{% if c.connoinherit %} NO INHERIT{% endif -%};{% endif -%}
|
||||
|
||||
{% if c.description %}
|
||||
|
||||
COMMENT ON CONSTRAINT {{ conn|qtIdent(c.conname) }} ON DOMAIN {{ conn|qtIdent(o_data.basensp, name) }}
|
||||
IS '{{ c.description }}';
|
||||
{% endif %}
|
||||
{% endfor -%}{% endif -%}
|
||||
{% set seclabels = data.seclabels %}
|
||||
{% if 'deleted' in seclabels and seclabels.deleted|length > 0 %}
|
||||
|
||||
+2
-6
@@ -383,11 +383,6 @@ class ForeignTableView(PGChildNodeView, DataTypeReader,
|
||||
# Get database connection
|
||||
self.conn = self.manager.connection(did=kwargs['did'])
|
||||
self.qtIdent = driver.qtIdent
|
||||
self.datlastsysoid = \
|
||||
self.manager.db_info[kwargs['did']]['datlastsysoid'] \
|
||||
if self.manager.db_info is not None and \
|
||||
kwargs['did'] in self.manager.db_info else 0
|
||||
|
||||
self.datistemplate = \
|
||||
self.manager.db_info[kwargs['did']]['datistemplate'] \
|
||||
if self.manager.db_info is not None and \
|
||||
@@ -1191,7 +1186,8 @@ class ForeignTableView(PGChildNodeView, DataTypeReader,
|
||||
|
||||
data = res['rows'][0]
|
||||
data['is_sys_obj'] = (
|
||||
data['oid'] <= self.datlastsysoid or self.datistemplate)
|
||||
data['oid'] <= self._DATABASE_LAST_SYSTEM_OID or
|
||||
self.datistemplate)
|
||||
|
||||
if self.manager.version >= 90200:
|
||||
# Fetch privileges
|
||||
|
||||
+4
-8
@@ -226,11 +226,6 @@ class FtsConfigurationView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
self.manager = get_driver(PG_DEFAULT_DRIVER).connection_manager(
|
||||
kwargs['sid'])
|
||||
self.conn = self.manager.connection(did=kwargs['did'])
|
||||
self.datlastsysoid = \
|
||||
self.manager.db_info[kwargs['did']]['datlastsysoid'] \
|
||||
if self.manager.db_info is not None and \
|
||||
kwargs['did'] in self.manager.db_info else 0
|
||||
|
||||
self.datistemplate = False
|
||||
if (
|
||||
self.manager.db_info is not None and
|
||||
@@ -393,7 +388,8 @@ class FtsConfigurationView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
)
|
||||
|
||||
res['rows'][0]['is_sys_obj'] = (
|
||||
res['rows'][0]['oid'] <= self.datlastsysoid or self.datistemplate)
|
||||
res['rows'][0]['oid'] <= self._DATABASE_LAST_SYSTEM_OID or
|
||||
self.datistemplate)
|
||||
|
||||
# In edit mode fetch token/dictionary list also
|
||||
sql = render_template(
|
||||
@@ -782,7 +778,7 @@ class FtsConfigurationView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
if not status:
|
||||
return internal_server_error(errormsg=rset)
|
||||
|
||||
datlastsysoid = self.manager.db_info[did]['datlastsysoid']
|
||||
datlastsysoid = self._DATABASE_LAST_SYSTEM_OID
|
||||
|
||||
# Empty set is added before actual list as initially it will be visible
|
||||
# at parser control while creating a new FTS Configuration
|
||||
@@ -817,7 +813,7 @@ class FtsConfigurationView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
if not status:
|
||||
return internal_server_error(errormsg=rset)
|
||||
|
||||
datlastsysoid = self.manager.db_info[did]['datlastsysoid']
|
||||
datlastsysoid = self._DATABASE_LAST_SYSTEM_OID
|
||||
|
||||
# Empty set is added before actual list as initially it will be visible
|
||||
# at copy_config control while creating a new FTS Configuration
|
||||
|
||||
+2
-6
@@ -215,11 +215,6 @@ class FtsDictionaryView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
self.conn = self.manager.connection(did=kwargs['did'])
|
||||
driver = get_driver(PG_DEFAULT_DRIVER)
|
||||
self.qtIdent = driver.qtIdent
|
||||
self.datlastsysoid = \
|
||||
self.manager.db_info[kwargs['did']]['datlastsysoid'] \
|
||||
if self.manager.db_info is not None and \
|
||||
kwargs['did'] in self.manager.db_info else 0
|
||||
|
||||
self.datistemplate = False
|
||||
if (
|
||||
self.manager.db_info is not None and
|
||||
@@ -401,7 +396,8 @@ class FtsDictionaryView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
))
|
||||
|
||||
res['rows'][0]['is_sys_obj'] = (
|
||||
res['rows'][0]['oid'] <= self.datlastsysoid or self.datistemplate)
|
||||
res['rows'][0]['oid'] <= self._DATABASE_LAST_SYSTEM_OID or
|
||||
self.datistemplate)
|
||||
|
||||
# Handle templates and its schema name properly
|
||||
if res['rows'][0]['template_schema'] is not None and \
|
||||
|
||||
@@ -229,11 +229,6 @@ class FtsParserView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
self.manager = get_driver(PG_DEFAULT_DRIVER).connection_manager(
|
||||
kwargs['sid'])
|
||||
self.conn = self.manager.connection(did=kwargs['did'])
|
||||
self.datlastsysoid = \
|
||||
self.manager.db_info[kwargs['did']]['datlastsysoid'] \
|
||||
if self.manager.db_info is not None and \
|
||||
kwargs['did'] in self.manager.db_info else 0
|
||||
|
||||
self.datistemplate = False
|
||||
if (
|
||||
self.manager.db_info is not None and
|
||||
@@ -358,7 +353,8 @@ class FtsParserView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
_("Could not find the FTS Parser node in the database node."))
|
||||
|
||||
res['rows'][0]['is_sys_obj'] = (
|
||||
res['rows'][0]['oid'] <= self.datlastsysoid or self.datistemplate)
|
||||
res['rows'][0]['oid'] <= self._DATABASE_LAST_SYSTEM_OID or
|
||||
self.datistemplate)
|
||||
return True, res['rows'][0]
|
||||
|
||||
@check_precondition
|
||||
|
||||
+2
-6
@@ -209,11 +209,6 @@ class FtsTemplateView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
self.manager = get_driver(PG_DEFAULT_DRIVER).connection_manager(
|
||||
kwargs['sid'])
|
||||
self.conn = self.manager.connection(did=kwargs['did'])
|
||||
self.datlastsysoid = \
|
||||
self.manager.db_info[kwargs['did']]['datlastsysoid'] \
|
||||
if self.manager.db_info is not None and \
|
||||
kwargs['did'] in self.manager.db_info else 0
|
||||
|
||||
self.datistemplate = False
|
||||
if (
|
||||
self.manager.db_info is not None and
|
||||
@@ -332,7 +327,8 @@ class FtsTemplateView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
if len(res['rows']) == 0:
|
||||
return False, gone(self.not_found_error_msg())
|
||||
res['rows'][0]['is_sys_obj'] = (
|
||||
res['rows'][0]['oid'] <= self.datlastsysoid or self.datistemplate)
|
||||
res['rows'][0]['oid'] <= self._DATABASE_LAST_SYSTEM_OID or
|
||||
self.datistemplate)
|
||||
return True, res['rows'][0]
|
||||
|
||||
@check_precondition
|
||||
|
||||
@@ -1609,12 +1609,12 @@ class FunctionView(PGChildNodeView, DataTypeReader, SchemaDiffObjectCompare):
|
||||
|
||||
# Set System Functions Status
|
||||
resp_data['sysfunc'] = False
|
||||
if fnid <= self.manager.db_info[did]['datlastsysoid']:
|
||||
if fnid <= self._DATABASE_LAST_SYSTEM_OID:
|
||||
resp_data['sysfunc'] = True
|
||||
|
||||
# Set System Functions Status
|
||||
resp_data['sysproc'] = False
|
||||
if fnid <= self.manager.db_info[did]['datlastsysoid']:
|
||||
if fnid <= self._DATABASE_LAST_SYSTEM_OID:
|
||||
resp_data['sysproc'] = True
|
||||
|
||||
# Get formatted Security Labels
|
||||
|
||||
@@ -154,11 +154,6 @@ class OperatorView(PGChildNodeView):
|
||||
kwargs['sid']
|
||||
)
|
||||
self.conn = self.manager.connection(did=kwargs['did'])
|
||||
self.datlastsysoid = \
|
||||
self.manager.db_info[kwargs['did']]['datlastsysoid'] \
|
||||
if self.manager.db_info is not None and \
|
||||
kwargs['did'] in self.manager.db_info else 0
|
||||
|
||||
self.datistemplate = False
|
||||
if (
|
||||
self.manager.db_info is not None and
|
||||
@@ -316,7 +311,7 @@ class OperatorView(PGChildNodeView):
|
||||
SQL = render_template("/".join([self.template_path,
|
||||
self._PROPERTIES_SQL]),
|
||||
scid=scid, opid=opid,
|
||||
datlastsysoid=self.datlastsysoid)
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID)
|
||||
status, res = self.conn.execute_dict(SQL)
|
||||
|
||||
if not status:
|
||||
@@ -326,7 +321,8 @@ class OperatorView(PGChildNodeView):
|
||||
return False, gone(self.not_found_error_msg())
|
||||
|
||||
res['rows'][0]['is_sys_obj'] = (
|
||||
res['rows'][0]['oid'] <= self.datlastsysoid or self.datistemplate)
|
||||
res['rows'][0]['oid'] <= self._DATABASE_LAST_SYSTEM_OID or
|
||||
self.datistemplate)
|
||||
|
||||
return True, res['rows'][0]
|
||||
|
||||
|
||||
@@ -139,10 +139,6 @@ class SequenceView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
self.conn = self.manager.connection(did=kwargs['did'])
|
||||
else:
|
||||
self.conn = self.manager.connection()
|
||||
self.datlastsysoid = \
|
||||
self.manager.db_info[kwargs['did']]['datlastsysoid'] \
|
||||
if self.manager.db_info is not None and \
|
||||
kwargs['did'] in self.manager.db_info else 0
|
||||
self.datistemplate = False
|
||||
if (
|
||||
self.manager.db_info is not None and
|
||||
@@ -320,7 +316,8 @@ class SequenceView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
return False, gone(self.not_found_error_msg())
|
||||
|
||||
res['rows'][0]['is_sys_obj'] = (
|
||||
res['rows'][0]['oid'] <= self.datlastsysoid or self.datistemplate)
|
||||
res['rows'][0]['oid'] <= self._DATABASE_LAST_SYSTEM_OID or
|
||||
self.datistemplate)
|
||||
|
||||
for row in res['rows']:
|
||||
sql = render_template(
|
||||
|
||||
@@ -206,10 +206,6 @@ class SynonymView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
)
|
||||
)
|
||||
|
||||
self.datlastsysoid = \
|
||||
self.manager.db_info[kwargs['did']]['datlastsysoid'] \
|
||||
if self.manager.db_info is not None and \
|
||||
kwargs['did'] in self.manager.db_info else 0
|
||||
self.datistemplate = False
|
||||
if (
|
||||
self.manager.db_info is not None and
|
||||
@@ -428,7 +424,7 @@ class SynonymView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
return False, gone(self.not_found_error_msg())
|
||||
|
||||
res['rows'][0]['is_sys_obj'] = (
|
||||
res['rows'][0]['oid'] <= self.datlastsysoid or
|
||||
res['rows'][0]['oid'] <= self._DATABASE_LAST_SYSTEM_OID or
|
||||
self.datistemplate)
|
||||
return True, res['rows'][0]
|
||||
except Exception as e:
|
||||
|
||||
@@ -306,7 +306,7 @@ class TableView(BaseTableView, DataTypeReader, SchemaDiffTableCompare):
|
||||
SQL = render_template(
|
||||
"/".join([self.table_template_path, self._PROPERTIES_SQL]),
|
||||
did=did, scid=scid,
|
||||
datlastsysoid=self.datlastsysoid
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID
|
||||
)
|
||||
status, res = self.conn.execute_dict(SQL)
|
||||
|
||||
@@ -1059,7 +1059,7 @@ class TableView(BaseTableView, DataTypeReader, SchemaDiffTableCompare):
|
||||
SQL = render_template(
|
||||
"/".join([self.table_template_path, self._PROPERTIES_SQL]),
|
||||
did=did, scid=scid, tid=tid,
|
||||
datlastsysoid=self.datlastsysoid
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID
|
||||
)
|
||||
status, res = self.conn.execute_dict(SQL)
|
||||
if not status:
|
||||
@@ -1111,7 +1111,7 @@ class TableView(BaseTableView, DataTypeReader, SchemaDiffTableCompare):
|
||||
SQL = render_template(
|
||||
"/".join([self.table_template_path, self._PROPERTIES_SQL]),
|
||||
did=did, scid=scid, tid=tid,
|
||||
datlastsysoid=self.datlastsysoid
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID
|
||||
)
|
||||
status, res = self.conn.execute_dict(SQL)
|
||||
if not status:
|
||||
@@ -1150,7 +1150,7 @@ class TableView(BaseTableView, DataTypeReader, SchemaDiffTableCompare):
|
||||
SQL = render_template(
|
||||
"/".join([self.table_template_path, self._PROPERTIES_SQL]),
|
||||
did=did, scid=scid, tid=tid,
|
||||
datlastsysoid=self.datlastsysoid
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID
|
||||
)
|
||||
status, res = self.conn.execute_dict(SQL)
|
||||
if not status:
|
||||
@@ -1219,7 +1219,7 @@ class TableView(BaseTableView, DataTypeReader, SchemaDiffTableCompare):
|
||||
SQL = render_template(
|
||||
"/".join([self.table_template_path, self._PROPERTIES_SQL]),
|
||||
did=did, scid=scid, tid=tid,
|
||||
datlastsysoid=self.datlastsysoid
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID
|
||||
)
|
||||
status, res = self.conn.execute_dict(SQL)
|
||||
if not status:
|
||||
@@ -1369,7 +1369,7 @@ class TableView(BaseTableView, DataTypeReader, SchemaDiffTableCompare):
|
||||
SQL = render_template(
|
||||
"/".join([self.table_template_path, self._PROPERTIES_SQL]),
|
||||
did=did, scid=scid, tid=tid,
|
||||
datlastsysoid=self.datlastsysoid
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID
|
||||
)
|
||||
status, res = self.conn.execute_dict(SQL)
|
||||
if not status:
|
||||
@@ -1417,7 +1417,7 @@ class TableView(BaseTableView, DataTypeReader, SchemaDiffTableCompare):
|
||||
SQL = render_template(
|
||||
"/".join([self.table_template_path, self._PROPERTIES_SQL]),
|
||||
did=did, scid=scid, tid=tid,
|
||||
datlastsysoid=self.datlastsysoid
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID
|
||||
)
|
||||
status, res = self.conn.execute_dict(SQL)
|
||||
if not status:
|
||||
@@ -1468,7 +1468,7 @@ class TableView(BaseTableView, DataTypeReader, SchemaDiffTableCompare):
|
||||
SQL = render_template(
|
||||
"/".join([self.table_template_path, self._PROPERTIES_SQL]),
|
||||
did=did, scid=scid, tid=tid,
|
||||
datlastsysoid=self.datlastsysoid
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID
|
||||
)
|
||||
status, res = self.conn.execute_dict(SQL)
|
||||
if not status:
|
||||
@@ -1521,7 +1521,7 @@ class TableView(BaseTableView, DataTypeReader, SchemaDiffTableCompare):
|
||||
SQL = render_template(
|
||||
"/".join([self.table_template_path, self._PROPERTIES_SQL]),
|
||||
did=did, scid=scid, tid=tid,
|
||||
datlastsysoid=self.datlastsysoid
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID
|
||||
)
|
||||
status, res = self.conn.execute_dict(SQL)
|
||||
if not status:
|
||||
@@ -1601,7 +1601,7 @@ class TableView(BaseTableView, DataTypeReader, SchemaDiffTableCompare):
|
||||
SQL = render_template("/".join(
|
||||
[self.table_template_path, self._PROPERTIES_SQL]),
|
||||
did=did, scid=scid, tid=tid,
|
||||
datlastsysoid=self.datlastsysoid
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID
|
||||
)
|
||||
status, res = self.conn.execute_dict(SQL)
|
||||
sql = ''
|
||||
|
||||
@@ -184,7 +184,7 @@ def column_formatter(conn, tid, clid, data, edit_types_list=None,
|
||||
edit_types_list = [row['typname'] for row in rset['rows']]
|
||||
|
||||
# We will need present type in edit mode
|
||||
edit_types_list.append(data['cltype'])
|
||||
edit_types_list.append(data['typname'])
|
||||
data['edit_types'] = sorted(edit_types_list)
|
||||
|
||||
data['cltype'] = DataTypeReader.parse_type_name(data['cltype'])
|
||||
|
||||
+18
-30
@@ -263,13 +263,6 @@ class CompoundTriggerView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
kwargs['sid']
|
||||
)
|
||||
self.conn = self.manager.connection(did=kwargs['did'])
|
||||
# We need datlastsysoid to check if current compound trigger
|
||||
# is system trigger
|
||||
self.datlastsysoid = self.manager.db_info[
|
||||
kwargs['did']
|
||||
]['datlastsysoid'] if self.manager.db_info is not None and \
|
||||
kwargs['did'] in self.manager.db_info else 0
|
||||
|
||||
self.datistemplate = False
|
||||
if (
|
||||
self.manager.db_info is not None and
|
||||
@@ -451,7 +444,7 @@ class CompoundTriggerView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
SQL = render_template("/".join([self.template_path,
|
||||
self._PROPERTIES_SQL]),
|
||||
tid=tid, trid=trid,
|
||||
datlastsysoid=self.datlastsysoid)
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID)
|
||||
|
||||
status, res = self.conn.execute_dict(SQL)
|
||||
|
||||
@@ -575,10 +568,10 @@ class CompoundTriggerView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
# We will first fetch the compound trigger name for
|
||||
# current request so that we create template for
|
||||
# dropping compound trigger
|
||||
SQL = render_template("/".join([self.template_path,
|
||||
self._PROPERTIES_SQL]),
|
||||
tid=tid, trid=trid,
|
||||
datlastsysoid=self.datlastsysoid)
|
||||
SQL = render_template(
|
||||
"/".join([self.template_path, self._PROPERTIES_SQL]),
|
||||
tid=tid, trid=trid,
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID)
|
||||
|
||||
status, res = self.conn.execute_dict(SQL)
|
||||
if not status:
|
||||
@@ -637,7 +630,7 @@ class CompoundTriggerView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
data['table'] = self.table
|
||||
|
||||
SQL, name = compound_trigger_utils.get_sql(
|
||||
self.conn, data, tid, trid, self.datlastsysoid)
|
||||
self.conn, data, tid, trid, self._DATABASE_LAST_SYSTEM_OID)
|
||||
if not isinstance(SQL, str):
|
||||
return SQL
|
||||
SQL = SQL.strip('\n').strip(' ')
|
||||
@@ -659,7 +652,7 @@ class CompoundTriggerView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
SQL = render_template("/".join([self.template_path,
|
||||
self._PROPERTIES_SQL]),
|
||||
tid=tid, trid=new_trid,
|
||||
datlastsysoid=self.datlastsysoid)
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID)
|
||||
|
||||
status, res = self.conn.execute_dict(SQL)
|
||||
|
||||
@@ -716,7 +709,7 @@ class CompoundTriggerView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
|
||||
try:
|
||||
sql, name = compound_trigger_utils.get_sql(
|
||||
self.conn, data, tid, trid, self.datlastsysoid)
|
||||
self.conn, data, tid, trid, self._DATABASE_LAST_SYSTEM_OID)
|
||||
if not isinstance(sql, str):
|
||||
return sql
|
||||
sql = sql.strip('\n').strip(' ')
|
||||
@@ -747,7 +740,7 @@ class CompoundTriggerView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
try:
|
||||
SQL = compound_trigger_utils.get_reverse_engineered_sql(
|
||||
self.conn, schema=self.schema, table=self.table, tid=tid,
|
||||
trid=trid, datlastsysoid=self.datlastsysoid)
|
||||
trid=trid, datlastsysoid=self._DATABASE_LAST_SYSTEM_OID)
|
||||
except Exception as e:
|
||||
return internal_server_error(errormsg=str(e))
|
||||
|
||||
@@ -780,7 +773,7 @@ class CompoundTriggerView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
SQL = render_template("/".join([self.template_path,
|
||||
self._PROPERTIES_SQL]),
|
||||
tid=tid, trid=trid,
|
||||
datlastsysoid=self.datlastsysoid)
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID)
|
||||
|
||||
status, res = self.conn.execute_dict(SQL)
|
||||
if not status:
|
||||
@@ -885,10 +878,8 @@ class CompoundTriggerView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
target_schema = kwargs.get('target_schema', None)
|
||||
|
||||
if data:
|
||||
sql, name = compound_trigger_utils.get_sql(self.conn,
|
||||
data,
|
||||
tid, oid,
|
||||
self.datlastsysoid)
|
||||
sql, name = compound_trigger_utils.get_sql(
|
||||
self.conn, data, tid, oid, self._DATABASE_LAST_SYSTEM_OID)
|
||||
if not isinstance(sql, str):
|
||||
return sql
|
||||
sql = sql.strip('\n').strip(' ')
|
||||
@@ -898,10 +889,10 @@ class CompoundTriggerView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
scid=scid, tid=tid,
|
||||
trid=oid, only_sql=True)
|
||||
else:
|
||||
sql = render_template("/".join([self.template_path,
|
||||
self._PROPERTIES_SQL]),
|
||||
tid=tid, trid=oid,
|
||||
datlastsysoid=self.datlastsysoid)
|
||||
sql = render_template(
|
||||
"/".join([self.template_path, self._PROPERTIES_SQL]),
|
||||
tid=tid, trid=oid,
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID)
|
||||
|
||||
status, res = self.conn.execute_dict(sql)
|
||||
if not status:
|
||||
@@ -935,11 +926,8 @@ class CompoundTriggerView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
if target_schema:
|
||||
data['schema'] = target_schema
|
||||
|
||||
sql, name = compound_trigger_utils.get_sql(self.conn,
|
||||
data,
|
||||
tid,
|
||||
None,
|
||||
self.datlastsysoid)
|
||||
sql, name = compound_trigger_utils.get_sql(
|
||||
self.conn, data, tid, None, self._DATABASE_LAST_SYSTEM_OID)
|
||||
|
||||
# If compound trigger is disbaled then add sql
|
||||
# code for the same
|
||||
|
||||
+2
-6
@@ -196,11 +196,6 @@ class CheckConstraintView(PGChildNodeView):
|
||||
self.manager = driver.connection_manager(kwargs['sid'])
|
||||
self.conn = self.manager.connection(did=kwargs['did'])
|
||||
self.qtIdent = driver.qtIdent
|
||||
self.datlastsysoid = \
|
||||
self.manager.db_info[kwargs['did']]['datlastsysoid'] \
|
||||
if self.manager.db_info is not None and \
|
||||
kwargs['did'] in self.manager.db_info else 0
|
||||
|
||||
self.datistemplate = False
|
||||
if (
|
||||
self.manager.db_info is not None and
|
||||
@@ -449,7 +444,8 @@ class CheckConstraintView(PGChildNodeView):
|
||||
if cid:
|
||||
result = res[0]
|
||||
result['is_sys_obj'] = (
|
||||
result['oid'] <= self.datlastsysoid or self.datistemplate)
|
||||
result['oid'] <= self._DATABASE_LAST_SYSTEM_OID or
|
||||
self.datistemplate)
|
||||
|
||||
return ajax_response(
|
||||
response=result,
|
||||
|
||||
+2
-6
@@ -222,11 +222,6 @@ class ExclusionConstraintView(PGChildNodeView):
|
||||
kwargs['sid']
|
||||
)
|
||||
self.conn = self.manager.connection(did=kwargs['did'])
|
||||
self.datlastsysoid = \
|
||||
self.manager.db_info[kwargs['did']]['datlastsysoid'] \
|
||||
if self.manager.db_info is not None and \
|
||||
kwargs['did'] in self.manager.db_info else 0
|
||||
|
||||
self.datistemplate = False
|
||||
if (
|
||||
self.manager.db_info is not None and
|
||||
@@ -285,7 +280,8 @@ class ExclusionConstraintView(PGChildNodeView):
|
||||
if exid:
|
||||
result = res[0]
|
||||
result['is_sys_obj'] = (
|
||||
result['oid'] <= self.datlastsysoid or self.datistemplate)
|
||||
result['oid'] <= self._DATABASE_LAST_SYSTEM_OID or
|
||||
self.datistemplate)
|
||||
|
||||
return ajax_response(
|
||||
response=result,
|
||||
|
||||
+2
-6
@@ -229,11 +229,6 @@ class ForeignKeyConstraintView(PGChildNodeView):
|
||||
kwargs['sid']
|
||||
)
|
||||
self.conn = self.manager.connection(did=kwargs['did'])
|
||||
self.datlastsysoid = \
|
||||
self.manager.db_info[kwargs['did']]['datlastsysoid'] \
|
||||
if self.manager.db_info is not None and \
|
||||
kwargs['did'] in self.manager.db_info else 0
|
||||
|
||||
self.datistemplate = False
|
||||
if (
|
||||
self.manager.db_info is not None and
|
||||
@@ -288,7 +283,8 @@ class ForeignKeyConstraintView(PGChildNodeView):
|
||||
if fkid:
|
||||
result = res[0]
|
||||
result['is_sys_obj'] = (
|
||||
result['oid'] <= self.datlastsysoid or self.datistemplate)
|
||||
result['oid'] <= self._DATABASE_LAST_SYSTEM_OID or
|
||||
self.datistemplate)
|
||||
|
||||
return ajax_response(
|
||||
response=result,
|
||||
|
||||
+2
-6
@@ -242,11 +242,6 @@ class IndexConstraintView(PGChildNodeView):
|
||||
kwargs['sid']
|
||||
)
|
||||
self.conn = self.manager.connection(did=kwargs['did'])
|
||||
self.datlastsysoid = \
|
||||
self.manager.db_info[kwargs['did']]['datlastsysoid'] \
|
||||
if self.manager.db_info is not None and \
|
||||
kwargs['did'] in self.manager.db_info else 0
|
||||
|
||||
self.datistemplate = False
|
||||
if (
|
||||
self.manager.db_info is not None and
|
||||
@@ -304,7 +299,8 @@ class IndexConstraintView(PGChildNodeView):
|
||||
if cid:
|
||||
result = res[0]
|
||||
result['is_sys_obj'] = (
|
||||
result['oid'] <= self.datlastsysoid or self.datistemplate)
|
||||
result['oid'] <= self._DATABASE_LAST_SYSTEM_OID or
|
||||
self.datistemplate)
|
||||
|
||||
return ajax_response(
|
||||
response=result,
|
||||
|
||||
+10
-14
@@ -246,12 +246,6 @@ class IndexesView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
kwargs['sid']
|
||||
)
|
||||
self.conn = self.manager.connection(did=kwargs['did'])
|
||||
# We need datlastsysoid to check if current index is system index
|
||||
self.datlastsysoid = self.manager.db_info[
|
||||
kwargs['did']
|
||||
]['datlastsysoid'] if self.manager.db_info is not None and \
|
||||
kwargs['did'] in self.manager.db_info else 0
|
||||
|
||||
self.table_template_path = compile_template_path(
|
||||
'tables/sql',
|
||||
self.manager.server_type,
|
||||
@@ -514,7 +508,8 @@ class IndexesView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
"""
|
||||
SQL = render_template(
|
||||
"/".join([self.template_path, self._PROPERTIES_SQL]),
|
||||
did=did, tid=tid, idx=idx, datlastsysoid=self.datlastsysoid
|
||||
did=did, tid=tid, idx=idx,
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID
|
||||
)
|
||||
|
||||
status, res = self.conn.execute_dict(SQL)
|
||||
@@ -700,7 +695,8 @@ class IndexesView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
# so that we create template for dropping index
|
||||
SQL = render_template(
|
||||
"/".join([self.template_path, self._PROPERTIES_SQL]),
|
||||
did=did, tid=tid, idx=idx, datlastsysoid=self.datlastsysoid
|
||||
did=did, tid=tid, idx=idx,
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID
|
||||
)
|
||||
|
||||
status, res = self.conn.execute_dict(SQL)
|
||||
@@ -757,7 +753,7 @@ class IndexesView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
try:
|
||||
SQL, name = index_utils.get_sql(
|
||||
self.conn, data=data, did=did, tid=tid, idx=idx,
|
||||
datlastsysoid=self.datlastsysoid)
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID)
|
||||
if not isinstance(SQL, str):
|
||||
return SQL
|
||||
SQL = SQL.strip('\n').strip(' ')
|
||||
@@ -808,7 +804,7 @@ class IndexesView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
try:
|
||||
sql, name = index_utils.get_sql(
|
||||
self.conn, data=data, did=did, tid=tid, idx=idx,
|
||||
datlastsysoid=self.datlastsysoid, mode='create')
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID, mode='create')
|
||||
if not isinstance(sql, str):
|
||||
return sql
|
||||
sql = sql.strip('\n').strip(' ')
|
||||
@@ -837,7 +833,7 @@ class IndexesView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
|
||||
SQL = index_utils.get_reverse_engineered_sql(
|
||||
self.conn, schema=self.schema, table=self.table, did=did,
|
||||
tid=tid, idx=idx, datlastsysoid=self.datlastsysoid,
|
||||
tid=tid, idx=idx, datlastsysoid=self._DATABASE_LAST_SYSTEM_OID,
|
||||
add_not_exists_clause=True
|
||||
)
|
||||
|
||||
@@ -868,7 +864,7 @@ class IndexesView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
|
||||
sql, name = index_utils.get_sql(
|
||||
self.conn, data=data, did=did, tid=tid, idx=idx,
|
||||
datlastsysoid=self.datlastsysoid, mode='create')
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID, mode='create')
|
||||
|
||||
sql = sql.strip('\n').strip(' ')
|
||||
|
||||
@@ -876,7 +872,7 @@ class IndexesView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
sql = index_utils.get_reverse_engineered_sql(
|
||||
self.conn, schema=target_schema,
|
||||
table=self.table, did=did, tid=tid, idx=idx,
|
||||
datlastsysoid=self.datlastsysoid,
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID,
|
||||
template_path=None, with_header=False,
|
||||
add_not_exists_clause=True
|
||||
)
|
||||
@@ -973,7 +969,7 @@ class IndexesView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
SQL = render_template(
|
||||
"/".join([self.template_path, self._PROPERTIES_SQL]),
|
||||
did=did, tid=tid, idx=idx,
|
||||
datlastsysoid=self.datlastsysoid
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID
|
||||
)
|
||||
status, res = self.conn.execute_dict(SQL)
|
||||
if not status:
|
||||
|
||||
+14
-11
@@ -263,7 +263,7 @@ class PartitionsView(BaseTableView, DataTypeReader, SchemaDiffObjectCompare):
|
||||
SQL = render_template("/".join([self.partition_template_path,
|
||||
self._PROPERTIES_SQL]),
|
||||
did=did, scid=scid, tid=tid,
|
||||
datlastsysoid=self.datlastsysoid)
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID)
|
||||
status, res = self.conn.execute_dict(SQL)
|
||||
|
||||
if not status:
|
||||
@@ -372,7 +372,8 @@ class PartitionsView(BaseTableView, DataTypeReader, SchemaDiffObjectCompare):
|
||||
SQL = render_template("/".join([self.partition_template_path,
|
||||
self._PROPERTIES_SQL]),
|
||||
did=did, scid=scid, tid=tid,
|
||||
ptid=ptid, datlastsysoid=self.datlastsysoid)
|
||||
ptid=ptid,
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID)
|
||||
status, res = self.conn.execute_dict(SQL)
|
||||
if not status:
|
||||
return internal_server_error(errormsg=res)
|
||||
@@ -408,7 +409,8 @@ class PartitionsView(BaseTableView, DataTypeReader, SchemaDiffObjectCompare):
|
||||
SQL = render_template("/".join([self.partition_template_path,
|
||||
self._PROPERTIES_SQL]),
|
||||
did=did, scid=scid, tid=tid,
|
||||
ptid=ptid, datlastsysoid=self.datlastsysoid)
|
||||
ptid=ptid,
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID)
|
||||
status, result = self.conn.execute_dict(SQL)
|
||||
if not status:
|
||||
current_app.logger.error(result)
|
||||
@@ -428,11 +430,11 @@ class PartitionsView(BaseTableView, DataTypeReader, SchemaDiffObjectCompare):
|
||||
return False
|
||||
|
||||
for row in partitions['rows']:
|
||||
SQL = render_template("/".join([self.partition_template_path,
|
||||
self._PROPERTIES_SQL]),
|
||||
did=did, scid=scid, tid=tid,
|
||||
ptid=row['oid'],
|
||||
datlastsysoid=self.datlastsysoid)
|
||||
SQL = render_template(
|
||||
"/".join([self.partition_template_path,
|
||||
self._PROPERTIES_SQL]),
|
||||
did=did, scid=scid, tid=tid, ptid=row['oid'],
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID)
|
||||
status, result = self.conn.execute_dict(SQL)
|
||||
|
||||
if not status:
|
||||
@@ -712,7 +714,8 @@ class PartitionsView(BaseTableView, DataTypeReader, SchemaDiffObjectCompare):
|
||||
SQL = render_template("/".join([self.partition_template_path,
|
||||
self._PROPERTIES_SQL]),
|
||||
did=did, scid=scid, tid=tid,
|
||||
ptid=ptid, datlastsysoid=self.datlastsysoid)
|
||||
ptid=ptid,
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID)
|
||||
status, res = self.conn.execute_dict(SQL)
|
||||
if not status:
|
||||
return internal_server_error(errormsg=res)
|
||||
@@ -750,7 +753,7 @@ class PartitionsView(BaseTableView, DataTypeReader, SchemaDiffObjectCompare):
|
||||
"/".join([self.partition_template_path,
|
||||
self._PROPERTIES_SQL]),
|
||||
did=did, scid=scid, tid=tid, ptid=ptid,
|
||||
datlastsysoid=self.datlastsysoid
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID
|
||||
)
|
||||
status, res = self.conn.execute_dict(SQL)
|
||||
if not status:
|
||||
@@ -804,7 +807,7 @@ class PartitionsView(BaseTableView, DataTypeReader, SchemaDiffObjectCompare):
|
||||
SQL = render_template(
|
||||
"/".join([self.partition_template_path, self._PROPERTIES_SQL]),
|
||||
did=did, scid=scid, tid=tid, ptid=ptid,
|
||||
datlastsysoid=self.datlastsysoid
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID
|
||||
)
|
||||
status, res = self.conn.execute_dict(SQL)
|
||||
if not status:
|
||||
|
||||
+5
-7
@@ -198,10 +198,6 @@ class RowSecurityView(PGChildNodeView):
|
||||
schema, table = row_security_policies_utils.get_parent(self.conn,
|
||||
kwargs[
|
||||
'tid'])
|
||||
self.datlastsysoid = self.manager.db_info[
|
||||
kwargs['did']
|
||||
]['datlastsysoid'] if self.manager.db_info is not None and \
|
||||
kwargs['did'] in self.manager.db_info else 0
|
||||
self.schema = schema
|
||||
self.table = table
|
||||
# Set template path for the sql scripts
|
||||
@@ -315,7 +311,7 @@ class RowSecurityView(PGChildNodeView):
|
||||
sql = render_template("/".join(
|
||||
[self.template_path, self._PROPERTIES_SQL]
|
||||
), plid=plid, scid=scid, policy_table_id=tid,
|
||||
datlastsysoid=self.datlastsysoid)
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID)
|
||||
status, res = self.conn.execute_dict(sql)
|
||||
|
||||
if not status:
|
||||
@@ -555,7 +551,8 @@ class RowSecurityView(PGChildNodeView):
|
||||
|
||||
SQL = row_security_policies_utils.get_reverse_engineered_sql(
|
||||
self.conn, schema=self.schema, table=self.table, scid=scid,
|
||||
plid=plid, policy_table_id=tid, datlastsysoid=self.datlastsysoid)
|
||||
plid=plid, policy_table_id=tid,
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID)
|
||||
|
||||
return ajax_response(response=SQL)
|
||||
|
||||
@@ -632,7 +629,8 @@ class RowSecurityView(PGChildNodeView):
|
||||
sql = row_security_policies_utils.get_reverse_engineered_sql(
|
||||
self.conn, schema=schema, table=self.table, scid=scid,
|
||||
plid=oid, policy_table_id=tid,
|
||||
datlastsysoid=self.datlastsysoid, with_header=False)
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID,
|
||||
with_header=False)
|
||||
|
||||
drop_sql = ''
|
||||
if drop_req:
|
||||
|
||||
+1
-5
@@ -197,10 +197,6 @@ class RuleView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
self.manager = get_driver(
|
||||
PG_DEFAULT_DRIVER).connection_manager(kwargs['sid'])
|
||||
self.conn = self.manager.connection(did=kwargs['did'])
|
||||
self.datlastsysoid = self.manager.db_info[
|
||||
kwargs['did']
|
||||
]['datlastsysoid'] if self.manager.db_info is not None and \
|
||||
kwargs['did'] in self.manager.db_info else 0
|
||||
self.template_path = 'rules/sql'
|
||||
self.table_template_path = compile_template_path(
|
||||
'tables/sql',
|
||||
@@ -310,7 +306,7 @@ class RuleView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
"""
|
||||
SQL = render_template("/".join(
|
||||
[self.template_path, self._PROPERTIES_SQL]
|
||||
), rid=rid, datlastsysoid=self.datlastsysoid)
|
||||
), rid=rid, datlastsysoid=self._DATABASE_LAST_SYSTEM_OID)
|
||||
status, res = self.conn.execute_dict(SQL)
|
||||
|
||||
if not status:
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
/////////////////////////////////////////////////////////////
|
||||
//234567890
|
||||
// pgAdmin 4 - PostgreSQL Tools
|
||||
//
|
||||
// Copyright (C) 2013 - 2022, The pgAdmin Development Team
|
||||
|
||||
+4
-3
@@ -11,6 +11,7 @@ import os
|
||||
from regression.python_test_utils.template_helper import file_as_template
|
||||
from regression.python_test_utils.sql_template_test_base import \
|
||||
SQLTemplateTestBase
|
||||
from pgadmin.utils.constants import DATABASE_LAST_SYSTEM_OID
|
||||
|
||||
|
||||
class TestTablesPropertiesSql(SQLTemplateTestBase):
|
||||
@@ -46,7 +47,7 @@ class TestTablesPropertiesSql(SQLTemplateTestBase):
|
||||
public_schema_id = 2200
|
||||
sql = template.render(scid=public_schema_id,
|
||||
did=self.database_id,
|
||||
datlastsysoid=self.last_system_oid,
|
||||
datlastsysoid=DATABASE_LAST_SYSTEM_OID,
|
||||
tid=self.table_id
|
||||
)
|
||||
return sql
|
||||
@@ -54,12 +55,12 @@ class TestTablesPropertiesSql(SQLTemplateTestBase):
|
||||
def test_setup(self, connection, cursor):
|
||||
cursor.execute("""
|
||||
SELECT
|
||||
db.oid as did, datlastsysoid
|
||||
db.oid as did
|
||||
FROM
|
||||
pg_catalog.pg_database db
|
||||
WHERE db.datname = '{0}'""".format(self.database_name)
|
||||
)
|
||||
self.database_id, self.last_system_oid = cursor.fetchone()
|
||||
self.database_id = cursor.fetchone()[0]
|
||||
|
||||
cursor.execute("SELECT oid FROM pg_catalog.pg_class where relname="
|
||||
"'test_table'")
|
||||
|
||||
+12
-19
@@ -262,13 +262,6 @@ class TriggerView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
kwargs['sid']
|
||||
)
|
||||
self.conn = self.manager.connection(did=kwargs['did'])
|
||||
# We need datlastsysoid to check if current trigger is system
|
||||
# trigger
|
||||
self.datlastsysoid = self.manager.db_info[
|
||||
kwargs['did']
|
||||
]['datlastsysoid'] if self.manager.db_info is not None and \
|
||||
kwargs['did'] in self.manager.db_info else 0
|
||||
|
||||
# we will set template path for sql scripts
|
||||
self.table_template_path = compile_template_path(
|
||||
'tables/sql',
|
||||
@@ -543,7 +536,7 @@ class TriggerView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
SQL = render_template("/".join([self.template_path,
|
||||
self._PROPERTIES_SQL]),
|
||||
tid=tid, trid=trid,
|
||||
datlastsysoid=self.datlastsysoid)
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID)
|
||||
|
||||
status, res = self.conn.execute_dict(SQL)
|
||||
|
||||
@@ -668,10 +661,10 @@ class TriggerView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
for trid in data['ids']:
|
||||
# We will first fetch the trigger name for current request
|
||||
# so that we create template for dropping trigger
|
||||
SQL = render_template("/".join([self.template_path,
|
||||
self._PROPERTIES_SQL]),
|
||||
tid=tid, trid=trid,
|
||||
datlastsysoid=self.datlastsysoid)
|
||||
SQL = render_template(
|
||||
"/".join([self.template_path, self._PROPERTIES_SQL]),
|
||||
tid=tid, trid=trid,
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID)
|
||||
|
||||
status, res = self.conn.execute_dict(SQL)
|
||||
if not status:
|
||||
@@ -730,7 +723,7 @@ class TriggerView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
|
||||
SQL, name = trigger_utils.get_sql(
|
||||
self.conn, data=data, tid=tid, trid=trid,
|
||||
datlastsysoid=self.datlastsysoid,
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID,
|
||||
show_system_objects=self.blueprint.show_system_objects)
|
||||
|
||||
if not isinstance(SQL, str):
|
||||
@@ -754,7 +747,7 @@ class TriggerView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
SQL = render_template("/".join([self.template_path,
|
||||
self._PROPERTIES_SQL]),
|
||||
tid=tid, trid=new_trid,
|
||||
datlastsysoid=self.datlastsysoid)
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID)
|
||||
|
||||
status, res = self.conn.execute_dict(SQL)
|
||||
|
||||
@@ -812,7 +805,7 @@ class TriggerView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
try:
|
||||
sql, name = trigger_utils.get_sql(
|
||||
self.conn, data=data, tid=tid, trid=trid,
|
||||
datlastsysoid=self.datlastsysoid,
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID,
|
||||
show_system_objects=self.blueprint.show_system_objects)
|
||||
if not isinstance(sql, str):
|
||||
return sql
|
||||
@@ -843,7 +836,7 @@ class TriggerView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
|
||||
SQL = trigger_utils.get_reverse_engineered_sql(
|
||||
self.conn, schema=self.schema, table=self.table, tid=tid,
|
||||
trid=trid, datlastsysoid=self.datlastsysoid,
|
||||
trid=trid, datlastsysoid=self._DATABASE_LAST_SYSTEM_OID,
|
||||
show_system_objects=self.blueprint.show_system_objects)
|
||||
|
||||
return ajax_response(response=SQL)
|
||||
@@ -868,7 +861,7 @@ class TriggerView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
if data:
|
||||
SQL, name = trigger_utils.get_sql(
|
||||
self.conn, data=data, tid=tid, trid=oid,
|
||||
datlastsysoid=self.datlastsysoid,
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID,
|
||||
show_system_objects=self.blueprint.show_system_objects,
|
||||
is_schema_diff=True)
|
||||
|
||||
@@ -887,7 +880,7 @@ class TriggerView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
|
||||
SQL = trigger_utils.get_reverse_engineered_sql(
|
||||
self.conn, schema=schema, table=self.table, tid=tid,
|
||||
trid=oid, datlastsysoid=self.datlastsysoid,
|
||||
trid=oid, datlastsysoid=self._DATABASE_LAST_SYSTEM_OID,
|
||||
show_system_objects=self.blueprint.show_system_objects,
|
||||
template_path=None, with_header=False)
|
||||
|
||||
@@ -918,7 +911,7 @@ class TriggerView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
SQL = render_template("/".join([self.template_path,
|
||||
self._PROPERTIES_SQL]),
|
||||
tid=tid, trid=trid,
|
||||
datlastsysoid=self.datlastsysoid)
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID)
|
||||
|
||||
status, res = self.conn.execute_dict(SQL)
|
||||
if not status:
|
||||
|
||||
@@ -113,11 +113,6 @@ class BaseTableView(PGChildNodeView, BasePartitionTable, VacuumSettings):
|
||||
self.conn = self.manager.connection(did=kwargs['did'])
|
||||
self.qtIdent = driver.qtIdent
|
||||
self.qtTypeIdent = driver.qtTypeIdent
|
||||
# We need datlastsysoid to check if current table is system table
|
||||
self.datlastsysoid = self.manager.db_info[
|
||||
did
|
||||
]['datlastsysoid'] if self.manager.db_info is not None and \
|
||||
did in self.manager.db_info else 0
|
||||
|
||||
ver = self.manager.version
|
||||
server_type = self.manager.server_type
|
||||
@@ -577,7 +572,7 @@ class BaseTableView(PGChildNodeView, BasePartitionTable, VacuumSettings):
|
||||
sql = render_template(
|
||||
"/".join([self.table_template_path, self._PROPERTIES_SQL]),
|
||||
did=did, scid=scid, tid=tid,
|
||||
datlastsysoid=self.datlastsysoid
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID
|
||||
)
|
||||
status, res = self.conn.execute_dict(sql)
|
||||
if not status:
|
||||
@@ -748,7 +743,7 @@ class BaseTableView(PGChildNodeView, BasePartitionTable, VacuumSettings):
|
||||
|
||||
index_sql = index_utils.get_reverse_engineered_sql(
|
||||
self.conn, schema=schema, table=table, did=did, tid=tid,
|
||||
idx=row['oid'], datlastsysoid=self.datlastsysoid,
|
||||
idx=row['oid'], datlastsysoid=self._DATABASE_LAST_SYSTEM_OID,
|
||||
template_path=None, with_header=json_resp,
|
||||
add_not_exists_clause=add_not_exists_clause
|
||||
)
|
||||
@@ -780,7 +775,7 @@ class BaseTableView(PGChildNodeView, BasePartitionTable, VacuumSettings):
|
||||
get_reverse_engineered_sql(
|
||||
self.conn, schema=schema, table=table, scid=scid,
|
||||
plid=row['oid'], policy_table_id=tid,
|
||||
datlastsysoid=self.datlastsysoid,
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID,
|
||||
template_path=None, with_header=json_resp)
|
||||
policy_sql = "\n" + policy_sql
|
||||
|
||||
@@ -806,7 +801,7 @@ class BaseTableView(PGChildNodeView, BasePartitionTable, VacuumSettings):
|
||||
for row in rset['rows']:
|
||||
trigger_sql = trigger_utils.get_reverse_engineered_sql(
|
||||
self.conn, schema=schema, table=table, tid=tid,
|
||||
trid=row['oid'], datlastsysoid=self.datlastsysoid,
|
||||
trid=row['oid'], datlastsysoid=self._DATABASE_LAST_SYSTEM_OID,
|
||||
show_system_objects=self.blueprint.show_system_objects,
|
||||
template_path=None, with_header=json_resp)
|
||||
trigger_sql = "\n" + trigger_sql
|
||||
@@ -837,7 +832,8 @@ class BaseTableView(PGChildNodeView, BasePartitionTable, VacuumSettings):
|
||||
compound_trigger_sql = \
|
||||
compound_trigger_utils.get_reverse_engineered_sql(
|
||||
self.conn, schema=schema, table=table, tid=tid,
|
||||
trid=row['oid'], datlastsysoid=self.datlastsysoid)
|
||||
trid=row['oid'],
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID)
|
||||
compound_trigger_sql = "\n" + compound_trigger_sql
|
||||
|
||||
# Add into main sql
|
||||
@@ -864,7 +860,7 @@ class BaseTableView(PGChildNodeView, BasePartitionTable, VacuumSettings):
|
||||
rules_sql = '\n'
|
||||
sql = render_template("/".join(
|
||||
[self.rules_template_path, self._PROPERTIES_SQL]
|
||||
), rid=row['oid'], datlastsysoid=self.datlastsysoid)
|
||||
), rid=row['oid'], datlastsysoid=self._DATABASE_LAST_SYSTEM_OID)
|
||||
|
||||
status, res = self.conn.execute_dict(sql)
|
||||
if not status:
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ SELECT
|
||||
WHEN 'S' THEN 'defseqacl'
|
||||
WHEN 'f' THEN 'deffuncacl'
|
||||
WHEN 'T' THEN 'deftypeacl'
|
||||
ELSE 'UNKNOWN - ' || a.deftype
|
||||
ELSE 'UNKNOWN - ' || a.deftype::text
|
||||
END AS deftype,
|
||||
COALESCE(gt.rolname, 'PUBLIC') grantee, g.rolname grantor, pg_catalog.array_agg(a.privilege_type) as privileges, pg_catalog.array_agg(a.is_grantable) as grantable
|
||||
FROM
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@ SELECT
|
||||
WHEN 'r' THEN 'deftblacl'
|
||||
WHEN 'S' THEN 'defseqacl'
|
||||
WHEN 'f' THEN 'deffuncacl'
|
||||
ELSE 'UNKNOWN - ' || a.deftype
|
||||
ELSE 'UNKNOWN - ' || a.deftype::text
|
||||
END AS deftype,
|
||||
COALESCE(gt.rolname, 'PUBLIC') grantee, g.rolname grantor, pg_catalog.array_agg(a.privilege_type) as privileges, pg_catalog.array_agg(a.is_grantable) as grantable
|
||||
FROM
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@ SELECT
|
||||
WHEN 'r' THEN 'deftblacl'
|
||||
WHEN 'S' THEN 'defseqacl'
|
||||
WHEN 'f' THEN 'deffuncacl'
|
||||
ELSE 'UNKNOWN - ' || a.deftype
|
||||
ELSE 'UNKNOWN - ' || a.deftype::text
|
||||
END AS deftype,
|
||||
COALESCE(gt.rolname, 'PUBLIC') grantee, g.rolname grantor, pg_catalog.array_agg(a.privilege_type) as privileges, pg_catalog.array_agg(a.is_grantable) as grantable
|
||||
FROM
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ SELECT
|
||||
WHEN 'S' THEN 'defseqacl'
|
||||
WHEN 'f' THEN 'deffuncacl'
|
||||
WHEN 'T' THEN 'deftypeacl'
|
||||
ELSE 'UNKNOWN - ' || a.deftype
|
||||
ELSE 'UNKNOWN - ' || a.deftype::text
|
||||
END AS deftype,
|
||||
COALESCE(gt.rolname, 'PUBLIC') grantee,
|
||||
g.rolname grantor,
|
||||
|
||||
@@ -235,15 +235,6 @@ class TypeView(PGChildNodeView, DataTypeReader, SchemaDiffObjectCompare):
|
||||
kwargs['sid'])
|
||||
self.conn = self.manager.connection(did=kwargs['did'])
|
||||
|
||||
# We need datlastsysoid to check if current type is system type
|
||||
self.datlastsysoid = 0
|
||||
if (
|
||||
self.manager.db_info is not None and
|
||||
kwargs['did'] in self.manager.db_info
|
||||
):
|
||||
self.datlastsysoid = self.manager.db_info[kwargs['did']][
|
||||
'datlastsysoid']
|
||||
|
||||
# Declare allows acl on type
|
||||
self.acl = ['U']
|
||||
|
||||
@@ -278,7 +269,7 @@ class TypeView(PGChildNodeView, DataTypeReader, SchemaDiffObjectCompare):
|
||||
SQL = render_template(
|
||||
"/".join([self.template_path, self._PROPERTIES_SQL]),
|
||||
scid=scid,
|
||||
datlastsysoid=self.datlastsysoid,
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID,
|
||||
show_system_objects=self.blueprint.show_system_objects)
|
||||
|
||||
status, res = self.conn.execute_dict(SQL)
|
||||
@@ -604,7 +595,7 @@ class TypeView(PGChildNodeView, DataTypeReader, SchemaDiffObjectCompare):
|
||||
"/".join([self.template_path,
|
||||
self._PROPERTIES_SQL]),
|
||||
scid=scid, tid=tid,
|
||||
datlastsysoid=self.datlastsysoid,
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID,
|
||||
show_system_objects=self.blueprint.show_system_objects
|
||||
)
|
||||
status, res = self.conn.execute_dict(SQL)
|
||||
@@ -1157,7 +1148,7 @@ class TypeView(PGChildNodeView, DataTypeReader, SchemaDiffObjectCompare):
|
||||
"/".join([self.template_path,
|
||||
self._PROPERTIES_SQL]),
|
||||
scid=scid, tid=tid,
|
||||
datlastsysoid=self.datlastsysoid,
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID,
|
||||
show_system_objects=self.blueprint.show_system_objects
|
||||
)
|
||||
status, res = self.conn.execute_dict(sql)
|
||||
@@ -1363,7 +1354,7 @@ class TypeView(PGChildNodeView, DataTypeReader, SchemaDiffObjectCompare):
|
||||
"/".join([self.template_path,
|
||||
self._PROPERTIES_SQL]),
|
||||
scid=scid, tid=tid,
|
||||
datlastsysoid=self.datlastsysoid,
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID,
|
||||
show_system_objects=self.blueprint.show_system_objects
|
||||
)
|
||||
status, res = self.conn.execute_dict(SQL)
|
||||
@@ -1431,7 +1422,7 @@ class TypeView(PGChildNodeView, DataTypeReader, SchemaDiffObjectCompare):
|
||||
"/".join([self.template_path,
|
||||
self._PROPERTIES_SQL]),
|
||||
scid=scid, tid=tid,
|
||||
datlastsysoid=self.datlastsysoid,
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID,
|
||||
show_system_objects=self.blueprint.show_system_objects
|
||||
)
|
||||
status, res = self.conn.execute_dict(SQL)
|
||||
@@ -1551,7 +1542,8 @@ class TypeView(PGChildNodeView, DataTypeReader, SchemaDiffObjectCompare):
|
||||
res = dict()
|
||||
SQL = render_template("/".join([self.template_path,
|
||||
self._NODES_SQL]),
|
||||
scid=scid, datlastsysoid=self.datlastsysoid,
|
||||
scid=scid,
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID,
|
||||
schema_diff=True)
|
||||
status, rset = self.conn.execute_2darray(SQL)
|
||||
if not status:
|
||||
|
||||
@@ -226,14 +226,6 @@ def check_precondition(f):
|
||||
kwargs['sid']
|
||||
)
|
||||
self.conn = self.manager.connection(did=kwargs['did'])
|
||||
self.datlastsysoid = 0
|
||||
if (
|
||||
self.manager.db_info is not None and
|
||||
kwargs['did'] in self.manager.db_info
|
||||
):
|
||||
self.datlastsysoid = self.manager.db_info[kwargs['did']][
|
||||
'datlastsysoid']
|
||||
|
||||
# Set template path for sql scripts
|
||||
if self.manager.server_type == 'ppas':
|
||||
_temp = self.ppas_template_path(self.manager.version)
|
||||
@@ -401,7 +393,7 @@ class ViewNode(PGChildNodeView, VacuumSettings, SchemaDiffObjectCompare):
|
||||
"""
|
||||
SQL = render_template("/".join(
|
||||
[self.template_path, self._SQL_PREFIX + self._NODES_SQL]),
|
||||
vid=vid, datlastsysoid=self.datlastsysoid)
|
||||
vid=vid, datlastsysoid=self._DATABASE_LAST_SYSTEM_OID)
|
||||
status, rset = self.conn.execute_2darray(SQL)
|
||||
if not status:
|
||||
return internal_server_error(errormsg=rset)
|
||||
@@ -474,7 +466,7 @@ class ViewNode(PGChildNodeView, VacuumSettings, SchemaDiffObjectCompare):
|
||||
"""
|
||||
SQL = render_template("/".join(
|
||||
[self.template_path, self._SQL_PREFIX + self._PROPERTIES_SQL]
|
||||
), vid=vid, datlastsysoid=self.datlastsysoid)
|
||||
), vid=vid, datlastsysoid=self._DATABASE_LAST_SYSTEM_OID)
|
||||
status, res = self.conn.execute_dict(SQL)
|
||||
if not status:
|
||||
return False, internal_server_error(errormsg=res)
|
||||
@@ -649,7 +641,7 @@ class ViewNode(PGChildNodeView, VacuumSettings, SchemaDiffObjectCompare):
|
||||
self._SQL_PREFIX + self._PROPERTIES_SQL]),
|
||||
did=did,
|
||||
vid=vid,
|
||||
datlastsysoid=self.datlastsysoid
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID
|
||||
)
|
||||
status, res_data = self.conn.execute_dict(SQL)
|
||||
if not status:
|
||||
@@ -774,7 +766,7 @@ class ViewNode(PGChildNodeView, VacuumSettings, SchemaDiffObjectCompare):
|
||||
[self.template_path,
|
||||
self._SQL_PREFIX + self._PROPERTIES_SQL]),
|
||||
vid=vid,
|
||||
datlastsysoid=self.datlastsysoid
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID
|
||||
)
|
||||
status, res = self.conn.execute_dict(sql)
|
||||
if not status:
|
||||
@@ -1371,7 +1363,7 @@ class ViewNode(PGChildNodeView, VacuumSettings, SchemaDiffObjectCompare):
|
||||
SQL = render_template("/".join(
|
||||
[self.template_path, self._SQL_PREFIX + self._PROPERTIES_SQL]),
|
||||
vid=vid,
|
||||
datlastsysoid=self.datlastsysoid,
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID,
|
||||
)
|
||||
|
||||
status, res = self.conn.execute_dict(SQL)
|
||||
@@ -1534,7 +1526,7 @@ class ViewNode(PGChildNodeView, VacuumSettings, SchemaDiffObjectCompare):
|
||||
self.template_path, self._SQL_PREFIX + self._PROPERTIES_SQL
|
||||
]),
|
||||
scid=scid, vid=vid, did=did,
|
||||
datlastsysoid=self.datlastsysoid
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID
|
||||
)
|
||||
status, res = self.conn.execute_dict(SQL)
|
||||
if not status:
|
||||
@@ -1548,7 +1540,7 @@ class ViewNode(PGChildNodeView, VacuumSettings, SchemaDiffObjectCompare):
|
||||
self.column_template_path, self._PROPERTIES_SQL
|
||||
]),
|
||||
scid=scid, tid=vid,
|
||||
datlastsysoid=self.datlastsysoid
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID
|
||||
)
|
||||
status, data = self.conn.execute_dict(SQL)
|
||||
if not status:
|
||||
@@ -1593,7 +1585,7 @@ class ViewNode(PGChildNodeView, VacuumSettings, SchemaDiffObjectCompare):
|
||||
self.template_path, self._SQL_PREFIX + self._PROPERTIES_SQL
|
||||
]),
|
||||
scid=scid, vid=vid, did=did,
|
||||
datlastsysoid=self.datlastsysoid
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID
|
||||
)
|
||||
status, res = self.conn.execute_dict(SQL)
|
||||
if not status:
|
||||
@@ -1608,7 +1600,7 @@ class ViewNode(PGChildNodeView, VacuumSettings, SchemaDiffObjectCompare):
|
||||
self.column_template_path, self._PROPERTIES_SQL
|
||||
]),
|
||||
scid=scid, tid=vid,
|
||||
datlastsysoid=self.datlastsysoid
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID
|
||||
)
|
||||
status, data = self.conn.execute_dict(SQL)
|
||||
if not status:
|
||||
@@ -1653,7 +1645,8 @@ class ViewNode(PGChildNodeView, VacuumSettings, SchemaDiffObjectCompare):
|
||||
if not oid:
|
||||
SQL = render_template("/".join(
|
||||
[self.template_path, self._SQL_PREFIX + self._NODES_SQL]),
|
||||
did=did, scid=scid, datlastsysoid=self.datlastsysoid,
|
||||
did=did, scid=scid,
|
||||
datlastsysoid=self._DATABASE_LAST_SYSTEM_OID,
|
||||
schema_diff=True)
|
||||
status, views = self.conn.execute_2darray(SQL)
|
||||
if not status:
|
||||
@@ -2063,7 +2056,7 @@ class MViewNode(ViewNode, VacuumSettings):
|
||||
"""
|
||||
SQL = render_template("/".join(
|
||||
[self.template_path, self._SQL_PREFIX + self._PROPERTIES_SQL]
|
||||
), did=did, vid=vid, datlastsysoid=self.datlastsysoid)
|
||||
), did=did, vid=vid, datlastsysoid=self._DATABASE_LAST_SYSTEM_OID)
|
||||
status, res = self.conn.execute_dict(SQL)
|
||||
if not status:
|
||||
return False, internal_server_error(errormsg=res)
|
||||
@@ -2287,7 +2280,7 @@ class MViewNode(ViewNode, VacuumSettings):
|
||||
res = dict()
|
||||
SQL = render_template("/".join(
|
||||
[self.template_path, self._SQL_PREFIX + self._NODES_SQL]),
|
||||
did=did, scid=scid, datlastsysoid=self.datlastsysoid,
|
||||
did=did, scid=scid, datlastsysoid=self._DATABASE_LAST_SYSTEM_OID,
|
||||
schema_diff=True)
|
||||
status, rset = self.conn.execute_2darray(SQL)
|
||||
if not status:
|
||||
|
||||
@@ -12,6 +12,7 @@ import { getNodePrivilegeRoleSchema } from '../../../static/js/privilege.ui';
|
||||
import { getNodeVariableSchema } from '../../../static/js/variable.ui';
|
||||
import DatabaseSchema from './database.ui';
|
||||
import Notify from '../../../../../../static/js/helpers/Notifier';
|
||||
import { showServerPassword } from '../../../../../static/js/password_dialogs';
|
||||
|
||||
define('pgadmin.node.database', [
|
||||
'sources/gettext', 'sources/url_for', 'jquery', 'underscore',
|
||||
@@ -400,11 +401,11 @@ define('pgadmin.node.database', [
|
||||
if (msg == 'CRYPTKEY_SET') {
|
||||
connect_to_database(_model, _data, _tree, _item, _wasConnected);
|
||||
} else {
|
||||
Alertify.dlgServerPass(
|
||||
showServerPassword(
|
||||
gettext('Connect to database'),
|
||||
msg, _model, _data, _tree, _item, _status,
|
||||
onSuccess, onFailure, onCancel
|
||||
).resizeTo();
|
||||
);
|
||||
}
|
||||
}, 100);
|
||||
});
|
||||
|
||||
@@ -231,10 +231,6 @@ class SubscriptionView(PGChildNodeView, SchemaDiffObjectCompare):
|
||||
self.driver = get_driver(PG_DEFAULT_DRIVER)
|
||||
self.manager = self.driver.connection_manager(kwargs['sid'])
|
||||
self.conn = self.manager.connection(did=kwargs['did'])
|
||||
self.datlastsysoid = self.manager.db_info[kwargs['did']][
|
||||
'datlastsysoid'] if self.manager.db_info is not None \
|
||||
and kwargs['did'] in self.manager.db_info else 0
|
||||
|
||||
# Set the template path for the SQL scripts
|
||||
self.template_path = (
|
||||
"subscriptions/sql/#{0}#".format(self.manager.version)
|
||||
|
||||
+1
-1
@@ -32,7 +32,7 @@ FROM pg_catalog.pg_database db
|
||||
WHERE {% if did %}
|
||||
db.oid = {{ did|qtLiteral }}::OID{% else %}{% if name %}
|
||||
db.datname = {{ name|qtLiteral }}::text{% else %}
|
||||
db.oid > {{ last_system_oid|qtLiteral }}::OID
|
||||
db.oid > {{ last_system_oid|qtLiteral }}::OID OR db.datname IN ('postgres', 'edb')
|
||||
{% endif %}{% endif %}
|
||||
{% if db_restrictions %}
|
||||
|
||||
|
||||
+1
-1
@@ -39,7 +39,7 @@ FROM pg_catalog.pg_database db
|
||||
WHERE {% if did %}
|
||||
db.oid = {{ did|qtLiteral }}::OID{% else %}{% if name %}
|
||||
db.datname = {{ name|qtLiteral }}::text{% else %}
|
||||
db.oid > {{ last_system_oid|qtLiteral }}::OID
|
||||
db.oid > {{ last_system_oid|qtLiteral }}::OID OR db.datname IN ('postgres', 'edb')
|
||||
{% endif %}{% endif %}
|
||||
{% if db_restrictions %}
|
||||
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@ FROM
|
||||
LEFT OUTER JOIN pg_catalog.pg_tablespace ta ON db.dattablespace = ta.oid
|
||||
WHERE {% if did %}
|
||||
db.oid = {{ did|qtLiteral }}::OID{% else %}
|
||||
db.oid > {{ last_system_oid }}::OID
|
||||
db.oid > {{ last_system_oid }}::OID OR db.datname IN ('postgres', 'edb')
|
||||
{% endif %}
|
||||
{% if db_restrictions %}
|
||||
|
||||
|
||||
+1
-1
@@ -23,7 +23,7 @@ FROM pg_catalog.pg_database db
|
||||
WHERE {% if did %}
|
||||
db.oid = {{ did|qtLiteral }}::OID{% else %}{% if name %}
|
||||
db.datname = {{ name|qtLiteral }}::text{% else %}
|
||||
db.oid > {{ last_system_oid|qtLiteral }}::OID
|
||||
db.oid > {{ last_system_oid|qtLiteral }}::OID OR db.datname IN ('postgres', 'edb')
|
||||
{% endif %}{% endif %}
|
||||
{% if db_restrictions %}
|
||||
|
||||
|
||||
@@ -118,13 +118,11 @@ def get_attributes_from_db_info(manager, kwargs):
|
||||
|
||||
if 'did' in kwargs and kwargs['did'] in manager.db_info:
|
||||
|
||||
datlastsysoid = manager.db_info[kwargs['did']]['datlastsysoid'] \
|
||||
if 'datlastsysoid' in manager.db_info[kwargs['did']] else 0
|
||||
datistemplate = manager.db_info[kwargs['did']]['datistemplate'] \
|
||||
if 'datistemplate' in manager.db_info[kwargs['did']] else False
|
||||
datallowconn = manager.db_info[kwargs['did']]['datallowconn'] \
|
||||
if 'datallowconn' in manager.db_info[kwargs['did']] else False
|
||||
|
||||
return datlastsysoid, datistemplate, datallowconn
|
||||
return datistemplate, datallowconn
|
||||
else:
|
||||
return 0, False, True
|
||||
return False, True
|
||||
@@ -22,6 +22,7 @@ from pgadmin.utils.ajax import make_json_response, \
|
||||
from pgadmin.utils.ajax import precondition_required
|
||||
from pgadmin.utils.driver import get_driver
|
||||
from config import PG_DEFAULT_DRIVER
|
||||
from pgadmin.utils.constants import DATABASE_LAST_SYSTEM_OID
|
||||
|
||||
|
||||
class ResourceGroupModule(CollectionNodeModule):
|
||||
@@ -220,11 +221,6 @@ class ResourceGroupView(NodeView):
|
||||
self.manager = self.driver.connection_manager(kwargs['sid'])
|
||||
self.conn = self.manager.connection()
|
||||
|
||||
self.datlastsysoid = \
|
||||
self.manager.db_info[self.manager.did]['datlastsysoid'] \
|
||||
if self.manager.db_info is not None and \
|
||||
self.manager.did in self.manager.db_info else 0
|
||||
|
||||
self.datistemplate = False
|
||||
if (
|
||||
self.manager.db_info is not None and
|
||||
@@ -351,7 +347,8 @@ class ResourceGroupView(NodeView):
|
||||
return gone(gettext("""Could not find the resource group."""))
|
||||
|
||||
res['rows'][0]['is_sys_obj'] = (
|
||||
res['rows'][0]['oid'] <= self.datlastsysoid or self.datistemplate)
|
||||
res['rows'][0]['oid'] <= DATABASE_LAST_SYSTEM_OID or
|
||||
self.datistemplate)
|
||||
|
||||
return ajax_response(
|
||||
response=res['rows'][0],
|
||||
|
||||
@@ -665,10 +665,6 @@ rolmembership:{
|
||||
_("Connection to the server has been lost.")
|
||||
)
|
||||
|
||||
self.datlastsysoid = \
|
||||
self.manager.db_info[self.manager.did]['datlastsysoid'] \
|
||||
if self.manager.db_info is not None and \
|
||||
self.manager.did in self.manager.db_info else 0
|
||||
self.datistemplate = False
|
||||
if (
|
||||
self.manager.db_info is not None and
|
||||
@@ -843,7 +839,8 @@ rolmembership:{
|
||||
return gone(self.not_found_error_msg())
|
||||
|
||||
res['rows'][0]['is_sys_obj'] = (
|
||||
res['rows'][0]['oid'] <= self.datlastsysoid or self.datistemplate)
|
||||
res['rows'][0]['oid'] <= self._DATABASE_LAST_SYSTEM_OID or
|
||||
self.datistemplate)
|
||||
|
||||
return ajax_response(
|
||||
response=res['rows'][0],
|
||||
@@ -1129,7 +1126,7 @@ rolmembership:{
|
||||
query = render_template(
|
||||
"/".join([self.sql_path, 'dependents.sql']),
|
||||
fetch_dependents=True, rid=rid,
|
||||
lastsysoid=db_row['datlastsysoid']
|
||||
lastsysoid=self._DATABASE_LAST_SYSTEM_OID
|
||||
)
|
||||
|
||||
status, result = temp_conn.execute_dict(query)
|
||||
|
||||
+2
-2
@@ -1,10 +1,10 @@
|
||||
{% if fetch_database %}
|
||||
SELECT 'd' as type, datname,
|
||||
datallowconn AND pg_catalog.has_database_privilege(datname, 'CONNECT') AS datallowconn,
|
||||
datdba, datlastsysoid
|
||||
datdba
|
||||
FROM pg_catalog.pg_database db
|
||||
UNION
|
||||
SELECT 'M', spcname, null, null, null
|
||||
SELECT 'M', spcname, null, null
|
||||
FROM pg_catalog.pg_tablespace where spcowner= {{rid}}::oid
|
||||
ORDER BY 1, 2
|
||||
{% endif %}
|
||||
|
||||
+2
-2
@@ -1,10 +1,10 @@
|
||||
{% if fetch_database %}
|
||||
SELECT 'd' as type, datname,
|
||||
datallowconn AND pg_catalog.has_database_privilege(datname, 'CONNECT') AS datallowconn,
|
||||
datdba, datlastsysoid
|
||||
datdba
|
||||
FROM pg_catalog.pg_database db
|
||||
UNION
|
||||
SELECT 'M', spcname, null, null, null
|
||||
SELECT 'M', spcname, null, null
|
||||
FROM pg_catalog.pg_tablespace where spcowner={{rid}}::oid
|
||||
ORDER BY 1, 2
|
||||
{% endif %}
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
import { getNodeListById } from '../../../../static/js/node_ajax';
|
||||
import ServerSchema from './server.ui';
|
||||
import Notify from '../../../../../static/js/helpers/Notifier';
|
||||
import { showServerPassword } from '../../../../static/js/password_dialogs';
|
||||
|
||||
define('pgadmin.node.server', [
|
||||
'sources/gettext', 'sources/url_for', 'jquery', 'underscore', 'backbone',
|
||||
@@ -885,10 +886,11 @@ define('pgadmin.node.server', [
|
||||
if (msg == 'CRYPTKEY_SET') {
|
||||
connect_to_server(_node, _data, _tree, _item, _wasConnected);
|
||||
} else if (msg != 'CRYPTKEY_NOT_SET') {
|
||||
Alertify.dlgServerPass(
|
||||
showServerPassword(
|
||||
gettext('Connect to Server'),
|
||||
msg, _node, _data, _tree, _item, _wasConnected
|
||||
).resizeTo();
|
||||
msg, _node, _data, _tree, _item, _wasConnected, onSuccess,
|
||||
onFailure, onCancel
|
||||
);
|
||||
}
|
||||
}, 100);
|
||||
});
|
||||
@@ -954,88 +956,6 @@ define('pgadmin.node.server', [
|
||||
}
|
||||
};
|
||||
|
||||
// Ask Password and send it back to the connect server
|
||||
if (!Alertify.dlgServerPass) {
|
||||
Alertify.dialog('dlgServerPass', function factory() {
|
||||
return {
|
||||
main: function(
|
||||
title, message, node, _data, _tree, _item,
|
||||
_status, _onSuccess, _onFailure, _onCancel
|
||||
) {
|
||||
this.set('title', title);
|
||||
this.message = message;
|
||||
this.tree = _tree;
|
||||
this.nodeData = _data;
|
||||
this.nodeItem = _item;
|
||||
this.node= node;
|
||||
this.connected = _status;
|
||||
this.onSuccess = _onSuccess || onSuccess;
|
||||
this.onFailure = _onFailure || onFailure;
|
||||
this.onCancel = _onCancel || onCancel;
|
||||
},
|
||||
setup:function() {
|
||||
return {
|
||||
buttons:[{
|
||||
text: gettext('Cancel'), className: 'btn btn-secondary fa fa-times pg-alertify-button',
|
||||
key: 27,
|
||||
},{
|
||||
text: gettext('OK'), key: 13, className: 'btn btn-primary fa fa-check pg-alertify-button',
|
||||
}],
|
||||
focus: {element: '#password', select: true},
|
||||
options: {
|
||||
modal: 0, resizable: false, maximizable: false, pinnable: false,
|
||||
},
|
||||
};
|
||||
},
|
||||
build:function() {/*This is intentional (SonarQube)*/},
|
||||
prepare:function() {
|
||||
this.setContent(this.message);
|
||||
},
|
||||
callback: function(closeEvent) {
|
||||
var _tree = this.tree,
|
||||
_item = this.nodeItem,
|
||||
_node = this.node,
|
||||
_data = this.nodeData,
|
||||
_status = this.connected,
|
||||
_onSuccess = this.onSuccess,
|
||||
_onFailure = this.onFailure,
|
||||
_onCancel = this.onCancel;
|
||||
|
||||
if (closeEvent.button.text == gettext('OK')) {
|
||||
|
||||
var _url = _node.generate_url(_item, 'connect', _data, true);
|
||||
|
||||
if (!_status) {
|
||||
_tree.setLeaf(_item);
|
||||
_tree.removeIcon(_item);
|
||||
_tree.addIcon(_item, {icon: 'icon-server-connecting'});
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
timeout: 30000,
|
||||
url: _url,
|
||||
data: $('#frmPassword').serialize(),
|
||||
})
|
||||
.done(function(res) {
|
||||
return _onSuccess(
|
||||
res, _node, _data, _tree, _item, _status
|
||||
);
|
||||
})
|
||||
.fail(function(xhr, status, error) {
|
||||
return _onFailure(
|
||||
xhr, status, error, _node, _data, _tree, _item, _status
|
||||
);
|
||||
});
|
||||
} else {
|
||||
_onCancel && typeof(_onCancel) == 'function' &&
|
||||
_onCancel(_tree, _item, _data, _status);
|
||||
}
|
||||
},
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
var onCancel = function(_tree, _item, _data, _status) {
|
||||
_data.is_connecting = false;
|
||||
_tree.unload(_item);
|
||||
|
||||
@@ -106,10 +106,6 @@ class TablespaceView(PGChildNodeView):
|
||||
kwargs['sid']
|
||||
)
|
||||
self.conn = self.manager.connection()
|
||||
self.datlastsysoid = \
|
||||
self.manager.db_info[self.manager.did]['datlastsysoid'] \
|
||||
if self.manager.db_info is not None and \
|
||||
self.manager.did in self.manager.db_info else 0
|
||||
self.datistemplate = False
|
||||
if (
|
||||
self.manager.db_info is not None and
|
||||
@@ -275,7 +271,8 @@ class TablespaceView(PGChildNodeView):
|
||||
# Making copy of output for future use
|
||||
copy_data = dict(res['rows'][0])
|
||||
copy_data['is_sys_obj'] = (
|
||||
copy_data['oid'] <= self.datlastsysoid or self.datistemplate)
|
||||
copy_data['oid'] <= self._DATABASE_LAST_SYSTEM_OID or
|
||||
self.datistemplate)
|
||||
copy_data = self._formatter(copy_data, tsid)
|
||||
|
||||
return ajax_response(
|
||||
|
||||
+3
-3
@@ -1,5 +1,5 @@
|
||||
SELECT DISTINCT dep.deptype, dep.refclassid, dep.refobjid, cl.relkind, ad.adbin, ad.adsrc,
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind END
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind::text || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind::text END
|
||||
WHEN tg.oid IS NOT NULL THEN 'Tr'::text
|
||||
WHEN ty.oid IS NOT NULL THEN CASE WHEN ty.typtype = 'd' THEN 'd'::text ELSE 'Ty'::text END
|
||||
WHEN ns.oid IS NOT NULL THEN 'n'::text
|
||||
@@ -7,7 +7,7 @@ SELECT DISTINCT dep.deptype, dep.refclassid, dep.refobjid, cl.relkind, ad.adbin,
|
||||
WHEN pr.oid IS NOT NULL THEN CASE WHEN pr.prokind = 'p' THEN 'Pp'::text ELSE 'Pf'::text END
|
||||
WHEN la.oid IS NOT NULL THEN 'l'::text
|
||||
WHEN rw.oid IS NOT NULL THEN 'Rl'::text
|
||||
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype END
|
||||
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype::text END
|
||||
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
||||
WHEN fs.oid IS NOT NULL THEN 'Fs'::text
|
||||
WHEN fdw.oid IS NOT NULL THEN 'Fw'::text
|
||||
@@ -74,7 +74,7 @@ refclassid IN ( SELECT oid FROM pg_catalog.pg_class WHERE relname IN
|
||||
'pg_collation', 'pg_ts_config', 'pg_ts_dict', 'pg_ts_parser', 'pg_ts_template', 'pg_extension', 'pg_policy'))
|
||||
UNION
|
||||
SELECT DISTINCT dep.deptype, dep.refclassid, dep.refobjid, cl.relkind, ad.adbin, ad.adsrc,
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind END
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind::text || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind::text END
|
||||
ELSE '' END AS type,
|
||||
NULL AS ownertable,
|
||||
CASE WHEN cl.relname IS NOT NULL OR att.attname IS NOT NULL THEN cl.relname || COALESCE('.' || att.attname, '')
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
SELECT DISTINCT dep.deptype, dep.classid, cl.relkind, ad.adbin, ad.adsrc,
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.objsubid::text, '') ELSE cl.relkind END
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind::text || COALESCE(dep.objsubid::text, '') ELSE cl.relkind::text END
|
||||
WHEN tg.oid IS NOT NULL THEN 'Tr'::text
|
||||
WHEN ty.oid IS NOT NULL THEN CASE WHEN ty.typtype = 'd' THEN 'd'::text ELSE 'Ty'::text END
|
||||
WHEN ns.oid IS NOT NULL THEN 'n'::text
|
||||
@@ -7,7 +7,7 @@ SELECT DISTINCT dep.deptype, dep.classid, cl.relkind, ad.adbin, ad.adsrc,
|
||||
WHEN pr.oid IS NOT NULL THEN CASE WHEN pr.prokind = 'p' THEN 'Pp'::text ELSE 'Pf'::text END
|
||||
WHEN la.oid IS NOT NULL THEN 'l'::text
|
||||
WHEN rw.oid IS NOT NULL THEN 'Rl'::text
|
||||
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype END
|
||||
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype::text END
|
||||
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
||||
WHEN fs.oid IS NOT NULL THEN 'Fs'::text
|
||||
WHEN fdw.oid IS NOT NULL THEN 'Fw'::text
|
||||
|
||||
+3
-3
@@ -1,5 +1,5 @@
|
||||
SELECT DISTINCT dep.deptype, dep.refclassid, dep.refobjid, cl.relkind, ad.adbin, pg_catalog.pg_get_expr(ad.adbin, ad.adrelid) as adsrc,
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind END
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind::text || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind::text END
|
||||
WHEN tg.oid IS NOT NULL THEN 'Tr'::text
|
||||
WHEN ty.oid IS NOT NULL THEN CASE WHEN ty.typtype = 'd' THEN 'd'::text ELSE 'Ty'::text END
|
||||
WHEN ns.oid IS NOT NULL THEN 'n'::text
|
||||
@@ -7,7 +7,7 @@ SELECT DISTINCT dep.deptype, dep.refclassid, dep.refobjid, cl.relkind, ad.adbin,
|
||||
WHEN pr.oid IS NOT NULL THEN CASE WHEN pr.prokind = 'p' THEN 'Pp'::text ELSE 'Pf'::text END
|
||||
WHEN la.oid IS NOT NULL THEN 'l'::text
|
||||
WHEN rw.oid IS NOT NULL THEN 'Rl'::text
|
||||
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype END
|
||||
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype::text END
|
||||
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
||||
WHEN fs.oid IS NOT NULL THEN 'Fs'::text
|
||||
WHEN fdw.oid IS NOT NULL THEN 'Fw'::text
|
||||
@@ -74,7 +74,7 @@ refclassid IN ( SELECT oid FROM pg_catalog.pg_class WHERE relname IN
|
||||
'pg_collation', 'pg_ts_config', 'pg_ts_dict', 'pg_ts_parser', 'pg_ts_template', 'pg_extension', 'pg_policy'))
|
||||
UNION
|
||||
SELECT DISTINCT dep.deptype, dep.refclassid, dep.refobjid, cl.relkind, ad.adbin, pg_catalog.pg_get_expr(ad.adbin, ad.adrelid) as adsrc,
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind END
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind::text || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind::text END
|
||||
ELSE '' END AS type,
|
||||
NULL AS ownertable,
|
||||
CASE WHEN cl.relname IS NOT NULL OR att.attname IS NOT NULL THEN cl.relname || COALESCE('.' || att.attname, '')
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
SELECT DISTINCT dep.deptype, dep.classid, cl.relkind, ad.adbin, pg_get_expr(ad.adbin, ad.adrelid) as adsrc,
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.objsubid::text, '') ELSE cl.relkind END
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind::text || COALESCE(dep.objsubid::text, '') ELSE cl.relkind::text END
|
||||
WHEN tg.oid IS NOT NULL THEN 'Tr'::text
|
||||
WHEN ty.oid IS NOT NULL THEN CASE WHEN ty.typtype = 'd' THEN 'd'::text ELSE 'Ty'::text END
|
||||
WHEN ns.oid IS NOT NULL THEN 'n'::text
|
||||
@@ -7,7 +7,7 @@ SELECT DISTINCT dep.deptype, dep.classid, cl.relkind, ad.adbin, pg_get_expr(ad.a
|
||||
WHEN pr.oid IS NOT NULL THEN CASE WHEN pr.prokind = 'p' THEN 'Pp'::text ELSE 'Pf'::text END
|
||||
WHEN la.oid IS NOT NULL THEN 'l'::text
|
||||
WHEN rw.oid IS NOT NULL THEN 'Rl'::text
|
||||
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype END
|
||||
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype::text END
|
||||
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
||||
WHEN fs.oid IS NOT NULL THEN 'Fs'::text
|
||||
WHEN fdw.oid IS NOT NULL THEN 'Fw'::text
|
||||
|
||||
+3
-3
@@ -1,5 +1,5 @@
|
||||
SELECT DISTINCT dep.deptype, dep.refclassid, dep.refobjid, cl.relkind, ad.adbin, ad.adsrc,
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind END
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind::text || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind::text END
|
||||
WHEN tg.oid IS NOT NULL THEN 'Tr'::text
|
||||
WHEN ty.oid IS NOT NULL THEN CASE WHEN ty.typtype = 'd' THEN 'd'::text ELSE 'Ty'::text END
|
||||
WHEN ns.oid IS NOT NULL THEN 'n'::text
|
||||
@@ -7,7 +7,7 @@ SELECT DISTINCT dep.deptype, dep.refclassid, dep.refobjid, cl.relkind, ad.adbin,
|
||||
WHEN pr.oid IS NOT NULL THEN 'Pf'::text
|
||||
WHEN la.oid IS NOT NULL THEN 'l'::text
|
||||
WHEN rw.oid IS NOT NULL THEN 'Rl'::text
|
||||
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype END
|
||||
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype::text END
|
||||
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
||||
WHEN fs.oid IS NOT NULL THEN 'Fs'::text
|
||||
WHEN fdw.oid IS NOT NULL THEN 'Fw'::text
|
||||
@@ -70,7 +70,7 @@ refclassid IN ( SELECT oid FROM pg_catalog.pg_class WHERE relname IN
|
||||
'pg_collation', 'pg_ts_config', 'pg_ts_dict', 'pg_ts_parser', 'pg_ts_template', 'pg_extension'))
|
||||
UNION
|
||||
SELECT DISTINCT dep.deptype, dep.refclassid, dep.refobjid, cl.relkind, ad.adbin, ad.adsrc,
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind END
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind::text || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind::text END
|
||||
ELSE '' END AS type,
|
||||
NULL AS ownertable,
|
||||
CASE WHEN cl.relname IS NOT NULL OR att.attname IS NOT NULL THEN cl.relname || COALESCE('.' || att.attname, '')
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
SELECT DISTINCT dep.deptype, dep.classid, cl.relkind, ad.adbin, ad.adsrc,
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.objsubid::text, '') ELSE cl.relkind END
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind::text || COALESCE(dep.objsubid::text, '') ELSE cl.relkind::text END
|
||||
WHEN tg.oid IS NOT NULL THEN 'Tr'::text
|
||||
WHEN ty.oid IS NOT NULL THEN CASE WHEN ty.typtype = 'd' THEN 'd'::text ELSE 'Ty'::text END
|
||||
WHEN ns.oid IS NOT NULL THEN 'n'::text
|
||||
@@ -7,7 +7,7 @@ SELECT DISTINCT dep.deptype, dep.classid, cl.relkind, ad.adbin, ad.adsrc,
|
||||
WHEN pr.oid IS NOT NULL THEN 'Pf'::text
|
||||
WHEN la.oid IS NOT NULL THEN 'l'::text
|
||||
WHEN rw.oid IS NOT NULL THEN 'Rl'::text
|
||||
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype END
|
||||
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype::text END
|
||||
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
||||
WHEN fs.oid IS NOT NULL THEN 'Fs'::text
|
||||
WHEN fdw.oid IS NOT NULL THEN 'Fw'::text
|
||||
|
||||
+3
-3
@@ -1,5 +1,5 @@
|
||||
SELECT DISTINCT dep.deptype, dep.refclassid, dep.refobjid, cl.relkind, ad.adbin, ad.adsrc,
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind END
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind::text || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind::text END
|
||||
WHEN tg.oid IS NOT NULL THEN 'Tr'::text
|
||||
WHEN ty.oid IS NOT NULL THEN CASE WHEN ty.typtype = 'd' THEN 'd'::text ELSE 'Ty'::text END
|
||||
WHEN ns.oid IS NOT NULL THEN 'n'::text
|
||||
@@ -7,7 +7,7 @@ SELECT DISTINCT dep.deptype, dep.refclassid, dep.refobjid, cl.relkind, ad.adbin,
|
||||
WHEN pr.oid IS NOT NULL THEN 'Pf'::text
|
||||
WHEN la.oid IS NOT NULL THEN 'l'::text
|
||||
WHEN rw.oid IS NOT NULL THEN 'Rl'::text
|
||||
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype END
|
||||
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype::text END
|
||||
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
||||
WHEN fs.oid IS NOT NULL THEN 'Fs'::text
|
||||
WHEN fdw.oid IS NOT NULL THEN 'Fw'::text
|
||||
@@ -72,7 +72,7 @@ refclassid IN ( SELECT oid FROM pg_catalog.pg_class WHERE relname IN
|
||||
'pg_collation', 'pg_ts_config', 'pg_ts_dict', 'pg_ts_parser', 'pg_ts_template', 'pg_extension'))
|
||||
UNION
|
||||
SELECT DISTINCT dep.deptype, dep.refclassid, dep.refobjid, cl.relkind, ad.adbin, ad.adsrc,
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind END
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind::text || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind::text END
|
||||
ELSE '' END AS type,
|
||||
NULL AS ownertable,
|
||||
CASE WHEN cl.relname IS NOT NULL OR att.attname IS NOT NULL THEN cl.relname || COALESCE('.' || att.attname, '')
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
SELECT DISTINCT dep.deptype, dep.classid, cl.relkind, ad.adbin, ad.adsrc,
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.objsubid::text, '') ELSE cl.relkind END
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind::text || COALESCE(dep.objsubid::text, '') ELSE cl.relkind::text END
|
||||
WHEN tg.oid IS NOT NULL THEN 'Tr'::text
|
||||
WHEN ty.oid IS NOT NULL THEN CASE WHEN ty.typtype = 'd' THEN 'd'::text ELSE 'Ty'::text END
|
||||
WHEN ns.oid IS NOT NULL THEN 'n'::text
|
||||
@@ -7,7 +7,7 @@ SELECT DISTINCT dep.deptype, dep.classid, cl.relkind, ad.adbin, ad.adsrc,
|
||||
WHEN pr.oid IS NOT NULL THEN 'Pf'::text
|
||||
WHEN la.oid IS NOT NULL THEN 'l'::text
|
||||
WHEN rw.oid IS NOT NULL THEN 'Rl'::text
|
||||
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype END
|
||||
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype::text END
|
||||
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
||||
WHEN fs.oid IS NOT NULL THEN 'Fs'::text
|
||||
WHEN fdw.oid IS NOT NULL THEN 'Fw'::text
|
||||
|
||||
+3
-3
@@ -1,5 +1,5 @@
|
||||
SELECT DISTINCT dep.deptype, dep.refclassid, dep.refobjid, cl.relkind, ad.adbin, ad.adsrc,
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind END
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind::text || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind::text END
|
||||
WHEN tg.oid IS NOT NULL THEN 'Tr'::text
|
||||
WHEN ty.oid IS NOT NULL THEN CASE WHEN ty.typtype = 'd' THEN 'd'::text ELSE 'Ty'::text END
|
||||
WHEN ns.oid IS NOT NULL THEN 'n'::text
|
||||
@@ -7,7 +7,7 @@ SELECT DISTINCT dep.deptype, dep.refclassid, dep.refobjid, cl.relkind, ad.adbin,
|
||||
WHEN pr.oid IS NOT NULL THEN 'Pf'::text
|
||||
WHEN la.oid IS NOT NULL THEN 'l'::text
|
||||
WHEN rw.oid IS NOT NULL THEN 'Rl'::text
|
||||
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype END
|
||||
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype::text END
|
||||
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
||||
WHEN fs.oid IS NOT NULL THEN 'Fs'::text
|
||||
WHEN fdw.oid IS NOT NULL THEN 'Fw'::text
|
||||
@@ -74,7 +74,7 @@ refclassid IN ( SELECT oid FROM pg_catalog.pg_class WHERE relname IN
|
||||
'pg_collation', 'pg_ts_config', 'pg_ts_dict', 'pg_ts_parser', 'pg_ts_template', 'pg_extension', 'pg_policy'))
|
||||
UNION
|
||||
SELECT DISTINCT dep.deptype, dep.refclassid, dep.refobjid, cl.relkind, ad.adbin, ad.adsrc,
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind END
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind::text || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind::text END
|
||||
ELSE '' END AS type,
|
||||
NULL AS ownertable,
|
||||
CASE WHEN cl.relname IS NOT NULL OR att.attname IS NOT NULL THEN cl.relname || COALESCE('.' || att.attname, '')
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
SELECT DISTINCT dep.deptype, dep.classid, cl.relkind, ad.adbin, ad.adsrc,
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.objsubid::text, '') ELSE cl.relkind END
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind::text || COALESCE(dep.objsubid::text, '') ELSE cl.relkind::text END
|
||||
WHEN tg.oid IS NOT NULL THEN 'Tr'::text
|
||||
WHEN ty.oid IS NOT NULL THEN CASE WHEN ty.typtype = 'd' THEN 'd'::text ELSE 'Ty'::text END
|
||||
WHEN ns.oid IS NOT NULL THEN 'n'::text
|
||||
@@ -7,7 +7,7 @@ SELECT DISTINCT dep.deptype, dep.classid, cl.relkind, ad.adbin, ad.adsrc,
|
||||
WHEN pr.oid IS NOT NULL THEN 'Pf'::text
|
||||
WHEN la.oid IS NOT NULL THEN 'l'::text
|
||||
WHEN rw.oid IS NOT NULL THEN 'Rl'::text
|
||||
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype END
|
||||
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype::text END
|
||||
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
||||
WHEN fs.oid IS NOT NULL THEN 'Fs'::text
|
||||
WHEN fdw.oid IS NOT NULL THEN 'Fw'::text
|
||||
|
||||
+3
-3
@@ -1,5 +1,5 @@
|
||||
SELECT DISTINCT dep.deptype, dep.refclassid, dep.refobjid, cl.relkind, ad.adbin, ad.adsrc,
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind END
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind::text || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind::text END
|
||||
WHEN tg.oid IS NOT NULL THEN 'Tr'::text
|
||||
WHEN ty.oid IS NOT NULL THEN CASE WHEN ty.typtype = 'd' THEN 'd'::text ELSE 'Ty'::text END
|
||||
WHEN ns.oid IS NOT NULL THEN CASE WHEN ns.nspparent != 0 THEN 'Pa'::text ELSE 'n'::text END
|
||||
@@ -7,7 +7,7 @@ SELECT DISTINCT dep.deptype, dep.refclassid, dep.refobjid, cl.relkind, ad.adbin,
|
||||
WHEN pr.oid IS NOT NULL THEN CASE WHEN pr.prokind = 'p' THEN 'Pp'::text ELSE 'Pf'::text END
|
||||
WHEN la.oid IS NOT NULL THEN 'l'::text
|
||||
WHEN rw.oid IS NOT NULL THEN 'Rl'::text
|
||||
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype END
|
||||
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype::text END
|
||||
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
||||
WHEN fs.oid IS NOT NULL THEN 'Fs'::text
|
||||
WHEN fdw.oid IS NOT NULL THEN 'Fw'::text
|
||||
@@ -78,7 +78,7 @@ refclassid IN ( SELECT oid FROM pg_catalog.pg_class WHERE relname IN
|
||||
'pg_synonym', 'pg_policy'))
|
||||
UNION
|
||||
SELECT DISTINCT dep.deptype, dep.refclassid, dep.refobjid, cl.relkind, ad.adbin, ad.adsrc,
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind END
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind::text || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind::text END
|
||||
ELSE '' END AS type,
|
||||
NULL AS ownertable,
|
||||
CASE WHEN cl.relname IS NOT NULL OR att.attname IS NOT NULL THEN cl.relname || COALESCE('.' || att.attname, '')
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
SELECT DISTINCT dep.deptype, dep.classid, cl.relkind, ad.adbin, ad.adsrc,
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.objsubid::text, '') ELSE cl.relkind END
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind::text || COALESCE(dep.objsubid::text, '') ELSE cl.relkind::text END
|
||||
WHEN tg.oid IS NOT NULL THEN 'Tr'::text
|
||||
WHEN ty.oid IS NOT NULL THEN CASE WHEN ty.typtype = 'd' THEN 'd'::text ELSE 'Ty'::text END
|
||||
WHEN ns.oid IS NOT NULL THEN CASE WHEN ns.nspparent != 0 THEN 'Pa'::text ELSE 'n'::text END
|
||||
@@ -7,7 +7,7 @@ SELECT DISTINCT dep.deptype, dep.classid, cl.relkind, ad.adbin, ad.adsrc,
|
||||
WHEN pr.oid IS NOT NULL THEN CASE WHEN pr.prokind = 'p' THEN 'Pp'::text ELSE 'Pf'::text END
|
||||
WHEN la.oid IS NOT NULL THEN 'l'::text
|
||||
WHEN rw.oid IS NOT NULL THEN 'Rl'::text
|
||||
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype END
|
||||
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype::text END
|
||||
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
||||
WHEN fs.oid IS NOT NULL THEN 'Fs'::text
|
||||
WHEN fdw.oid IS NOT NULL THEN 'Fw'::text
|
||||
|
||||
+3
-3
@@ -1,5 +1,5 @@
|
||||
SELECT DISTINCT dep.deptype, dep.refclassid, dep.refobjid, cl.relkind, ad.adbin, pg_catalog.pg_get_expr(ad.adbin, ad.adrelid) as adsrc,
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind END
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind::text || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind::text END
|
||||
WHEN tg.oid IS NOT NULL THEN CASE WHEN tg.tgpackageoid != 0 THEN 'Tc'::text ELSE 'Tr'::text END
|
||||
WHEN ty.oid IS NOT NULL THEN CASE WHEN ty.typtype = 'd' THEN 'd'::text ELSE 'Ty'::text END
|
||||
WHEN ns.oid IS NOT NULL THEN CASE WHEN ns.nspparent != 0 AND ns.nspcompoundtrigger = false THEN 'Pa'::text ELSE 'n'::text END
|
||||
@@ -7,7 +7,7 @@ SELECT DISTINCT dep.deptype, dep.refclassid, dep.refobjid, cl.relkind, ad.adbin,
|
||||
WHEN pr.oid IS NOT NULL THEN CASE WHEN pr.prokind = 'p' THEN 'Pp'::text ELSE 'Pf'::text END
|
||||
WHEN la.oid IS NOT NULL THEN 'l'::text
|
||||
WHEN rw.oid IS NOT NULL THEN 'Rl'::text
|
||||
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype END
|
||||
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype::text END
|
||||
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
||||
WHEN fs.oid IS NOT NULL THEN 'Fs'::text
|
||||
WHEN fdw.oid IS NOT NULL THEN 'Fw'::text
|
||||
@@ -78,7 +78,7 @@ refclassid IN ( SELECT oid FROM pg_catalog.pg_class WHERE relname IN
|
||||
'pg_synonym', 'pg_policy'))
|
||||
UNION
|
||||
SELECT DISTINCT dep.deptype, dep.refclassid, dep.refobjid, cl.relkind, ad.adbin, pg_catalog.pg_get_expr(ad.adbin, ad.adrelid) as adsrc,
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind END
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind::text || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind::text END
|
||||
ELSE '' END AS type,
|
||||
NULL AS ownertable,
|
||||
CASE WHEN cl.relname IS NOT NULL OR att.attname IS NOT NULL THEN cl.relname || COALESCE('.' || att.attname, '')
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
SELECT DISTINCT dep.deptype, dep.classid, cl.relkind, ad.adbin, pg_get_expr(ad.adbin, ad.adrelid) as adsrc,
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.objsubid::text, '') ELSE cl.relkind END
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind::text || COALESCE(dep.objsubid::text, '') ELSE cl.relkind::text END
|
||||
WHEN tg.oid IS NOT NULL THEN CASE WHEN tg.tgpackageoid != 0 THEN 'Tc'::text ELSE 'Tr'::text END
|
||||
WHEN ty.oid IS NOT NULL THEN CASE WHEN ty.typtype = 'd' THEN 'd'::text ELSE 'Ty'::text END
|
||||
WHEN ns.oid IS NOT NULL THEN CASE WHEN ns.nspparent != 0 AND ns.nspcompoundtrigger = false THEN 'Pa'::text ELSE 'n'::text END
|
||||
@@ -7,7 +7,7 @@ SELECT DISTINCT dep.deptype, dep.classid, cl.relkind, ad.adbin, pg_get_expr(ad.a
|
||||
WHEN pr.oid IS NOT NULL THEN CASE WHEN pr.prokind = 'p' THEN 'Pp'::text ELSE 'Pf'::text END
|
||||
WHEN la.oid IS NOT NULL THEN 'l'::text
|
||||
WHEN rw.oid IS NOT NULL THEN 'Rl'::text
|
||||
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype END
|
||||
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype::text END
|
||||
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
||||
WHEN fs.oid IS NOT NULL THEN 'Fs'::text
|
||||
WHEN fdw.oid IS NOT NULL THEN 'Fw'::text
|
||||
|
||||
+3
-3
@@ -1,5 +1,5 @@
|
||||
SELECT DISTINCT dep.deptype, dep.refclassid, dep.refobjid, cl.relkind, ad.adbin, ad.adsrc,
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind END
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind::text || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind::text END
|
||||
WHEN tg.oid IS NOT NULL THEN 'Tr'::text
|
||||
WHEN ty.oid IS NOT NULL THEN CASE WHEN ty.typtype = 'd' THEN 'd'::text ELSE 'Ty'::text END
|
||||
WHEN ns.oid IS NOT NULL THEN CASE WHEN ns.nspparent != 0 THEN 'Pa'::text ELSE 'n'::text END
|
||||
@@ -7,7 +7,7 @@ SELECT DISTINCT dep.deptype, dep.refclassid, dep.refobjid, cl.relkind, ad.adbin,
|
||||
WHEN pr.oid IS NOT NULL THEN 'Pf'::text
|
||||
WHEN la.oid IS NOT NULL THEN 'l'::text
|
||||
WHEN rw.oid IS NOT NULL THEN 'Rl'::text
|
||||
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype END
|
||||
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype::text END
|
||||
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
||||
WHEN fs.oid IS NOT NULL THEN 'Fs'::text
|
||||
WHEN fdw.oid IS NOT NULL THEN 'Fw'::text
|
||||
@@ -74,7 +74,7 @@ refclassid IN ( SELECT oid FROM pg_catalog.pg_class WHERE relname IN
|
||||
'pg_synonym'))
|
||||
UNION
|
||||
SELECT DISTINCT dep.deptype, dep.refclassid, dep.refobjid, cl.relkind, ad.adbin, ad.adsrc,
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind END
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind::text || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind::text END
|
||||
ELSE '' END AS type,
|
||||
NULL AS ownertable,
|
||||
CASE WHEN cl.relname IS NOT NULL OR att.attname IS NOT NULL THEN cl.relname || COALESCE('.' || att.attname, '')
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
SELECT DISTINCT dep.deptype, dep.classid, cl.relkind, ad.adbin, ad.adsrc,
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.objsubid::text, '') ELSE cl.relkind END
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind::text || COALESCE(dep.objsubid::text, '') ELSE cl.relkind::text END
|
||||
WHEN tg.oid IS NOT NULL THEN 'Tr'::text
|
||||
WHEN ty.oid IS NOT NULL THEN CASE WHEN ty.typtype = 'd' THEN 'd'::text ELSE 'Ty'::text END
|
||||
WHEN ns.oid IS NOT NULL THEN CASE WHEN ns.nspparent != 0 THEN 'Pa'::text ELSE 'n'::text END
|
||||
@@ -7,7 +7,7 @@ SELECT DISTINCT dep.deptype, dep.classid, cl.relkind, ad.adbin, ad.adsrc,
|
||||
WHEN pr.oid IS NOT NULL THEN 'Pf'::text
|
||||
WHEN la.oid IS NOT NULL THEN 'l'::text
|
||||
WHEN rw.oid IS NOT NULL THEN 'Rl'::text
|
||||
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype END
|
||||
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype::text END
|
||||
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
||||
WHEN fs.oid IS NOT NULL THEN 'Fs'::text
|
||||
WHEN fdw.oid IS NOT NULL THEN 'Fw'::text
|
||||
|
||||
+3
-3
@@ -1,5 +1,5 @@
|
||||
SELECT DISTINCT dep.deptype, dep.refclassid, dep.refobjid, cl.relkind, ad.adbin, ad.adsrc,
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind END
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind::text || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind::text END
|
||||
WHEN tg.oid IS NOT NULL THEN 'Tr'::text
|
||||
WHEN ty.oid IS NOT NULL THEN CASE WHEN ty.typtype = 'd' THEN 'd'::text ELSE 'Ty'::text END
|
||||
WHEN ns.oid IS NOT NULL THEN CASE WHEN ns.nspparent != 0 THEN 'Pa'::text ELSE 'n'::text END
|
||||
@@ -7,7 +7,7 @@ SELECT DISTINCT dep.deptype, dep.refclassid, dep.refobjid, cl.relkind, ad.adbin,
|
||||
WHEN pr.oid IS NOT NULL THEN 'Pf'::text
|
||||
WHEN la.oid IS NOT NULL THEN 'l'::text
|
||||
WHEN rw.oid IS NOT NULL THEN 'Rl'::text
|
||||
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype END
|
||||
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype::text END
|
||||
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
||||
WHEN fs.oid IS NOT NULL THEN 'Fs'::text
|
||||
WHEN fdw.oid IS NOT NULL THEN 'Fw'::text
|
||||
@@ -76,7 +76,7 @@ refclassid IN ( SELECT oid FROM pg_catalog.pg_class WHERE relname IN
|
||||
'pg_synonym'))
|
||||
UNION
|
||||
SELECT DISTINCT dep.deptype, dep.refclassid, dep.refobjid, cl.relkind, ad.adbin, ad.adsrc,
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind END
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind::text || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind::text END
|
||||
ELSE '' END AS type,
|
||||
NULL AS ownertable,
|
||||
CASE WHEN cl.relname IS NOT NULL OR att.attname IS NOT NULL THEN cl.relname || COALESCE('.' || att.attname, '')
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
SELECT DISTINCT dep.deptype, dep.classid, cl.relkind, ad.adbin, ad.adsrc,
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.objsubid::text, '') ELSE cl.relkind END
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind::text || COALESCE(dep.objsubid::text, '') ELSE cl.relkind::text END
|
||||
WHEN tg.oid IS NOT NULL THEN 'Tr'::text
|
||||
WHEN ty.oid IS NOT NULL THEN CASE WHEN ty.typtype = 'd' THEN 'd'::text ELSE 'Ty'::text END
|
||||
WHEN ns.oid IS NOT NULL THEN CASE WHEN ns.nspparent != 0 THEN 'Pa'::text ELSE 'n'::text END
|
||||
@@ -7,7 +7,7 @@ SELECT DISTINCT dep.deptype, dep.classid, cl.relkind, ad.adbin, ad.adsrc,
|
||||
WHEN pr.oid IS NOT NULL THEN 'Pf'::text
|
||||
WHEN la.oid IS NOT NULL THEN 'l'::text
|
||||
WHEN rw.oid IS NOT NULL THEN 'Rl'::text
|
||||
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype END
|
||||
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype::text END
|
||||
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
||||
WHEN fs.oid IS NOT NULL THEN 'Fs'::text
|
||||
WHEN fdw.oid IS NOT NULL THEN 'Fw'::text
|
||||
|
||||
+3
-3
@@ -1,5 +1,5 @@
|
||||
SELECT DISTINCT dep.deptype, dep.refclassid, dep.refobjid, cl.relkind, ad.adbin, ad.adsrc,
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind END
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind::text || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind::text END
|
||||
WHEN tg.oid IS NOT NULL THEN 'Tr'::text
|
||||
WHEN ty.oid IS NOT NULL THEN CASE WHEN ty.typtype = 'd' THEN 'd'::text ELSE 'Ty'::text END
|
||||
WHEN ns.oid IS NOT NULL THEN CASE WHEN ns.nspparent != 0 THEN 'Pa'::text ELSE 'n'::text END
|
||||
@@ -7,7 +7,7 @@ SELECT DISTINCT dep.deptype, dep.refclassid, dep.refobjid, cl.relkind, ad.adbin,
|
||||
WHEN pr.oid IS NOT NULL THEN 'Pf'::text
|
||||
WHEN la.oid IS NOT NULL THEN 'l'::text
|
||||
WHEN rw.oid IS NOT NULL THEN 'Rl'::text
|
||||
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype END
|
||||
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype::text END
|
||||
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
||||
WHEN fs.oid IS NOT NULL THEN 'Fs'::text
|
||||
WHEN fdw.oid IS NOT NULL THEN 'Fw'::text
|
||||
@@ -78,7 +78,7 @@ refclassid IN ( SELECT oid FROM pg_catalog.pg_class WHERE relname IN
|
||||
'pg_synonym', 'pg_policy'))
|
||||
UNION
|
||||
SELECT DISTINCT dep.deptype, dep.refclassid, dep.refobjid, cl.relkind, ad.adbin, ad.adsrc,
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind END
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind::text || COALESCE(dep.refobjsubid::text, '') ELSE cl.relkind::text END
|
||||
ELSE '' END AS type,
|
||||
NULL AS ownertable,
|
||||
CASE WHEN cl.relname IS NOT NULL OR att.attname IS NOT NULL THEN cl.relname || COALESCE('.' || att.attname, '')
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
SELECT DISTINCT dep.deptype, dep.classid, cl.relkind, ad.adbin, ad.adsrc,
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind || COALESCE(dep.objsubid::text, '') ELSE cl.relkind END
|
||||
CASE WHEN cl.relkind IS NOT NULL THEN CASE WHEN cl.relkind = 'r' THEN cl.relkind::text || COALESCE(dep.objsubid::text, '') ELSE cl.relkind::text END
|
||||
WHEN tg.oid IS NOT NULL THEN 'Tr'::text
|
||||
WHEN ty.oid IS NOT NULL THEN CASE WHEN ty.typtype = 'd' THEN 'd'::text ELSE 'Ty'::text END
|
||||
WHEN ns.oid IS NOT NULL THEN CASE WHEN ns.nspparent != 0 THEN 'Pa'::text ELSE 'n'::text END
|
||||
@@ -7,7 +7,7 @@ SELECT DISTINCT dep.deptype, dep.classid, cl.relkind, ad.adbin, ad.adsrc,
|
||||
WHEN pr.oid IS NOT NULL THEN 'Pf'::text
|
||||
WHEN la.oid IS NOT NULL THEN 'l'::text
|
||||
WHEN rw.oid IS NOT NULL THEN 'Rl'::text
|
||||
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype END
|
||||
WHEN co.oid IS NOT NULL THEN CASE WHEN co.contypid > 0 THEN 'Cd' ELSE 'C'::text || contype::text END
|
||||
WHEN ad.oid IS NOT NULL THEN 'A'::text
|
||||
WHEN fs.oid IS NOT NULL THEN 'Fs'::text
|
||||
WHEN fdw.oid IS NOT NULL THEN 'Fw'::text
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import React, { useState } from 'react';
|
||||
import React, { useState, useRef, useEffect } from 'react';
|
||||
import gettext from 'sources/gettext';
|
||||
import { Box } from '@material-ui/core';
|
||||
import { DefaultButton, PrimaryButton } from '../../../static/js/components/Buttons';
|
||||
@@ -8,8 +8,11 @@ import PropTypes from 'prop-types';
|
||||
import { useModalStyles } from '../../../static/js/helpers/ModalProvider';
|
||||
import { FormFooterMessage, InputCheckbox, InputText, MESSAGE_TYPE } from '../../../static/js/components/FormComponents';
|
||||
|
||||
export default function ConnectServerContent({closeModal, data, onOK}) {
|
||||
export default function ConnectServerContent({closeModal, data, onOK, setHeight}) {
|
||||
const classes = useModalStyles();
|
||||
const containerRef = useRef();
|
||||
const firstEleRef = useRef();
|
||||
const okBtnRef = useRef();
|
||||
const [formData, setFormData] = useState({
|
||||
tunnel_password: '',
|
||||
save_tunnel_password: false,
|
||||
@@ -25,12 +28,29 @@ export default function ConnectServerContent({closeModal, data, onOK}) {
|
||||
setFormData((prev)=>({...prev, [id]: val}));
|
||||
};
|
||||
|
||||
const onKeyDown = (e) => {
|
||||
// If enter key is pressed then click on OK button
|
||||
if (e.key === 'Enter') {
|
||||
okBtnRef.current?.click();
|
||||
}
|
||||
};
|
||||
|
||||
useEffect(()=>{
|
||||
setTimeout(()=>{
|
||||
firstEleRef.current && firstEleRef.current.focus();
|
||||
}, 275);
|
||||
}, []);
|
||||
|
||||
useEffect(()=>{
|
||||
setHeight?.(containerRef.current?.offsetHeight);
|
||||
}, [containerRef.current]);
|
||||
|
||||
if(!data) {
|
||||
return <>No data</>;
|
||||
}
|
||||
|
||||
return (
|
||||
<Box display="flex" flexDirection="column" height="100%">
|
||||
<Box display="flex" flexDirection="column" className={classes.container} ref={containerRef}>
|
||||
<Box flexGrow="1" p={2}>
|
||||
{data.prompt_tunnel_password && <>
|
||||
<Box>
|
||||
@@ -42,10 +62,10 @@ export default function ConnectServerContent({closeModal, data, onOK}) {
|
||||
</span>
|
||||
</Box>
|
||||
<Box marginTop='12px'>
|
||||
<InputText type="password" value={formData['tunnel_password']} maxLength={null}
|
||||
onChange={(e)=>onTextChange(e, 'tunnel_password')} autoFocus />
|
||||
<InputText inputRef={firstEleRef} type="password" value={formData['tunnel_password']} maxLength={null}
|
||||
onChange={(e)=>onTextChange(e, 'tunnel_password')} onKeyDown={(e)=>onKeyDown(e)} />
|
||||
</Box>
|
||||
<Box marginTop='12px'>
|
||||
<Box marginTop='12px' marginBottom='12px'>
|
||||
<InputCheckbox controlProps={{label: gettext('Save Password')}} value={formData['save_tunnel_password']}
|
||||
onChange={(e)=>onTextChange(e.target.checked, 'save_tunnel_password')} disabled={!data.allow_save_tunnel_password} />
|
||||
</Box>
|
||||
@@ -60,8 +80,13 @@ export default function ConnectServerContent({closeModal, data, onOK}) {
|
||||
</span>
|
||||
</Box>
|
||||
<Box marginTop='12px'>
|
||||
<InputText type="password" value={formData['password']} maxLength={null}
|
||||
onChange={(e)=>onTextChange(e, 'password')} autoFocus />
|
||||
<InputText inputRef={(ele)=>{
|
||||
if(!data.prompt_tunnel_password) {
|
||||
/* Set only if no tunnel password asked */
|
||||
firstEleRef.current = ele;
|
||||
}
|
||||
}} type="password" value={formData['password']} maxLength={null}
|
||||
onChange={(e)=>onTextChange(e, 'password')} onKeyDown={(e)=>onKeyDown(e)}/>
|
||||
</Box>
|
||||
<Box marginTop='12px'>
|
||||
<InputCheckbox controlProps={{label: gettext('Save Password')}} value={formData['save_password']}
|
||||
@@ -76,7 +101,7 @@ export default function ConnectServerContent({closeModal, data, onOK}) {
|
||||
<DefaultButton data-test="close" startIcon={<CloseIcon />} onClick={()=>{
|
||||
closeModal();
|
||||
}} >{gettext('Cancel')}</DefaultButton>
|
||||
<PrimaryButton data-test="save" className={classes.margin} startIcon={<CheckRoundedIcon />} onClick={()=>{
|
||||
<PrimaryButton ref={okBtnRef} data-test="save" className={classes.margin} startIcon={<CheckRoundedIcon />} onClick={()=>{
|
||||
let postFormData = new FormData();
|
||||
if(data.prompt_tunnel_password) {
|
||||
postFormData.append('tunnel_password', formData.tunnel_password);
|
||||
@@ -99,5 +124,6 @@ export default function ConnectServerContent({closeModal, data, onOK}) {
|
||||
ConnectServerContent.propTypes = {
|
||||
closeModal: PropTypes.func,
|
||||
data: PropTypes.object,
|
||||
onOK: PropTypes.func
|
||||
onOK: PropTypes.func,
|
||||
setHeight: PropTypes.func
|
||||
};
|
||||
@@ -498,9 +498,10 @@ define('pgadmin.browser.node', [
|
||||
|
||||
return null;
|
||||
},
|
||||
addUtilityPanel: function(width, height) {
|
||||
addUtilityPanel: function(width, height, docker) {
|
||||
var body = window.document.body,
|
||||
el = document.createElement('div');
|
||||
el = document.createElement('div'),
|
||||
dockerObject = docker || pgBrowser.docker;
|
||||
|
||||
body.insertBefore(el, body.firstChild);
|
||||
|
||||
@@ -513,7 +514,7 @@ define('pgadmin.browser.node', [
|
||||
new_height = height;
|
||||
}
|
||||
|
||||
var new_panel = pgBrowser.docker.addPanel(
|
||||
var new_panel = dockerObject.addPanel(
|
||||
'utility_props', window.wcDocker.DOCK.FLOAT, undefined, {
|
||||
w: new_width,
|
||||
h: new_height,
|
||||
@@ -548,8 +549,8 @@ define('pgadmin.browser.node', [
|
||||
}
|
||||
},
|
||||
|
||||
registerUtilityPanel: function() {
|
||||
var w = pgBrowser.docker,
|
||||
registerUtilityPanel: function(docker) {
|
||||
var w = docker || pgBrowser.docker,
|
||||
p = w.findPanels('utility_props');
|
||||
|
||||
if (p && p.length == 1)
|
||||
@@ -572,7 +573,7 @@ define('pgadmin.browser.node', [
|
||||
},
|
||||
events: events,
|
||||
});
|
||||
p.load(pgBrowser.docker);
|
||||
p.load(w);
|
||||
},
|
||||
register_node_panel: function() {
|
||||
var w = pgBrowser.docker,
|
||||
|
||||
@@ -0,0 +1,132 @@
|
||||
/////////////////////////////////////////////////////////////
|
||||
//
|
||||
// pgAdmin 4 - PostgreSQL Tools
|
||||
//
|
||||
// Copyright (C) 2013 - 2022, The pgAdmin Development Team
|
||||
// This software is released under the PostgreSQL Licence
|
||||
//
|
||||
//////////////////////////////////////////////////////////////
|
||||
|
||||
import React from 'react';
|
||||
import ReactDOM from 'react-dom';
|
||||
import pgAdmin from 'sources/pgadmin';
|
||||
import ConnectServerContent from './ConnectServerContent';
|
||||
import Theme from 'sources/Theme';
|
||||
import url_for from 'sources/url_for';
|
||||
import getApiInstance from '../../../static/js/api_instance';
|
||||
|
||||
function setNewSize(panel, width, height) {
|
||||
// Add height of the header
|
||||
let newHeight = height + 31;
|
||||
// Set min and max size of the panel
|
||||
panel.minSize(width, newHeight);
|
||||
panel.maxSize(width, newHeight);
|
||||
panel.maximisable(false);
|
||||
/* No other way to update size, below is the only way */
|
||||
panel._parent._size.x = width;
|
||||
panel._parent._size.y = newHeight;
|
||||
panel._parent.__update();
|
||||
}
|
||||
|
||||
// This functions is used to show the connect server password dialog.
|
||||
export function showServerPassword() {
|
||||
var pgBrowser = pgAdmin.Browser,
|
||||
title = arguments[0],
|
||||
formJson = arguments[1],
|
||||
nodeObj = arguments[2],
|
||||
nodeData = arguments[3],
|
||||
treeNodeInfo = arguments[4],
|
||||
itemNodeData = arguments[5],
|
||||
status = arguments[6],
|
||||
onSuccess = arguments[7],
|
||||
onFailure = arguments[8];
|
||||
|
||||
// Register dialog panel
|
||||
pgBrowser.Node.registerUtilityPanel();
|
||||
var panel = pgBrowser.Node.addUtilityPanel(pgBrowser.stdW.md),
|
||||
j = panel.$container.find('.obj_properties').first();
|
||||
panel.title(title);
|
||||
|
||||
ReactDOM.render(
|
||||
<Theme>
|
||||
<ConnectServerContent
|
||||
setHeight={(containerHeight)=>{
|
||||
setNewSize(panel, pgBrowser.stdW.md, containerHeight);
|
||||
}}
|
||||
closeModal={()=>{
|
||||
panel.close();
|
||||
}}
|
||||
data={formJson}
|
||||
onOK={(formData)=>{
|
||||
const api = getApiInstance();
|
||||
var _url = nodeObj.generate_url(itemNodeData, 'connect', nodeData, true);
|
||||
if (!status) {
|
||||
treeNodeInfo.setLeaf(itemNodeData);
|
||||
treeNodeInfo.removeIcon(itemNodeData);
|
||||
treeNodeInfo.addIcon(itemNodeData, {icon: 'icon-server-connecting'});
|
||||
}
|
||||
|
||||
api.post(_url, formData)
|
||||
.then(res=>{
|
||||
panel.close();
|
||||
return onSuccess(
|
||||
res.data, nodeObj, nodeData, treeNodeInfo, itemNodeData, status
|
||||
);
|
||||
})
|
||||
.catch((err)=>{
|
||||
return onFailure(
|
||||
err.response.request, status, err, nodeObj, nodeData, treeNodeInfo,
|
||||
itemNodeData, status
|
||||
);
|
||||
});
|
||||
}}
|
||||
/>
|
||||
</Theme>, j[0]);
|
||||
}
|
||||
|
||||
// This functions is used to show the connect server password dialog when
|
||||
// launch from Schema Diff tool.
|
||||
export function showSchemaDiffServerPassword() {
|
||||
var pgBrowser = pgAdmin.Browser,
|
||||
docker = arguments[0],
|
||||
title = arguments[1],
|
||||
formJson = arguments[2],
|
||||
serverID = arguments[3],
|
||||
successCallback = arguments[4],
|
||||
onSuccess = arguments[5],
|
||||
onFailure = arguments[6];
|
||||
|
||||
// Register dialog panel
|
||||
pgBrowser.Node.registerUtilityPanel(docker);
|
||||
var panel = pgBrowser.Node.addUtilityPanel(pgBrowser.stdW.md, undefined, docker),
|
||||
j = panel.$container.find('.obj_properties').first();
|
||||
panel.title(title);
|
||||
|
||||
ReactDOM.render(
|
||||
<Theme>
|
||||
<ConnectServerContent
|
||||
setHeight={(containerHeight)=>{
|
||||
setNewSize(panel, pgBrowser.stdW.md, containerHeight);
|
||||
}}
|
||||
closeModal={()=>{
|
||||
panel.close();
|
||||
}}
|
||||
data={formJson}
|
||||
onOK={(formData)=>{
|
||||
const api = getApiInstance();
|
||||
var _url = url_for('schema_diff.connect_server', {'sid': serverID});
|
||||
|
||||
api.post(_url, formData)
|
||||
.then(res=>{
|
||||
panel.close();
|
||||
return onSuccess(res.data, successCallback);
|
||||
})
|
||||
.catch((err)=>{
|
||||
return onFailure(
|
||||
err.response.request, status, err, serverID, successCallback
|
||||
);
|
||||
});
|
||||
}}
|
||||
/>
|
||||
</Theme>, j[0]);
|
||||
}
|
||||
@@ -21,6 +21,7 @@ from pgadmin.utils.ajax import make_json_response, precondition_required,\
|
||||
internal_server_error
|
||||
from pgadmin.utils.exception import ConnectionLost, SSHTunnelConnectionLost,\
|
||||
CryptKeyMissing
|
||||
from pgadmin.utils.constants import DATABASE_LAST_SYSTEM_OID
|
||||
|
||||
|
||||
def underscore_escape(text):
|
||||
@@ -391,6 +392,7 @@ class PGChildNodeView(NodeView):
|
||||
_GET_SUBTYPES_SQL = 'get_subtypes.sql'
|
||||
_GET_EXTERNAL_FUNCTIONS_SQL = 'get_external_functions.sql'
|
||||
_GET_TABLE_FOR_PUBLICATION = 'get_tables.sql'
|
||||
_DATABASE_LAST_SYSTEM_OID = DATABASE_LAST_SYSTEM_OID
|
||||
|
||||
def get_children_nodes(self, manager, **kwargs):
|
||||
"""
|
||||
|
||||
Loaded 100 of 177 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user