prostgles-server 4.2.158 → 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 (145) hide show
  1. package/dist/Auth/AuthTypes.d.ts +4 -8
  2. package/dist/Auth/AuthTypes.d.ts.map +1 -1
  3. package/dist/Auth/setAuthProviders.d.ts.map +1 -1
  4. package/dist/Auth/setAuthProviders.js +4 -5
  5. package/dist/Auth/setAuthProviders.js.map +1 -1
  6. package/dist/Auth/setEmailProvider.js +1 -1
  7. package/dist/Auth/setEmailProvider.js.map +1 -1
  8. package/package.json +1 -1
  9. package/lib/Auth/AuthHandler.ts +0 -436
  10. package/lib/Auth/AuthTypes.ts +0 -285
  11. package/lib/Auth/getSafeReturnURL.ts +0 -35
  12. package/lib/Auth/sendEmail.ts +0 -83
  13. package/lib/Auth/setAuthProviders.ts +0 -129
  14. package/lib/Auth/setEmailProvider.ts +0 -85
  15. package/lib/Auth/setupAuthRoutes.ts +0 -161
  16. package/lib/DBEventsManager.ts +0 -178
  17. package/lib/DBSchemaBuilder.ts +0 -225
  18. package/lib/DboBuilder/DboBuilder.ts +0 -319
  19. package/lib/DboBuilder/DboBuilderTypes.ts +0 -361
  20. package/lib/DboBuilder/QueryBuilder/Functions.ts +0 -1153
  21. package/lib/DboBuilder/QueryBuilder/QueryBuilder.ts +0 -288
  22. package/lib/DboBuilder/QueryBuilder/getJoinQuery.ts +0 -263
  23. package/lib/DboBuilder/QueryBuilder/getNewQuery.ts +0 -271
  24. package/lib/DboBuilder/QueryBuilder/getSelectQuery.ts +0 -136
  25. package/lib/DboBuilder/QueryBuilder/prepareHaving.ts +0 -22
  26. package/lib/DboBuilder/QueryStreamer.ts +0 -250
  27. package/lib/DboBuilder/TableHandler/DataValidator.ts +0 -428
  28. package/lib/DboBuilder/TableHandler/TableHandler.ts +0 -205
  29. package/lib/DboBuilder/TableHandler/delete.ts +0 -115
  30. package/lib/DboBuilder/TableHandler/insert.ts +0 -183
  31. package/lib/DboBuilder/TableHandler/insertTest.ts +0 -78
  32. package/lib/DboBuilder/TableHandler/onDeleteFromFileTable.ts +0 -62
  33. package/lib/DboBuilder/TableHandler/runInsertUpdateQuery.ts +0 -134
  34. package/lib/DboBuilder/TableHandler/update.ts +0 -126
  35. package/lib/DboBuilder/TableHandler/updateBatch.ts +0 -49
  36. package/lib/DboBuilder/TableHandler/updateFile.ts +0 -48
  37. package/lib/DboBuilder/TableHandler/upsert.ts +0 -34
  38. package/lib/DboBuilder/ViewHandler/ViewHandler.ts +0 -393
  39. package/lib/DboBuilder/ViewHandler/count.ts +0 -38
  40. package/lib/DboBuilder/ViewHandler/find.ts +0 -153
  41. package/lib/DboBuilder/ViewHandler/getExistsCondition.ts +0 -73
  42. package/lib/DboBuilder/ViewHandler/getExistsFilters.ts +0 -74
  43. package/lib/DboBuilder/ViewHandler/getInfo.ts +0 -32
  44. package/lib/DboBuilder/ViewHandler/getTableJoinQuery.ts +0 -84
  45. package/lib/DboBuilder/ViewHandler/parseComplexFilter.ts +0 -96
  46. package/lib/DboBuilder/ViewHandler/parseFieldFilter.ts +0 -105
  47. package/lib/DboBuilder/ViewHandler/parseJoinPath.ts +0 -208
  48. package/lib/DboBuilder/ViewHandler/prepareSortItems.ts +0 -163
  49. package/lib/DboBuilder/ViewHandler/prepareWhere.ts +0 -90
  50. package/lib/DboBuilder/ViewHandler/size.ts +0 -37
  51. package/lib/DboBuilder/ViewHandler/subscribe.ts +0 -118
  52. package/lib/DboBuilder/ViewHandler/validateViewRules.ts +0 -70
  53. package/lib/DboBuilder/dboBuilderUtils.ts +0 -222
  54. package/lib/DboBuilder/getColumns.ts +0 -114
  55. package/lib/DboBuilder/getCondition.ts +0 -201
  56. package/lib/DboBuilder/getSubscribeRelatedTables.ts +0 -190
  57. package/lib/DboBuilder/getTablesForSchemaPostgresSQL.ts +0 -426
  58. package/lib/DboBuilder/insertNestedRecords.ts +0 -355
  59. package/lib/DboBuilder/parseUpdateRules.ts +0 -187
  60. package/lib/DboBuilder/prepareShortestJoinPaths.ts +0 -186
  61. package/lib/DboBuilder/runSQL.ts +0 -182
  62. package/lib/DboBuilder/runTransaction.ts +0 -50
  63. package/lib/DboBuilder/sqlErrCodeToMsg.ts +0 -254
  64. package/lib/DboBuilder/uploadFile.ts +0 -69
  65. package/lib/Event_Trigger_Tags.ts +0 -118
  66. package/lib/FileManager/FileManager.ts +0 -358
  67. package/lib/FileManager/getValidatedFileType.ts +0 -69
  68. package/lib/FileManager/initFileManager.ts +0 -187
  69. package/lib/FileManager/upload.ts +0 -62
  70. package/lib/FileManager/uploadStream.ts +0 -79
  71. package/lib/Filtering.ts +0 -463
  72. package/lib/JSONBValidation/validate_jsonb_schema_sql.ts +0 -502
  73. package/lib/JSONBValidation/validation.ts +0 -143
  74. package/lib/Logging.ts +0 -127
  75. package/lib/PostgresNotifListenManager.ts +0 -143
  76. package/lib/Prostgles.ts +0 -485
  77. package/lib/ProstglesTypes.ts +0 -196
  78. package/lib/PubSubManager/PubSubManager.ts +0 -609
  79. package/lib/PubSubManager/addSub.ts +0 -138
  80. package/lib/PubSubManager/addSync.ts +0 -141
  81. package/lib/PubSubManager/getCreatePubSubManagerError.ts +0 -72
  82. package/lib/PubSubManager/getPubSubManagerInitQuery.ts +0 -662
  83. package/lib/PubSubManager/initPubSubManager.ts +0 -79
  84. package/lib/PubSubManager/notifListener.ts +0 -173
  85. package/lib/PubSubManager/orphanTriggerCheck.ts +0 -70
  86. package/lib/PubSubManager/pushSubData.ts +0 -55
  87. package/lib/PublishParser/PublishParser.ts +0 -162
  88. package/lib/PublishParser/getFileTableRules.ts +0 -124
  89. package/lib/PublishParser/getSchemaFromPublish.ts +0 -141
  90. package/lib/PublishParser/getTableRulesWithoutFileTable.ts +0 -177
  91. package/lib/PublishParser/publishTypesAndUtils.ts +0 -399
  92. package/lib/RestApi.ts +0 -127
  93. package/lib/SchemaWatch/SchemaWatch.ts +0 -90
  94. package/lib/SchemaWatch/createSchemaWatchEventTrigger.ts +0 -3
  95. package/lib/SchemaWatch/getValidatedWatchSchemaType.ts +0 -45
  96. package/lib/SchemaWatch/getWatchSchemaTagList.ts +0 -27
  97. package/lib/SyncReplication.ts +0 -557
  98. package/lib/TableConfig/TableConfig.ts +0 -468
  99. package/lib/TableConfig/getColumnDefinitionQuery.ts +0 -111
  100. package/lib/TableConfig/getConstraintDefinitionQueries.ts +0 -95
  101. package/lib/TableConfig/getFutureTableSchema.ts +0 -64
  102. package/lib/TableConfig/getPGIndexes.ts +0 -53
  103. package/lib/TableConfig/getTableColumnQueries.ts +0 -129
  104. package/lib/TableConfig/initTableConfig.ts +0 -326
  105. package/lib/index.ts +0 -13
  106. package/lib/initProstgles.ts +0 -319
  107. package/lib/onSocketConnected.ts +0 -102
  108. package/lib/runClientRequest.ts +0 -129
  109. package/lib/shortestPath.ts +0 -122
  110. package/lib/typeTests/DBoGenerated.d.ts +0 -320
  111. package/lib/typeTests/dboTypeCheck.ts +0 -81
  112. package/lib/utils.ts +0 -15
  113. package/tests/client/hooks.spec.ts +0 -205
  114. package/tests/client/index.ts +0 -139
  115. package/tests/client/package-lock.json +0 -637
  116. package/tests/client/package.json +0 -26
  117. package/tests/client/renderReactHook.ts +0 -177
  118. package/tests/client/tsconfig.json +0 -15
  119. package/tests/client/useProstgles.spec.ts +0 -120
  120. package/tests/clientFileTests.spec.ts +0 -102
  121. package/tests/clientOnlyQueries.spec.ts +0 -667
  122. package/tests/clientRestApi.spec.ts +0 -82
  123. package/tests/config_test/DBoGenerated.d.ts +0 -407
  124. package/tests/config_test/index.html +0 -109
  125. package/tests/config_test/index.js +0 -86
  126. package/tests/config_test/index.js.map +0 -1
  127. package/tests/config_test/index.ts +0 -91
  128. package/tests/config_test/init.sql +0 -48
  129. package/tests/config_test/package.json +0 -29
  130. package/tests/config_test/tsconfig.json +0 -23
  131. package/tests/config_testDBoGenerated.d.ts +0 -407
  132. package/tests/isomorphicQueries.spec.ts +0 -1493
  133. package/tests/server/DBoGenerated.d.ts +0 -537
  134. package/tests/server/index.html +0 -73
  135. package/tests/server/index.ts +0 -289
  136. package/tests/server/init.sql +0 -224
  137. package/tests/server/package-lock.json +0 -2164
  138. package/tests/server/package.json +0 -25
  139. package/tests/server/publishTypeCheck.ts +0 -136
  140. package/tests/server/server.ts +0 -35
  141. package/tests/server/testPublish.ts +0 -147
  142. package/tests/server/testTableConfig.ts +0 -156
  143. package/tests/server/tsconfig.json +0 -22
  144. package/tests/serverOnlyQueries.spec.ts +0 -32
  145. 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;