BUG #13884: array_to_json() works incorrectly for non-0-based arrays

From: xtracoder(at)gmail(dot)com
To: pgsql-bugs(at)postgresql(dot)org
Subject: BUG #13884: array_to_json() works incorrectly for non-0-based arrays
Date: 2016-01-24 10:47:02
Message-ID: 20160124104702.2537.84835@wrigleys.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

The following bug has been logged on the website:

Bug reference: 13884
Logged by: xtracoder
Email address: xtracoder(at)gmail(dot)com
PostgreSQL version: 9.5.0
Operating system: Windows
Description:

When postgres array has no elements at the beginning, array_to_json()
generates json array starting at the first initialized value

Steps to reproduce
- - - - - - - - - - - - - - - - - - - - - - - -
DO $$
DECLARE
arr real[];
jsarr jsonb;
arr2 real[];
BEGIN
arr[3] = 1.1;
arr[4] = 1.1;
raise notice 'arr = %', arr;

jsarr = array_to_json(arr);
raise notice 'arr = %', jsarr;

arr[0] = 1.1;
raise notice 'arr = %', arr;

jsarr = array_to_json(arr);
raise notice 'arr = %', jsarr;
END $$

Actual result
- - - - - - - - - - - - - - - - - - - - - - - -
1. NOTICE: arr = [3:4]={1.1,1.1}
2. NOTICE: arr = [1.1, 1.1]
3. NOTICE: arr = [0:4]={1.1,NULL,NULL,1.1,1.1}
4. NOTICE: arr = [1.1, null, null, 1.1, 1.1]

Expected result
- - - - - - - - - - - - - - - - - - - - - - - -
2. NOTICE: arr = [null, null, null, 1.1, 1.1]

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message xtracoder 2016-01-24 20:29:51 BUG #13885: float->string conversion loses precision server-side on JDBC connection
Previous Message Léonard Benedetti 2016-01-24 03:47:40 Re: BUG #13440: unaccent does not remove all diacritics