[postgis-tickets] [SCM] PostGIS branch master updated. 3.3.0rc2-317-g8e3cbc237
git at osgeo.org
git at osgeo.org
Thu Nov 3 17:21:05 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, master has been updated
via 8e3cbc237a8335896512b38c4ab2beaa9dfb499c (commit)
from 41a87d30fb58110e73b0d05978ca9701fe2b17b2 (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 8e3cbc237a8335896512b38c4ab2beaa9dfb499c
Author: Regina Obe <lr at pcorp.us>
Date: Thu Nov 3 20:20:14 2022 -0400
Handle load of dbase character fields with not width specified
References #5280 for PostGIS 3.4.0
diff --git a/loader/shp2pgsql-core.c b/loader/shp2pgsql-core.c
index f292f212c..036880e5c 100644
--- a/loader/shp2pgsql-core.c
+++ b/loader/shp2pgsql-core.c
@@ -1363,9 +1363,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/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;
diff --git a/regress/loader/tests.mk b/regress/loader/tests.mk
index 30c7d07b2..ac4f8ad23 100644
--- a/regress/loader/tests.mk
+++ b/regress/loader/tests.mk
@@ -39,4 +39,6 @@ TESTS += \
$(top_srcdir)/regress/loader/Latin1-implicit \
$(top_srcdir)/regress/loader/mfile \
$(top_srcdir)/regress/loader/TestSkipANALYZE \
- $(top_srcdir)/regress/loader/TestANALYZE
+ $(top_srcdir)/regress/loader/TestANALYZE \
+ $(top_srcdir)/regress/loader/CharNoWidth \
+
-----------------------------------------------------------------------
Summary of changes:
loader/shp2pgsql-core.c | 7 ++++---
regress/loader/CharNoWidth.dbf | Bin 0 -> 830 bytes
regress/loader/CharNoWidth.select.expected | 18 ++++++++++++++++++
regress/loader/CharNoWidth.select.sql | 3 +++
regress/loader/tests.mk | 4 +++-
5 files changed, 28 insertions(+), 4 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