Anonymous
Эффект объединения обновления не виден при первом запуске выбора
Сообщение
Anonymous » 15 янв 2025, 18:21
У меня очень странное поведение при использовании pglite (PostgreSQL версии 16) в Firefox, где я запускаю UPDATE JOIN, а затем SELECT, который в первый раз не отражает изменения, внесенные UPDATE, но если я запускаю это второй раз!
Код: Выделить всё
async function handleDeselectElement()
{
console.assert(g.parentNode.tagName=='svg');
const idbox = parseInt(g.id.substring('g_'.length));
const selectedContextIndex = parseInt(g.parentElement.id);
const xForms = g.transform.baseVal;// an SVGTransformList
const firstXForm = xForms.getItem(0); //an SVGTransform
console.assert (firstXForm.type == SVGTransform.SVG_TRANSFORM_TRANSLATE);
const translateX = firstXForm.matrix.e;
const translateY = firstXForm.matrix.f;
const ret = await db.query(`
UPDATE translation t
SET x=${translateX}, y=${translateY}
FROM rectangle r
WHERE t.idrectangle=r.idrectangle
AND r.idbox=${idbox}
RETURNING *
`);
console.log(ret);
await enforce_bounding_rectangle(selectedContextIndex);
const links = await compute_links(selectedContextIndex);
// mycontexts.contexts[selectedContextIndex].links = await links;
document.getElementById(`links_${selectedContextIndex}`).innerHTML = drawLinks(links);
}
Это мое ОБНОВЛЕНИЕ.
Код: Выделить всё
upload.addEventListener("click", async (evt)=>{
const ret = await db.query(`
SELECT json_build_object(
'diagram', (SELECT json_agg(row_to_json(diagram))::json FROM diagram),
'box', (SELECT json_agg(row_to_json(box))::json FROM box),
'field', (SELECT coalesce(json_agg(row_to_json(field))::json, '[]'::json) FROM field),
'value', (SELECT coalesce(json_agg(row_to_json(value))::json, '[]'::json) FROM value),
'link', (SELECT coalesce(json_agg(row_to_json(link))::json, '[]'::json) FROM link),
'tag', (SELECT json_agg(row_to_json(tag))::json FROM tag),
'message_tag', (SELECT coalesce(json_agg(row_to_json(message_tag))::json, '[]'::json) FROM message_tag),
'graph', (SELECT coalesce(json_agg(row_to_json(graph))::json, '[]'::json) FROM graph),
'rectangle', (SELECT json_agg(row_to_json(rectangle))::json FROM rectangle),
'translation', (SELECT json_agg(row_to_json(translation))::json FROM translation),
'polyline', (SELECT coalesce(json_agg(row_to_json(polyline))::json, '[]'::json) FROM polyline)
);
`);
const doc = ret.rows[0].json_build_object;
const json_doc = JSON.stringify(doc);
console.log(json_doc);
const response = await fetch(
//"https://www.diskloud.fr:3000/linkedboxdraw/post",
"https://109.11.33.79:8443/linkedboxdraw/post",
{
method: "POST",
body: json_doc,
headers: {"Content-Type": "application/json"}
}
);
console.log(response.status);
});
Это мой ВЫБОР.
Подробнее здесь:
https://stackoverflow.com/questions/793 ... -of-select
1736954506
Anonymous
У меня очень странное поведение при использовании pglite (PostgreSQL версии 16) в Firefox, где я запускаю UPDATE JOIN, а затем SELECT, который в первый раз не отражает изменения, внесенные UPDATE, но если я запускаю это второй раз! [code]async function handleDeselectElement() { console.assert(g.parentNode.tagName=='svg'); const idbox = parseInt(g.id.substring('g_'.length)); const selectedContextIndex = parseInt(g.parentElement.id); const xForms = g.transform.baseVal;// an SVGTransformList const firstXForm = xForms.getItem(0); //an SVGTransform console.assert (firstXForm.type == SVGTransform.SVG_TRANSFORM_TRANSLATE); const translateX = firstXForm.matrix.e; const translateY = firstXForm.matrix.f; const ret = await db.query(` UPDATE translation t SET x=${translateX}, y=${translateY} FROM rectangle r WHERE t.idrectangle=r.idrectangle AND r.idbox=${idbox} RETURNING * `); console.log(ret); await enforce_bounding_rectangle(selectedContextIndex); const links = await compute_links(selectedContextIndex); // mycontexts.contexts[selectedContextIndex].links = await links; document.getElementById(`links_${selectedContextIndex}`).innerHTML = drawLinks(links); } [/code] Это мое ОБНОВЛЕНИЕ. [code]upload.addEventListener("click", async (evt)=>{ const ret = await db.query(` SELECT json_build_object( 'diagram', (SELECT json_agg(row_to_json(diagram))::json FROM diagram), 'box', (SELECT json_agg(row_to_json(box))::json FROM box), 'field', (SELECT coalesce(json_agg(row_to_json(field))::json, '[]'::json) FROM field), 'value', (SELECT coalesce(json_agg(row_to_json(value))::json, '[]'::json) FROM value), 'link', (SELECT coalesce(json_agg(row_to_json(link))::json, '[]'::json) FROM link), 'tag', (SELECT json_agg(row_to_json(tag))::json FROM tag), 'message_tag', (SELECT coalesce(json_agg(row_to_json(message_tag))::json, '[]'::json) FROM message_tag), 'graph', (SELECT coalesce(json_agg(row_to_json(graph))::json, '[]'::json) FROM graph), 'rectangle', (SELECT json_agg(row_to_json(rectangle))::json FROM rectangle), 'translation', (SELECT json_agg(row_to_json(translation))::json FROM translation), 'polyline', (SELECT coalesce(json_agg(row_to_json(polyline))::json, '[]'::json) FROM polyline) ); `); const doc = ret.rows[0].json_build_object; const json_doc = JSON.stringify(doc); console.log(json_doc); const response = await fetch( //"https://www.diskloud.fr:3000/linkedboxdraw/post", "https://109.11.33.79:8443/linkedboxdraw/post", { method: "POST", body: json_doc, headers: {"Content-Type": "application/json"} } ); console.log(response.status); }); [/code] Это мой ВЫБОР. Подробнее здесь: [url]https://stackoverflow.com/questions/79358783/update-join-effect-not-visible-in-first-run-of-select[/url]