Skip to content

Commit 71d916e

Browse files
committed
Merge pull request #76 from pnorman/fillfactor
Use fillfactor 100 for non-updatable imports
2 parents 1a2ee30 + c5238a5 commit 71d916e

1 file changed

Lines changed: 32 additions & 6 deletions

File tree

output-pgsql.c

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1089,9 +1089,18 @@ static void *pgsql_out_stop_one(void *arg)
10891089
fprintf(stderr, "Copying %s to cluster by geometry finished\n", table->name);
10901090
fprintf(stderr, "Creating geometry index on %s\n", table->name);
10911091
if (Options->tblsmain_index) {
1092-
pgsql_exec(sql_conn, PGRES_COMMAND_OK, "CREATE INDEX %s_index ON %s USING GIST (way) TABLESPACE %s;\n", table->name, table->name, Options->tblsmain_index);
1092+
/* Use fillfactor 100 for un-updatable imports */
1093+
if (Options->slim && !Options->droptemp) {
1094+
pgsql_exec(sql_conn, PGRES_COMMAND_OK, "CREATE INDEX %s_index ON %s USING GIST (way) TABLESPACE %s;\n", table->name, table->name, Options->tblsmain_index);
1095+
} else {
1096+
pgsql_exec(sql_conn, PGRES_COMMAND_OK, "CREATE INDEX %s_index ON %s USING GIST (way) WITH (FILLFACTOR=100) TABLESPACE %s;\n", table->name, table->name, Options->tblsmain_index);
1097+
}
10931098
} else {
1094-
pgsql_exec(sql_conn, PGRES_COMMAND_OK, "CREATE INDEX %s_index ON %s USING GIST (way);\n", table->name, table->name);
1099+
if (Options->slim && !Options->droptemp) {
1100+
pgsql_exec(sql_conn, PGRES_COMMAND_OK, "CREATE INDEX %s_index ON %s USING GIST (way);\n", table->name, table->name);
1101+
} else {
1102+
pgsql_exec(sql_conn, PGRES_COMMAND_OK, "CREATE INDEX %s_index ON %s USING GIST (way) WITH (FILLFACTOR=100);\n", table->name, table->name);
1103+
}
10951104
}
10961105

10971106
/* slim mode needs this to be able to apply diffs */
@@ -1109,16 +1118,33 @@ static void *pgsql_out_stop_one(void *arg)
11091118
fprintf(stderr, "Creating hstore indexes on %s\n", table->name);
11101119
if (Options->tblsmain_index) {
11111120
if (HSTORE_NONE != (Options->enable_hstore))
1112-
pgsql_exec(sql_conn, PGRES_COMMAND_OK, "CREATE INDEX %s_tags_index ON %s USING GIN (tags) TABLESPACE %s;\n", table->name, table->name, Options->tblsmain_index);
1121+
if (Options->slim && !Options->droptemp) {
1122+
pgsql_exec(sql_conn, PGRES_COMMAND_OK, "CREATE INDEX %s_tags_index ON %s USING GIN (tags) TABLESPACE %s;\n", table->name, table->name, Options->tblsmain_index);
1123+
} else {
1124+
pgsql_exec(sql_conn, PGRES_COMMAND_OK, "CREATE INDEX %s_tags_index ON %s USING GIN (tags) WITH (FILLFACTOR=100) TABLESPACE %s;\n", table->name, table->name, Options->tblsmain_index);
1125+
}
11131126
for(i_column = 0; i_column < Options->n_hstore_columns; i_column++) {
1114-
pgsql_exec(sql_conn, PGRES_COMMAND_OK, "CREATE INDEX %s_hstore_%i_index ON %s USING GIN (\"%s\") TABLESPACE %s;\n",
1127+
if (Options->slim && !Options->droptemp) {
1128+
pgsql_exec(sql_conn, PGRES_COMMAND_OK, "CREATE INDEX %s_hstore_%i_index ON %s USING GIN (\"%s\") TABLESPACE %s;\n",
1129+
table->name, i_column,table->name, Options->hstore_columns[i_column], Options->tblsmain_index);
1130+
} else {
1131+
pgsql_exec(sql_conn, PGRES_COMMAND_OK, "CREATE INDEX %s_hstore_%i_index ON %s USING GIN (\"%s\") WITH (FILLFACTOR=100) TABLESPACE %s;\n",
11151132
table->name, i_column,table->name, Options->hstore_columns[i_column], Options->tblsmain_index);
1133+
}
11161134
}
11171135
} else {
11181136
if (HSTORE_NONE != (Options->enable_hstore))
1119-
pgsql_exec(sql_conn, PGRES_COMMAND_OK, "CREATE INDEX %s_tags_index ON %s USING GIN (tags);\n", table->name, table->name);
1137+
if (Options->slim && !Options->droptemp) {
1138+
pgsql_exec(sql_conn, PGRES_COMMAND_OK, "CREATE INDEX %s_tags_index ON %s USING GIN (tags);\n", table->name, table->name);
1139+
} else {
1140+
pgsql_exec(sql_conn, PGRES_COMMAND_OK, "CREATE INDEX %s_tags_index ON %s USING GIN (tags) WITH (FILLFACTOR=100);\n", table->name, table->name);
1141+
}
11201142
for(i_column = 0; i_column < Options->n_hstore_columns; i_column++) {
1121-
pgsql_exec(sql_conn, PGRES_COMMAND_OK, "CREATE INDEX %s_hstore_%i_index ON %s USING GIN (\"%s\");\n", table->name, i_column,table->name, Options->hstore_columns[i_column]);
1143+
if (Options->slim && !Options->droptemp) {
1144+
pgsql_exec(sql_conn, PGRES_COMMAND_OK, "CREATE INDEX %s_hstore_%i_index ON %s USING GIN (\"%s\");\n", table->name, i_column,table->name, Options->hstore_columns[i_column]);
1145+
} else {
1146+
pgsql_exec(sql_conn, PGRES_COMMAND_OK, "CREATE INDEX %s_hstore_%i_index ON %s USING GIN (\"%s\") WITH (FILLFACTOR=100);\n", table->name, i_column,table->name, Options->hstore_columns[i_column]);
1147+
}
11221148
}
11231149
}
11241150
}

0 commit comments

Comments
 (0)