prostgles-server 4.2.157 → 4.2.159

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. package/dist/Auth/AuthHandler.js +2 -2
  2. package/dist/Auth/AuthHandler.js.map +1 -1
  3. package/dist/Auth/AuthTypes.d.ts +4 -8
  4. package/dist/Auth/AuthTypes.d.ts.map +1 -1
  5. package/dist/Auth/setAuthProviders.d.ts +1 -1
  6. package/dist/Auth/setAuthProviders.d.ts.map +1 -1
  7. package/dist/Auth/setAuthProviders.js +6 -7
  8. package/dist/Auth/setAuthProviders.js.map +1 -1
  9. package/dist/Auth/setEmailProvider.d.ts +1 -1
  10. package/dist/Auth/setEmailProvider.d.ts.map +1 -1
  11. package/dist/Auth/setEmailProvider.js +22 -2
  12. package/dist/Auth/setEmailProvider.js.map +1 -1
  13. package/dist/Auth/setupAuthRoutes.js +1 -1
  14. package/dist/Auth/setupAuthRoutes.js.map +1 -1
  15. package/dist/Prostgles.d.ts +1 -0
  16. package/dist/Prostgles.d.ts.map +1 -1
  17. package/dist/Prostgles.js +6 -0
  18. package/dist/Prostgles.js.map +1 -1
  19. package/dist/initProstgles.d.ts.map +1 -1
  20. package/dist/initProstgles.js +2 -6
  21. package/dist/initProstgles.js.map +1 -1
  22. package/package.json +1 -1
  23. package/lib/Auth/AuthHandler.ts +0 -436
  24. package/lib/Auth/AuthTypes.ts +0 -285
  25. package/lib/Auth/getSafeReturnURL.ts +0 -35
  26. package/lib/Auth/sendEmail.ts +0 -83
  27. package/lib/Auth/setAuthProviders.ts +0 -129
  28. package/lib/Auth/setEmailProvider.ts +0 -63
  29. package/lib/Auth/setupAuthRoutes.ts +0 -161
  30. package/lib/DBEventsManager.ts +0 -178
  31. package/lib/DBSchemaBuilder.ts +0 -225
  32. package/lib/DboBuilder/DboBuilder.ts +0 -319
  33. package/lib/DboBuilder/DboBuilderTypes.ts +0 -361
  34. package/lib/DboBuilder/QueryBuilder/Functions.ts +0 -1153
  35. package/lib/DboBuilder/QueryBuilder/QueryBuilder.ts +0 -288
  36. package/lib/DboBuilder/QueryBuilder/getJoinQuery.ts +0 -263
  37. package/lib/DboBuilder/QueryBuilder/getNewQuery.ts +0 -271
  38. package/lib/DboBuilder/QueryBuilder/getSelectQuery.ts +0 -136
  39. package/lib/DboBuilder/QueryBuilder/prepareHaving.ts +0 -22
  40. package/lib/DboBuilder/QueryStreamer.ts +0 -250
  41. package/lib/DboBuilder/TableHandler/DataValidator.ts +0 -428
  42. package/lib/DboBuilder/TableHandler/TableHandler.ts +0 -205
  43. package/lib/DboBuilder/TableHandler/delete.ts +0 -115
  44. package/lib/DboBuilder/TableHandler/insert.ts +0 -183
  45. package/lib/DboBuilder/TableHandler/insertTest.ts +0 -78
  46. package/lib/DboBuilder/TableHandler/onDeleteFromFileTable.ts +0 -62
  47. package/lib/DboBuilder/TableHandler/runInsertUpdateQuery.ts +0 -134
  48. package/lib/DboBuilder/TableHandler/update.ts +0 -126
  49. package/lib/DboBuilder/TableHandler/updateBatch.ts +0 -49
  50. package/lib/DboBuilder/TableHandler/updateFile.ts +0 -48
  51. package/lib/DboBuilder/TableHandler/upsert.ts +0 -34
  52. package/lib/DboBuilder/ViewHandler/ViewHandler.ts +0 -393
  53. package/lib/DboBuilder/ViewHandler/count.ts +0 -38
  54. package/lib/DboBuilder/ViewHandler/find.ts +0 -153
  55. package/lib/DboBuilder/ViewHandler/getExistsCondition.ts +0 -73
  56. package/lib/DboBuilder/ViewHandler/getExistsFilters.ts +0 -74
  57. package/lib/DboBuilder/ViewHandler/getInfo.ts +0 -32
  58. package/lib/DboBuilder/ViewHandler/getTableJoinQuery.ts +0 -84
  59. package/lib/DboBuilder/ViewHandler/parseComplexFilter.ts +0 -96
  60. package/lib/DboBuilder/ViewHandler/parseFieldFilter.ts +0 -105
  61. package/lib/DboBuilder/ViewHandler/parseJoinPath.ts +0 -208
  62. package/lib/DboBuilder/ViewHandler/prepareSortItems.ts +0 -163
  63. package/lib/DboBuilder/ViewHandler/prepareWhere.ts +0 -90
  64. package/lib/DboBuilder/ViewHandler/size.ts +0 -37
  65. package/lib/DboBuilder/ViewHandler/subscribe.ts +0 -118
  66. package/lib/DboBuilder/ViewHandler/validateViewRules.ts +0 -70
  67. package/lib/DboBuilder/dboBuilderUtils.ts +0 -222
  68. package/lib/DboBuilder/getColumns.ts +0 -114
  69. package/lib/DboBuilder/getCondition.ts +0 -201
  70. package/lib/DboBuilder/getSubscribeRelatedTables.ts +0 -190
  71. package/lib/DboBuilder/getTablesForSchemaPostgresSQL.ts +0 -426
  72. package/lib/DboBuilder/insertNestedRecords.ts +0 -355
  73. package/lib/DboBuilder/parseUpdateRules.ts +0 -187
  74. package/lib/DboBuilder/prepareShortestJoinPaths.ts +0 -186
  75. package/lib/DboBuilder/runSQL.ts +0 -182
  76. package/lib/DboBuilder/runTransaction.ts +0 -50
  77. package/lib/DboBuilder/sqlErrCodeToMsg.ts +0 -254
  78. package/lib/DboBuilder/uploadFile.ts +0 -69
  79. package/lib/Event_Trigger_Tags.ts +0 -118
  80. package/lib/FileManager/FileManager.ts +0 -358
  81. package/lib/FileManager/getValidatedFileType.ts +0 -69
  82. package/lib/FileManager/initFileManager.ts +0 -187
  83. package/lib/FileManager/upload.ts +0 -62
  84. package/lib/FileManager/uploadStream.ts +0 -79
  85. package/lib/Filtering.ts +0 -463
  86. package/lib/JSONBValidation/validate_jsonb_schema_sql.ts +0 -502
  87. package/lib/JSONBValidation/validation.ts +0 -143
  88. package/lib/Logging.ts +0 -127
  89. package/lib/PostgresNotifListenManager.ts +0 -143
  90. package/lib/Prostgles.ts +0 -479
  91. package/lib/ProstglesTypes.ts +0 -196
  92. package/lib/PubSubManager/PubSubManager.ts +0 -609
  93. package/lib/PubSubManager/addSub.ts +0 -138
  94. package/lib/PubSubManager/addSync.ts +0 -141
  95. package/lib/PubSubManager/getCreatePubSubManagerError.ts +0 -72
  96. package/lib/PubSubManager/getPubSubManagerInitQuery.ts +0 -662
  97. package/lib/PubSubManager/initPubSubManager.ts +0 -79
  98. package/lib/PubSubManager/notifListener.ts +0 -173
  99. package/lib/PubSubManager/orphanTriggerCheck.ts +0 -70
  100. package/lib/PubSubManager/pushSubData.ts +0 -55
  101. package/lib/PublishParser/PublishParser.ts +0 -162
  102. package/lib/PublishParser/getFileTableRules.ts +0 -124
  103. package/lib/PublishParser/getSchemaFromPublish.ts +0 -141
  104. package/lib/PublishParser/getTableRulesWithoutFileTable.ts +0 -177
  105. package/lib/PublishParser/publishTypesAndUtils.ts +0 -399
  106. package/lib/RestApi.ts +0 -127
  107. package/lib/SchemaWatch/SchemaWatch.ts +0 -90
  108. package/lib/SchemaWatch/createSchemaWatchEventTrigger.ts +0 -3
  109. package/lib/SchemaWatch/getValidatedWatchSchemaType.ts +0 -45
  110. package/lib/SchemaWatch/getWatchSchemaTagList.ts +0 -27
  111. package/lib/SyncReplication.ts +0 -557
  112. package/lib/TableConfig/TableConfig.ts +0 -468
  113. package/lib/TableConfig/getColumnDefinitionQuery.ts +0 -111
  114. package/lib/TableConfig/getConstraintDefinitionQueries.ts +0 -95
  115. package/lib/TableConfig/getFutureTableSchema.ts +0 -64
  116. package/lib/TableConfig/getPGIndexes.ts +0 -53
  117. package/lib/TableConfig/getTableColumnQueries.ts +0 -129
  118. package/lib/TableConfig/initTableConfig.ts +0 -326
  119. package/lib/index.ts +0 -13
  120. package/lib/initProstgles.ts +0 -322
  121. package/lib/onSocketConnected.ts +0 -102
  122. package/lib/runClientRequest.ts +0 -129
  123. package/lib/shortestPath.ts +0 -122
  124. package/lib/typeTests/DBoGenerated.d.ts +0 -320
  125. package/lib/typeTests/dboTypeCheck.ts +0 -81
  126. package/lib/utils.ts +0 -15
  127. package/tests/client/hooks.spec.ts +0 -205
  128. package/tests/client/index.ts +0 -139
  129. package/tests/client/package-lock.json +0 -637
  130. package/tests/client/package.json +0 -26
  131. package/tests/client/renderReactHook.ts +0 -177
  132. package/tests/client/tsconfig.json +0 -15
  133. package/tests/client/useProstgles.spec.ts +0 -120
  134. package/tests/clientFileTests.spec.ts +0 -102
  135. package/tests/clientOnlyQueries.spec.ts +0 -667
  136. package/tests/clientRestApi.spec.ts +0 -82
  137. package/tests/config_test/DBoGenerated.d.ts +0 -407
  138. package/tests/config_test/index.html +0 -109
  139. package/tests/config_test/index.js +0 -86
  140. package/tests/config_test/index.js.map +0 -1
  141. package/tests/config_test/index.ts +0 -91
  142. package/tests/config_test/init.sql +0 -48
  143. package/tests/config_test/package.json +0 -29
  144. package/tests/config_test/tsconfig.json +0 -23
  145. package/tests/config_testDBoGenerated.d.ts +0 -407
  146. package/tests/isomorphicQueries.spec.ts +0 -1493
  147. package/tests/server/DBoGenerated.d.ts +0 -537
  148. package/tests/server/index.html +0 -73
  149. package/tests/server/index.ts +0 -289
  150. package/tests/server/init.sql +0 -224
  151. package/tests/server/package-lock.json +0 -2164
  152. package/tests/server/package.json +0 -25
  153. package/tests/server/publishTypeCheck.ts +0 -136
  154. package/tests/server/server.ts +0 -35
  155. package/tests/server/testPublish.ts +0 -147
  156. package/tests/server/testTableConfig.ts +0 -156
  157. package/tests/server/tsconfig.json +0 -22
  158. package/tests/serverOnlyQueries.spec.ts +0 -32
  159. package/tests/test.sh +0 -20
