@opengis/fastify-table 1.1.75 → 1.1.77
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.
- package/package.json +1 -1
- package/server/migrations/roles.sql +1 -1
- package/server/migrations/users.sql +1 -1
- package/server/plugins/pg/funcs/getPG.js +3 -0
- package/server/plugins/pg/funcs/getPGAsync.js +3 -0
- package/server/plugins/table/funcs/getSelectMeta.js +3 -4
- package/server/routes/table/controllers/suggest.js +2 -2
package/package.json
CHANGED
|
@@ -171,5 +171,5 @@ alter table admin.role_access
|
|
|
171
171
|
add constraint admin_access_route_id_fkey FOREIGN KEY (route_id) REFERENCES admin.routes(route_id);
|
|
172
172
|
alter table admin.menu add CONSTRAINT admin_menu_name_unique UNIQUE (name);
|
|
173
173
|
ALTER TABLE admin.user_roles ADD CONSTRAINT admin_user_roles_user_role_id_fkey FOREIGN KEY (role_id) REFERENCES admin.roles (role_id);
|
|
174
|
-
ALTER TABLE admin.user_roles ADD CONSTRAINT admin_user_roles_user_uid_fkey FOREIGN KEY (user_uid) REFERENCES admin.users (uid);
|
|
174
|
+
ALTER TABLE admin.user_roles ADD CONSTRAINT admin_user_roles_user_uid_fkey FOREIGN KEY (user_uid) REFERENCES admin.users (uid) on delete cascade;
|
|
175
175
|
ALTER TABLE admin.user_roles ADD CONSTRAINT admin_user_roles_user_uid_role_id_key UNIQUE (user_uid, role_id);
|
|
@@ -119,7 +119,7 @@ ALTER TABLE admin.users_social_auth add column if not exists lang text;
|
|
|
119
119
|
ALTER TABLE admin.users_social_auth add column if not exists editor_date timestamp without time zone;
|
|
120
120
|
ALTER TABLE admin.users_social_auth add column if not exists social_auth_url text;
|
|
121
121
|
ALTER TABLE admin.users_social_auth add CONSTRAINT users_social_auth_pk PRIMARY KEY (users_social_auth_id);
|
|
122
|
-
ALTER TABLE admin.users_social_auth add CONSTRAINT users_social_auth_users_fk FOREIGN KEY (uid) REFERENCES admin.users (uid) MATCH SIMPLE;
|
|
122
|
+
ALTER TABLE admin.users_social_auth add CONSTRAINT users_social_auth_users_fk FOREIGN KEY (uid) REFERENCES admin.users (uid) MATCH SIMPLE on delete cascade;
|
|
123
123
|
|
|
124
124
|
COMMENT ON COLUMN admin.users_social_auth.uid IS 'id пользователя';
|
|
125
125
|
COMMENT ON COLUMN admin.users_social_auth.user_name IS 'Имя пользователя';
|
|
@@ -2,6 +2,7 @@ import pgClients from '../../pg/pgClients.js';
|
|
|
2
2
|
|
|
3
3
|
import getSelect from './getSelect.js';
|
|
4
4
|
|
|
5
|
+
const limit = 50;
|
|
5
6
|
const selectMeta = {};
|
|
6
7
|
|
|
7
8
|
export default async function getSelectMeta({ name, pg = pgClients.client, nocache }) {
|
|
@@ -16,16 +17,14 @@ export default async function getSelectMeta({ name, pg = pgClients.client, nocac
|
|
|
16
17
|
const { sql: original } = cls;
|
|
17
18
|
if (!original.toLowerCase) { console.log(`sql select null: ${name}`); return null; }
|
|
18
19
|
|
|
19
|
-
const sql = `with c(id,text) as (${original} ) select * from c`;
|
|
20
|
-
// large query > slow with() w/o limit
|
|
21
|
-
const sql1 = `with c(id,text) as (select * from (${original})q limit 0) select * from c`;
|
|
20
|
+
const sql = `with c(id,text) as (select * from (${original})q limit ${limit}) select * from c`;
|
|
22
21
|
|
|
23
22
|
/*= == meta table === */
|
|
24
23
|
|
|
25
24
|
const tableNew = original.toLowerCase().replace(/\n/g, ' ').split(' from ').filter((el) => /^[a-z0-9_]+\.[a-z0-9_]+/.test(el))
|
|
26
25
|
.map((el) => el.split(/[ )]/)[0].replace(/[\r\n]+/g, ''));
|
|
27
26
|
|
|
28
|
-
const dataOrigin = await pg.query(
|
|
27
|
+
const dataOrigin = await pg.query(sql?.replace(`limit ${limit}`, 'limit 0'));
|
|
29
28
|
|
|
30
29
|
const dataOrigin1 = await pg.query(`${original} limit 0`);
|
|
31
30
|
|
|
@@ -33,7 +33,7 @@ export default async function suggest(req) {
|
|
|
33
33
|
|
|
34
34
|
const meta = table && column
|
|
35
35
|
? {
|
|
36
|
-
original: `with c(id,text) as (select row_number() over(), ${column} from ${body?.table || table} group by ${column} ) select * from c`,
|
|
36
|
+
original: `with c(id,text) as (select row_number() over(), ${column} from ${body?.table || table} group by ${column} limit ${limit}) select * from c`,
|
|
37
37
|
searchQuery: '("text" ilike $1 )',
|
|
38
38
|
}
|
|
39
39
|
: await getSelectMeta({ name: selectName, nocache: query?.nocache });
|
|
@@ -61,7 +61,7 @@ export default async function suggest(req) {
|
|
|
61
61
|
|
|
62
62
|
const val = query.val ? ` id=any('{${query.val.replace(/'/g, "''")}}')` : '';
|
|
63
63
|
const where = [search, val, 'id is not null'].filter((el) => el).join(' and ') || 'true';
|
|
64
|
-
const sqlSuggest = `${meta.original.replace(/{{parent}}/gi, parent)} where ${where}
|
|
64
|
+
const sqlSuggest = `${meta.original.replace(/{{parent}}/gi, parent)} where ${where} order by text`.replace(/{{uid}}/g, user?.uid || '0');
|
|
65
65
|
if (query.sql && config.local) return sqlSuggest;
|
|
66
66
|
|
|
67
67
|
// query
|