* [tarantool-patches] [PATCH v1 1/1] sql: remove table.c
@ 2019-03-06 16:07 imeevma
2019-03-06 16:13 ` [tarantool-patches] " n.pettik
2019-03-07 8:02 ` Kirill Yukhin
0 siblings, 2 replies; 3+ messages in thread
From: imeevma @ 2019-03-06 16:07 UTC (permalink / raw)
To: korablev; +Cc: tarantool-patches
The module table.c is not used and should be removed.
---
https://github.com/tarantool/tarantool/tree/imeevma/small-patches
src/box/sql/CMakeLists.txt | 1 -
src/box/sql/sqlInt.h | 3 -
src/box/sql/table.c | 238 ---------------------------------------------
3 files changed, 242 deletions(-)
delete mode 100644 src/box/sql/table.c
diff --git a/src/box/sql/CMakeLists.txt b/src/box/sql/CMakeLists.txt
index 8f1cbf1..87fb833 100644
--- a/src/box/sql/CMakeLists.txt
+++ b/src/box/sql/CMakeLists.txt
@@ -50,7 +50,6 @@ add_library(sql STATIC
resolve.c
select.c
status.c
- table.c
tokenize.c
treeview.c
trigger.c
diff --git a/src/box/sql/sqlInt.h b/src/box/sql/sqlInt.h
index b0802ce..1d8fae5 100644
--- a/src/box/sql/sqlInt.h
+++ b/src/box/sql/sqlInt.h
@@ -878,9 +878,6 @@ sql_sql(sql_stmt * pStmt);
int
sql_vfs_register(sql_vfs *, int makeDflt);
-void
-sql_free_table(char **result);
-
#define SQL_STMTSTATUS_FULLSCAN_STEP 1
#define SQL_STMTSTATUS_SORT 2
#define SQL_STMTSTATUS_AUTOINDEX 3
diff --git a/src/box/sql/table.c b/src/box/sql/table.c
deleted file mode 100644
index ff97d43..0000000
--- a/src/box/sql/table.c
+++ /dev/null
@@ -1,238 +0,0 @@
-/*
- * Copyright 2010-2017, Tarantool AUTHORS, please see AUTHORS file.
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- * 1. Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the
- * following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
- * <COPYRIGHT HOLDER> OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
- * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
- * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*
- * This file contains the sql_get_table() and sql_free_table()
- * interface routines. These are just wrappers around the main
- * interface routine of sql_exec().
- *
- * These routines are in a separate files so that they will not be linked
- * if they are not used.
- */
-#include "sqlInt.h"
-#include <stdlib.h>
-#include <string.h>
-
-#ifndef SQL_OMIT_GET_TABLE
-
-/*
- * This structure is used to pass data from sql_get_table() through
- * to the callback function is uses to build the result.
- */
-typedef struct TabResult {
- char **azResult; /* Accumulated output */
- char *zErrMsg; /* Error message text, if an error occurs */
- u32 nAlloc; /* Slots allocated for azResult[] */
- u32 nRow; /* Number of rows in the result */
- u32 nColumn; /* Number of columns in the result */
- u32 nData; /* Slots used in azResult[]. (nRow+1)*nColumn */
- int rc; /* Return code from sql_exec() */
-} TabResult;
-
-/*
- * This routine is called once for each row in the result table. Its job
- * is to fill in the TabResult structure appropriately, allocating new
- * memory as necessary.
- */
-static int
-sql_get_table_cb(void *pArg, int nCol, char **argv, char **colv)
-{
- TabResult *p = (TabResult *) pArg; /* Result accumulator */
- int need; /* Slots needed in p->azResult[] */
- int i; /* Loop counter */
- char *z; /* A single column of result */
-
- /* Make sure there is enough space in p->azResult to hold everything
- * we need to remember from this invocation of the callback.
- */
- if (p->nRow == 0 && argv != 0) {
- need = nCol * 2;
- } else {
- need = nCol;
- }
- if (p->nData + need > p->nAlloc) {
- char **azNew;
- p->nAlloc = p->nAlloc * 2 + need;
- azNew =
- sql_realloc64(p->azResult, sizeof(char *) * p->nAlloc);
- if (azNew == 0)
- goto malloc_failed;
- p->azResult = azNew;
- }
-
- /* If this is the first row, then generate an extra row containing
- * the names of all columns.
- */
- if (p->nRow == 0) {
- p->nColumn = nCol;
- for (i = 0; i < nCol; i++) {
- z = sql_mprintf("%s", colv[i]);
- if (z == 0)
- goto malloc_failed;
- p->azResult[p->nData++] = z;
- }
- } else if ((int)p->nColumn != nCol) {
- sql_free(p->zErrMsg);
- p->zErrMsg =
- sql_mprintf
- ("sql_get_table() called with two or more incompatible queries");
- p->rc = SQL_ERROR;
- return 1;
- }
-
- /* Copy over the row data
- */
- if (argv != 0) {
- for (i = 0; i < nCol; i++) {
- if (argv[i] == 0) {
- z = 0;
- } else {
- int n = sqlStrlen30(argv[i]) + 1;
- z = sql_malloc64(n);
- if (z == 0)
- goto malloc_failed;
- memcpy(z, argv[i], n);
- }
- p->azResult[p->nData++] = z;
- }
- p->nRow++;
- }
- return 0;
-
- malloc_failed:
- p->rc = SQL_NOMEM;
- return 1;
-}
-
-/*
- * Query the database. But instead of invoking a callback for each row,
- * malloc() for space to hold the result and return the entire results
- * at the conclusion of the call.
- *
- * The result that is written to ***pazResult is held in memory obtained
- * from malloc(). But the caller cannot free this memory directly.
- * Instead, the entire table should be passed to sql_free_table() when
- * the calling procedure is finished using it.
- */
-int
-sql_get_table(sql * db, /* The database on which the SQL executes */
- const char *zSql, /* The SQL to be executed */
- char ***pazResult, /* Write the result table here */
- int *pnRow, /* Write the number of rows in the result here */
- int *pnColumn, /* Write the number of columns of result here */
- char **pzErrMsg) /* Write error messages here */
-{
- int rc;
- TabResult res;
-
-#ifdef SQL_ENABLE_API_ARMOR
- if (!sqlSafetyCheckOk(db) || pazResult == 0)
- return SQL_MISUSE;
-#endif
- *pazResult = 0;
- if (pnColumn)
- *pnColumn = 0;
- if (pnRow)
- *pnRow = 0;
- if (pzErrMsg)
- *pzErrMsg = 0;
- res.zErrMsg = 0;
- res.nRow = 0;
- res.nColumn = 0;
- res.nData = 1;
- res.nAlloc = 20;
- res.rc = SQL_OK;
- res.azResult = sql_malloc64(sizeof(char *) * res.nAlloc);
- if (res.azResult == 0) {
- db->errCode = SQL_NOMEM;
- return SQL_NOMEM;
- }
- res.azResult[0] = 0;
- rc = sql_exec(db, zSql, sql_get_table_cb, &res, pzErrMsg);
- assert(sizeof(res.azResult[0]) >= sizeof(res.nData));
- res.azResult[0] = SQL_INT_TO_PTR(res.nData);
- if ((rc & 0xff) == SQL_ABORT) {
- sql_free_table(&res.azResult[1]);
- if (res.zErrMsg) {
- if (pzErrMsg) {
- sql_free(*pzErrMsg);
- *pzErrMsg = sql_mprintf("%s", res.zErrMsg);
- }
- sql_free(res.zErrMsg);
- }
- /* Assume 32-bit assignment is atomic */
- db->errCode = res.rc;
- return res.rc;
- }
- sql_free(res.zErrMsg);
- if (rc != SQL_OK) {
- sql_free_table(&res.azResult[1]);
- return rc;
- }
- if (res.nAlloc > res.nData) {
- char **azNew;
- azNew =
- sql_realloc64(res.azResult, sizeof(char *) * res.nData);
- if (azNew == 0) {
- sql_free_table(&res.azResult[1]);
- db->errCode = SQL_NOMEM;
- return SQL_NOMEM;
- }
- res.azResult = azNew;
- }
- *pazResult = &res.azResult[1];
- if (pnColumn)
- *pnColumn = res.nColumn;
- if (pnRow)
- *pnRow = res.nRow;
- return rc;
-}
-
-/*
- * This routine frees the space the sql_get_table() malloced.
- */
-void
-sql_free_table(char **azResult) /* Result returned from sql_get_table() */
-{
- if (azResult) {
- int i, n;
- azResult--;
- assert(azResult != 0);
- n = SQL_PTR_TO_INT(azResult[0]);
- for (i = 1; i < n; i++) {
- if (azResult[i])
- sql_free(azResult[i]);
- }
- sql_free(azResult);
- }
-}
-
-#endif /* SQL_OMIT_GET_TABLE */
--
2.7.4
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2019-03-07 8:02 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-03-06 16:07 [tarantool-patches] [PATCH v1 1/1] sql: remove table.c imeevma
2019-03-06 16:13 ` [tarantool-patches] " n.pettik
2019-03-07 8:02 ` Kirill Yukhin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox