[postgis-tickets] [SCM] PostGIS branch stable-3.0 updated. 3.0.7-18-g9bf759d9d

git at osgeo.org git at osgeo.org
Thu Nov 3 18:45:37 PDT 2022


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "PostGIS".

The branch, stable-3.0 has been updated
       via  9bf759d9d7203534de53fcfe827fee5e4b30bfdb (commit)
       via  5d5b975655b3d8d6446375b81caafff29b9bf034 (commit)
      from  f96b813b13e124d04f9c73595f4ddcdcf3ce1418 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 9bf759d9d7203534de53fcfe827fee5e4b30bfdb
Author: Regina Obe <lr at pcorp.us>
Date:   Thu Nov 3 21:45:30 2022 -0400

    NEWS for 3.0.8 References #5280

diff --git a/NEWS b/NEWS
index 2165e4776..8b50f775b 100644
--- a/NEWS
+++ b/NEWS
@@ -7,6 +7,8 @@ YYYY/MM/DD
   - #4648, Check function ownership at extension packaging time (Sandro Santilli)
   - #5241, Crash on ST_SnapToGrid with empty multis (Regina Obe)
   - #5234, Fix 2.5d topology building regression (Sandro Santilli)
+  - #5280, shp2pgsql: Handle load of dbase character fields with no width
+           specified (Regina Obe)
 
 PostGIS 3.0.7
 2022/08/18

commit 5d5b975655b3d8d6446375b81caafff29b9bf034
Author: Regina Obe <lr at pcorp.us>
Date:   Thu Nov 3 21:43:06 2022 -0400

    Handle load of dbase character fields with not width specified
    References #5280 for PostGIS 3.0.8

diff --git a/loader/shp2pgsql-core.c b/loader/shp2pgsql-core.c
index 5d5e92a2b..8f23721db 100644
--- a/loader/shp2pgsql-core.c
+++ b/loader/shp2pgsql-core.c
@@ -1364,9 +1364,10 @@ ShpLoaderGetSQLHeader(SHPLOADERSTATE *state, char **strheader)
 			/* First output the raw field type string */
 			stringbuffer_aprintf(sb, "%s", state->pgfieldtypes[j]);
 
-			/* Some types do have typmods though... */
-			if (!strcmp("varchar", state->pgfieldtypes[j]))
-				stringbuffer_aprintf(sb, "(%d)", state->widths[j]);
+			/* Some types do have typmods */
+			/* Apply width typmod for varchar if there is positive width **/
+			if (!strcmp("varchar", state->pgfieldtypes[j]) && state->widths[j] > 0)
+					stringbuffer_aprintf(sb, "(%d)", state->widths[j]);
 
 			if (!strcmp("numeric", state->pgfieldtypes[j]))
 			{
diff --git a/regress/core/Makefile.in b/regress/core/Makefile.in
index c5db80f45..f98dd86f6 100644
--- a/regress/core/Makefile.in
+++ b/regress/core/Makefile.in
@@ -67,6 +67,7 @@ TESTS = \
 	../loader/Latin1 \
 	../loader/Latin1-implicit \
 	../loader/mfile \
+	../loader/CharNoWidth \
 	../dumper/literalsrid \
 	../dumper/realtable \
 	../dumper/nullsintable \
diff --git a/regress/loader/CharNoWidth.dbf b/regress/loader/CharNoWidth.dbf
new file mode 100644
index 000000000..9edcc7d04
Binary files /dev/null and b/regress/loader/CharNoWidth.dbf differ
diff --git a/regress/loader/CharNoWidth.select.expected b/regress/loader/CharNoWidth.select.expected
new file mode 100644
index 000000000..3cd81d490
--- /dev/null
+++ b/regress/loader/CharNoWidth.select.expected
@@ -0,0 +1,18 @@
+1|11|50000|02390665|1150000|Washington|Washington city|25|C5|||G4110|N|158316184|18709787|+38.9042474|-077.0165167
+aland|
+awater|
+classfp|2
+funcstat|1
+geoid|7
+gid|
+intptlat|11
+intptlon|12
+lsad|2
+mtfcc|5
+name|100
+namelsad|100
+pcicbsa|
+pcinecta|
+placefp|5
+placens|8
+statefp|2
diff --git a/regress/loader/CharNoWidth.select.sql b/regress/loader/CharNoWidth.select.sql
new file mode 100644
index 000000000..c7ccb2e01
--- /dev/null
+++ b/regress/loader/CharNoWidth.select.sql
@@ -0,0 +1,3 @@
+SET CLIENT_ENCODING to UTF8;
+SELECT * FROM loadedshp;
+SELECT column_name, character_maximum_length FROM information_schema.columns WHERE table_name = 'loadedshp' ORDER BY column_name;

-----------------------------------------------------------------------

Summary of changes:
 NEWS                                       |   2 ++
 loader/shp2pgsql-core.c                    |   7 ++++---
 regress/core/Makefile.in                   |   1 +
 regress/loader/CharNoWidth.dbf             | Bin 0 -> 830 bytes
 regress/loader/CharNoWidth.select.expected |  18 ++++++++++++++++++
 regress/loader/CharNoWidth.select.sql      |   3 +++
 6 files changed, 28 insertions(+), 3 deletions(-)
 create mode 100644 regress/loader/CharNoWidth.dbf
 create mode 100644 regress/loader/CharNoWidth.select.expected
 create mode 100644 regress/loader/CharNoWidth.select.sql


hooks/post-receive
-- 
PostGIS


More information about the postgis-tickets mailing list