Advertisement
Guest User

Untitled

a guest
Aug 16th, 2017
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.84 KB | None | 0 0
  1. Index: ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp
  2. ===================================================================
  3. --- ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp (révision 22336)
  4. +++ ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp (copie de travail)
  5. @@ -1189,6 +1189,8 @@
  6. if (pszLayerName == NULL)
  7. return NULL;
  8.  
  9. + const char* pszFIDColumnName = CSLFetchNameValueDef(papszOptions, "FID", "OGC_FID");
  10. +
  11. if (strncmp(pszLayerName, "pg", 2) == 0)
  12. {
  13. CPLError(CE_Warning, CPLE_AppDefined,
  14. @@ -1379,10 +1381,13 @@
  15. {
  16. osCommand.Printf(
  17. "%s ( "
  18. - " OGC_FID SERIAL, "
  19. + " %s SERIAL, "
  20. " WKB_GEOMETRY %s, "
  21. - " CONSTRAINT \"%s_pk\" PRIMARY KEY (OGC_FID) )",
  22. - osCreateTable.c_str(), pszGeomType, pszTableName );
  23. + " CONSTRAINT \"%s_pk\" PRIMARY KEY (%s) )",
  24. + osCreateTable.c_str(),
  25. + pszFIDColumnName,
  26. + pszGeomType,
  27. + pszTableName, pszFIDColumnName);
  28. }
  29. else if ( eType != wkbNone && EQUAL(pszGeomType, "geography") )
  30. {
  31. @@ -1393,18 +1398,24 @@
  32.  
  33. if (nSRSId)
  34. osCommand.Printf(
  35. - "%s ( OGC_FID SERIAL, \"%s\" geography(%s%s,%d), CONSTRAINT \"%s_pk\" PRIMARY KEY (OGC_FID) )",
  36. - osCreateTable.c_str(), pszGFldName, pszGeometryType, nDimension == 2 ? "" : "Z", nSRSId, pszTableName );
  37. + "%s ( %s SERIAL, \"%s\" geography(%s%s,%d), CONSTRAINT \"%s_pk\" PRIMARY KEY (%s) )",
  38. + osCreateTable.c_str(), pszFIDColumnName,
  39. + pszGFldName, pszGeometryType,
  40. + nDimension == 2 ? "" : "Z", nSRSId, pszTableName,
  41. + pszFIDColumnName);
  42. else
  43. osCommand.Printf(
  44. - "%s ( OGC_FID SERIAL, \"%s\" geography(%s%s), CONSTRAINT \"%s_pk\" PRIMARY KEY (OGC_FID) )",
  45. - osCreateTable.c_str(), pszGFldName, pszGeometryType, nDimension == 2 ? "" : "Z", pszTableName );
  46. + "%s ( %s SERIAL, \"%s\" geography(%s%s), CONSTRAINT \"%s_pk\" PRIMARY KEY (%s) )",
  47. + osCreateTable.c_str(), pszFIDColumnName,
  48. + pszGFldName, pszGeometryType,
  49. + nDimension == 2 ? "" : "Z", pszTableName,
  50. + pszFIDColumnName);
  51. }
  52. else
  53. {
  54. osCommand.Printf(
  55. - "%s ( OGC_FID SERIAL, CONSTRAINT \"%s_pk\" PRIMARY KEY (OGC_FID) )",
  56. - osCreateTable.c_str(), pszTableName );
  57. + "%s ( %s SERIAL, CONSTRAINT \"%s_pk\" PRIMARY KEY (%s) )",
  58. + osCreateTable.c_str(), pszFIDColumnName, pszTableName, pszFIDColumnName );
  59. }
  60.  
  61. hResult = PQexec(hPGConn, osCommand.c_str());
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement