Corrige erro de extração de scalar em jsonb_array_elements_text adicionando verificações de tipo jsonb_typeof em todas as queries SQL relevantes
This commit is contained in:
@@ -820,7 +820,7 @@ app.get('/api/observacoes/contar', requireAuth, async (req, res) => {
|
||||
let pCount = 1;
|
||||
|
||||
if (crianca) {
|
||||
sql += ` AND EXISTS (
|
||||
sql += ` AND jsonb_typeof(criancas) = 'array' AND EXISTS (
|
||||
SELECT 1 FROM jsonb_array_elements_text(criancas) AS c
|
||||
WHERE LOWER(c) LIKE $${pCount}
|
||||
)`;
|
||||
@@ -854,7 +854,7 @@ app.get('/api/observacoes/contar', requireAuth, async (req, res) => {
|
||||
|
||||
if (tags) {
|
||||
const tagList = tags.split(',').map(t => t.trim().toLowerCase());
|
||||
sql += ` AND EXISTS (
|
||||
sql += ` AND jsonb_typeof(tags) = 'array' AND EXISTS (
|
||||
SELECT 1 FROM jsonb_array_elements_text(tags) AS t
|
||||
WHERE LOWER(t) = ANY($${pCount})
|
||||
)`;
|
||||
@@ -891,7 +891,7 @@ app.post('/api/modelos/gerar-relatorio', requireAuth, async (req, res) => {
|
||||
let pCount = 1;
|
||||
|
||||
if (crianca) {
|
||||
sql += ` AND EXISTS (
|
||||
sql += ` AND jsonb_typeof(criancas) = 'array' AND EXISTS (
|
||||
SELECT 1 FROM jsonb_array_elements_text(criancas) AS c
|
||||
WHERE LOWER(c) LIKE $${pCount}
|
||||
)`;
|
||||
@@ -925,7 +925,7 @@ app.post('/api/modelos/gerar-relatorio', requireAuth, async (req, res) => {
|
||||
|
||||
if (tags) {
|
||||
const tagList = Array.isArray(tags) ? tags : [tags];
|
||||
sql += ` AND EXISTS (
|
||||
sql += ` AND jsonb_typeof(tags) = 'array' AND EXISTS (
|
||||
SELECT 1 FROM jsonb_array_elements_text(tags) AS t
|
||||
WHERE LOWER(t) = ANY($${pCount})
|
||||
)`;
|
||||
@@ -1106,7 +1106,7 @@ app.get('/api/observacoes/buscar', requireAuth, async (req, res) => {
|
||||
let pCount = 1;
|
||||
|
||||
if (crianca) {
|
||||
sql += ` AND EXISTS (
|
||||
sql += ` AND jsonb_typeof(criancas) = 'array' AND EXISTS (
|
||||
SELECT 1 FROM jsonb_array_elements_text(criancas) AS c
|
||||
WHERE LOWER(c) LIKE $${pCount}
|
||||
)`;
|
||||
@@ -1122,7 +1122,7 @@ app.get('/api/observacoes/buscar', requireAuth, async (req, res) => {
|
||||
|
||||
if (tags) {
|
||||
const tagList = tags.split(',').map(t => t.trim().toLowerCase());
|
||||
sql += ` AND EXISTS (
|
||||
sql += ` AND jsonb_typeof(tags) = 'array' AND EXISTS (
|
||||
SELECT 1 FROM jsonb_array_elements_text(tags) AS t
|
||||
WHERE LOWER(t) = ANY($${pCount})
|
||||
)`;
|
||||
@@ -1154,7 +1154,7 @@ app.get('/api/observacoes/resumo', requireAuth, async (req, res) => {
|
||||
let sql = `
|
||||
SELECT date, time, report, tags, turma, SUBSTRING(report FROM 1 FOR 120) || '...' as preview
|
||||
FROM escola.observacoes
|
||||
WHERE EXISTS (
|
||||
WHERE jsonb_typeof(criancas) = 'array' AND EXISTS (
|
||||
SELECT 1 FROM jsonb_array_elements_text(criancas) AS c
|
||||
WHERE LOWER(c) LIKE $1
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user