@@ -313,7 +313,7 @@ const prepareFunction = /*javascript*/`
313313const selectValueTable = `\`SELECT * FROM \${table} WHERE link_id = \${linkId}\`` ;
314314const selectLinkByValue = `\`SELECT link_id as id FROM \${table} WHERE value = '\${value}'::\${table==='strings' ? 'text' : table==='objects' ? 'jsonb' : 'bigint'}\`` ;
315315
316- const generateSelectWhereCode = /*javascript*/ `(_where, shift = 0 ) => {
316+ const generateSelectWhereCode = /*javascript*/ `(_where) => {
317317 const where = [];
318318 let values = [];
319319 let valueTable;
@@ -322,20 +322,20 @@ const generateSelectWhereCode = /*javascript*/`(_where, shift = 0) => {
322322 if (_where[keys[i]]) {
323323 if ( !_where[keys[i]]['_in'] ) {
324324 if (keys[i] !== 'object' && keys[i] !== 'string' && keys[i] !== 'number') {
325- where.push('"main".'.concat(keys[i], ' = $',values.length+1+shift ));
325+ where.push('"main".'.concat(keys[i], ' = $',values.length+2 ));
326326 values.push(_where[keys[i]]);
327327 } else {
328328 const valueKeys = Object.keys(_where[keys[i]]);
329329 where.push(keys[i].concat('s.link_id = "main".id'));
330330 valueTable = keys[i].concat('s');
331331 for (let j = 0; j < valueKeys.length; j++ ){
332332 if ( !_where[keys[i]][valueKeys[j]]['_in'] ) {
333- where.push('"'.concat(keys[i].concat('s".'), valueKeys[j], ' = $', values.length+1+shift ));
333+ where.push('"'.concat(keys[i].concat('s".'), valueKeys[j], ' = $', values.length+2 ));
334334 values.push(_where[keys[i]][valueKeys[j]]);
335335 } else {
336336 const inLength = _where[keys[i]][valueKeys[j]]['_in'].length;
337- let inValues = '$'.concat(values.length+1+shift );
338- for (let l = values.length+2+shift ; l < inLength+values.length+1+shift ; l++ ) {
337+ let inValues = '$'.concat(values.length+2 );
338+ for (let l = values.length+3 ; l < inLength+values.length+2 ; l++ ) {
339339 inValues = inValues.concat(',$',l);
340340 }
341341 if(typeof _where[keys[i]][valueKeys[j]]['_in'][0] === 'number'){
@@ -352,8 +352,8 @@ const generateSelectWhereCode = /*javascript*/`(_where, shift = 0) => {
352352 }
353353 } else {
354354 const inLength = _where[keys[i]]['_in'].length;
355- let inValues = '$'.concat(values.length+1+shift );
356- for (let l = values.length+2+shift ; l < inLength+where.length+1+shift ; l++ ) {
355+ let inValues = '$'.concat(values.length+2 );
356+ for (let l = values.length+3 ; l < inLength+where.length+2 ; l++ ) {
357357 inValues = inValues.concat(',$',l);
358358 }
359359 if(typeof _where[keys[i]]['_in'][0] === 'number'){
@@ -548,7 +548,8 @@ const findLinkIdByValueCode = /*javascript*/`({ string, object, number, value })
548548 }
549549}` ;
550550
551- const objectSet = `\`update objects set value = jsonb_set(value, $2, $3, true) where link_id = $1\`` ;
551+ const wherePush = `\`\${whereFileds[counter]} = $\${counter}\`` ;
552+ const setPush = `\`\${setFileds[counter]} = $\${counter}\`` ;
552553
553554const deepFabric = /*javascript*/ `(ownerId, hasura_session) => {
554555 hasura_session['x-hasura-role'] = 'link';
@@ -580,11 +581,6 @@ const deepFabric = /*javascript*/`(ownerId, hasura_session) => {
580581 plv8.elog(ERROR, 'Id not found by '.concat(start, ' -> ', path.join(' -> ')));
581582 }
582583 },
583- objectSet: function(link_id, path, value) {
584- plv8.execute('SELECT set_config($1, $2, $3)', [ 'hasura.user', JSON.stringify({...hasura_session, 'x-hasura-user-id': this.linkId}), true]);
585- hasura_session['x-hasura-user-id'] = this.linkId;
586- plv8.execute(${ objectSet } , [link_id, path, value]);
587- },
588584 select: function(_where, options) {
589585 if (options?.table && !['links', 'tree', 'can', 'selectors'].includes(options?.table)) plv8.elog(ERROR, 'select not from "links" not permitted');
590586 plv8.execute('SELECT set_config($1, $2, $3)', [ 'hasura.user', JSON.stringify({...hasura_session, 'x-hasura-user-id': this.linkId}), true]);
@@ -596,7 +592,7 @@ const deepFabric = /*javascript*/`(ownerId, hasura_session) => {
596592 const findLinkIdByValue = ${ findLinkIdByValueCode } ;
597593 const fillValueByLinks = ${ fillValueByLinksCode } ;
598594 const isDeepEqual = ${ isDeepEqualCode } ;
599- let generated = generateSelectWhere(_where, 1 );
595+ let generated = generateSelectWhere(_where);
600596 const where = generated.where;
601597 let links = [];
602598 const valueTableString = generated.valueTable ? ', "'.concat(generated.valueTable, '"') : '';
@@ -609,7 +605,7 @@ const deepFabric = /*javascript*/`(ownerId, hasura_session) => {
609605 if (options?.table === 'tree'){
610606 const { id, link_id, parent_id, depth, root_id, position_id, tree_id } = _where;
611607 const generateSelectWhere = ${ generateSelectWhereCode } ;
612- let generated = generateSelectWhere(_where, 1 );
608+ let generated = generateSelectWhere(_where);
613609 const where = generated.where;
614610 let links = [];
615611 if (where) links = plv8.execute(${ selectTreeWithPermissions } , [ this.linkId, ...generated.values ]);
@@ -836,16 +832,14 @@ const triggerFunctionFabric = (handleOperationTypeId, valueTrigger) => /*javascr
836832` ;
837833
838834const deepClientFunction = /*javascript*/ `
839-
840835const checkInsertPermission = ${ checkInsertPermissionCode } ;
841836const checkUpdatePermission = ${ checkUpdatePermissionCode } ;
842837const checkDeleteLinkPermission = ${ checkDeleteLinkPermissionCode } ;
843838const hasura_session = JSON.parse(plv8.execute("select current_setting('hasura.user', 't')")[0].current_setting);
844839const default_role = hasura_session['x-hasura-role'];
845840const default_user_id = hasura_session['x-hasura-user-id'];
846-
847841const deep = (${ deepFabric } )(Number(clientlinkid), hasura_session);
848- const result = operation === 'id' || operation === 'update' || operation === 'objectSet' ? deep[operation](...args) : deep[operation](args, options);
842+ const result = operation === 'id' || operation === 'update' ? deep[operation](...args) : deep[operation](args, options);
849843if (hasura_session['x-hasura-role'] !== default_role || hasura_session['x-hasura-user-id'] !== default_user_id){
850844 if (default_role) hasura_session['x-hasura-role'] = default_role;
851845 if (default_user_id) hasura_session['x-hasura-user-id'] = default_user_id;
0 commit comments