@@ -1,289 +0,0 @@
1
-
2
- import path from 'path';
3
- import express from 'express';
4
- import prostgles from "prostgles-server";
5
- const app = express();
6
- const http = require('http').createServer(app);
7
- import { testPublishTypes } from "./publishTypeCheck";
8
- import { testPublish } from "./testPublish";
9
- import { testTableConfig } from "./testTableConfig";
10
-
11
- testPublishTypes();
12
-
13
- const isClientTest = (process.env.TEST_TYPE === "client");
14
- const io = !isClientTest? undefined : require("socket.io")(http, { path: "/teztz/s" });
15
- const ioWatchSchema = !isClientTest? undefined : require("socket.io")(http, { path: "/teztz/sWatchSchema" });
16
-
17
- http.listen(3001);
18
-
19
- import { isomorphicQueries } from "../isomorphicQueries.spec";
20
- import { serverOnlyQueries } from "../serverOnlyQueries.spec";
21
-
22
- import { DBSchemaGenerated } from "./DBoGenerated";
23
-
24
- import type { DBOFullyTyped } from "prostgles-server/dist/DBSchemaBuilder";
25
- import { spawn } from "child_process";
26
- export type { DBHandlerServer } from "prostgles-server/dist/Prostgles";
27
-
28
- let logs = [];
29
-
30
- export const log = (msg: string, extra?: any, trace?: boolean) => {
31
- const msgs = msg.includes("show-logs")? logs : ["(server): " + msg, extra].filter(v => v);
32
- if(trace){
33
- console.trace(...msgs);
34
- } else {
35
- console.log(...msgs);
36
- }
37
- }
38
- const stopTest = (err?) => {
39
- log("Stopping server ...")
40
- if(err) {
41
- console.trace(err);
42
- }
43
- process.exit(err? 1 : 0);
44
- }
45
-
46
- const sessions: { id: string, user_id: string }[] = [];
47
- type USER = {
48
- id: string;
49
- username: string;
50
- password: string;
51
- type: string;
52
- }
53
- const users: USER[] = [{ id: "1a", username: "john", password: "secret", type: "default" }];
54
-
55
- process.on('unhandledRejection', (reason, p) => {
56
- console.trace('Unhandled Rejection at:', p, 'reason:', reason)
57
- process.exit(1)
58
- });
59
- /**
60
- * To create a superuser in linux:
61
- * sudo su - postgres
62
- * createuser api -s -P
63
- * createdb prostgles_server_tests -O api
64
- */
65
- const dbConnection = {
66
- host: process.env.POSTGRES_HOST || "localhost",
67
- port: +process.env.POSTGRES_PORT || 5432,
68
- database: process.env.POSTGRES_DB || "prostgles_server_tests",
69
- user: process.env.POSTGRES_USER || "api",
70
- password: process.env.POSTGRES_PASSWORD || "api",
71
- };
72
-
73
- function dd(){
74
-
75
- const dbo: DBOFullyTyped<{ tbl: { is_view: true; columns: { col1: { type: number } } }}> = 1 as any
76
- if(!dbo) return;
77
- dbo.tbl.find;
78
- }
79
- (async () => {
80
-
81
-
82
- if(isClientTest && process.env.TEST_NAME === "useProstgles"){
83
- await prostgles<DBSchemaGenerated>({
84
- dbConnection,
85
- io: ioWatchSchema,
86
- transactions: true,
87
- schema: { public: 1, prostgles_test: 1 },
88
- onReady: async ({ dbo, db }) => {},
89
- publish: "*",
90
- watchSchema: true,
91
- });
92
- }
93
-
94
- prostgles<DBSchemaGenerated>({
95
- dbConnection,
96
- sqlFilePath: path.join(__dirname+'/../../init.sql'),
97
- io,
98
- tsGeneratedTypesDir: path.join(__dirname + '/../../'),
99
- transactions: true,
100
- schema: { public: 1, prostgles_test: 1 },
101
- onLog: async ev => {
102
- logs.push(ev);
103
- logs = logs.slice(-10);
104
- if(ev.type === "debug" || ev.type === "connect" || ev.type === "disconnect"){
105
- // log("onLog", ev);
106
- }
107
- },
108
- tableConfig: testTableConfig,
109
- testRulesOnConnect: true,
110
- fileTable: {
111
- referencedTables: {
112
- users_public_info: {
113
- type: "column",
114
- referenceColumns: {
115
- avatar: {
116
- acceptedContent: "*"
117
- }
118
- }
119
- }
120
- },
121
- localConfig: {
122
- localFolderPath: path.join(__dirname+'/media'),
123
- },
124
- expressApp: app,
125
- tableName: "files",
126
- },
127
- // DEBUG_MODE: true,
128
- restApi: {
129
- expressApp: app,
130
- routePrefix: "/api"
131
- },
132
-
133
- onSocketConnect: ({ socket, db }) => {
134
- console.log("onSocketConnect", socket.id)
135
- if(isClientTest){
136
- log("Client connected -> console does not work. use log function. socket.id:", socket.id);
137
- socket.emit("start-test", { server_id: Math.random() });
138
- socket.on("log", async (data, cb) => {
139
- console.log("Client log ", data);
140
- if(typeof data === "string" && data.includes("show-logs")){
141
- log(data);
142
- }
143
- });
144
- socket.on("stop-test", async (err, cb) => {
145
- cb();
146
- console.log("Client test " + (!err? "successful" : "failed"));
147
- stopTest(err);
148
- });
149
- }
150
-
151
- },
152
-
153
- onSocketDisconnect: ({ socket, db }) => {
154
- if(isClientTest){
155
- log("Client disconnected. socket.id:", socket.id);
156
- }
157
-
158
- },
159
-
160
- publishRawSQL: async (params) => {
161
- return true;// Boolean(user && user.type === "admin")
162
- },
163
- auth: {
164
- sidKeyName: "token",
165
- getUser: async (sid) => {
166
- if(sid){
167
- const s = sessions.find(s => s.id === sid);
168
- if(s) {
169
- const user = users.find(u => s && s.user_id === u.id);
170
- if(user) {
171
- return { sid: s.id, user, clientUser: { sid: s.id, uid: user.id, id: user.id, type: user.type } }
172
- }
173
- }
174
- }
175
- return undefined;
176
- },
177
- login: async (loginData) => {
178
- if(loginData.type !== "username") throw "Only username login is supported";
179
- const { username, password } = loginData;
180
- const u = users.find(u => u.username === username && u.password === password);
181
- if(!u) throw "something went wrong: " + JSON.stringify({ username, password });
182
- let s = sessions.find(s => s.user_id === u.id)
183
- if(!s){
184
- s = { id: "SID" + Date.now(), user_id: u.id }
185
- sessions.push(s)
186
- }
187
- log("Logged in!")
188
- return { sid: s.id, expires: Infinity, onExpiration: "redirect" }
189
- },
190
- cacheSession: {
191
- getSession: async (sid) => {
192
- const s = sessions.find(s => s.id === sid);
193
- return s? { sid: s.id, expires: Infinity, onExpiration: "redirect" } : undefined
194
- }
195
- },
196
- expressConfig: {
197
- app,
198
- onGetRequestOK(req, res, params) {
199
- log(req.originalUrl)
200
- res.sendFile(path.join(__dirname, '../../index.html'));
201
- },
202
- registrations: {
203
- websiteUrl: "http://localhost:3001",
204
- OAuthProviders: {
205
- github: {
206
- clientID: "GITHUB_CLIENT_ID",
207
- clientSecret: "GITHUB"
208
- },
209
- },
210
- onProviderLoginStart: async () => ({ ok: true }),
211
- onProviderLoginFail: console.error,
212
- onRegister: console.log
213
- },
214
- }
215
- },
216
- publishMethods: async (params) => {
217
- return {
218
- get: () => 222
219
- }
220
- },
221
- publish: testPublish,
222
- joins: [
223
- {
224
- tables: ["items", "items2"],
225
- on: [{ name: "name" }],
226
- type: "many-many"
227
- },
228
- {
229
- tables: ["items2", "items3"],
230
- on: [{ name: "name" }],
231
- type: "many-many"
232
- },
233
- {
234
- tables: ["items4a", "items"],
235
- on: [{ items_id: "id" }],
236
- type: "many-many"
237
- },
238
- {
239
- tables: ["items4a", "items2"],
240
- on: [{ items2_id: "id" }],
241
- type: "many-many"
242
- },
243
- {
244
- tables: ["items_multi", "items"],
245
- on: [
246
- { items0_id: "id" },
247
- { items1_id: "id" },
248
- { items2_id: "id" },
249
- { items3_id: "id" },
250
- ],
251
- type: "many-many"
252
- }
253
- ],
254
- onReady: async ({ dbo, db }) => {
255
- log("prostgles onReady");
256
-
257
- try {
258
-
259
- if(isClientTest){
260
- const execPath = path.resolve(`${__dirname}/../../../client`);
261
- /** For some reason the below doesn't work anymore */
262
- // const proc = spawn("npm", ["run", "test"], { cwd: execPath, stdio: "inherit" });
263
-
264
- spawn("node", [
265
- // "--inspect-brk",
266
- "dist/client/index.js"
267
- ], { cwd: execPath, stdio: "inherit" });
268
-
269
- log("Waiting for client...");
270
-
271
- } else if(process.env.TEST_TYPE === "server"){
272
-
273
- await serverOnlyQueries(dbo as any);
274
- log("Server-only query tests successful");
275
- await isomorphicQueries(dbo as any, log);
276
- log("Server isomorphic tests successful");
277
-
278
- stopTest()
279
- }
280
- } catch(err) {
281
- console.trace(err)
282
- if(process.env.TEST_TYPE){
283
- stopTest(err ?? "Error")
284
- }
285
- }
286
-
287
- },
288
- });
289
- })();
@@ -1,224 +0,0 @@
1
- CREATE EXTENSION IF NOT EXISTS pgcrypto;
2
- CREATE EXTENSION IF NOT EXISTS postgis;
3
-
4
- DROP TABLE IF EXISTS shapes CASCADE;
5
- CREATE TABLE IF NOT EXISTS shapes (
6
- id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
7
- geog GEOGRAPHY,
8
- geom GEOMETRY
9
- );
10
-
11
- DROP TABLE IF EXISTS insert_rules CASCADE;
12
- CREATE TABLE IF NOT EXISTS insert_rules (
13
- id SERIAL PRIMARY KEY,
14
- name TEXT,
15
- added TIMESTAMP DEFAULT NOW()
16
- );
17
-
18
-
19
-
20
- DROP TABLE IF EXISTS various CASCADE;
21
- CREATE TABLE IF NOT EXISTS various (
22
- id SERIAL PRIMARY KEY,
23
- h TEXT[],
24
- name TEXT,
25
- tsv TSVECTOR,
26
- jsn JSON DEFAULT '{}'::JSON,
27
- added TIMESTAMP DEFAULT NOW()
28
- );
29
-
30
- DROP TABLE IF EXISTS items CASCADE;
31
- CREATE TABLE IF NOT EXISTS items (
32
- id SERIAL PRIMARY KEY,
33
- h TEXT[],
34
- name TEXT
35
- -- PRIMARY KEY(id, id1)
36
- );
37
-
38
- DROP TABLE IF EXISTS items2 CASCADE;
39
- CREATE TABLE IF NOT EXISTS items2 (
40
- id SERIAL PRIMARY KEY,
41
- items_id INTEGER REFERENCES items(id),
42
- hh TEXT[],
43
- name TEXT
44
- );
45
-
46
- DROP TABLE IF EXISTS items3 CASCADE;
47
- CREATE TABLE IF NOT EXISTS items3 (
48
- id SERIAL PRIMARY KEY,
49
- h TEXT[],
50
- name TEXT
51
- );
52
-
53
- DROP TABLE IF EXISTS items4a CASCADE;
54
- CREATE TABLE IF NOT EXISTS items4a (
55
- id SERIAL PRIMARY KEY,
56
- items_id INTEGER REFERENCES items(id),
57
- items2_id INTEGER REFERENCES items2(id),
58
- name TEXT
59
- );
60
-
61
- DROP TABLE IF EXISTS items_multi CASCADE;
62
- CREATE TABLE IF NOT EXISTS items_multi (
63
- id SERIAL PRIMARY KEY,
64
- items0_id INTEGER REFERENCES items(id),
65
- items1_id INTEGER REFERENCES items(id),
66
- items2_id INTEGER REFERENCES items(id),
67
- items3_id INTEGER REFERENCES items(id),
68
- name TEXT
69
- );
70
-
71
- DROP TABLE IF EXISTS items4 CASCADE;
72
- CREATE TABLE IF NOT EXISTS items4 (
73
- id SERIAL,
74
- public TEXT,
75
- name TEXT,
76
- added TIMESTAMP DEFAULT NOW(),
77
- PRIMARY KEY(id, name)
78
- );
79
- DROP TABLE IF EXISTS items4_pub CASCADE;
80
- CREATE TABLE IF NOT EXISTS items4_pub (
81
- id SERIAL,
82
- public TEXT,
83
- name TEXT,
84
- added TIMESTAMP DEFAULT NOW(),
85
- PRIMARY KEY(id, name)
86
- );
87
- CREATE INDEX IF NOT EXISTS idx1 ON items(name);
88
- CREATE INDEX IF NOT EXISTS idx2 ON items2(name);
89
- CREATE INDEX IF NOT EXISTS idx3 ON items3(name);
90
-
91
- DROP VIEW IF EXISTS v_items;
92
- CREATE VIEW v_items AS
93
- SELECT id, name FROM items UNION
94
- SELECT id, name FROM items2 UNION
95
- SELECT id, name FROM items2 UNION
96
- SELECT id, name FROM items3;
97
-
98
-
99
-
100
-
101
- DROP TABLE IF EXISTS planes CASCADE;
102
- CREATE TABLE IF NOT EXISTS planes (
103
- id SERIAL PRIMARY KEY,
104
- x INTEGER,
105
- y INTEGER,
106
- flight_number TEXT,
107
- last_updated BIGINT NOT NULL
108
- );
109
- CREATE INDEX IF NOT EXISTS planes_idx1 ON planes(id);
110
-
111
-
112
-
113
- DROP TABLE IF EXISTS ex_j_ins CASCADE;
114
- CREATE TABLE IF NOT EXISTS ex_j_ins (
115
- id SERIAL,
116
- public TEXT,
117
- name TEXT,
118
- added TIMESTAMP DEFAULT NOW(),
119
- PRIMARY KEY(id, name)
120
- );
121
-
122
-
123
- DROP TABLE IF EXISTS "*" CASCADE;
124
- CREATE TABLE IF NOT EXISTS "*" (
125
- id SERIAL PRIMARY KEY,
126
- "*" TEXT
127
- );
128
-
129
- DROP TABLE IF EXISTS """*""" CASCADE;
130
- CREATE TABLE IF NOT EXISTS """*""" (
131
- id SERIAL PRIMARY KEY,
132
- qq TEXT,
133
- """*""" TEXT
134
- );
135
-
136
- DROP TABLE IF EXISTS hehe CASCADE;
137
-
138
- DROP TABLE IF EXISTS """quoted0""" CASCADE;
139
- DROP TABLE IF EXISTS """quoted1""" CASCADE;
140
- DROP TABLE IF EXISTS """quoted2""" CASCADE;
141
- CREATE TABLE IF NOT EXISTS """quoted2""" (
142
- """id2""" SERIAL PRIMARY KEY,
143
- """text_col2""" TEXT DEFAULT 'quoted2'
144
- );
145
- CREATE TABLE IF NOT EXISTS """quoted1""" (
146
- """id1""" SERIAL PRIMARY KEY,
147
- """quoted2_id""" INTEGER REFERENCES """quoted2""",
148
- """text_col1""" TEXT DEFAULT 'quoted1'
149
- );
150
- CREATE TABLE IF NOT EXISTS """quoted0""" (
151
- """id0""" SERIAL PRIMARY KEY,
152
- """quoted1_id""" INTEGER REFERENCES """quoted1""",
153
- """text_col0""" TEXT DEFAULT 'quoted0'
154
- );
155
-
156
-
157
- DROP TABLE IF EXISTS tr1 CASCADE;
158
- CREATE TABLE IF NOT EXISTS tr1 (
159
- id SERIAL PRIMARY KEY,
160
- t1 TEXT
161
- );
162
-
163
- DROP TABLE IF EXISTS tr2 CASCADE;
164
- CREATE TABLE IF NOT EXISTS tr2 (
165
- id SERIAL PRIMARY KEY,
166
- tr1_id INTEGER REFERENCES tr1(id),
167
- t1 TEXT,
168
- t2 TEXT,
169
- UNIQUE(id, t1)
170
- );
171
-
172
- DROP TABLE IF EXISTS tr3 CASCADE;
173
- CREATE TABLE IF NOT EXISTS tr3 (
174
- id SERIAL PRIMARY KEY,
175
- tr2_id INTEGER REFERENCES tr2(id),
176
- t2 TEXT
177
- );
178
-
179
- DROP TABLE IF EXISTS obj_table CASCADE;
180
- CREATE TABLE IF NOT EXISTS obj_table (
181
- id SERIAL PRIMARY KEY,
182
- obj JSONB
183
- );
184
-
185
- CREATE SCHEMA IF NOT EXISTS prostgles_test;
186
- DROP TABLE IF EXISTS prostgles_test.basic CASCADE;
187
- CREATE TABLE IF NOT EXISTS prostgles_test.basic (
188
- id SERIAL PRIMARY KEY,
189
- txt text
190
- );
191
- DROP TABLE IF EXISTS prostgles_test.basic1 CASCADE;
192
- CREATE TABLE IF NOT EXISTS prostgles_test.basic1 (
193
- id SERIAL PRIMARY KEY,
194
- id_basic INTEGER REFERENCES prostgles_test.basic,
195
- txt text
196
- );
197
-
198
-
199
- DROP MATERIALIZED VIEW IF EXISTS prostgles_test.mv_basic1;
200
- CREATE MATERIALIZED VIEW prostgles_test.mv_basic1 AS
201
- SELECT * FROM prostgles_test.basic1;
202
-
203
- DROP TABLE IF EXISTS self_join CASCADE;
204
- CREATE TABLE self_join (
205
- id SERIAL PRIMARY KEY,
206
- name TEXT,
207
- my_id INTEGER REFERENCES self_join,
208
- my_id1 INTEGER REFERENCES self_join
209
- );
210
-
211
-
212
- DROP TABLE IF EXISTS symbols CASCADE;
213
- CREATE TABLE IF NOT EXISTS symbols (
214
- id TEXT PRIMARY KEY
215
- );
216
-
217
- DROP TABLE IF EXISTS trades CASCADE;
218
- CREATE TABLE IF NOT EXISTS trades (
219
- id SERIAL PRIMARY KEY,
220
- symbol TEXT NOT NULL REFERENCES symbols,
221
- price NUMERIC NOT NULL
222
- );
223
-
224
- -- DROP TABLE media CASCADE;